diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml
index 4ff9e4f55c..a25c2c3496 100644
--- a/.github/workflows/action.yml
+++ b/.github/workflows/action.yml
@@ -38,15 +38,17 @@ jobs:
- {RTT_BSP: "at91/at91sam9260", RTT_TOOL_CHAIN: "sourcery-arm"}
- {RTT_BSP: "allwinner_tina", RTT_TOOL_CHAIN: "sourcery-arm"}
- {RTT_BSP: "ft32/ft32f072xb-starter", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32103c-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32105c-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32105r-start", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32107c-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32205r-start", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32303e-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32305r-start", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32407v-start", RTT_TOOL_CHAIN: "sourcery-arm"}
- - {RTT_BSP: "gd32/gd32450z-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32103c-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32105c-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32105r-start", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32107c-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32205r-start", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32207i-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32303e-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32305r-start", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32307e-start", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32407v-start", RTT_TOOL_CHAIN: "sourcery-arm"}
+ - {RTT_BSP: "gd32/arm/gd32450z-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
- {RTT_BSP: "gd32e230k-start", RTT_TOOL_CHAIN: "sourcery-arm"}
- {RTT_BSP: "gd32vf103v-eval", RTT_TOOL_CHAIN: "sourcery-riscv-none-embed"}
- {RTT_BSP: "gd32303e-eval", RTT_TOOL_CHAIN: "sourcery-arm"}
diff --git a/bsp/gd32/README.md b/bsp/gd32/README.md
index 5937be20aa..2f9263244b 100644
--- a/bsp/gd32/README.md
+++ b/bsp/gd32/README.md
@@ -1,30 +1,29 @@
-# GD32 BSP 说明
+# GD32 系列BSP 说明
GD32 系列 BSP 目前支持情况如下表所示:
| **BSP 文件夹名称** | **开发板名称** |
|:------------------------- |:-------------------------- |
+| **ARM 系列** | |
| **F1 系列** | |
-| [gd32103c-eval](gd32103c-eval) | 兆易创新 官方 GD32103C-EVAL 开发板 |
-| [gd32105c-eval](gd32105c-eval) | 兆易创新 官方 GD32105C-EVAL 开发板 |
-| [gd32105r-start](gd32105r-start) | 兆易创新 官方 GD32105R-START 开发板 |
-| [gd32107c-eval](gd32107c-eval) | 兆易创新 官方 GD32107C-EVAL 开发板 |
+| [gd32103c-eval](arm/gd32103c-eval) | 兆易创新 官方 GD32103C-EVAL 开发板 |
+| [gd32105c-eval](arm/gd32105c-eval) | 兆易创新 官方 GD32105C-EVAL 开发板 |
+| [gd32105r-start](arm/gd32105r-start) | 兆易创新 官方 GD32105R-START 开发板 |
+| [gd32107c-eval](arm/gd32107c-eval) | 兆易创新 官方 GD32107C-EVAL 开发板 |
| **F2 系列** | |
-| [gd32205r-start](gd32205r-start) | 兆易创新 官方 GD32205R-START 开发板 |
+| [gd32205r-start](arm/gd32205r-start) | 兆易创新 官方 GD32205R-START 开发板 |
+| [gd32207i-eval](arm/gd32207i-eval) | 兆易创新 官方 GD32207I-EVAL 开发板 |
| **F3 系列** | |
-| [gd32303e-eval](gd32303e-eval) | 兆易创新 官方 GD32303E-EVAL 开发板 |
-| [gd32305r-start](gd32305r-start) | 兆易创新 官方 GD32305R-START 开发板 |
+| [gd32303e-eval](arm/gd32303e-eval) | 兆易创新 官方 GD32303E-EVAL 开发板 |
+| [gd32305r-start](arm/gd32305r-start) | 兆易创新 官方 GD32305R-START 开发板 |
+| [gd32307e-start](arm/gd32307e-start) | 兆易创新 官方 GD32307E-START 开发板 |
| **F4 系列** | |
-| [gd32407v-start](gd32407v-start) | 兆易创新 官方 GD32407V-START 开发板 |
-| [gd32450z-eval](gd32450z-eval) | 兆易创新 官方 GD32450Z-EVAL 开发板 |
-
-可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
-
-| **BSP 使用教程** | **简介** |
-|:-------------------- |:------------------------------------------------- |
-| [外设驱动使用教程](docs/GD32系列BSP外设驱动使用教程.md) | 讲解 BSP 上更多外设驱动的使用方法 |
-| [外设驱动介绍与应用](docs/GD32系列驱动介绍.md) | 讲解 GD32 系列 BSP 驱动的支持情况,以及如何利用驱动框架开发应用程序 |
-| **BSP 制作与提交** | **简介** |
-| [BSP 制作教程](docs/GD32系列BSP制作教程.md) | 讲解 GD32 系列 BSP 的制作方法 |
+| [gd32407v-start](arm/gd32407v-start) | 兆易创新 官方 GD32407V-START 开发板 |
+| [gd32450z-eval](arm/gd32450z-eval) | 兆易创新 官方 GD32450Z-EVAL 开发板 |
+| | |
+| **RISC-V 系列** | |
+| **VF1 系列** | |
+| [gd32vf103v-eval](risc-v/gd32vf103v-eval) | 兆易创新 官方 GGD32VF103V-EVAL 开发板 |
+| [gd32vf103r-start](risc-v/gd32vf103r-start) | 兆易创新 官方 GD32VF103R-START 开发板 |
diff --git a/bsp/gd32/arm/README.md b/bsp/gd32/arm/README.md
new file mode 100644
index 0000000000..abb9515a5e
--- /dev/null
+++ b/bsp/gd32/arm/README.md
@@ -0,0 +1,32 @@
+
+# GD32 ARM 系列BSP 说明
+
+GD32 ARM 系列 BSP 目前支持情况如下表所示:
+
+| **BSP 文件夹名称** | **开发板名称** |
+|:------------------------- |:-------------------------- |
+| **F1 系列** | |
+| [gd32103c-eval](gd32103c-eval) | 兆易创新 官方 GD32103C-EVAL 开发板 |
+| [gd32105c-eval](gd32105c-eval) | 兆易创新 官方 GD32105C-EVAL 开发板 |
+| [gd32105r-start](gd32105r-start) | 兆易创新 官方 GD32105R-START 开发板 |
+| [gd32107c-eval](gd32107c-eval) | 兆易创新 官方 GD32107C-EVAL 开发板 |
+| **F2 系列** | |
+| [gd32205r-start](gd32205r-start) | 兆易创新 官方 GD32205R-START 开发板 |
+| [gd32207i-eval](gd32207i-eval) | 兆易创新 官方 GD32207I-EVAL 开发板 |
+| **F3 系列** | |
+| [gd32303e-eval](gd32303e-eval) | 兆易创新 官方 GD32303E-EVAL 开发板 |
+| [gd32305r-start](gd32305r-start) | 兆易创新 官方 GD32305R-START 开发板 |
+| [gd32307e-start](gd32307e-start) | 兆易创新 官方 GD32307E-START 开发板 |
+| **F4 系列** | |
+| [gd32407v-start](gd32407v-start) | 兆易创新 官方 GD32407V-START 开发板 |
+| [gd32450z-eval](gd32450z-eval) | 兆易创新 官方 GD32450Z-EVAL 开发板 |
+
+可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
+
+| **BSP 使用教程** | **简介** |
+|:-------------------- |:------------------------------------------------- |
+| [外设驱动使用教程](docs/GD32_ARM系列BSP外设驱动使用教程.md) | 讲解 GD32 ARM 系列BSP 上更多外设驱动的使用方法 |
+| [外设驱动介绍与应用](docs/GD32_ARM系列驱动介绍.md) | 讲解 GD32 ARM系列 BSP 驱动的支持情况,以及如何利用驱动框架开发应用程序 |
+| **BSP 制作与提交** | **简介** |
+| [BSP 制作教程](docs/GD32_ARM系列BSP制作教程.md) | 讲解 GD32 ARM系列 BSP 的制作方法 |
+
diff --git a/bsp/gd32/docs/GD32系列BSP制作教程.md b/bsp/gd32/arm/docs/GD32_ARM系列BSP制作教程.md
similarity index 88%
rename from bsp/gd32/docs/GD32系列BSP制作教程.md
rename to bsp/gd32/arm/docs/GD32_ARM系列BSP制作教程.md
index 03c7764741..6abba300a4 100644
--- a/bsp/gd32/docs/GD32系列BSP制作教程.md
+++ b/bsp/gd32/arm/docs/GD32_ARM系列BSP制作教程.md
@@ -1,4 +1,4 @@
-# GD32 系列 BSP 制作教程
+# GD32 ARM系列 BSP 制作教程
## 1. BSP 框架介绍
@@ -6,13 +6,13 @@ BSP 框架结构如下图所示:

-GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards,其中libraries包含了GD32的通用库,包括每个系列的Firmware Library以及适配RT-Thread的drivers;tools是生成工程的Python脚本工具;另外就是Boards文件,当然这里的Boards有很多,我这里值列举了GD32407V-START。
+GD32 ARM系列BSP架构主要分为三个部分:libraries、tools和具体的Boards,其中libraries包含了GD32的通用库,包括每个系列的Firmware Library以及适配RT-Thread的drivers;tools是生成工程的Python脚本工具;另外就是Boards文件,当然这里的Boards有很多,我这里值列举了GD32407V-START。
## 2. 知识准备
制作一个 BSP 的过程就是构建一个新系统的过程,因此想要制作出好用的 BSP,要对 RT-Thread 系统的构建过程有一定了解,需要的知识准备如下所示:
-- 掌握 GD32 系列 BSP 的使用方法
+- 掌握 GD32 ARM系列 BSP 的使用方法
了解 BSP 的使用方法,可以阅读 [BSP 说明文档](../README.md) 中使用教程表格内的文档。
@@ -68,59 +68,7 @@ GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards
**2.修改BSP构建脚本**
-bsp/gd32/gd32407v-start/Kconfig修改后的内容如下:
-
-```config
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
-```
-
-该文件是获取所有路径下的Kconfig。
-
-bsp/gd32/gd32407v-start/SConscript修改后的内容如下:
-
-```python
-# for module compiling
-
-import os
-Import('RTT_ROOT')
-
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')
-```
-
-该文件是用于遍历当前目录的所有文件夹。
-
-bsp/gd32/gd32407v-start/SConstruct修改后的内容如下:
+bsp/gd32/arm/gd32407v-start/SConstruct修改后的内容如下:
```python
import os
@@ -130,7 +78,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -151,7 +99,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM == 'iccarm':
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
@@ -185,35 +133,9 @@ objs.extend(SConscript(os.path.join(libraries_path_prefix, 'Drivers', 'SConscrip
DoBuilding(TARGET, objs)
```
-该文件用于链接所有的依赖文件,并调用make进行编译。
+该文件用于链接所有的依赖文件,主要修改固件库路径,并调用make进行编译。
-**3.修改开发环境信息**
-bsp/gd32/gd32407v-start/cconfig.h修改后的内容如下:
-
-```c
-#ifndef CCONFIG_H__
-#define CCONFIG_H__
-/* Automatically generated file; DO NOT EDIT. */
-/* compiler configure file for RT-Thread in GCC*/
-
-#define HAVE_NEWLIB_H 1
-#define LIBC_VERSION "newlib 2.4.0"
-
-#define HAVE_SYS_SIGNAL_H 1
-#define HAVE_SYS_SELECT_H 1
-#define HAVE_PTHREAD_H 1
-
-#define HAVE_FDSET 1
-#define HAVE_SIGACTION 1
-#define GCC_VERSION_STR "5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]"
-#define STDC "2011"
-
-#endif
-```
-
-该文件是是编译BSP的环境信息,需根据实际修改。
-
-**4.修改KEIL的模板工程**
+**3.修改KEIL的模板工程**
双击:template.uvprojx即可修改模板工程。
@@ -237,9 +159,9 @@ bsp/gd32/gd32407v-start/cconfig.h修改后的内容如下:

-**5.修改board文件夹**
+**4.修改board文件夹**
-(1) 修改bsp/gd32/gd32407v-start/board/linker_scripts/link.icf
+(1) 修改bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.icf
修改后的内容如下:
@@ -288,7 +210,7 @@ place in RAM1_region { section .sram };
该文件是IAR编译的链接脚本,根据《GD32F407xx_Datasheet_Rev2.1》可知,GD32F407VKT6的flash大小为3072KB,SRAM大小为192KB,因此需要设置ROM和RAM的起始地址和堆栈大小等。
-(2) 修改bsp/gd32/gd32407v-start/board/linker_scripts/link.ld
+(2) 修改bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.ld
修改后的内容如下:
@@ -434,7 +356,7 @@ SECTIONS
该文件是GCC编译的链接脚本,根据《GD32F407xx_Datasheet_Rev2.1》可知,GD32F407VKT6的flash大小为3072KB,SRAM大小为192KB,因此CODE和DATA 的LENGTH分别设置为3072KB和192KB,其他芯片类似,但其实地址都是一样的。
-(3) 修改bsp/gd32/gd32407v-start/board/linker_scripts/link.sct
+(3) 修改bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.sct
修改后的内容如下:
```
@@ -456,7 +378,7 @@ LR_IROM1 0x08000000 0x00300000 { ; load region size_region
该文件是MDK的连接脚本,根据《GD32F407xx_Datasheet_Rev2.1》手册,因此需要将 LR_IROM1 和 ER_IROM1 的参数设置为 0x00300000;RAM 的大小为192k,因此需要将 RW_IRAM1 的参数设置为 0x00030000。
-(4) 修改bsp/gd32/gd32407v-start/board/board.h文件
+(4) 修改bsp/gd32/arm/gd32407v-start/board/board.h文件
修改后内容如下:
@@ -502,7 +424,7 @@ extern int __bss_end;
值得注意的是,不同的编译器规定的堆栈内存的起始地址 HEAP_BEGIN 和结束地址 HEAP_END。这里 HEAP_BEGIN 和 HEAP_END 的值需要和前面的链接脚本是一致的,需要结合实际去修改。
-(5) 修改bsp/gd32/gd32407v-start/board/board.c文件
+(5) 修改bsp/gd32/arm/gd32407v-start/board/board.c文件
修改后的文件如下:
@@ -585,7 +507,7 @@ void SystemClock_Config(void)
该文件重点关注的就是SystemClock_Config配置,SystemCoreClock的定义在system_gd32f4xx.c中定义的。
-(6) 修改bsp/gd32/gd32407v-start/board/Kconfig文件
+(6) 修改bsp/gd32/arm/gd32407v-start/board/Kconfig文件
修改后内容如下:
```config
@@ -676,7 +598,7 @@ endmenu
这个文件就是配置板子驱动的,这里可根据实际需求添加。
-(7) 修改bsp/gd32/gd32407v-start/board/SConscript文件
+(7) 修改bsp/gd32/arm/gd32407v-start/board/SConscript文件
修改后内容如下:
@@ -700,7 +622,7 @@ startup_path_prefix = SDK_LIB
if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s']
elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s']
@@ -715,7 +637,7 @@ Return('group')
到这里,基本所有的依赖脚本都配置完成了,接下来将通过menuconfig配置工程。
-**6.menuconfig配置**
+**5.menuconfig配置**
关闭套接字抽象层。

@@ -730,13 +652,13 @@ Return('group')
GD32407V-START板载没有以太网,因此这里主要是关闭网络相关的内容,当然GD32407V-START的资源丰富,不关这些其实也不影响,如果是其他MCU,根据实际需求自行修改吧。
-**7.驱动修改**
+**6.驱动修改**
一个基本的BSP中,串口是必不可少的,所以还需要编写串口驱动,这里使用的串口2作为调试串口。
板子上还有LED灯,主要要编写GPIO驱动即可。
关于串口和LED的驱动可以查看源码,这里就不贴出来了。
-**8.应用开发**
+**7.应用开发**
笔者在applications的main.c中添加LED的应用代码,
@@ -770,7 +692,7 @@ int main(void)
当然,这需要GPIO驱动的支持。
-**9.使用ENV编译工程**
+**8.使用ENV编译工程**
在env中执行:scons

@@ -779,7 +701,7 @@ int main(void)

-**10.使用env生成MDK工程**
+**9.使用env生成MDK工程**
在env中执行:scons --target=mdk5

@@ -798,7 +720,7 @@ int main(void)
1.第一次使用GD-link插入电脑后,会自动安装驱动。
-在Options for Target -> Debug 中选择“CMSIS-DAP Debugger”,部分客户反馈找不到这一驱动器选项,那是因为MDK版本过低,只有Keil4.74以上的版本和Keil5才支持CMSIS-DAP Debugger选项。
+在Options for Target -> Debug 中选择“CMSIS-DAP Debugger”,值得注意的是,只有Keil4.74以上的版本和Keil5才支持CMSIS-DAP Debugger选项。

@@ -885,7 +807,7 @@ GD32 BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和
### 4.2 BSP 提交规范
-- 提交前请认真修改 BSP 的 README.md 文件,README.md 文件的外设支持表单只填写 BSP 支持的外设,可参考其他 BSP 填写。查看文档[《GD32系列驱动介绍》](./GD32系列驱动介绍.md)了解驱动分类。
+- 提交前请认真修改 BSP 的 README.md 文件,README.md 文件的外设支持表单只填写 BSP 支持的外设,可参考其他 BSP 填写。查看文档[《GD32 ARM系列驱动介绍》](./GD32 ARM系列驱动介绍.md)了解驱动分类。
- 提交 BSP 分为 2 个阶段提交:
- 第一阶段:基础 BSP 包括串口驱动和 GPIO 驱动,能运行 FinSH 控制台。完成 MDK4、MDK5 、IAR 和 GCC 编译器支持,如果芯片不支持某款编译器(比如MDK4)可以不用做。 BSP 的 README.md 文件需要填写第二阶段要完成的驱动。
- 第二阶段:完成板载外设驱动支持,所有板载外设使用 menuconfig 配置后就能直接使用。若开发板没有板载外设,则此阶段可以不用完成。不同的驱动要分开提交,方便 review 和合并。
diff --git a/bsp/gd32/docs/GD32系列BSP外设驱动使用教程.md b/bsp/gd32/arm/docs/GD32_ARM系列BSP外设驱动使用教程.md
similarity index 92%
rename from bsp/gd32/docs/GD32系列BSP外设驱动使用教程.md
rename to bsp/gd32/arm/docs/GD32_ARM系列BSP外设驱动使用教程.md
index d33f9a7d01..2c6868a8e1 100644
--- a/bsp/gd32/docs/GD32系列BSP外设驱动使用教程.md
+++ b/bsp/gd32/arm/docs/GD32_ARM系列BSP外设驱动使用教程.md
@@ -1,4 +1,4 @@
-# GD32系列BSP外设驱动使用教程
+# GD32 ARM系列BSP外设驱动使用教程
## 简介
@@ -20,7 +20,7 @@
### 1)打开配置工具
-在目录 `rt-thread\bsp\gd32\gd32407v-start` 下打开 menuconfig 配置界面。
+在目录 `rt-thread\bsp\gd32\arm\gd32407v-start` 下打开 menuconfig 配置界面。

@@ -54,7 +54,7 @@
### 6)生成 MDK5 工程
-输入命令 `scons --target=mdk5 -s` 重新生成 MDK5 的工程。
+输入命令 `scons --target=mdk5` 重新生成 MDK5 的工程。

diff --git a/bsp/gd32/docs/GD32系列驱动介绍.md b/bsp/gd32/arm/docs/GD32_ARM系列驱动介绍.md
similarity index 99%
rename from bsp/gd32/docs/GD32系列驱动介绍.md
rename to bsp/gd32/arm/docs/GD32_ARM系列驱动介绍.md
index 9c993f5dca..3a18296274 100644
--- a/bsp/gd32/docs/GD32系列驱动介绍.md
+++ b/bsp/gd32/arm/docs/GD32_ARM系列驱动介绍.md
@@ -1,4 +1,4 @@
-# GD32系列驱动介绍
+# GD32 ARM系列驱动介绍
在 RT-Thread 实时操作系统中,各种各样的设备驱动是通过一套 I/O 设备管理框架来管理的。设备管理框架给上层应用提供了一套标准的设备操作 API,开发者通过调用这些标准设备操作 API,可以高效地完成和底层硬件外设的交互。设备管理框架的结构如下图所示:
diff --git a/bsp/gd32/docs/figures/CMSIS-DAP_Debugger.png b/bsp/gd32/arm/docs/figures/CMSIS-DAP_Debugger.png
similarity index 100%
rename from bsp/gd32/docs/figures/CMSIS-DAP_Debugger.png
rename to bsp/gd32/arm/docs/figures/CMSIS-DAP_Debugger.png
diff --git a/bsp/gd32/docs/figures/FMC.png b/bsp/gd32/arm/docs/figures/FMC.png
similarity index 100%
rename from bsp/gd32/docs/figures/FMC.png
rename to bsp/gd32/arm/docs/figures/FMC.png
diff --git a/bsp/gd32/docs/figures/Gigadevice.png b/bsp/gd32/arm/docs/figures/Gigadevice.png
similarity index 100%
rename from bsp/gd32/docs/figures/Gigadevice.png
rename to bsp/gd32/arm/docs/figures/Gigadevice.png
diff --git a/bsp/gd32/docs/figures/MDK_Build.png b/bsp/gd32/arm/docs/figures/MDK_Build.png
similarity index 100%
rename from bsp/gd32/docs/figures/MDK_Build.png
rename to bsp/gd32/arm/docs/figures/MDK_Build.png
diff --git a/bsp/gd32/docs/figures/MDK_Build_Success.png b/bsp/gd32/arm/docs/figures/MDK_Build_Success.png
similarity index 100%
rename from bsp/gd32/docs/figures/MDK_Build_Success.png
rename to bsp/gd32/arm/docs/figures/MDK_Build_Success.png
diff --git a/bsp/gd32/docs/figures/Peripheral.png b/bsp/gd32/arm/docs/figures/Peripheral.png
similarity index 100%
rename from bsp/gd32/docs/figures/Peripheral.png
rename to bsp/gd32/arm/docs/figures/Peripheral.png
diff --git a/bsp/gd32/docs/figures/UART2.png b/bsp/gd32/arm/docs/figures/UART2.png
similarity index 100%
rename from bsp/gd32/docs/figures/UART2.png
rename to bsp/gd32/arm/docs/figures/UART2.png
diff --git a/bsp/gd32/docs/figures/chip.png b/bsp/gd32/arm/docs/figures/chip.png
similarity index 100%
rename from bsp/gd32/docs/figures/chip.png
rename to bsp/gd32/arm/docs/figures/chip.png
diff --git a/bsp/gd32/docs/figures/com_print.png b/bsp/gd32/arm/docs/figures/com_print.png
similarity index 100%
rename from bsp/gd32/docs/figures/com_print.png
rename to bsp/gd32/arm/docs/figures/com_print.png
diff --git a/bsp/gd32/docs/figures/complise.png b/bsp/gd32/arm/docs/figures/complise.png
similarity index 100%
rename from bsp/gd32/docs/figures/complise.png
rename to bsp/gd32/arm/docs/figures/complise.png
diff --git a/bsp/gd32/docs/figures/config1.png b/bsp/gd32/arm/docs/figures/config1.png
similarity index 100%
rename from bsp/gd32/docs/figures/config1.png
rename to bsp/gd32/arm/docs/figures/config1.png
diff --git a/bsp/gd32/docs/figures/config2.png b/bsp/gd32/arm/docs/figures/config2.png
similarity index 100%
rename from bsp/gd32/docs/figures/config2.png
rename to bsp/gd32/arm/docs/figures/config2.png
diff --git a/bsp/gd32/docs/figures/debug.png b/bsp/gd32/arm/docs/figures/debug.png
similarity index 100%
rename from bsp/gd32/docs/figures/debug.png
rename to bsp/gd32/arm/docs/figures/debug.png
diff --git a/bsp/gd32/docs/figures/disable_lwip.png b/bsp/gd32/arm/docs/figures/disable_lwip.png
similarity index 100%
rename from bsp/gd32/docs/figures/disable_lwip.png
rename to bsp/gd32/arm/docs/figures/disable_lwip.png
diff --git a/bsp/gd32/docs/figures/disable_net.png b/bsp/gd32/arm/docs/figures/disable_net.png
similarity index 100%
rename from bsp/gd32/docs/figures/disable_net.png
rename to bsp/gd32/arm/docs/figures/disable_net.png
diff --git a/bsp/gd32/docs/figures/disable_socket.png b/bsp/gd32/arm/docs/figures/disable_socket.png
similarity index 100%
rename from bsp/gd32/docs/figures/disable_socket.png
rename to bsp/gd32/arm/docs/figures/disable_socket.png
diff --git a/bsp/gd32/docs/figures/dowmload.png b/bsp/gd32/arm/docs/figures/dowmload.png
similarity index 100%
rename from bsp/gd32/docs/figures/dowmload.png
rename to bsp/gd32/arm/docs/figures/dowmload.png
diff --git a/bsp/gd32/docs/figures/download_success.png b/bsp/gd32/arm/docs/figures/download_success.png
similarity index 100%
rename from bsp/gd32/docs/figures/download_success.png
rename to bsp/gd32/arm/docs/figures/download_success.png
diff --git a/bsp/gd32/docs/figures/frame.png b/bsp/gd32/arm/docs/figures/frame.png
similarity index 100%
rename from bsp/gd32/docs/figures/frame.png
rename to bsp/gd32/arm/docs/figures/frame.png
diff --git a/bsp/gd32/docs/figures/gdlink_debug.png b/bsp/gd32/arm/docs/figures/gdlink_debug.png
similarity index 100%
rename from bsp/gd32/docs/figures/gdlink_debug.png
rename to bsp/gd32/arm/docs/figures/gdlink_debug.png
diff --git a/bsp/gd32/docs/figures/gdlink_download.png b/bsp/gd32/arm/docs/figures/gdlink_download.png
similarity index 100%
rename from bsp/gd32/docs/figures/gdlink_download.png
rename to bsp/gd32/arm/docs/figures/gdlink_download.png
diff --git a/bsp/gd32/docs/figures/import_rt-thread_studio.png b/bsp/gd32/arm/docs/figures/import_rt-thread_studio.png
similarity index 100%
rename from bsp/gd32/docs/figures/import_rt-thread_studio.png
rename to bsp/gd32/arm/docs/figures/import_rt-thread_studio.png
diff --git a/bsp/gd32/docs/figures/install_pack.png b/bsp/gd32/arm/docs/figures/install_pack.png
similarity index 100%
rename from bsp/gd32/docs/figures/install_pack.png
rename to bsp/gd32/arm/docs/figures/install_pack.png
diff --git a/bsp/gd32/docs/figures/mdk_keil.png b/bsp/gd32/arm/docs/figures/mdk_keil.png
similarity index 100%
rename from bsp/gd32/docs/figures/mdk_keil.png
rename to bsp/gd32/arm/docs/figures/mdk_keil.png
diff --git a/bsp/gd32/arm/docs/figures/menuconfig_gd32407v-start.png b/bsp/gd32/arm/docs/figures/menuconfig_gd32407v-start.png
new file mode 100644
index 0000000000..ed4dbaf96a
Binary files /dev/null and b/bsp/gd32/arm/docs/figures/menuconfig_gd32407v-start.png differ
diff --git a/bsp/gd32/docs/figures/pack_finish.png b/bsp/gd32/arm/docs/figures/pack_finish.png
similarity index 100%
rename from bsp/gd32/docs/figures/pack_finish.png
rename to bsp/gd32/arm/docs/figures/pack_finish.png
diff --git a/bsp/gd32/docs/figures/rename.png b/bsp/gd32/arm/docs/figures/rename.png
similarity index 100%
rename from bsp/gd32/docs/figures/rename.png
rename to bsp/gd32/arm/docs/figures/rename.png
diff --git a/bsp/gd32/docs/figures/rt-thread_studio.png b/bsp/gd32/arm/docs/figures/rt-thread_studio.png
similarity index 100%
rename from bsp/gd32/docs/figures/rt-thread_studio.png
rename to bsp/gd32/arm/docs/figures/rt-thread_studio.png
diff --git a/bsp/gd32/docs/figures/rt_device.png b/bsp/gd32/arm/docs/figures/rt_device.png
similarity index 100%
rename from bsp/gd32/docs/figures/rt_device.png
rename to bsp/gd32/arm/docs/figures/rt_device.png
diff --git a/bsp/gd32/docs/figures/run_flash.png b/bsp/gd32/arm/docs/figures/run_flash.png
similarity index 100%
rename from bsp/gd32/docs/figures/run_flash.png
rename to bsp/gd32/arm/docs/figures/run_flash.png
diff --git a/bsp/gd32/docs/figures/save.png b/bsp/gd32/arm/docs/figures/save.png
similarity index 100%
rename from bsp/gd32/docs/figures/save.png
rename to bsp/gd32/arm/docs/figures/save.png
diff --git a/bsp/gd32/arm/docs/figures/scons.png b/bsp/gd32/arm/docs/figures/scons.png
new file mode 100644
index 0000000000..efebaa9e57
Binary files /dev/null and b/bsp/gd32/arm/docs/figures/scons.png differ
diff --git a/bsp/gd32/arm/docs/figures/scons_dist.png b/bsp/gd32/arm/docs/figures/scons_dist.png
new file mode 100644
index 0000000000..bc41d1b60f
Binary files /dev/null and b/bsp/gd32/arm/docs/figures/scons_dist.png differ
diff --git a/bsp/gd32/arm/docs/figures/scons_mdk5.png b/bsp/gd32/arm/docs/figures/scons_mdk5.png
new file mode 100644
index 0000000000..d1327eb29e
Binary files /dev/null and b/bsp/gd32/arm/docs/figures/scons_mdk5.png differ
diff --git a/bsp/gd32/arm/docs/figures/scons_success.png b/bsp/gd32/arm/docs/figures/scons_success.png
new file mode 100644
index 0000000000..4e47ee5013
Binary files /dev/null and b/bsp/gd32/arm/docs/figures/scons_success.png differ
diff --git a/bsp/gd32/docs/figures/setting1.png b/bsp/gd32/arm/docs/figures/setting1.png
similarity index 100%
rename from bsp/gd32/docs/figures/setting1.png
rename to bsp/gd32/arm/docs/figures/setting1.png
diff --git a/bsp/gd32/docs/figures/setting2.png b/bsp/gd32/arm/docs/figures/setting2.png
similarity index 100%
rename from bsp/gd32/docs/figures/setting2.png
rename to bsp/gd32/arm/docs/figures/setting2.png
diff --git a/bsp/gd32/docs/figures/storage.png b/bsp/gd32/arm/docs/figures/storage.png
similarity index 100%
rename from bsp/gd32/docs/figures/storage.png
rename to bsp/gd32/arm/docs/figures/storage.png
diff --git a/bsp/gd32/arm/docs/figures/update.png b/bsp/gd32/arm/docs/figures/update.png
new file mode 100644
index 0000000000..53594b8fb5
Binary files /dev/null and b/bsp/gd32/arm/docs/figures/update.png differ
diff --git a/bsp/gd32/gd32103c-eval/.config b/bsp/gd32/arm/gd32103c-eval/.config
similarity index 96%
rename from bsp/gd32/gd32103c-eval/.config
rename to bsp/gd32/arm/gd32103c-eval/.config
index 7522357a7e..588b17ddf1 100644
--- a/bsp/gd32/gd32103c-eval/.config
+++ b/bsp/gd32/arm/gd32103c-eval/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -152,7 +164,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -176,7 +188,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -186,6 +197,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -194,7 +210,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -259,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -298,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -337,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -411,6 +429,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -442,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -484,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -638,6 +659,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -662,10 +685,13 @@ CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART4 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
-# CONFIG_BSP_USING_WDT is not set
-# CONFIG_BSP_USING_RTC is not set
-# CONFIG_BSP_USING_HWTIMER is not set
# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/gd32103c-eval/Kconfig b/bsp/gd32/arm/gd32103c-eval/Kconfig
similarity index 92%
rename from bsp/gd32/gd32103c-eval/Kconfig
rename to bsp/gd32/arm/gd32103c-eval/Kconfig
index 8cbc7b71a8..dbc650938f 100644
--- a/bsp/gd32/gd32103c-eval/Kconfig
+++ b/bsp/gd32/arm/gd32103c-eval/Kconfig
@@ -8,7 +8,7 @@ config BSP_DIR
config RTT_DIR
string
option env="RTT_ROOT"
- default "../../.."
+ default "../../../.."
config PKGS_DIR
string
diff --git a/bsp/gd32/gd32103c-eval/README.md b/bsp/gd32/arm/gd32103c-eval/README.md
similarity index 77%
rename from bsp/gd32/gd32103c-eval/README.md
rename to bsp/gd32/arm/gd32103c-eval/README.md
index 04fff4a92b..91258aff26 100644
--- a/bsp/gd32/gd32103c-eval/README.md
+++ b/bsp/gd32/arm/gd32103c-eval/README.md
@@ -4,17 +4,31 @@
GD3103C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高主频高达108M,该开发板具有丰富的板载资源,可以充分发挥 GD32103VCT6的芯片性能。
+开发板外观如下图所示:
+
+
+
该开发板常用 **板载资源** 如下:
- GD32103VCT6,主频 108MHz,256KB FLASH ,48KB RAM
-
- 常用外设
-
- LED :5个,LED1 (电源指示灯),LED2(PC0),LED3(PC2),LED4(PE0),LED5(PE1)
- 按键:3个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PB14)
-
-- 常用接口:USB 接口
-
+ - General TM * 4 、Advanced TM * 2、Basic TM * 2
+ - 系统时钟 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - USART * 3、UART * 2
+ - I2C * 2、I2S * 2
+ - SPI * 3
+ - SDIO * 1
+ - CAN2.0B * 1
+ - USB2.0 OTG FS * 1
+ - TFT-LCD
+ - EXMC/SDRAM * 1
+ - ADC * 3
+ - DAC * 2
+ - 最多支持80GPIOs
- 调试接口:GD-LINK
## 外设支持
@@ -23,11 +37,12 @@ GD3103C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...79 |
| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
| SPI | 支持 | SPI0 - SPI2 |
| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC2 |
| **扩展模块** | **支持情况** | **备注** |
| 暂无 | 暂不支持 | 暂不支持 |
@@ -45,11 +60,11 @@ GD3103C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
-使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
+使用数据线连接开发板到 PC,使用USB转232连接USART1,打开电源开关。
#### 编译下载
@@ -81,7 +96,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/gd32103c-eval/SConscript b/bsp/gd32/arm/gd32103c-eval/SConscript
similarity index 100%
rename from bsp/gd32/gd32103c-eval/SConscript
rename to bsp/gd32/arm/gd32103c-eval/SConscript
diff --git a/bsp/gd32/gd32105c-eval/SConstruct b/bsp/gd32/arm/gd32103c-eval/SConstruct
similarity index 94%
rename from bsp/gd32/gd32105c-eval/SConstruct
rename to bsp/gd32/arm/gd32103c-eval/SConstruct
index 4ae47cd02f..4e87945853 100644
--- a/bsp/gd32/gd32105c-eval/SConstruct
+++ b/bsp/gd32/arm/gd32103c-eval/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32103c-eval/applications/SConscript b/bsp/gd32/arm/gd32103c-eval/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32103c-eval/applications/SConscript
rename to bsp/gd32/arm/gd32103c-eval/applications/SConscript
diff --git a/bsp/gd32/gd32103c-eval/applications/main.c b/bsp/gd32/arm/gd32103c-eval/applications/main.c
similarity index 91%
rename from bsp/gd32/gd32103c-eval/applications/main.c
rename to bsp/gd32/arm/gd32103c-eval/applications/main.c
index d13b24ab50..139fe2567f 100644
--- a/bsp/gd32/gd32103c-eval/applications/main.c
+++ b/bsp/gd32/arm/gd32103c-eval/applications/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/arm/gd32103c-eval/board/Kconfig b/bsp/gd32/arm/gd32103c-eval/board/Kconfig
new file mode 100644
index 0000000000..5524f2b139
--- /dev/null
+++ b/bsp/gd32/arm/gd32103c-eval/board/Kconfig
@@ -0,0 +1,211 @@
+menu "Hardware Drivers Config"
+
+config SOC_SERIES_GD32F10x
+ bool
+ default y
+
+config SOC_GD32103V
+ bool
+ select SOC_SERIES_GD32F10x
+ select RT_USING_COMPONENTS_INIT
+ select RT_USING_USER_MAIN
+ default y
+
+menu "Onboard Peripheral Drivers"
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+
+ config BSP_USING_GPIO
+ bool "Enable GPIO"
+ select RT_USING_PIN
+ default y
+
+ menuconfig BSP_USING_UART
+ bool "Enable UART"
+ default y
+ select RT_USING_SERIAL
+ if BSP_USING_UART
+ config BSP_USING_UART0
+ bool "Enable UART0"
+ default n
+
+ config BSP_UART0_RX_USING_DMA
+ bool "Enable UART0 RX DMA"
+ depends on BSP_USING_UART0
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART1
+ bool "Enable UART1"
+ default y
+
+ config BSP_UART1_RX_USING_DMA
+ bool "Enable UART1 RX DMA"
+ depends on BSP_USING_UART1
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART2
+ bool "Enable UART2"
+ default n
+
+ config BSP_UART2_RX_USING_DMA
+ bool "Enable UART2 RX DMA"
+ depends on BSP_USING_UART2
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART3
+ bool "Enable UART3"
+ default n
+
+ config BSP_UART3_RX_USING_DMA
+ bool "Enable UART3 RX DMA"
+ depends on BSP_USING_UART3
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART4
+ bool "Enable UART4"
+ default n
+
+ config BSP_UART4_RX_USING_DMA
+ bool "Enable UART4 RX DMA"
+ depends on BSP_USING_UART4
+ select RT_SERIAL_USING_DMA
+ default n
+ endif
+
+ menuconfig BSP_USING_SPI
+ bool "Enable SPI BUS"
+ default n
+ select RT_USING_SPI
+ if BSP_USING_SPI
+ config BSP_USING_SPI1
+ bool "Enable SPI1 BUS"
+ default n
+
+ config BSP_SPI1_TX_USING_DMA
+ bool "Enable SPI1 TX DMA"
+ depends on BSP_USING_SPI1
+ default n
+
+ config BSP_SPI1_RX_USING_DMA
+ bool "Enable SPI1 RX DMA"
+ depends on BSP_USING_SPI1
+ select BSP_SPI1_TX_USING_DMA
+ default n
+ endif
+
+ menuconfig BSP_USING_I2C1
+ bool "Enable I2C1 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C1
+ config BSP_I2C1_SCL_PIN
+ int "i2c1 scl pin number"
+ range 1 216
+ default 24
+ config BSP_I2C1_SDA_PIN
+ int "I2C1 sda pin number"
+ range 1 216
+ default 25
+ endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
+ source "../libraries/gd32_drivers/Kconfig"
+
+endmenu
+
+menu "Board extended module Drivers"
+
+endmenu
+
+endmenu
diff --git a/bsp/gd32/gd32103c-eval/board/SConscript b/bsp/gd32/arm/gd32103c-eval/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32103c-eval/board/SConscript
rename to bsp/gd32/arm/gd32103c-eval/board/SConscript
index 0762046a90..95b0a6e9ac 100644
--- a/bsp/gd32/gd32103c-eval/board/SConscript
+++ b/bsp/gd32/arm/gd32103c-eval/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_hd.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s']
CPPDEFINES = ['GD32F10X_HD']
diff --git a/bsp/gd32/gd32105r-start/board/board.c b/bsp/gd32/arm/gd32103c-eval/board/board.c
similarity index 100%
rename from bsp/gd32/gd32105r-start/board/board.c
rename to bsp/gd32/arm/gd32103c-eval/board/board.c
diff --git a/bsp/gd32/gd32103c-eval/board/board.h b/bsp/gd32/arm/gd32103c-eval/board/board.h
similarity index 95%
rename from bsp/gd32/gd32103c-eval/board/board.h
rename to bsp/gd32/arm/gd32103c-eval/board/board.h
index 2eb804a9af..0bf3e288a4 100644
--- a/bsp/gd32/gd32103c-eval/board/board.h
+++ b/bsp/gd32/arm/gd32103c-eval/board/board.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32103c-eval/board/gd32f10x_libopt.h b/bsp/gd32/arm/gd32103c-eval/board/gd32f10x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32103c-eval/board/gd32f10x_libopt.h
rename to bsp/gd32/arm/gd32103c-eval/board/gd32f10x_libopt.h
diff --git a/bsp/gd32/gd32103c-eval/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32103c-eval/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32103c-eval/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.ld
similarity index 98%
rename from bsp/gd32/gd32103c-eval/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.ld
index 7bacb5ab4a..29fdadf318 100644
--- a/bsp/gd32/gd32103c-eval/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.ld
@@ -1,5 +1,5 @@
/*
- * linker script for GD32F30x with GNU ld
+ * linker script for GD32F10x with GNU ld
* BruceOu 2021-12-18
*/
diff --git a/bsp/gd32/gd32103c-eval/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32103c-eval/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32103c-eval/board/linker_scripts/link.sct
diff --git a/bsp/gd32/arm/gd32103c-eval/figures/board.jpg b/bsp/gd32/arm/gd32103c-eval/figures/board.jpg
new file mode 100644
index 0000000000..7a80e45af0
Binary files /dev/null and b/bsp/gd32/arm/gd32103c-eval/figures/board.jpg differ
diff --git a/bsp/gd32/arm/gd32103c-eval/project.ewd b/bsp/gd32/arm/gd32103c-eval/project.ewd
new file mode 100644
index 0000000000..7e329366d3
--- /dev/null
+++ b/bsp/gd32/arm/gd32103c-eval/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32103c-eval/project.ewp b/bsp/gd32/arm/gd32103c-eval/project.ewp
new file mode 100644
index 0000000000..27d7f5757f
--- /dev/null
+++ b/bsp/gd32/arm/gd32103c-eval/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\IAR\startup_gd32f10x_hd.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32103c-eval/project.eww b/bsp/gd32/arm/gd32103c-eval/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32103c-eval/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32103c-eval/project.uvoptx b/bsp/gd32/arm/gd32103c-eval/project.uvoptx
new file mode 100644
index 0000000000..f8ed3597eb
--- /dev/null
+++ b/bsp/gd32/arm/gd32103c-eval/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 8000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F10x_HD -FL040000 -FS08000000 -FP0($$Device:GD32F103VC$Flash\GD32F10x_HD.FLM)
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+ 3
+ 10
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_hd.s
+ startup_gd32f10x_hd.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+ gd32f10x_exti.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+ gd32f10x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+ gd32f10x_misc.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+ system_gd32f10x.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+ gd32f10x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+ gd32f10x_usart.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32103c-eval/project.uvproj b/bsp/gd32/arm/gd32103c-eval/project.uvproj
similarity index 98%
rename from bsp/gd32/gd32103c-eval/project.uvproj
rename to bsp/gd32/arm/gd32103c-eval/project.uvproj
index 44657ee758..4308ad819f 100644
--- a/bsp/gd32/gd32103c-eval/project.uvproj
+++ b/bsp/gd32/arm/gd32103c-eval/project.uvproj
@@ -12,10 +12,10 @@
GD32F103VC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(10800000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x2000C000) IROM(0x08000000-0x08040000) CLOCK(8000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_hd.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_HD -FS08000000 -FL040000)
0
gd32f10x0.h
@@ -27,7 +27,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_HD.SFR
0
0
@@ -456,6 +456,13 @@
CPU
+
+
+ backtrace.c
+ 1
+ ..\..\..\libcpu\arm\common\backtrace.c
+
+
showmem.c
@@ -472,9 +479,9 @@
- backtrace.c
+ cpuport.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\libcpu\arm\cortex-m3\cpuport.c
@@ -484,51 +491,9 @@
..\..\..\libcpu\arm\cortex-m3\context_rvds.S
-
-
- cpuport.c
- 1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
-
-
DeviceDrivers
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
workqueue.c
@@ -543,6 +508,41 @@
..\..\..\components\drivers\ipc\pipe.c
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\waitqueue.c
+
+
+
+
+ dataqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\dataqueue.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+
+
+ completion.c
+ 1
+ ..\..\..\components\drivers\ipc\completion.c
+
+
pin.c
@@ -615,48 +615,6 @@
Kernel
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
kservice.c
@@ -666,16 +624,9 @@
- device.c
+ thread.c
1
- ..\..\..\src\device.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
+ ..\..\..\src\thread.c
@@ -687,9 +638,9 @@
- timer.c
+ object.c
1
- ..\..\..\src\timer.c
+ ..\..\..\src\object.c
@@ -706,6 +657,55 @@
..\..\..\src\scheduler.c
+
+
+ timer.c
+ 1
+ ..\..\..\src\timer.c
+
+
+
+
+ mempool.c
+ 1
+ ..\..\..\src\mempool.c
+
+
+
+
+ mem.c
+ 1
+ ..\..\..\src\mem.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\src\idle.c
+
+
+
+
+ device.c
+ 1
+ ..\..\..\src\device.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\src\components.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
Libraries
diff --git a/bsp/gd32/gd32103c-eval/project.uvprojx b/bsp/gd32/arm/gd32103c-eval/project.uvprojx
similarity index 75%
rename from bsp/gd32/gd32103c-eval/project.uvprojx
rename to bsp/gd32/arm/gd32103c-eval/project.uvprojx
index 52c9ada262..dc6a4f6c87 100644
--- a/bsp/gd32/gd32103c-eval/project.uvprojx
+++ b/bsp/gd32/arm/gd32103c-eval/project.uvprojx
@@ -1,7 +1,10 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
@@ -13,31 +16,31 @@
GD32F103VC
GigaDevice
- GigaDevice.GD32F10x_DFP.2.0.1
- http://www.keil.com/pack/
- IRAM(0x20000000,0x0000C000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F103VC$Flash\GD32F10x_CL.FLM))
+ GigaDevice.GD32F10x_DFP.2.0.2
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x0000C000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(8000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_HD -FS08000000 -FL040000 -FP0($$Device:GD32F103VC$Flash\GD32F10x_HD.FLM))
0
$$Device:GD32F103VC$Device\Include\gd32f10x.h
-
-
-
-
-
-
-
-
-
- $$Device:GD32F103VC$SVD\GD32F10x\GD32F10x_CL.svd
+
+
+
+
+
+
+
+
+
+ $$Device:GD32F103VC$SVD\GD32F10x\GD32F10x_HD.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -59,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -69,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -80,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -101,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -111,7 +114,7 @@
DCM.DLL
-pCM3
SARMCM3.DLL
-
+
TCM.DLL
-pCM3
@@ -135,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -172,7 +175,7 @@
0
0
"Cortex-M3"
-
+
0
0
0
@@ -306,7 +309,7 @@
0x0
-
+
1
@@ -333,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F10X_HD, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m3;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -351,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -366,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -393,132 +396,102 @@
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
-
- stdlib.c
- 1
- ..\..\..\components\libc\compilers\common\stdlib.c
-
-
-
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
+
+
+ stdlib.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
CPU
-
-
- backtrace.c
- 1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
+
+
+ backtrace.c
+ 1
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
DeviceDrivers
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
-
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
ringblk_buf.c
1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
-
-
completion.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\..\components\drivers\ipc\completion.c
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -530,22 +503,16 @@
2
..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_hd.s
-
-
board.c
1
board\board.c
-
-
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
@@ -559,21 +526,17 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -581,93 +544,69 @@
Kernel
- idle.c
+ thread.c
1
- ..\..\..\src\idle.c
+ ..\..\..\..\src\thread.c
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
clock.c
1
- ..\..\..\src\clock.c
+ ..\..\..\..\src\clock.c
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
irq.c
1
- ..\..\..\src\irq.c
+ ..\..\..\..\src\irq.c
-
-
- ipc.c
+ components.c
1
- ..\..\..\src\ipc.c
+ ..\..\..\..\src\components.c
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
kservice.c
1
- ..\..\..\src\kservice.c
+ ..\..\..\..\src\kservice.c
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
-
-
object.c
1
- ..\..\..\src\object.c
+ ..\..\..\..\src\object.c
@@ -679,36 +618,26 @@
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
-
-
gd32f10x_gpio.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
-
-
gd32f10x_misc.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
-
-
system_gd32f10x.c
1
..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
-
-
gd32f10x_rcu.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
-
-
gd32f10x_usart.c
1
@@ -716,33 +645,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32103c-eval/rtconfig.h b/bsp/gd32/arm/gd32103c-eval/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32103c-eval/rtconfig.h
rename to bsp/gd32/arm/gd32103c-eval/rtconfig.h
index f36f1f7197..bc0197da3a 100644
--- a/bsp/gd32/gd32103c-eval/rtconfig.h
+++ b/bsp/gd32/arm/gd32103c-eval/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -81,7 +90,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -93,10 +102,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32105c-eval/rtconfig.py b/bsp/gd32/arm/gd32103c-eval/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32105c-eval/rtconfig.py
rename to bsp/gd32/arm/gd32103c-eval/rtconfig.py
index a8cb7dc467..4285e6b03c 100644
--- a/bsp/gd32/gd32105c-eval/rtconfig.py
+++ b/bsp/gd32/arm/gd32103c-eval/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32103c-eval/template.ewp b/bsp/gd32/arm/gd32103c-eval/template.ewp
new file mode 100644
index 0000000000..5f4ded0ae7
--- /dev/null
+++ b/bsp/gd32/arm/gd32103c-eval/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32105c-eval/template.uvoptx b/bsp/gd32/arm/gd32103c-eval/template.uvoptx
similarity index 96%
rename from bsp/gd32/gd32105c-eval/template.uvoptx
rename to bsp/gd32/arm/gd32103c-eval/template.uvoptx
index d691bf54c0..bb6f1ddba6 100644
--- a/bsp/gd32/gd32105c-eval/template.uvoptx
+++ b/bsp/gd32/arm/gd32103c-eval/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 8000000
1
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM)
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F10x_HD -FL040000 -FS08000000 -FP0($$Device:GD32F103VC$Flash\GD32F10x_HD.FLM)
diff --git a/bsp/gd32/gd32103c-eval/template.uvproj b/bsp/gd32/arm/gd32103c-eval/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32103c-eval/template.uvproj
rename to bsp/gd32/arm/gd32103c-eval/template.uvproj
index 33458e05f7..c4285b8560 100644
--- a/bsp/gd32/gd32103c-eval/template.uvproj
+++ b/bsp/gd32/arm/gd32103c-eval/template.uvproj
@@ -15,10 +15,10 @@
GD32F103VC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(10800000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x2000C000) IROM(0x08000000-0x08040000) CLOCK(8000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_hd.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_HD -FS08000000 -FL040000)
0
gd32f10x0.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_HD.SFR
0
0
@@ -605,9 +605,9 @@
Startup
- startup_gd32f10x.s
+ startup_gd32f10x_hd.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_hd.s
diff --git a/bsp/gd32/gd32103c-eval/template.uvprojx b/bsp/gd32/arm/gd32103c-eval/template.uvprojx
similarity index 97%
rename from bsp/gd32/gd32103c-eval/template.uvprojx
rename to bsp/gd32/arm/gd32103c-eval/template.uvprojx
index efc072e87e..e498edc3e9 100644
--- a/bsp/gd32/gd32103c-eval/template.uvprojx
+++ b/bsp/gd32/arm/gd32103c-eval/template.uvprojx
@@ -18,10 +18,10 @@
GigaDevice
GigaDevice.GD32F10x_DFP.2.0.1
http://www.keil.com/pack/
- IRAM(0x20000000,0x0000C000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
+ IRAM(0x20000000,0x0000C000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(8000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F103VC$Flash\GD32F10x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_HD -FS08000000 -FL040000 -FP0($$Device:GD32F103VC$Flash\GD32F10x_HD.FLM))
0
$$Device:GD32F103VC$Device\Include\gd32f10x.h
@@ -33,7 +33,7 @@
- $$Device:GD32F103VC$SVD\GD32F10x\GD32F10x_CL.svd
+ $$Device:GD32F103VC$SVD\GD32F10x\GD32F10x_HD.svd
0
0
diff --git a/bsp/gd32/gd32105c-eval/.config b/bsp/gd32/arm/gd32105c-eval/.config
similarity index 96%
rename from bsp/gd32/gd32105c-eval/.config
rename to bsp/gd32/arm/gd32105c-eval/.config
index bb63f61b1a..dab8b600b4 100644
--- a/bsp/gd32/gd32105c-eval/.config
+++ b/bsp/gd32/arm/gd32105c-eval/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -152,7 +164,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -176,7 +188,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -186,6 +197,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -194,7 +210,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -259,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -298,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -337,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -411,6 +429,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -442,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -484,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -638,6 +659,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -662,6 +685,13 @@ CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART4 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/gd32105r-start/Kconfig b/bsp/gd32/arm/gd32105c-eval/Kconfig
similarity index 92%
rename from bsp/gd32/gd32105r-start/Kconfig
rename to bsp/gd32/arm/gd32105c-eval/Kconfig
index 8cbc7b71a8..dbc650938f 100644
--- a/bsp/gd32/gd32105r-start/Kconfig
+++ b/bsp/gd32/arm/gd32105c-eval/Kconfig
@@ -8,7 +8,7 @@ config BSP_DIR
config RTT_DIR
string
option env="RTT_ROOT"
- default "../../.."
+ default "../../../.."
config PKGS_DIR
string
diff --git a/bsp/gd32/arm/gd32105c-eval/README.md b/bsp/gd32/arm/gd32105c-eval/README.md
new file mode 100644
index 0000000000..58753e56b1
--- /dev/null
+++ b/bsp/gd32/arm/gd32105c-eval/README.md
@@ -0,0 +1,111 @@
+# GD32105C-EVAL开发板BSP说明
+
+## 简介
+
+GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高主频高达108M,该开发板具有丰富的板载资源,可以充分发挥 GD32105VCT6 的芯片性能。
+
+开发板外观如下图所示:
+
+
+
+该开发板常用 **板载资源** 如下:
+
+- GD32105VCT6,主频 108MHz,256KB FLASH ,96KB RAM
+- 常用外设
+ - LED :5个,LED1 (电源指示灯),LED2(PC0),LED3(PC2),LED4(PE0),LED5(PE1)
+ - 按键:3个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PB14)
+ - General TM * 4 、Advanced TM * 1、Basic TM * 2
+ - 系统时钟 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - U(S)ART * 5
+ - I2C * 2、I2S * 2
+ - SPI * 3
+ - CAN2.0B * 2
+ - USB2.0 OTG FS * 1
+ - TFT-LCD
+ - EXMC/SDRAM * 1
+ - ADC * 2
+ - DAC * 2
+ - 最多支持80GPIOs
+- 常用接口:USB OTG接口
+- 调试接口:J-LINK
+
+
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **片上外设** | **支持情况** | **备注** |
+| :----------- | :----------: | :------------------------------ |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...79 |
+| UART | 支持 | UART0 - UART4 |
+| I2C | 支持 | I2C1 |
+| SPI | 支持 | SPI0 - SPI2 |
+| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0- ADC1 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+ 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+
+- 进阶使用
+
+ 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+### 快速上手
+
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+
+#### 硬件连接
+
+使用数据线连接开发板到 PC,使用USB转232连接USART1,打开电源开关。
+
+#### 编译下载
+
+双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
+
+> 工程默认配置使用 J-Link 仿真器下载程序,在通过 J-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板
+
+#### 运行结果
+
+下载程序成功之后,系统会自动运行,LED2闪烁。
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
+
+```bash
+\ | /
+- RT - Thread Operating System
+ / | \ 4.1.0 build May 15 2022 14:22:05
+ 2006 - 2022 Copyright by RT-Thread team
+msh >
+```
+
+### 进阶使用
+
+此 BSP 默认只开启了 GPIO 和 串口1的功能,如果需使用高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+
+1. 在 bsp 下打开 env 工具。
+
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+
+3. 输入`pkgs --update`命令更新软件包。
+
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
+
+## 注意事项
+
+暂无
+
+## 联系人信息
+
+维护人:
+
+- [BruceOu](https://github.com/Ouxiaolong/), 邮箱:
\ No newline at end of file
diff --git a/bsp/gd32/gd32105c-eval/SConscript b/bsp/gd32/arm/gd32105c-eval/SConscript
similarity index 100%
rename from bsp/gd32/gd32105c-eval/SConscript
rename to bsp/gd32/arm/gd32105c-eval/SConscript
diff --git a/bsp/gd32/gd32105r-start/SConstruct b/bsp/gd32/arm/gd32105c-eval/SConstruct
similarity index 94%
rename from bsp/gd32/gd32105r-start/SConstruct
rename to bsp/gd32/arm/gd32105c-eval/SConstruct
index 4ae47cd02f..4e87945853 100644
--- a/bsp/gd32/gd32105r-start/SConstruct
+++ b/bsp/gd32/arm/gd32105c-eval/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32105c-eval/applications/SConscript b/bsp/gd32/arm/gd32105c-eval/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32105c-eval/applications/SConscript
rename to bsp/gd32/arm/gd32105c-eval/applications/SConscript
diff --git a/bsp/gd32/gd32107c-eval/applications/main.c b/bsp/gd32/arm/gd32105c-eval/applications/main.c
similarity index 77%
rename from bsp/gd32/gd32107c-eval/applications/main.c
rename to bsp/gd32/arm/gd32105c-eval/applications/main.c
index 4a528128b4..34c7773369 100644
--- a/bsp/gd32/gd32107c-eval/applications/main.c
+++ b/bsp/gd32/arm/gd32105c-eval/applications/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -13,14 +13,14 @@
#include
#include
-/* defined the LED2 pin: PC6 */
-#define LED2_PIN GET_PIN(C, 6)
+/* defined the LED2 pin: PC0 */
+#define LED2_PIN GET_PIN(C, 0)
int main(void)
{
int count = 1;
- /* set LED2 pin mode to output */
+ /* set LED0 pin mode to output */
rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT);
while (count++)
diff --git a/bsp/gd32/gd32105c-eval/board/Kconfig b/bsp/gd32/arm/gd32105c-eval/board/Kconfig
similarity index 61%
rename from bsp/gd32/gd32105c-eval/board/Kconfig
rename to bsp/gd32/arm/gd32105c-eval/board/Kconfig
index d7fec293c8..7f9c530e63 100644
--- a/bsp/gd32/gd32105c-eval/board/Kconfig
+++ b/bsp/gd32/arm/gd32105c-eval/board/Kconfig
@@ -115,6 +115,87 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32105r-start/board/SConscript b/bsp/gd32/arm/gd32105c-eval/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32105r-start/board/SConscript
rename to bsp/gd32/arm/gd32105c-eval/board/SConscript
index a85b0a42ae..c1f4a6001b 100644
--- a/bsp/gd32/gd32105r-start/board/SConscript
+++ b/bsp/gd32/arm/gd32105c-eval/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s']
CPPDEFINES = ['GD32F10X_CL']
diff --git a/bsp/gd32/gd32305r-start/board/board.c b/bsp/gd32/arm/gd32105c-eval/board/board.c
similarity index 100%
rename from bsp/gd32/gd32305r-start/board/board.c
rename to bsp/gd32/arm/gd32105c-eval/board/board.c
diff --git a/bsp/gd32/gd32105c-eval/board/board.h b/bsp/gd32/arm/gd32105c-eval/board/board.h
similarity index 95%
rename from bsp/gd32/gd32105c-eval/board/board.h
rename to bsp/gd32/arm/gd32105c-eval/board/board.h
index 11fb4fa084..3312ada335 100644
--- a/bsp/gd32/gd32105c-eval/board/board.h
+++ b/bsp/gd32/arm/gd32105c-eval/board/board.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32105c-eval/board/gd32f10x_libopt.h b/bsp/gd32/arm/gd32105c-eval/board/gd32f10x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32105c-eval/board/gd32f10x_libopt.h
rename to bsp/gd32/arm/gd32105c-eval/board/gd32f10x_libopt.h
diff --git a/bsp/gd32/gd32105c-eval/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32105c-eval/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32105r-start/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.ld
similarity index 98%
rename from bsp/gd32/gd32105r-start/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.ld
index 8ba4a0e9f2..0bd341937c 100644
--- a/bsp/gd32/gd32105r-start/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.ld
@@ -1,5 +1,5 @@
/*
- * linker script for GD32F30x with GNU ld
+ * linker script for GD32F10x with GNU ld
* BruceOu 2021-12-14
*/
diff --git a/bsp/gd32/gd32105c-eval/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32105c-eval/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32105c-eval/board/linker_scripts/link.sct
diff --git a/bsp/gd32/gd32105c-eval/figures/board.jpg b/bsp/gd32/arm/gd32105c-eval/figures/board.jpg
similarity index 100%
rename from bsp/gd32/gd32105c-eval/figures/board.jpg
rename to bsp/gd32/arm/gd32105c-eval/figures/board.jpg
diff --git a/bsp/gd32/arm/gd32105c-eval/project.ewd b/bsp/gd32/arm/gd32105c-eval/project.ewd
new file mode 100644
index 0000000000..b55ce6cb3e
--- /dev/null
+++ b/bsp/gd32/arm/gd32105c-eval/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32105c-eval/project.ewp b/bsp/gd32/arm/gd32105c-eval/project.ewp
new file mode 100644
index 0000000000..fe2a197f80
--- /dev/null
+++ b/bsp/gd32/arm/gd32105c-eval/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\IAR\startup_gd32f10x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32105c-eval/project.eww b/bsp/gd32/arm/gd32105c-eval/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32105c-eval/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32105c-eval/project.uvoptx b/bsp/gd32/arm/gd32105c-eval/project.uvoptx
new file mode 100644
index 0000000000..fc2d72abec
--- /dev/null
+++ b/bsp/gd32/arm/gd32105c-eval/project.uvoptx
@@ -0,0 +1,789 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+
+
+ Segger\JL2CM3.dll
+
+
+
+ 0
+ JL2CM3
+ -U59413783 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL.FLM -FS08000000 -FL040000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM)
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+ 3
+ 10
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
+ startup_gd32f10x_cl.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+ gd32f10x_exti.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+ gd32f10x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+ gd32f10x_misc.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+ system_gd32f10x.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+ gd32f10x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+ gd32f10x_usart.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32105c-eval/project.uvproj b/bsp/gd32/arm/gd32105c-eval/project.uvproj
similarity index 98%
rename from bsp/gd32/gd32105c-eval/project.uvproj
rename to bsp/gd32/arm/gd32105c-eval/project.uvproj
index d6e0aa5963..344951c61b 100644
--- a/bsp/gd32/gd32105c-eval/project.uvproj
+++ b/bsp/gd32/arm/gd32105c-eval/project.uvproj
@@ -12,10 +12,10 @@
GD32F105VC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(10800000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_cl.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000)
0
gd32f10x0.h
@@ -27,7 +27,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_CL.SFR
0
0
@@ -427,16 +427,16 @@
Compiler
- syscalls.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
- syscall_mem.c
+ syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\components\libc\compilers\armlibc\syscalls.c
@@ -479,16 +479,16 @@
- context_rvds.S
- 2
- ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ cpuport.c
+ 1
+ ..\..\..\libcpu\arm\cortex-m3\cpuport.c
- cpuport.c
- 1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ context_rvds.S
+ 2
+ ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
@@ -503,30 +503,9 @@
- pipe.c
+ workqueue.c
1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\components\drivers\ipc\workqueue.c
@@ -538,9 +517,30 @@
- workqueue.c
+ dataqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\components\drivers\ipc\dataqueue.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\waitqueue.c
+
+
+
+
+ pipe.c
+ 1
+ ..\..\..\components\drivers\ipc\pipe.c
@@ -562,16 +562,16 @@
Drivers
- board.c
- 1
- board\board.c
+ startup_gd32f10x_cl.s
+ 2
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
- startup_gd32f10x_cl.s
- 2
- ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
+ board.c
+ 1
+ board\board.c
@@ -617,23 +617,9 @@
Kernel
- components.c
+ object.c
1
- ..\..\..\src\components.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
+ ..\..\..\src\object.c
@@ -645,23 +631,9 @@
- object.c
+ thread.c
1
- ..\..\..\src\object.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
+ ..\..\..\src\thread.c
@@ -671,6 +643,27 @@
..\..\..\src\device.c
+
+
+ mempool.c
+ 1
+ ..\..\..\src\mempool.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\src\idle.c
+
+
+
+
+ clock.c
+ 1
+ ..\..\..\src\clock.c
+
+
ipc.c
@@ -678,6 +671,20 @@
..\..\..\src\ipc.c
+
+
+ kservice.c
+ 1
+ ..\..\..\src\kservice.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\src\components.c
+
+
mem.c
@@ -687,16 +694,9 @@
- thread.c
+ timer.c
1
- ..\..\..\src\thread.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
+ ..\..\..\src\timer.c
diff --git a/bsp/gd32/gd32105c-eval/project.uvprojx b/bsp/gd32/arm/gd32105c-eval/project.uvprojx
similarity index 76%
rename from bsp/gd32/gd32105c-eval/project.uvprojx
rename to bsp/gd32/arm/gd32105c-eval/project.uvprojx
index 15a2e8225e..f2fb3189e3 100644
--- a/bsp/gd32/gd32105c-eval/project.uvprojx
+++ b/bsp/gd32/arm/gd32105c-eval/project.uvprojx
@@ -1,7 +1,10 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
@@ -13,31 +16,31 @@
GD32F105VC
GigaDevice
- GigaDevice.GD32F10x_DFP.2.0.1
- http://www.keil.com/pack/
- IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM))
+ GigaDevice.GD32F10x_DFP.2.0.2
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM))
0
$$Device:GD32F105VC$Device\Include\gd32f10x.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F105VC$SVD\GD32F10x\GD32F10x_CL.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -59,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -69,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -80,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -101,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -111,7 +114,7 @@
DCM.DLL
-pCM3
SARMCM3.DLL
-
+
TCM.DLL
-pCM3
@@ -135,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -172,7 +175,7 @@
0
0
"Cortex-M3"
-
+
0
0
0
@@ -306,7 +309,7 @@
0x0
-
+
1
@@ -333,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F10X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m3;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -351,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -366,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -389,32 +392,26 @@
Compiler
-
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
- time.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ time.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\time.c
@@ -424,35 +421,27 @@
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
@@ -462,90 +451,68 @@
waitqueue.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
completion.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\..\components\drivers\ipc\completion.c
-
-
ringblk_buf.c
1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
-
-
workqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
Drivers
-
-
- board.c
- 1
- board\board.c
-
-
startup_gd32f10x_cl.s
2
..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
-
-
+
+ board.c
+ 1
+ board\board.c
+
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
@@ -559,115 +526,87 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
Kernel
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
irq.c
1
- ..\..\..\src\irq.c
+ ..\..\..\..\src\irq.c
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
ipc.c
1
- ..\..\..\src\ipc.c
+ ..\..\..\..\src\ipc.c
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
mem.c
1
- ..\..\..\src\mem.c
+ ..\..\..\..\src\mem.c
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
-
-
clock.c
1
- ..\..\..\src\clock.c
+ ..\..\..\..\src\clock.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
@@ -679,36 +618,26 @@
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
-
-
gd32f10x_gpio.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
-
-
gd32f10x_misc.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
-
-
system_gd32f10x.c
1
..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
-
-
gd32f10x_rcu.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
-
-
gd32f10x_usart.c
1
@@ -716,33 +645,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32105c-eval/rtconfig.h b/bsp/gd32/arm/gd32105c-eval/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32105c-eval/rtconfig.h
rename to bsp/gd32/arm/gd32105c-eval/rtconfig.h
index 704d2d2edd..f835dc264e 100644
--- a/bsp/gd32/gd32105c-eval/rtconfig.h
+++ b/bsp/gd32/arm/gd32105c-eval/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -81,7 +90,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -93,10 +102,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32205r-start/rtconfig.py b/bsp/gd32/arm/gd32105c-eval/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32205r-start/rtconfig.py
rename to bsp/gd32/arm/gd32105c-eval/rtconfig.py
index a8cb7dc467..4285e6b03c 100644
--- a/bsp/gd32/gd32205r-start/rtconfig.py
+++ b/bsp/gd32/arm/gd32105c-eval/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32105c-eval/template.ewp b/bsp/gd32/arm/gd32105c-eval/template.ewp
new file mode 100644
index 0000000000..16b17dc86e
--- /dev/null
+++ b/bsp/gd32/arm/gd32105c-eval/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32407v-start/template.uvoptx b/bsp/gd32/arm/gd32105c-eval/template.uvoptx
similarity index 87%
rename from bsp/gd32/gd32407v-start/template.uvoptx
rename to bsp/gd32/arm/gd32105c-eval/template.uvoptx
index 6f7965ced8..956bfbef1e 100644
--- a/bsp/gd32/gd32407v-start/template.uvoptx
+++ b/bsp/gd32/arm/gd32105c-eval/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -103,7 +103,7 @@
1
0
0
- 3
+ 4
@@ -114,13 +114,18 @@
- BIN\CMSIS_AGDI.dll
+ Segger\JL2CM3.dll
+
+ 0
+ JL2CM3
+ -U59413783 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL.FLM -FS08000000 -FL040000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM)
+
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F4xx_3MB -FL0300000 -FS08000000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM)
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM)
diff --git a/bsp/gd32/gd32105c-eval/template.uvproj b/bsp/gd32/arm/gd32105c-eval/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32105c-eval/template.uvproj
rename to bsp/gd32/arm/gd32105c-eval/template.uvproj
index 8ad9e1c662..5abdefe531 100644
--- a/bsp/gd32/gd32105c-eval/template.uvproj
+++ b/bsp/gd32/arm/gd32105c-eval/template.uvproj
@@ -15,10 +15,10 @@
GD32F105VC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(10800000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_cl.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000)
0
gd32f10x0.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_CL.SFR
0
0
diff --git a/bsp/gd32/gd32105c-eval/template.uvprojx b/bsp/gd32/arm/gd32105c-eval/template.uvprojx
similarity index 97%
rename from bsp/gd32/gd32105c-eval/template.uvprojx
rename to bsp/gd32/arm/gd32105c-eval/template.uvprojx
index 2b0da81501..77d48050ff 100644
--- a/bsp/gd32/gd32105c-eval/template.uvprojx
+++ b/bsp/gd32/arm/gd32105c-eval/template.uvprojx
@@ -16,12 +16,12 @@
GD32F105VC
GigaDevice
- GigaDevice.GD32F10x_DFP.2.0.1
- http://www.keil.com/pack/
- IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
+ GigaDevice.GD32F10x_DFP.2.0.2
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM))
0
$$Device:GD32F105VC$Device\Include\gd32f10x.h
diff --git a/bsp/gd32/gd32105r-start/.config b/bsp/gd32/arm/gd32105r-start/.config
similarity index 96%
rename from bsp/gd32/gd32105r-start/.config
rename to bsp/gd32/arm/gd32105r-start/.config
index 4c43d8b05d..cc9c25e12e 100644
--- a/bsp/gd32/gd32105r-start/.config
+++ b/bsp/gd32/arm/gd32105r-start/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -123,13 +135,10 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_CPUTIME is not set
-CONFIG_RT_USING_I2C=y
-# CONFIG_RT_I2C_DEBUG is not set
-CONFIG_RT_USING_I2C_BITOPS=y
-# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_I2C is not set
# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN=y
-CONFIG_RT_USING_ADC=y
+# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
@@ -155,7 +164,7 @@ CONFIG_RT_USING_ADC=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -179,7 +188,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -189,6 +197,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -197,7 +210,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -262,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -301,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -340,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -414,6 +429,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -445,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -487,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -641,6 +659,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -667,8 +687,11 @@ CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
# CONFIG_BSP_USING_WDT is not set
-# CONFIG_BSP_USING_RTC is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/gd32107c-eval/Kconfig b/bsp/gd32/arm/gd32105r-start/Kconfig
similarity index 92%
rename from bsp/gd32/gd32107c-eval/Kconfig
rename to bsp/gd32/arm/gd32105r-start/Kconfig
index 8cbc7b71a8..dbc650938f 100644
--- a/bsp/gd32/gd32107c-eval/Kconfig
+++ b/bsp/gd32/arm/gd32105r-start/Kconfig
@@ -8,7 +8,7 @@ config BSP_DIR
config RTT_DIR
string
option env="RTT_ROOT"
- default "../../.."
+ default "../../../.."
config PKGS_DIR
string
diff --git a/bsp/gd32/gd32105r-start/README.md b/bsp/gd32/arm/gd32105r-start/README.md
similarity index 84%
rename from bsp/gd32/gd32105r-start/README.md
rename to bsp/gd32/arm/gd32105r-start/README.md
index b3a02bae22..0f4f784aef 100644
--- a/bsp/gd32/gd32105r-start/README.md
+++ b/bsp/gd32/arm/gd32105r-start/README.md
@@ -25,15 +25,16 @@ GD3105R-START是-兆易创新推出的一款GD32F10X系列的评估板,最高
本 BSP 目前对外设的支持情况如下:
-| **片上外设** | **支持情况** | **备注** |
+| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...50 |
| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
-| SPI | 支持 | SPI0 - SPI2 |
+| SPI | 支持 | SPI0 - SPI2 |
| SPI FLASH | 支持 | |
-| **扩展模块** | **支持情况** | **备注** |
-| 暂无 | 暂不支持 | 暂不支持 |
+| ADC | 支持 | ADC0 - ADC1 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
## 使用说明
@@ -49,7 +50,7 @@ GD3105R-START是-兆易创新推出的一款GD32F10X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
@@ -85,7 +86,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/gd32105r-start/SConscript b/bsp/gd32/arm/gd32105r-start/SConscript
similarity index 100%
rename from bsp/gd32/gd32105r-start/SConscript
rename to bsp/gd32/arm/gd32105r-start/SConscript
diff --git a/bsp/gd32/gd32103c-eval/SConstruct b/bsp/gd32/arm/gd32105r-start/SConstruct
similarity index 94%
rename from bsp/gd32/gd32103c-eval/SConstruct
rename to bsp/gd32/arm/gd32105r-start/SConstruct
index 4ae47cd02f..4e87945853 100644
--- a/bsp/gd32/gd32103c-eval/SConstruct
+++ b/bsp/gd32/arm/gd32105r-start/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32105r-start/applications/SConscript b/bsp/gd32/arm/gd32105r-start/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32105r-start/applications/SConscript
rename to bsp/gd32/arm/gd32105r-start/applications/SConscript
diff --git a/bsp/gd32/gd32105r-start/applications/main.c b/bsp/gd32/arm/gd32105r-start/applications/main.c
similarity index 100%
rename from bsp/gd32/gd32105r-start/applications/main.c
rename to bsp/gd32/arm/gd32105r-start/applications/main.c
diff --git a/bsp/gd32/arm/gd32105r-start/board/Kconfig b/bsp/gd32/arm/gd32105r-start/board/Kconfig
new file mode 100644
index 0000000000..22420e73aa
--- /dev/null
+++ b/bsp/gd32/arm/gd32105r-start/board/Kconfig
@@ -0,0 +1,215 @@
+menu "Hardware Drivers Config"
+
+config SOC_SERIES_GD32F10x
+ bool
+ default y
+
+config SOC_GD32105R
+ bool
+ select SOC_SERIES_GD32F10x
+ select RT_USING_COMPONENTS_INIT
+ select RT_USING_USER_MAIN
+ default y
+
+menu "Onboard Peripheral Drivers"
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+
+ config BSP_USING_GPIO
+ bool "Enable GPIO"
+ select RT_USING_PIN
+ default y
+
+ menuconfig BSP_USING_UART
+ bool "Enable UART"
+ default y
+ select RT_USING_SERIAL
+ if BSP_USING_UART
+ config BSP_USING_UART0
+ bool "Enable UART0"
+ default n
+
+ config BSP_UART0_RX_USING_DMA
+ bool "Enable UART0 RX DMA"
+ depends on BSP_USING_UART0
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART1
+ bool "Enable UART1"
+ default y
+
+ config BSP_UART1_RX_USING_DMA
+ bool "Enable UART1 RX DMA"
+ depends on BSP_USING_UART1
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART2
+ bool "Enable UART2"
+ default n
+
+ config BSP_UART2_RX_USING_DMA
+ bool "Enable UART2 RX DMA"
+ depends on BSP_USING_UART2
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART3
+ bool "Enable UART3"
+ default n
+
+ config BSP_UART3_RX_USING_DMA
+ bool "Enable UART3 RX DMA"
+ depends on BSP_USING_UART3
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART4
+ bool "Enable UART4"
+ default n
+
+ config BSP_UART4_RX_USING_DMA
+ bool "Enable UART4 RX DMA"
+ depends on BSP_USING_UART4
+ select RT_SERIAL_USING_DMA
+ default n
+ endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "using adc0"
+ default n
+ config BSP_USING_ADC1
+ bool "using adc1"
+ default n
+ endif
+
+ menuconfig BSP_USING_SPI
+ bool "Enable SPI BUS"
+ default n
+ select RT_USING_SPI
+ if BSP_USING_SPI
+ config BSP_USING_SPI0
+ bool "Enable SPI0 BUS"
+ default n
+ config BSP_USING_SPI1
+ bool "Enable SPI1 BUS"
+ default n
+ config BSP_USING_SPI2
+ bool "Enable SPI2 BUS"
+ default n
+ endif
+
+ menuconfig BSP_USING_I2C1
+ bool "Enable I2C1 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C1
+ config BSP_I2C1_SCL_PIN
+ int "i2c1 scl pin number"
+ range 1 216
+ default 24
+ config BSP_I2C1_SDA_PIN
+ int "I2C1 sda pin number"
+ range 1 216
+ default 25
+ endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
+ source "../libraries/gd32_drivers/Kconfig"
+
+endmenu
+
+menu "Board extended module Drivers"
+
+endmenu
+
+endmenu
diff --git a/bsp/gd32/gd32105c-eval/board/SConscript b/bsp/gd32/arm/gd32105r-start/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32105c-eval/board/SConscript
rename to bsp/gd32/arm/gd32105r-start/board/SConscript
index a85b0a42ae..c1f4a6001b 100644
--- a/bsp/gd32/gd32105c-eval/board/SConscript
+++ b/bsp/gd32/arm/gd32105r-start/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s']
CPPDEFINES = ['GD32F10X_CL']
diff --git a/bsp/gd32/gd32107c-eval/board/board.c b/bsp/gd32/arm/gd32105r-start/board/board.c
similarity index 96%
rename from bsp/gd32/gd32107c-eval/board/board.c
rename to bsp/gd32/arm/gd32105r-start/board/board.c
index c409645b37..4a7c61b8cf 100644
--- a/bsp/gd32/gd32107c-eval/board/board.c
+++ b/bsp/gd32/arm/gd32105r-start/board/board.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32105r-start/board/board.h b/bsp/gd32/arm/gd32105r-start/board/board.h
similarity index 100%
rename from bsp/gd32/gd32105r-start/board/board.h
rename to bsp/gd32/arm/gd32105r-start/board/board.h
diff --git a/bsp/gd32/gd32105r-start/board/gd32f10x_libopt.h b/bsp/gd32/arm/gd32105r-start/board/gd32f10x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32105r-start/board/gd32f10x_libopt.h
rename to bsp/gd32/arm/gd32105r-start/board/gd32f10x_libopt.h
diff --git a/bsp/gd32/gd32105r-start/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32105r-start/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32107c-eval/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.ld
similarity index 98%
rename from bsp/gd32/gd32107c-eval/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.ld
index 8ba4a0e9f2..0bd341937c 100644
--- a/bsp/gd32/gd32107c-eval/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.ld
@@ -1,5 +1,5 @@
/*
- * linker script for GD32F30x with GNU ld
+ * linker script for GD32F10x with GNU ld
* BruceOu 2021-12-14
*/
diff --git a/bsp/gd32/gd32105r-start/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32105r-start/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.sct
diff --git a/bsp/gd32/gd32105r-start/figures/board.jpg b/bsp/gd32/arm/gd32105r-start/figures/board.jpg
similarity index 100%
rename from bsp/gd32/gd32105r-start/figures/board.jpg
rename to bsp/gd32/arm/gd32105r-start/figures/board.jpg
diff --git a/bsp/gd32/arm/gd32105r-start/project.ewd b/bsp/gd32/arm/gd32105r-start/project.ewd
new file mode 100644
index 0000000000..118019d132
--- /dev/null
+++ b/bsp/gd32/arm/gd32105r-start/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32105r-start/project.ewp b/bsp/gd32/arm/gd32105r-start/project.ewp
new file mode 100644
index 0000000000..f7391d4d23
--- /dev/null
+++ b/bsp/gd32/arm/gd32105r-start/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\IAR\startup_gd32f10x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32105r-start/project.eww b/bsp/gd32/arm/gd32105r-start/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32105r-start/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32105r-start/project.uvoptx b/bsp/gd32/arm/gd32105r-start/project.uvoptx
new file mode 100644
index 0000000000..6fa7919867
--- /dev/null
+++ b/bsp/gd32/arm/gd32105r-start/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 0
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM))
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
+ startup_gd32f10x_cl.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+ gd32f10x_exti.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+ gd32f10x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+ gd32f10x_misc.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+ system_gd32f10x.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+ gd32f10x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+ gd32f10x_usart.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32105r-start/project.uvproj b/bsp/gd32/arm/gd32105r-start/project.uvproj
similarity index 99%
rename from bsp/gd32/gd32105r-start/project.uvproj
rename to bsp/gd32/arm/gd32105r-start/project.uvproj
index b1ebb5a840..634db95d9c 100644
--- a/bsp/gd32/gd32105r-start/project.uvproj
+++ b/bsp/gd32/arm/gd32105r-start/project.uvproj
@@ -372,7 +372,7 @@
USE_STDPERIPH_DRIVER, GD32F10X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+ applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc;..\..\..\examples\utest\testcases\kernel
@@ -439,13 +439,6 @@
..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
- stdlib.c
- 1
- ..\..\..\components\libc\compilers\common\stdlib.c
-
-
time.c
@@ -453,9 +446,23 @@
..\..\..\components\libc\compilers\common\time.c
+
+
+ stdlib.c
+ 1
+ ..\..\..\components\libc\compilers\common\stdlib.c
+
+
CPU
+
+
+ div0.c
+ 1
+ ..\..\..\libcpu\arm\common\div0.c
+
+
backtrace.c
@@ -470,13 +477,6 @@
..\..\..\libcpu\arm\common\showmem.c
-
-
- div0.c
- 1
- ..\..\..\libcpu\arm\common\div0.c
-
-
cpuport.c
@@ -517,23 +517,9 @@
- completion.c
+ ringblk_buf.c
1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\components\drivers\ipc\ringblk_buf.c
@@ -545,9 +531,9 @@
- waitqueue.c
+ completion.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\components\drivers\ipc\completion.c
@@ -559,9 +545,23 @@
- ringblk_buf.c
+ waitqueue.c
1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
+ ..\..\..\components\drivers\ipc\waitqueue.c
+
+
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ pipe.c
+ 1
+ ..\..\..\components\drivers\ipc\pipe.c
@@ -590,16 +590,16 @@
Drivers
- board.c
- 1
- board\board.c
+ startup_gd32f10x_cl.s
+ 2
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
- startup_gd32f10x_cl.s
- 2
- ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
+ board.c
+ 1
+ board\board.c
@@ -652,9 +652,37 @@
Kernel
- idle.c
+ mem.c
1
- ..\..\..\src\idle.c
+ ..\..\..\src\mem.c
+
+
+
+
+ timer.c
+ 1
+ ..\..\..\src\timer.c
+
+
+
+
+ thread.c
+ 1
+ ..\..\..\src\thread.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
+
+
+ mempool.c
+ 1
+ ..\..\..\src\mempool.c
@@ -673,9 +701,9 @@
- object.c
+ irq.c
1
- ..\..\..\src\object.c
+ ..\..\..\src\irq.c
@@ -694,9 +722,9 @@
- mempool.c
+ idle.c
1
- ..\..\..\src\mempool.c
+ ..\..\..\src\idle.c
@@ -708,37 +736,9 @@
- irq.c
+ object.c
1
- ..\..\..\src\irq.c
-
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
+ ..\..\..\src\object.c
diff --git a/bsp/gd32/gd32105r-start/project.uvprojx b/bsp/gd32/arm/gd32105r-start/project.uvprojx
similarity index 71%
rename from bsp/gd32/gd32105r-start/project.uvprojx
rename to bsp/gd32/arm/gd32105r-start/project.uvprojx
index 2fa20610da..7d79ba7d71 100644
--- a/bsp/gd32/gd32105r-start/project.uvprojx
+++ b/bsp/gd32/arm/gd32105r-start/project.uvprojx
@@ -1,7 +1,10 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
@@ -13,31 +16,31 @@
GD32F105RC
GigaDevice
- GigaDevice.GD32F10x_DFP.2.0.1
- http://www.keil.com/pack/
- IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM))
+ GigaDevice.GD32F10x_DFP.2.0.2
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM))
0
$$Device:GD32F105RC$Device\Include\gd32f10x.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F105RC$SVD\GD32F10x\GD32F10x_CL.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -59,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -69,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -80,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -101,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -111,7 +114,7 @@
DCM.DLL
-pCM3
SARMCM3.DLL
-
+
TCM.DLL
-pCM3
@@ -135,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -172,7 +175,7 @@
0
0
"Cortex-M3"
-
+
0
0
0
@@ -306,7 +309,7 @@
0x0
-
+
1
@@ -333,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F10X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m3;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -351,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -366,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -393,66 +396,52 @@
syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
-
- time.c
- 1
- ..\..\..\components\libc\compilers\common\time.c
-
-
-
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ time.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\time.c
CPU
+
+ backtrace.c
+ 1
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
-
-
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
-
- backtrace.c
- 1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
-
-
- cpuport.c
- 1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
-
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+
+
+ cpuport.c
+ 1
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
@@ -460,127 +449,70 @@
DeviceDrivers
- i2c_core.c
+ waitqueue.c
1
- ..\..\..\components\drivers\i2c\i2c_core.c
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
- i2c_dev.c
- 1
- ..\..\..\components\drivers\i2c\i2c_dev.c
-
-
-
-
- i2c-bit-ops.c
- 1
- ..\..\..\components\drivers\i2c\i2c-bit-ops.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
-
-
-
pipe.c
1
- ..\..\..\components\drivers\ipc\pipe.c
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
-
-
dataqueue.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
-
-
- adc.c
+ ringblk_buf.c
1
- ..\..\..\components\drivers\misc\adc.c
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
Drivers
-
-
- board.c
- 1
- board\board.c
-
-
startup_gd32f10x_cl.s
2
..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
-
-
+
+ board.c
+ 1
+ board\board.c
+
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
-
- drv_adc.c
- 1
- ..\libraries\gd32_drivers\drv_adc.c
-
-
-
drv_usart.c
1
@@ -594,115 +526,87 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
Kernel
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
device.c
1
- ..\..\..\src\device.c
+ ..\..\..\..\src\device.c
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
components.c
1
- ..\..\..\src\components.c
+ ..\..\..\..\src\components.c
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
-
-
irq.c
1
- ..\..\..\src\irq.c
+ ..\..\..\..\src\irq.c
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
@@ -714,50 +618,26 @@
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
-
-
gd32f10x_gpio.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
-
-
gd32f10x_misc.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
-
-
system_gd32f10x.c
1
..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
-
-
gd32f10x_rcu.c
1
..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
-
-
-
- gd32f10x_adc.c
- 1
- ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_adc.c
-
-
-
-
- gd32f10x_i2c.c
- 1
- ..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_i2c.c
-
-
-
gd32f10x_usart.c
1
@@ -765,33 +645,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32105r-start/rtconfig.h b/bsp/gd32/arm/gd32105r-start/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32105r-start/rtconfig.h
rename to bsp/gd32/arm/gd32105r-start/rtconfig.h
index c6606960c2..06ff268756 100644
--- a/bsp/gd32/gd32105r-start/rtconfig.h
+++ b/bsp/gd32/arm/gd32105r-start/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -76,15 +85,12 @@
#define RT_USING_SERIAL_V1
#define RT_SERIAL_USING_DMA
#define RT_SERIAL_RB_BUFSZ 64
-#define RT_USING_I2C
-#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
-#define RT_USING_ADC
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -96,10 +102,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32105r-start/rtconfig.py b/bsp/gd32/arm/gd32105r-start/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32105r-start/rtconfig.py
rename to bsp/gd32/arm/gd32105r-start/rtconfig.py
index c28bbfc9dc..1839e540bf 100644
--- a/bsp/gd32/gd32105r-start/rtconfig.py
+++ b/bsp/gd32/arm/gd32105r-start/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32105r-start/template.ewp b/bsp/gd32/arm/gd32105r-start/template.ewp
new file mode 100644
index 0000000000..16b17dc86e
--- /dev/null
+++ b/bsp/gd32/arm/gd32105r-start/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32105r-start/template.uvoptx b/bsp/gd32/arm/gd32105r-start/template.uvoptx
similarity index 99%
rename from bsp/gd32/gd32105r-start/template.uvoptx
rename to bsp/gd32/arm/gd32105r-start/template.uvoptx
index c41712a0e7..fb44014933 100644
--- a/bsp/gd32/gd32105r-start/template.uvoptx
+++ b/bsp/gd32/arm/gd32105r-start/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 10800000
+ 25000000
1
1
diff --git a/bsp/gd32/gd32105r-start/template.uvproj b/bsp/gd32/arm/gd32105r-start/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32105r-start/template.uvproj
rename to bsp/gd32/arm/gd32105r-start/template.uvproj
index 592ba32731..31438e58e9 100644
--- a/bsp/gd32/gd32105r-start/template.uvproj
+++ b/bsp/gd32/arm/gd32105r-start/template.uvproj
@@ -15,12 +15,12 @@
GD32F105RC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(10800000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_cl.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000)
0
- gd32f10x0.h
+ gd32f10x.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_CL.SFR
0
0
@@ -605,9 +605,9 @@
Startup
- startup_gd32f10x.s
+ startup_gd32f10x_cl.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
diff --git a/bsp/gd32/gd32105r-start/template.uvprojx b/bsp/gd32/arm/gd32105r-start/template.uvprojx
similarity index 98%
rename from bsp/gd32/gd32105r-start/template.uvprojx
rename to bsp/gd32/arm/gd32105r-start/template.uvprojx
index fd731a72ca..4847d53845 100644
--- a/bsp/gd32/gd32105r-start/template.uvprojx
+++ b/bsp/gd32/arm/gd32105r-start/template.uvprojx
@@ -18,10 +18,10 @@
GigaDevice
GigaDevice.GD32F10x_DFP.2.0.1
http://www.keil.com/pack/
- IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
+ IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM))
0
$$Device:GD32F105RC$Device\Include\gd32f10x.h
diff --git a/bsp/gd32/gd32107c-eval/.config b/bsp/gd32/arm/gd32107c-eval/.config
similarity index 96%
rename from bsp/gd32/gd32107c-eval/.config
rename to bsp/gd32/arm/gd32107c-eval/.config
index 090c2d427b..fbf9218536 100644
--- a/bsp/gd32/gd32107c-eval/.config
+++ b/bsp/gd32/arm/gd32107c-eval/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -135,7 +147,6 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_RTC is not set
# CONFIG_RT_USING_SDIO is not set
CONFIG_RT_USING_SPI=y
-# CONFIG_RT_USING_SPI_BITOPS is not set
# CONFIG_RT_USING_QSPI is not set
# CONFIG_RT_USING_SPI_MSD is not set
# CONFIG_RT_USING_SFUD is not set
@@ -158,7 +169,7 @@ CONFIG_RT_USING_SPI=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -182,7 +193,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -192,6 +202,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -200,7 +215,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -265,6 +279,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -304,6 +319,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -343,6 +359,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -417,6 +434,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -448,6 +466,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -490,6 +509,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -644,6 +664,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -671,6 +693,13 @@ CONFIG_BSP_USING_SPI1=y
# CONFIG_BSP_SPI1_TX_USING_DMA is not set
# CONFIG_BSP_SPI1_RX_USING_DMA is not set
# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/gd32105c-eval/Kconfig b/bsp/gd32/arm/gd32107c-eval/Kconfig
similarity index 92%
rename from bsp/gd32/gd32105c-eval/Kconfig
rename to bsp/gd32/arm/gd32107c-eval/Kconfig
index 8cbc7b71a8..dbc650938f 100644
--- a/bsp/gd32/gd32105c-eval/Kconfig
+++ b/bsp/gd32/arm/gd32107c-eval/Kconfig
@@ -8,7 +8,7 @@ config BSP_DIR
config RTT_DIR
string
option env="RTT_ROOT"
- default "../../.."
+ default "../../../.."
config PKGS_DIR
string
diff --git a/bsp/gd32/gd32107c-eval/README.md b/bsp/gd32/arm/gd32107c-eval/README.md
similarity index 79%
rename from bsp/gd32/gd32107c-eval/README.md
rename to bsp/gd32/arm/gd32107c-eval/README.md
index 75ab55851e..6b2dfbaeb3 100644
--- a/bsp/gd32/gd32107c-eval/README.md
+++ b/bsp/gd32/arm/gd32107c-eval/README.md
@@ -11,14 +11,26 @@ GD3107C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
该开发板常用 **板载资源** 如下:
- GD32107VCT6,主频 108MHz,256KB FLASH ,96KB RAM
-
- 常用外设
- LED :5个,LED1 (电源指示灯),LED2(PC0),LED3(PC2),LED4(PE0),LED5(PE1)
- 按键:3个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PB14)
-
+ - General TM * 4 、Advanced TM * 1、Basic TM * 2
+ - 系统时钟 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - U(S)ART * 5
+ - I2C * 1、I2S * 2
+ - SPI * 3
+ - CAN2.0B * 2
+ - USB2.0 OTG FS * 1
+ - 以太网MAC * 1
+ - TFT-LCD
+ - EXMC/SDRAM * 1
+ - ADC * 2
+ - DAC * 2
+ - 最多支持140GPIOs
- 常用接口:USB 接口
-
- 调试接口:GD-LINK
## 外设支持
@@ -27,11 +39,12 @@ GD3107C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...79 |
| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
| SPI | 支持 | SPI0 - SPI2 |
| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0- ADC1 |
| **扩展模块** | **支持情况** | **备注** |
| 暂无 | 暂不支持 | 暂不支持 |
@@ -49,11 +62,11 @@ GD3107C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
-使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
+使用数据线连接开发板到 PC,使用USB转232连接USART1,打开电源开关。
#### 编译下载
@@ -85,7 +98,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/gd32107c-eval/SConscript b/bsp/gd32/arm/gd32107c-eval/SConscript
similarity index 100%
rename from bsp/gd32/gd32107c-eval/SConscript
rename to bsp/gd32/arm/gd32107c-eval/SConscript
diff --git a/bsp/gd32/gd32107c-eval/SConstruct b/bsp/gd32/arm/gd32107c-eval/SConstruct
similarity index 94%
rename from bsp/gd32/gd32107c-eval/SConstruct
rename to bsp/gd32/arm/gd32107c-eval/SConstruct
index 4ae47cd02f..4e87945853 100644
--- a/bsp/gd32/gd32107c-eval/SConstruct
+++ b/bsp/gd32/arm/gd32107c-eval/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32107c-eval/applications/SConscript b/bsp/gd32/arm/gd32107c-eval/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32107c-eval/applications/SConscript
rename to bsp/gd32/arm/gd32107c-eval/applications/SConscript
diff --git a/bsp/gd32/gd32105c-eval/applications/main.c b/bsp/gd32/arm/gd32107c-eval/applications/main.c
similarity index 82%
rename from bsp/gd32/gd32105c-eval/applications/main.c
rename to bsp/gd32/arm/gd32107c-eval/applications/main.c
index 4a528128b4..9c149fd129 100644
--- a/bsp/gd32/gd32105c-eval/applications/main.c
+++ b/bsp/gd32/arm/gd32107c-eval/applications/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -13,8 +13,8 @@
#include
#include
-/* defined the LED2 pin: PC6 */
-#define LED2_PIN GET_PIN(C, 6)
+/* defined the LED2 pin: PC0 */
+#define LED2_PIN GET_PIN(C, 0)
int main(void)
{
diff --git a/bsp/gd32/gd32107c-eval/board/Kconfig b/bsp/gd32/arm/gd32107c-eval/board/Kconfig
similarity index 61%
rename from bsp/gd32/gd32107c-eval/board/Kconfig
rename to bsp/gd32/arm/gd32107c-eval/board/Kconfig
index 3a68096bc4..1e25efc95a 100644
--- a/bsp/gd32/gd32107c-eval/board/Kconfig
+++ b/bsp/gd32/arm/gd32107c-eval/board/Kconfig
@@ -115,6 +115,87 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32107c-eval/board/SConscript b/bsp/gd32/arm/gd32107c-eval/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32107c-eval/board/SConscript
rename to bsp/gd32/arm/gd32107c-eval/board/SConscript
index a85b0a42ae..c1f4a6001b 100644
--- a/bsp/gd32/gd32107c-eval/board/SConscript
+++ b/bsp/gd32/arm/gd32107c-eval/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s']
CPPDEFINES = ['GD32F10X_CL']
diff --git a/bsp/gd32/gd32105c-eval/board/board.c b/bsp/gd32/arm/gd32107c-eval/board/board.c
similarity index 96%
rename from bsp/gd32/gd32105c-eval/board/board.c
rename to bsp/gd32/arm/gd32107c-eval/board/board.c
index c409645b37..4a7c61b8cf 100644
--- a/bsp/gd32/gd32105c-eval/board/board.c
+++ b/bsp/gd32/arm/gd32107c-eval/board/board.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32107c-eval/board/board.h b/bsp/gd32/arm/gd32107c-eval/board/board.h
similarity index 95%
rename from bsp/gd32/gd32107c-eval/board/board.h
rename to bsp/gd32/arm/gd32107c-eval/board/board.h
index 11fb4fa084..3312ada335 100644
--- a/bsp/gd32/gd32107c-eval/board/board.h
+++ b/bsp/gd32/arm/gd32107c-eval/board/board.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32107c-eval/board/gd32f10x_libopt.h b/bsp/gd32/arm/gd32107c-eval/board/gd32f10x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32107c-eval/board/gd32f10x_libopt.h
rename to bsp/gd32/arm/gd32107c-eval/board/gd32f10x_libopt.h
diff --git a/bsp/gd32/gd32107c-eval/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32107c-eval/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32305r-start/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.ld
similarity index 98%
rename from bsp/gd32/gd32305r-start/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.ld
index 8ba4a0e9f2..0bd341937c 100644
--- a/bsp/gd32/gd32305r-start/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.ld
@@ -1,5 +1,5 @@
/*
- * linker script for GD32F30x with GNU ld
+ * linker script for GD32F10x with GNU ld
* BruceOu 2021-12-14
*/
diff --git a/bsp/gd32/gd32107c-eval/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32107c-eval/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32107c-eval/board/linker_scripts/link.sct
diff --git a/bsp/gd32/gd32107c-eval/figures/board.jpg b/bsp/gd32/arm/gd32107c-eval/figures/board.jpg
similarity index 100%
rename from bsp/gd32/gd32107c-eval/figures/board.jpg
rename to bsp/gd32/arm/gd32107c-eval/figures/board.jpg
diff --git a/bsp/gd32/arm/gd32107c-eval/project.ewd b/bsp/gd32/arm/gd32107c-eval/project.ewd
new file mode 100644
index 0000000000..1cb78f2710
--- /dev/null
+++ b/bsp/gd32/arm/gd32107c-eval/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32107c-eval/project.ewp b/bsp/gd32/arm/gd32107c-eval/project.ewp
new file mode 100644
index 0000000000..50f1361a15
--- /dev/null
+++ b/bsp/gd32/arm/gd32107c-eval/project.ewp
@@ -0,0 +1,2330 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\spi\spi_core.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\spi\spi_dev.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_spi.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\IAR\startup_gd32f10x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_spi.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Source\gd32f10x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\system_gd32f10x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32107c-eval/project.eww b/bsp/gd32/arm/gd32107c-eval/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32107c-eval/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/gd32103c-eval/project.uvoptx b/bsp/gd32/arm/gd32107c-eval/project.uvoptx
similarity index 96%
rename from bsp/gd32/gd32103c-eval/project.uvoptx
rename to bsp/gd32/arm/gd32107c-eval/project.uvoptx
index e99a756fe7..5ec438907e 100644
--- a/bsp/gd32/gd32103c-eval/project.uvoptx
+++ b/bsp/gd32/arm/gd32107c-eval/project.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM)
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM)
diff --git a/bsp/gd32/gd32107c-eval/project.uvproj b/bsp/gd32/arm/gd32107c-eval/project.uvproj
similarity index 97%
rename from bsp/gd32/gd32107c-eval/project.uvproj
rename to bsp/gd32/arm/gd32107c-eval/project.uvproj
index fb6c35d24b..d1d33c5ad0 100644
--- a/bsp/gd32/gd32107c-eval/project.uvproj
+++ b/bsp/gd32/arm/gd32107c-eval/project.uvproj
@@ -12,10 +12,10 @@
GD32F107VC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(12000000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_cl.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL0100000)
0
gd32f10x0.h
@@ -27,7 +27,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_CL.SFR
0
0
@@ -425,13 +425,6 @@
Compiler
-
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
@@ -441,9 +434,9 @@
- time.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
@@ -453,6 +446,13 @@
..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ time.c
+ 1
+ ..\..\..\components\libc\compilers\common\time.c
+
+
CPU
@@ -465,16 +465,16 @@
- showmem.c
+ div0.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\libcpu\arm\common\div0.c
- div0.c
+ showmem.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\libcpu\arm\common\showmem.c
@@ -496,9 +496,9 @@
DeviceDrivers
- ringblk_buf.c
+ workqueue.c
1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
+ ..\..\..\components\drivers\ipc\workqueue.c
@@ -510,16 +510,9 @@
- dataqueue.c
+ completion.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\components\drivers\ipc\completion.c
@@ -529,6 +522,13 @@
..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\dataqueue.c
+
+
pipe.c
@@ -538,9 +538,9 @@
- completion.c
+ ringblk_buf.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\components\drivers\ipc\ringblk_buf.c
@@ -571,21 +571,33 @@
..\..\..\components\drivers\spi\spi_dev.c
+
+
+
+
+
+
+
+
+
+
+
+
Drivers
- board.c
- 1
- board\board.c
+ startup_gd32f10x_cl.s
+ 2
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
- startup_gd32f10x_cl.s
- 2
- ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
+ board.c
+ 1
+ board\board.c
@@ -638,16 +650,16 @@
Kernel
- thread.c
+ timer.c
1
- ..\..\..\src\thread.c
+ ..\..\..\src\timer.c
- timer.c
+ device.c
1
- ..\..\..\src\timer.c
+ ..\..\..\src\device.c
@@ -664,27 +676,6 @@
..\..\..\src\mem.c
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
mempool.c
@@ -694,23 +685,16 @@
- irq.c
+ kservice.c
1
- ..\..\..\src\irq.c
+ ..\..\..\src\kservice.c
- components.c
+ thread.c
1
- ..\..\..\src\components.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
+ ..\..\..\src\thread.c
@@ -722,9 +706,37 @@
- kservice.c
+ object.c
1
- ..\..\..\src\kservice.c
+ ..\..\..\src\object.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\src\components.c
+
+
+
+
+ irq.c
+ 1
+ ..\..\..\src\irq.c
+
+
+
+
+ scheduler.c
+ 1
+ ..\..\..\src\scheduler.c
diff --git a/bsp/gd32/gd32107c-eval/project.uvprojx b/bsp/gd32/arm/gd32107c-eval/project.uvprojx
similarity index 85%
rename from bsp/gd32/gd32107c-eval/project.uvprojx
rename to bsp/gd32/arm/gd32107c-eval/project.uvprojx
index 6eb6abd809..cf9d453188 100644
--- a/bsp/gd32/gd32107c-eval/project.uvprojx
+++ b/bsp/gd32/arm/gd32107c-eval/project.uvprojx
@@ -15,10 +15,10 @@
GigaDevice
GigaDevice.GD32F10x_DFP.2.0.1
http://www.keil.com/pack/
- IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
+ IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM))
0
$$Device:GD32F107VC$Device\Include\gd32f10x.h
@@ -336,7 +336,7 @@
USE_STDPERIPH_DRIVER, GD32F10X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\spi;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m3;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\spi;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Include;..\libraries\GD32F10x_Firmware_Library\CMSIS;..\libraries\GD32F10x_Firmware_Library\GD32F10x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -393,28 +393,28 @@
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
-
-
- time.c
- 1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+
+
+ time.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\time.c
@@ -422,37 +422,37 @@
CPU
- backtrace.c
+ div0.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\div0.c
- div0.c
+ backtrace.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
-
-
-
-
- cpuport.c
- 1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+
+
+
+
+ cpuport.c
+ 1
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
@@ -460,96 +460,108 @@
DeviceDrivers
- waitqueue.c
+ pipe.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\pipe.c
dataqueue.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
workqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
spi_core.c
1
- ..\..\..\components\drivers\spi\spi_core.c
+ ..\..\..\..\components\drivers\spi\spi_core.c
spi_dev.c
1
- ..\..\..\components\drivers\spi\spi_dev.c
+ ..\..\..\..\components\drivers\spi\spi_dev.c
+
+
+
+
+
+
+
+
+
+
+
+
Drivers
- board.c
- 1
- board\board.c
+ startup_gd32f10x_cl.s
+ 2
+ ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
- startup_gd32f10x_cl.s
- 2
- ..\libraries\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
+ board.c
+ 1
+ board\board.c
@@ -580,21 +592,21 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -602,93 +614,93 @@
Kernel
- thread.c
+ clock.c
1
- ..\..\..\src\thread.c
+ ..\..\..\..\src\clock.c
irq.c
1
- ..\..\..\src\irq.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
+ ..\..\..\..\src\irq.c
scheduler.c
1
- ..\..\..\src\scheduler.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
+ ..\..\..\..\src\scheduler.c
device.c
1
- ..\..\..\src\device.c
+ ..\..\..\..\src\device.c
+
+
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
+
+
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
diff --git a/bsp/gd32/gd32107c-eval/rtconfig.h b/bsp/gd32/arm/gd32107c-eval/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32107c-eval/rtconfig.h
rename to bsp/gd32/arm/gd32107c-eval/rtconfig.h
index 31b95dc8e2..dc806e5570 100644
--- a/bsp/gd32/gd32107c-eval/rtconfig.h
+++ b/bsp/gd32/arm/gd32107c-eval/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -82,7 +91,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -94,10 +103,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32107c-eval/rtconfig.py b/bsp/gd32/arm/gd32107c-eval/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32107c-eval/rtconfig.py
rename to bsp/gd32/arm/gd32107c-eval/rtconfig.py
index a8cb7dc467..4285e6b03c 100644
--- a/bsp/gd32/gd32107c-eval/rtconfig.py
+++ b/bsp/gd32/arm/gd32107c-eval/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32107c-eval/template.ewp b/bsp/gd32/arm/gd32107c-eval/template.ewp
new file mode 100644
index 0000000000..4ee73c3c3d
--- /dev/null
+++ b/bsp/gd32/arm/gd32107c-eval/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32105c-eval/project.uvoptx b/bsp/gd32/arm/gd32107c-eval/template.uvoptx
similarity index 96%
rename from bsp/gd32/gd32105c-eval/project.uvoptx
rename to bsp/gd32/arm/gd32107c-eval/template.uvoptx
index d691bf54c0..5ec438907e 100644
--- a/bsp/gd32/gd32105c-eval/project.uvoptx
+++ b/bsp/gd32/arm/gd32107c-eval/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F105VC$Flash\GD32F10x_CL.FLM)
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM)
diff --git a/bsp/gd32/gd32107c-eval/template.uvproj b/bsp/gd32/arm/gd32107c-eval/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32107c-eval/template.uvproj
rename to bsp/gd32/arm/gd32107c-eval/template.uvproj
index a165464790..73c63ce85c 100644
--- a/bsp/gd32/gd32107c-eval/template.uvproj
+++ b/bsp/gd32/arm/gd32107c-eval/template.uvproj
@@ -15,10 +15,10 @@
GD32F107VC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(12000000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F10x\startup_gd32f10x.s" ("GD32F10x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_3MB -FS08000000 -FL0100000)
+ "Startup\GD\GD32F10x\startup_gd32f10x_cl.s" ("GD32F10x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL0100000)
0
gd32f10x0.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F10x\GD32F10x.SFR
+ SFD\GD\GD32F10x\GD32F10x_CL.SFR
0
0
@@ -605,9 +605,9 @@
Startup
- startup_gd32f10x.s
+ startup_gd32f10x_cl.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F10x\Source\ARM\startup_gd32f10x_cl.s
diff --git a/bsp/gd32/gd32107c-eval/template.uvprojx b/bsp/gd32/arm/gd32107c-eval/template.uvprojx
similarity index 98%
rename from bsp/gd32/gd32107c-eval/template.uvprojx
rename to bsp/gd32/arm/gd32107c-eval/template.uvprojx
index a80f13ffb9..0739d8d50a 100644
--- a/bsp/gd32/gd32107c-eval/template.uvprojx
+++ b/bsp/gd32/arm/gd32107c-eval/template.uvprojx
@@ -18,10 +18,10 @@
GigaDevice
GigaDevice.GD32F10x_DFP.2.0.1
http://www.keil.com/pack/
- IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(10800000) ELITTLE
+ IRAM(0x20000000,0x00018000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM))
0
$$Device:GD32F107VC$Device\Include\gd32f10x.h
diff --git a/bsp/gd32/gd32205r-start/.config b/bsp/gd32/arm/gd32205r-start/.config
similarity index 96%
rename from bsp/gd32/gd32205r-start/.config
rename to bsp/gd32/arm/gd32205r-start/.config
index fc4311fbad..ad25112c7b 100644
--- a/bsp/gd32/gd32205r-start/.config
+++ b/bsp/gd32/arm/gd32205r-start/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -152,7 +164,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -176,7 +188,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -186,6 +197,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -194,7 +210,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -259,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -298,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -337,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -411,6 +429,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -442,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -484,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -638,6 +659,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -662,6 +685,13 @@ CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART4 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/arm/gd32205r-start/Kconfig b/bsp/gd32/arm/gd32205r-start/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32205r-start/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/gd32205r-start/README.md b/bsp/gd32/arm/gd32205r-start/README.md
similarity index 88%
rename from bsp/gd32/gd32205r-start/README.md
rename to bsp/gd32/arm/gd32205r-start/README.md
index 43ef946f5d..aef8e2ea88 100644
--- a/bsp/gd32/gd32205r-start/README.md
+++ b/bsp/gd32/arm/gd32205r-start/README.md
@@ -10,7 +10,7 @@ GD32205R-START是-兆易创新推出的一款GD32F20X系列的评估板,最高
该开发板常用 **板载资源** 如下:
-- GD32205R,主频 120MHz,256KB FLASH ,128KB RAM
+- GD32205RCT6,主频 120MHz,256KB FLASH ,128KB RAM
- 常用外设
@@ -27,11 +27,12 @@ GD32205R-START是-兆易创新推出的一款GD32F20X系列的评估板,最高
| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...50 |
| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
| SPI | 支持 | SPI0 - SPI2 |
| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC2 |
| **扩展模块** | **支持情况** | **备注** |
| 暂无 | 暂不支持 | 暂不支持 |
@@ -49,7 +50,7 @@ GD32205R-START是-兆易创新推出的一款GD32F20X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
diff --git a/bsp/gd32/gd32205r-start/SConscript b/bsp/gd32/arm/gd32205r-start/SConscript
similarity index 100%
rename from bsp/gd32/gd32205r-start/SConscript
rename to bsp/gd32/arm/gd32205r-start/SConscript
diff --git a/bsp/gd32/gd32205r-start/SConstruct b/bsp/gd32/arm/gd32205r-start/SConstruct
similarity index 94%
rename from bsp/gd32/gd32205r-start/SConstruct
rename to bsp/gd32/arm/gd32205r-start/SConstruct
index 9a8dd0f14d..c8d7363d6d 100644
--- a/bsp/gd32/gd32205r-start/SConstruct
+++ b/bsp/gd32/arm/gd32205r-start/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32205r-start/applications/SConscript b/bsp/gd32/arm/gd32205r-start/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32205r-start/applications/SConscript
rename to bsp/gd32/arm/gd32205r-start/applications/SConscript
diff --git a/bsp/gd32/gd32205r-start/applications/main.c b/bsp/gd32/arm/gd32205r-start/applications/main.c
similarity index 100%
rename from bsp/gd32/gd32205r-start/applications/main.c
rename to bsp/gd32/arm/gd32205r-start/applications/main.c
diff --git a/bsp/gd32/gd32205r-start/board/Kconfig b/bsp/gd32/arm/gd32205r-start/board/Kconfig
similarity index 60%
rename from bsp/gd32/gd32205r-start/board/Kconfig
rename to bsp/gd32/arm/gd32205r-start/board/Kconfig
index 6953402bb2..082bf71fd6 100644
--- a/bsp/gd32/gd32205r-start/board/Kconfig
+++ b/bsp/gd32/arm/gd32205r-start/board/Kconfig
@@ -115,6 +115,90 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32205r-start/board/SConscript b/bsp/gd32/arm/gd32205r-start/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32205r-start/board/SConscript
rename to bsp/gd32/arm/gd32205r-start/board/SConscript
index e3e280f6ae..d1c8023578 100644
--- a/bsp/gd32/gd32205r-start/board/SConscript
+++ b/bsp/gd32/arm/gd32205r-start/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/GCC/startup_gd32f20x_cl.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/ARM/startup_gd32f20x_cl.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/IAR/startup_gd32f20x_cl.s']
CPPDEFINES = ['GD32F20X_CL']
diff --git a/bsp/gd32/gd32205r-start/board/board.c b/bsp/gd32/arm/gd32205r-start/board/board.c
similarity index 100%
rename from bsp/gd32/gd32205r-start/board/board.c
rename to bsp/gd32/arm/gd32205r-start/board/board.c
diff --git a/bsp/gd32/gd32205r-start/board/board.h b/bsp/gd32/arm/gd32205r-start/board/board.h
similarity index 100%
rename from bsp/gd32/gd32205r-start/board/board.h
rename to bsp/gd32/arm/gd32205r-start/board/board.h
diff --git a/bsp/gd32/gd32205r-start/board/gd32f20x_libopt.h b/bsp/gd32/arm/gd32205r-start/board/gd32f20x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32205r-start/board/gd32f20x_libopt.h
rename to bsp/gd32/arm/gd32205r-start/board/gd32f20x_libopt.h
diff --git a/bsp/gd32/gd32205r-start/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32205r-start/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32205r-start/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.ld
similarity index 98%
rename from bsp/gd32/gd32205r-start/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.ld
index dbb8d1bf13..1cae64fe26 100644
--- a/bsp/gd32/gd32205r-start/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.ld
@@ -1,6 +1,6 @@
/*
- * linker script for GD32F4xx with GNU ld
- * bernard.xiong 2009-10-14
+ * linker script for GD32F20x with GNU ld
+ * BruceOu 2021-12-14
*/
/* Program Entry, set to mark it as "used" and avoid gc */
diff --git a/bsp/gd32/gd32205r-start/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32205r-start/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32205r-start/board/linker_scripts/link.sct
diff --git a/bsp/gd32/gd32205r-start/figures/board.jpg b/bsp/gd32/arm/gd32205r-start/figures/board.jpg
similarity index 100%
rename from bsp/gd32/gd32205r-start/figures/board.jpg
rename to bsp/gd32/arm/gd32205r-start/figures/board.jpg
diff --git a/bsp/gd32/arm/gd32205r-start/project.ewd b/bsp/gd32/arm/gd32205r-start/project.ewd
new file mode 100644
index 0000000000..995e8af8c4
--- /dev/null
+++ b/bsp/gd32/arm/gd32205r-start/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32205r-start/project.ewp b/bsp/gd32/arm/gd32205r-start/project.ewp
new file mode 100644
index 0000000000..8bfa5c772c
--- /dev/null
+++ b/bsp/gd32/arm/gd32205r-start/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\IAR\startup_gd32f20x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32205r-start/project.eww b/bsp/gd32/arm/gd32205r-start/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32205r-start/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32205r-start/project.uvoptx b/bsp/gd32/arm/gd32205r-start/project.uvoptx
new file mode 100644
index 0000000000..85e18a700f
--- /dev/null
+++ b/bsp/gd32/arm/gd32205r-start/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 0
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
+ startup_gd32f20x_cl.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
+ system_gd32f20x.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
+ gd32f20x_exti.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
+ gd32f20x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
+ gd32f20x_misc.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
+ gd32f20x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+ gd32f20x_usart.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32205r-start/project.uvproj b/bsp/gd32/arm/gd32205r-start/project.uvproj
similarity index 99%
rename from bsp/gd32/gd32205r-start/project.uvproj
rename to bsp/gd32/arm/gd32205r-start/project.uvproj
index 76df6c3b82..e05d117a00 100644
--- a/bsp/gd32/gd32205r-start/project.uvproj
+++ b/bsp/gd32/arm/gd32205r-start/project.uvproj
@@ -12,10 +12,10 @@
GD32F205RC
GigaDevice
- IRAM(0x20000000-0x020000) IROM(0x08000000-0x040000) CLOCK(12000000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x020000) IROM(0x08000000-0x040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F20x\startup_gd32f20x.s" ("GD32F20x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F20x_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F20x\startup_gd32f20x_cl.s" ("GD32F20x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL0300000)
0
gd32f20x0.h
@@ -439,13 +439,6 @@
..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
- stdlib.c
- 1
- ..\..\..\components\libc\compilers\common\stdlib.c
-
-
time.c
@@ -453,9 +446,23 @@
..\..\..\components\libc\compilers\common\time.c
+
+
+ stdlib.c
+ 1
+ ..\..\..\components\libc\compilers\common\stdlib.c
+
+
CPU
+
+
+ backtrace.c
+ 1
+ ..\..\..\libcpu\arm\common\backtrace.c
+
+
showmem.c
@@ -470,13 +477,6 @@
..\..\..\libcpu\arm\common\div0.c
-
-
- backtrace.c
- 1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
context_rvds.S
@@ -496,16 +496,9 @@
DeviceDrivers
- ringbuffer.c
+ waitqueue.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
+ ..\..\..\components\drivers\ipc\waitqueue.c
@@ -522,20 +515,6 @@
..\..\..\components\drivers\ipc\workqueue.c
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
pipe.c
@@ -543,6 +522,27 @@
..\..\..\components\drivers\ipc\pipe.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\dataqueue.c
+
+
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
pin.c
@@ -615,13 +615,6 @@
Kernel
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
device.c
@@ -629,13 +622,6 @@
..\..\..\src\device.c
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
object.c
@@ -645,9 +631,16 @@
- irq.c
+ thread.c
1
- ..\..\..\src\irq.c
+ ..\..\..\src\thread.c
+
+
+
+
+ clock.c
+ 1
+ ..\..\..\src\clock.c
@@ -657,6 +650,48 @@
..\..\..\src\idle.c
+
+
+ kservice.c
+ 1
+ ..\..\..\src\kservice.c
+
+
+
+
+ scheduler.c
+ 1
+ ..\..\..\src\scheduler.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\src\components.c
+
+
+
+
+ irq.c
+ 1
+ ..\..\..\src\irq.c
+
+
+
+
+ mempool.c
+ 1
+ ..\..\..\src\mempool.c
+
+
+
+
+ mem.c
+ 1
+ ..\..\..\src\mem.c
+
+
timer.c
@@ -671,41 +706,6 @@
..\..\..\src\ipc.c
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
Libraries
diff --git a/bsp/gd32/gd32205r-start/project.uvprojx b/bsp/gd32/arm/gd32205r-start/project.uvprojx
similarity index 76%
rename from bsp/gd32/gd32205r-start/project.uvprojx
rename to bsp/gd32/arm/gd32205r-start/project.uvprojx
index 0c6bdc287d..09912feb3a 100644
--- a/bsp/gd32/gd32205r-start/project.uvprojx
+++ b/bsp/gd32/arm/gd32205r-start/project.uvprojx
@@ -1,42 +1,46 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
0x4
ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::.\ARMCC
0
GD32F205RC
GigaDevice
- GigaDevice.GD32F20x_DFP.2.2.0
+ GigaDevice.GD32F20x_DFP.2.2.2
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x020000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
+ IRAM(0x20000000,0x020000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
0
$$Device:GD32F205RC$Device\Include\gd32f20x.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F205RC$SVD\GD32F20x_CL.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -58,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -68,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -79,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -100,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -110,7 +114,7 @@
DCM.DLL
-pCM3
SARMCM3.DLL
-
+
TCM.DLL
-pCM3
@@ -134,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -171,7 +175,7 @@
0
0
"Cortex-M3"
-
+
0
0
0
@@ -305,7 +309,7 @@
0x0
-
+
1
@@ -332,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F20X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Include;..\libraries\GD32F20x_Firmware_Library\CMSIS;..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m3;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Include;..\libraries\GD32F20x_Firmware_Library\CMSIS;..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -350,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -365,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -388,32 +392,26 @@
Compiler
-
-
- syscalls.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+
+
+ syscalls.c
+ 1
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
-
-
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
@@ -423,35 +421,27 @@
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
@@ -459,65 +449,49 @@
DeviceDrivers
- workqueue.c
+ waitqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
pipe.c
1
- ..\..\..\components\drivers\ipc\pipe.c
+ ..\..\..\..\components\drivers\ipc\pipe.c
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
completion.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\..\components\drivers\ipc\completion.c
-
-
- waitqueue.c
+ ringbuffer.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -529,22 +503,16 @@
2
..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
-
-
board.c
1
board\board.c
-
-
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
@@ -558,115 +526,87 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
Kernel
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
device.c
1
- ..\..\..\src\device.c
+ ..\..\..\..\src\device.c
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
idle.c
1
- ..\..\..\src\idle.c
+ ..\..\..\..\src\idle.c
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
ipc.c
1
- ..\..\..\src\ipc.c
+ ..\..\..\..\src\ipc.c
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
clock.c
1
- ..\..\..\src\clock.c
+ ..\..\..\..\src\clock.c
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
-
-
mem.c
1
- ..\..\..\src\mem.c
+ ..\..\..\..\src\mem.c
@@ -678,36 +618,26 @@
1
..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
-
-
gd32f20x_exti.c
1
..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
-
-
gd32f20x_gpio.c
1
..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
-
-
gd32f20x_misc.c
1
..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
-
-
gd32f20x_rcu.c
1
..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
-
-
gd32f20x_usart.c
1
@@ -715,33 +645,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32205r-start/rtconfig.h b/bsp/gd32/arm/gd32205r-start/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32205r-start/rtconfig.h
rename to bsp/gd32/arm/gd32205r-start/rtconfig.h
index f6479ec273..44e20fb54d 100644
--- a/bsp/gd32/gd32205r-start/rtconfig.h
+++ b/bsp/gd32/arm/gd32205r-start/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -81,7 +90,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -93,10 +102,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32103c-eval/rtconfig.py b/bsp/gd32/arm/gd32205r-start/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32103c-eval/rtconfig.py
rename to bsp/gd32/arm/gd32205r-start/rtconfig.py
index a8cb7dc467..4285e6b03c 100644
--- a/bsp/gd32/gd32103c-eval/rtconfig.py
+++ b/bsp/gd32/arm/gd32205r-start/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32205r-start/template.ewp b/bsp/gd32/arm/gd32205r-start/template.ewp
new file mode 100644
index 0000000000..6e8d4093b9
--- /dev/null
+++ b/bsp/gd32/arm/gd32205r-start/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32205r-start/template.uvoptx b/bsp/gd32/arm/gd32205r-start/template.uvoptx
similarity index 96%
rename from bsp/gd32/gd32205r-start/template.uvoptx
rename to bsp/gd32/arm/gd32205r-start/template.uvoptx
index 3511a69bb3..e96a1012d7 100644
--- a/bsp/gd32/gd32205r-start/template.uvoptx
+++ b/bsp/gd32/arm/gd32205r-start/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
diff --git a/bsp/gd32/gd32205r-start/template.uvproj b/bsp/gd32/arm/gd32205r-start/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32205r-start/template.uvproj
rename to bsp/gd32/arm/gd32205r-start/template.uvproj
index 344c060ada..9980390103 100644
--- a/bsp/gd32/gd32205r-start/template.uvproj
+++ b/bsp/gd32/arm/gd32205r-start/template.uvproj
@@ -15,10 +15,10 @@
GD32F205RC
GigaDevice
- IRAM(0x20000000-0x020000) IROM(0x08000000-0x040000) CLOCK(12000000) CPUTYPE("Cortex-M3")
+ IRAM(0x20000000-0x020000) IROM(0x08000000-0x040000) CLOCK(25000000) CPUTYPE("Cortex-M3")
- "Startup\GD\GD32F20x\startup_gd32f20x.s" ("GD32F20x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F20x_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F20x\startup_gd32f20x_cl.s" ("GD32F20x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL0300000)
0
gd32f20x0.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F20x\GD32F20x.SFR
+ SFD\GD\GD32F20x\GD32F20x_CL.SFR
0
0
@@ -605,9 +605,9 @@
Startup
- startup_gd32f20x.s
+ startup_gd32f20x_cl.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
diff --git a/bsp/gd32/gd32205r-start/template.uvprojx b/bsp/gd32/arm/gd32205r-start/template.uvprojx
similarity index 98%
rename from bsp/gd32/gd32205r-start/template.uvprojx
rename to bsp/gd32/arm/gd32205r-start/template.uvprojx
index 1ba7a286ef..7739072989 100644
--- a/bsp/gd32/gd32205r-start/template.uvprojx
+++ b/bsp/gd32/arm/gd32205r-start/template.uvprojx
@@ -17,10 +17,10 @@
GigaDevice
GigaDevice.GD32F20x_DFP.2.2.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x020000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
+ IRAM(0x20000000,0x020000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M3") CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
0
$$Device:GD32F205RC$Device\Include\gd32f20x.h
diff --git a/bsp/gd32/gd32450i-eval/.config b/bsp/gd32/arm/gd32207i-eval/.config
similarity index 96%
rename from bsp/gd32/gd32450i-eval/.config
rename to bsp/gd32/arm/gd32207i-eval/.config
index 93de741d62..c177b86f87 100644
--- a/bsp/gd32/gd32450i-eval/.config
+++ b/bsp/gd32/arm/gd32207i-eval/.config
@@ -95,7 +95,6 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
# C++ features
#
# CONFIG_RT_USING_CPLUSPLUS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Command shell
@@ -275,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -314,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -353,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -382,6 +384,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TERMBOX is not set
# CONFIG_PKG_USING_VT100 is not set
# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
#
# tools packages
@@ -425,6 +428,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_GAN_ZHI is not set
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -456,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -467,8 +473,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UC_CLK is not set
# CONFIG_PKG_USING_UC_COMMON is not set
# CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_RT_USING_ARDUINO is not set
-# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_RTDUINO is not set
# CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set
# CONFIG_PKG_USING_PARTITION is not set
@@ -499,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -653,12 +659,14 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
#
-CONFIG_SOC_SERIES_GD32F4xx=y
-CONFIG_SOC_GD32450I=y
+CONFIG_SOC_SERIES_GD32F20x=y
+CONFIG_SOC_GD32207I=y
#
# Onboard Peripheral Drivers
@@ -671,7 +679,8 @@ CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART0=y
# CONFIG_BSP_UART0_RX_USING_DMA is not set
-# CONFIG_BSP_USING_UART1 is not set
+CONFIG_BSP_USING_UART1=y
+# CONFIG_BSP_UART1_RX_USING_DMA is not set
# CONFIG_BSP_USING_UART2 is not set
# CONFIG_BSP_USING_UART3 is not set
# CONFIG_BSP_USING_UART4 is not set
@@ -680,6 +689,13 @@ CONFIG_BSP_USING_UART0=y
# CONFIG_BSP_USING_UART7 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/arm/gd32207i-eval/Kconfig b/bsp/gd32/arm/gd32207i-eval/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/arm/gd32207i-eval/README.md b/bsp/gd32/arm/gd32207i-eval/README.md
new file mode 100644
index 0000000000..410c5e1389
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/README.md
@@ -0,0 +1,115 @@
+# GD32207I-EVAL开发板BSP说明
+
+## 简介
+
+GD32207I-EVAL是-兆易创新推出的一款GD32F20X系列的评估板,最高主频高达120M,该开发板具有丰富的板载资源,可以充分发挥 GD32207IK的芯片性能。
+
+开发板外观如下图所示:
+
+
+
+该开发板常用 **板载资源** 如下:
+
+- GD32207IK,主频 120MHz,3MB Flash、256KB SRAM
+
+- 常用外设
+
+ - LED :5个,LED1 (电源指示灯),LED2(PF6),LED3(PF7),LED4(PF8),LED5(PF9)
+ - 按键:3个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PB14)
+ - General TM * 10 、Advanced TM * 2、Basic TM * 2
+ - 系统时钟 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - USART * 4、UART * 4
+ - I2C * 3、I2S * 1
+ - SPI * 3
+ - SDIO * 1
+ - CAN2.0B * 2
+ - USB2.0 OTG FS * 1
+ - 以太网MAC * 1
+ - TFT-LCD
+ - 数字摄像头接口 * 1
+ - Crypro/Hash * 1
+ - EXMC/SDRAM * 1
+ - ADC * 3
+ - DAC * 2
+ - 最多支持140GPIOs
+
+- 调试接口:GD-LINK
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **片上外设** | **支持情况** | **备注** |
+|:--------- |:--------:|:------------------------------------- |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...143 |
+| UART | 支持 | UART0 - UART7 |
+| I2C | 支持 | I2C1 |
+| SPI | 支持 | SPI0 - SPI2 |
+| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC2 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+ 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+
+- 进阶使用
+
+ 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+### 快速上手
+
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+
+#### 硬件连接
+
+使用数据线连接开发板到 PC,使用USB转232连接PA9(MCU TX)和PA10(MCU RX),打开电源开关。
+
+#### 编译下载
+
+双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
+
+> 工程默认配置使用 GD-Link 仿真器下载程序,在通过 GD-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板
+
+#### 运行结果
+
+下载程序成功之后,系统会自动运行,LED 闪烁。
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
+
+```bash
+ \ | /
+- RT - Thread Operating System
+ / | \ 4.1.0 build May 2 2022 23:45:28
+ 2006 - 2022 Copyright by RT-Thread team
+msh >
+```
+
+### 进阶使用
+
+此 BSP 默认只开启了 GPIO 和 串口0的功能,如果需使用高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+
+1. 在 bsp 下打开 env 工具。
+
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+
+3. 输入`pkgs --update`命令更新软件包。
+
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
+
+## 注意事项
+
+暂无
+
+## 联系人信息
+
+维护人:
+
+- [BruceOu](https://github.com/Ouxiaolong/), 邮箱:
\ No newline at end of file
diff --git a/bsp/gd32/gd32303e-eval/SConscript b/bsp/gd32/arm/gd32207i-eval/SConscript
similarity index 100%
rename from bsp/gd32/gd32303e-eval/SConscript
rename to bsp/gd32/arm/gd32207i-eval/SConscript
diff --git a/bsp/gd32/arm/gd32207i-eval/SConstruct b/bsp/gd32/arm/gd32207i-eval/SConstruct
new file mode 100644
index 0000000000..c8d7363d6d
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/SConstruct
@@ -0,0 +1,60 @@
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+ from building import *
+except:
+ print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+ print(RTT_ROOT)
+ exit(-1)
+
+TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+ AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+ CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ AR = rtconfig.AR, ARFLAGS = '-rc',
+ CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+ LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+
+if rtconfig.PLATFORM == 'iar':
+ env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
+ env.Replace(ARFLAGS = [''])
+ env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+# prepare building environment
+objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+
+gd32_library = 'GD32F20x_Firmware_Library'
+rtconfig.BSP_LIBRARY_TYPE = gd32_library
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)
diff --git a/bsp/gd32/gd32303e-eval/applications/SConscript b/bsp/gd32/arm/gd32207i-eval/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32303e-eval/applications/SConscript
rename to bsp/gd32/arm/gd32207i-eval/applications/SConscript
diff --git a/bsp/gd32/gd32450i-eval/applications/main.c b/bsp/gd32/arm/gd32207i-eval/applications/main.c
similarity index 74%
rename from bsp/gd32/gd32450i-eval/applications/main.c
rename to bsp/gd32/arm/gd32207i-eval/applications/main.c
index 8b7e99ae6d..5b1eb69240 100644
--- a/bsp/gd32/gd32450i-eval/applications/main.c
+++ b/bsp/gd32/arm/gd32207i-eval/applications/main.c
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
- * 2021-08-20 BruceOu first implementation
+ * 2022-05-02 BruceOu first implementation
*/
#include
@@ -13,8 +13,8 @@
#include
#include
-/* defined the LED1 pin: PE2 */
-#define LED1_PIN GET_PIN(E, 2)
+/* defined the LED1 pin: PF6 */
+#define LED1_PIN GET_PIN(F, 6)
int main(void)
{
diff --git a/bsp/gd32/gd32450i-eval/board/Kconfig b/bsp/gd32/arm/gd32207i-eval/board/Kconfig
similarity index 59%
rename from bsp/gd32/gd32450i-eval/board/Kconfig
rename to bsp/gd32/arm/gd32207i-eval/board/Kconfig
index 6707be5a2c..605ec81987 100644
--- a/bsp/gd32/gd32450i-eval/board/Kconfig
+++ b/bsp/gd32/arm/gd32207i-eval/board/Kconfig
@@ -1,16 +1,16 @@
menu "Hardware Drivers Config"
-config SOC_SERIES_GD32F4xx
+config SOC_SERIES_GD32F20x
bool
default y
-config SOC_GD32450I
+config SOC_GD32207I
bool
- select SOC_SERIES_GD32F4xx
+ select SOC_SERIES_GD32F20x
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
default y
-
+
menu "Onboard Peripheral Drivers"
endmenu
@@ -29,21 +29,21 @@ menu "On-chip Peripheral Drivers"
if BSP_USING_UART
config BSP_USING_UART0
bool "Enable UART0"
- default n
+ default y
config BSP_UART0_RX_USING_DMA
bool "Enable UART0 RX DMA"
- depends on BSP_USING_UART0
+ depends on BSP_USING_UART0
select RT_SERIAL_USING_DMA
default n
config BSP_USING_UART1
bool "Enable UART1"
- default y
+ default n
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
- depends on BSP_USING_UART1
+ depends on BSP_USING_UART1
select RT_SERIAL_USING_DMA
default n
@@ -53,7 +53,7 @@ menu "On-chip Peripheral Drivers"
config BSP_UART2_RX_USING_DMA
bool "Enable UART2 RX DMA"
- depends on BSP_USING_UART2
+ depends on BSP_USING_UART2
select RT_SERIAL_USING_DMA
default n
@@ -63,7 +63,7 @@ menu "On-chip Peripheral Drivers"
config BSP_UART3_RX_USING_DMA
bool "Enable UART3 RX DMA"
- depends on BSP_USING_UART3
+ depends on BSP_USING_UART3
select RT_SERIAL_USING_DMA
default n
@@ -73,7 +73,7 @@ menu "On-chip Peripheral Drivers"
config BSP_UART4_RX_USING_DMA
bool "Enable UART4 RX DMA"
- depends on BSP_USING_UART4
+ depends on BSP_USING_UART4
select RT_SERIAL_USING_DMA
default n
@@ -83,7 +83,7 @@ menu "On-chip Peripheral Drivers"
config BSP_UART5_RX_USING_DMA
bool "Enable UART5 RX DMA"
- depends on BSP_USING_UART5
+ depends on BSP_USING_UART5
select RT_SERIAL_USING_DMA
default n
@@ -93,7 +93,7 @@ menu "On-chip Peripheral Drivers"
config BSP_UART6_RX_USING_DMA
bool "Enable UART6 RX DMA"
- depends on BSP_USING_UART6
+ depends on BSP_USING_UART6
select RT_SERIAL_USING_DMA
default n
@@ -103,7 +103,7 @@ menu "On-chip Peripheral Drivers"
config BSP_UART7_RX_USING_DMA
bool "Enable UART7 RX DMA"
- depends on BSP_USING_UART7
+ depends on BSP_USING_UART7
select RT_SERIAL_USING_DMA
default n
endif
@@ -121,7 +121,7 @@ menu "On-chip Peripheral Drivers"
bool "Enable SPI1 TX DMA"
depends on BSP_USING_SPI1
default n
-
+
config BSP_SPI1_RX_USING_DMA
bool "Enable SPI1 RX DMA"
depends on BSP_USING_SPI1
@@ -145,12 +145,97 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
- source "../libraries/gd32_drivers/Kconfig"
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
+ source "../libraries/gd32_drivers/Kconfig"
+
endmenu
menu "Board extended module Drivers"
endmenu
-
+
endmenu
diff --git a/bsp/gd32/arm/gd32207i-eval/board/SConscript b/bsp/gd32/arm/gd32207i-eval/board/SConscript
new file mode 100644
index 0000000000..d1c8023578
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/board/SConscript
@@ -0,0 +1,28 @@
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+''')
+
+path = [cwd]
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+ src += [startup_path_prefix + '/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/GCC/startup_gd32f20x_cl.s']
+elif rtconfig.CROSS_TOOL == 'keil':
+ src += [startup_path_prefix + '/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/ARM/startup_gd32f20x_cl.s']
+elif rtconfig.CROSS_TOOL == 'iar':
+ src += [startup_path_prefix + '/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/IAR/startup_gd32f20x_cl.s']
+
+CPPDEFINES = ['GD32F20X_CL']
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+
+Return('group')
diff --git a/bsp/gd32/gd32450i-eval/board/board.c b/bsp/gd32/arm/gd32207i-eval/board/board.c
similarity index 96%
rename from bsp/gd32/gd32450i-eval/board/board.c
rename to bsp/gd32/arm/gd32207i-eval/board/board.c
index 0e9f89865a..8331a86841 100644
--- a/bsp/gd32/gd32450i-eval/board/board.c
+++ b/bsp/gd32/arm/gd32207i-eval/board/board.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/arm/gd32207i-eval/board/board.h b/bsp/gd32/arm/gd32207i-eval/board/board.h
new file mode 100644
index 0000000000..49d44d8948
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/board/board.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-12-18 BruceOu first implementation
+ */
+#ifndef __BOARD_H__
+#define __BOARD_H__
+
+#include "gd32f20x.h"
+#include "drv_usart.h"
+#include "drv_gpio.h"
+
+#include "gd32f20x_exti.h"
+
+#define EXT_SDRAM_BEGIN (0xC0000000U) /* the begining address of external SDRAM */
+#define EXT_SDRAM_END (EXT_SDRAM_BEGIN + (32U * 1024 * 1024)) /* the end address of external SDRAM */
+
+// Internal SRAM memory size[Kbytes] <8-128>
+// Default: 128
+#ifdef __ICCARM__
+// Use *.icf ram symbal, to avoid hardcode.
+extern char __ICFEDIT_region_RAM_end__;
+#define GD32_SRAM_END &__ICFEDIT_region_RAM_end__
+#else
+#define GD32_SRAM_SIZE 256
+#define GD32_SRAM_END (0x20000000 + GD32_SRAM_SIZE * 1024)
+#endif
+
+#ifdef __CC_ARM
+extern int Image$$RW_IRAM1$$ZI$$Limit;
+#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit)
+#elif __ICCARM__
+#pragma section="HEAP"
+#define HEAP_BEGIN (__segment_end("HEAP"))
+#else
+extern int __bss_end;
+#define HEAP_BEGIN (&__bss_end)
+#endif
+
+#define HEAP_END GD32_SRAM_END
+
+#endif
+
diff --git a/bsp/gd32/arm/gd32207i-eval/board/gd32f20x_libopt.h b/bsp/gd32/arm/gd32207i-eval/board/gd32f20x_libopt.h
new file mode 100644
index 0000000000..bd38888220
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/board/gd32f20x_libopt.h
@@ -0,0 +1,70 @@
+/*!
+ \file gd32f20x_libopt.h
+ \brief library optional for gd32f20x
+
+ \version 2015-07-15, V1.0.0, demo for GD32F20x
+ \version 2017-06-05, V2.0.0, demo for GD32F20x
+ \version 2019-04-01, V2.1.0, demo for GD32F20x
+ \version 2020-09-30, V2.2.0, demo for GD32F20x
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32F20X_LIBOPT_H
+#define GD32F20X_LIBOPT_H
+
+#include "gd32f20x_adc.h"
+#include "gd32f20x_bkp.h"
+#include "gd32f20x_can.h"
+#include "gd32f20x_crc.h"
+#include "gd32f20x_cau.h"
+#include "gd32f20x_dac.h"
+#include "gd32f20x_dci.h"
+#include "gd32f20x_dma.h"
+#include "gd32f20x_enet.h"
+#include "gd32f20x_exmc.h"
+#include "gd32f20x_exti.h"
+#include "gd32f20x_fmc.h"
+#include "gd32f20x_gpio.h"
+#include "gd32f20x_hau.h"
+#include "gd32f20x_i2c.h"
+#include "gd32f20x_fwdgt.h"
+#include "gd32f20x_dbg.h"
+#include "gd32f20x_misc.h"
+#include "gd32f20x_pmu.h"
+#include "gd32f20x_rcu.h"
+#include "gd32f20x_trng.h"
+#include "gd32f20x_rtc.h"
+#include "gd32f20x_sdio.h"
+#include "gd32f20x_spi.h"
+#include "gd32f20x_timer.h"
+#include "gd32f20x_tli.h"
+#include "gd32f20x_usart.h"
+#include "gd32f20x_wwdgt.h"
+
+#endif /* GD32F20X_LIBOPT_H */
diff --git a/bsp/gd32/gd32450i-eval/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32450i-eval/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32450z-eval/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.ld
similarity index 96%
rename from bsp/gd32/gd32450z-eval/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.ld
index f39b59d02d..4bd0cc021a 100644
--- a/bsp/gd32/gd32450z-eval/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.ld
@@ -1,13 +1,13 @@
/*
- * linker script for GD32F4xx with GNU ld
- * bernard.xiong 2009-10-14
+ * linker script for GD32F20x with GNU ld
+ * BruceOu 2022-05-02
*/
/* Program Entry, set to mark it as "used" and avoid gc */
MEMORY
{
CODE (rx) : ORIGIN = 0x08000000, LENGTH = 3072k /* 3072KB flash */
- DATA (rw) : ORIGIN = 0x20000000, LENGTH = 256k /* 256KB sram */
+ DATA (rw) : ORIGIN = 0x20000000, LENGTH = 256k /* 256KB sram */
}
ENTRY(Reset_Handler)
_system_stack_size = 0x200;
diff --git a/bsp/gd32/gd32450i-eval/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32450i-eval/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32207i-eval/board/linker_scripts/link.sct
diff --git a/bsp/gd32/arm/gd32207i-eval/figures/board.jpg b/bsp/gd32/arm/gd32207i-eval/figures/board.jpg
new file mode 100644
index 0000000000..08225f1c6a
Binary files /dev/null and b/bsp/gd32/arm/gd32207i-eval/figures/board.jpg differ
diff --git a/bsp/gd32/arm/gd32207i-eval/project.ewd b/bsp/gd32/arm/gd32207i-eval/project.ewd
new file mode 100644
index 0000000000..84f20f063a
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32207i-eval/project.ewp b/bsp/gd32/arm/gd32207i-eval/project.ewp
new file mode 100644
index 0000000000..831a2d46ee
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\IAR\startup_gd32f20x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32207i-eval/project.eww b/bsp/gd32/arm/gd32207i-eval/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32207i-eval/project.uvoptx b/bsp/gd32/arm/gd32207i-eval/project.uvoptx
new file mode 100644
index 0000000000..92670dd997
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 0
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F20x_CL -FL0300000 -FS08000000 -FP0($$Device:GD32F207IK$Flash\GD32F20x_CL.FLM)
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+ 3
+ 10
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
+ startup_gd32f20x_cl.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
+ system_gd32f20x.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
+ gd32f20x_exti.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
+ gd32f20x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
+ gd32f20x_misc.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
+ gd32f20x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+ gd32f20x_usart.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/arm/gd32207i-eval/project.uvproj b/bsp/gd32/arm/gd32207i-eval/project.uvproj
new file mode 100644
index 0000000000..28e92079c8
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/project.uvproj
@@ -0,0 +1,758 @@
+
+
+ 1.1
+ ### uVision Project, (C) Keil Software
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 0
+
+
+ GD32F207IK
+ GigaDevice
+ IRAM(0x20000000-0x040000) IROM(0x08000000-0x300000) CLOCK(25000000) CPUTYPE("Cortex-M3")
+
+ "Startup\GD\GD32F20x\startup_gd32f20x_cl.s" ("GD32F20x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL0300000)
+ 0
+ gd32f20x0.h
+
+
+
+
+
+
+
+
+
+ SFD\GD\GD32F20x\GD32F20x_CL.SFR
+ 0
+ 0
+
+
+
+ GD\GD32F20x\
+ GD\GD32F20x\
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\output\
+ rtthread
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\build\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -REMAP
+ DCM.DLL
+ -pCM3
+ SARMCM3.DLL
+
+ TCM.DLL
+ -pCM3
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M3"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 1
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ USE_STDPERIPH_DRIVER, GD32F20X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
+
+ applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Include;..\libraries\GD32F20x_Firmware_Library\CMSIS;..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+
+
+ main.c
+ 1
+ applications\main.c
+
+
+
+
+ Compiler
+
+
+ syscalls.c
+ 1
+ ..\..\..\components\libc\compilers\armlibc\syscalls.c
+
+
+
+
+ syscall_mem.c
+ 1
+ ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+
+
+
+
+ stdlib.c
+ 1
+ ..\..\..\components\libc\compilers\common\stdlib.c
+
+
+
+
+ time.c
+ 1
+ ..\..\..\components\libc\compilers\common\time.c
+
+
+
+
+ CPU
+
+
+ showmem.c
+ 1
+ ..\..\..\libcpu\arm\common\showmem.c
+
+
+
+
+ div0.c
+ 1
+ ..\..\..\libcpu\arm\common\div0.c
+
+
+
+
+ backtrace.c
+ 1
+ ..\..\..\libcpu\arm\common\backtrace.c
+
+
+
+
+ cpuport.c
+ 1
+ ..\..\..\libcpu\arm\cortex-m3\cpuport.c
+
+
+
+
+ context_rvds.S
+ 2
+ ..\..\..\libcpu\arm\cortex-m3\context_rvds.S
+
+
+
+
+ DeviceDrivers
+
+
+ pipe.c
+ 1
+ ..\..\..\components\drivers\ipc\pipe.c
+
+
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+
+
+ completion.c
+ 1
+ ..\..\..\components\drivers\ipc\completion.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\waitqueue.c
+
+
+
+
+ dataqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\dataqueue.c
+
+
+
+
+ workqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+
+ pin.c
+ 1
+ ..\..\..\components\drivers\misc\pin.c
+
+
+
+
+ serial.c
+ 1
+ ..\..\..\components\drivers\serial\serial.c
+
+
+
+
+ Drivers
+
+
+ startup_gd32f20x_cl.s
+ 2
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
+
+
+
+
+ board.c
+ 1
+ board\board.c
+
+
+
+
+ drv_gpio.c
+ 1
+ ..\libraries\gd32_drivers\drv_gpio.c
+
+
+
+
+ drv_usart.c
+ 1
+ ..\libraries\gd32_drivers\drv_usart.c
+
+
+
+
+ Finsh
+
+
+ shell.c
+ 1
+ ..\..\..\components\finsh\shell.c
+
+
+
+
+ msh.c
+ 1
+ ..\..\..\components\finsh\msh.c
+
+
+
+
+ cmd.c
+ 1
+ ..\..\..\components\finsh\cmd.c
+
+
+
+
+ Kernel
+
+
+ mempool.c
+ 1
+ ..\..\..\src\mempool.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
+
+
+ thread.c
+ 1
+ ..\..\..\src\thread.c
+
+
+
+
+ kservice.c
+ 1
+ ..\..\..\src\kservice.c
+
+
+
+
+ scheduler.c
+ 1
+ ..\..\..\src\scheduler.c
+
+
+
+
+ object.c
+ 1
+ ..\..\..\src\object.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\src\components.c
+
+
+
+
+ irq.c
+ 1
+ ..\..\..\src\irq.c
+
+
+
+
+ device.c
+ 1
+ ..\..\..\src\device.c
+
+
+
+
+ clock.c
+ 1
+ ..\..\..\src\clock.c
+
+
+
+
+ timer.c
+ 1
+ ..\..\..\src\timer.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\src\idle.c
+
+
+
+
+ mem.c
+ 1
+ ..\..\..\src\mem.c
+
+
+
+
+ Libraries
+
+
+ system_gd32f20x.c
+ 1
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
+
+
+
+
+ gd32f20x_exti.c
+ 1
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
+
+
+
+
+ gd32f20x_gpio.c
+ 1
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
+
+
+
+
+ gd32f20x_misc.c
+ 1
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
+
+
+
+
+ gd32f20x_rcu.c
+ 1
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
+
+
+
+
+ gd32f20x_usart.c
+ 1
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32450i-eval/project.uvproj b/bsp/gd32/arm/gd32207i-eval/project.uvprojx
similarity index 69%
rename from bsp/gd32/gd32450i-eval/project.uvproj
rename to bsp/gd32/arm/gd32207i-eval/project.uvprojx
index 576a1aefbb..69b2e71812 100644
--- a/bsp/gd32/gd32450i-eval/project.uvproj
+++ b/bsp/gd32/arm/gd32207i-eval/project.uvprojx
@@ -1,7 +1,7 @@
-
+
- 1.1
+ 2.1
### uVision Project, (C) Keil Software
@@ -10,17 +10,20 @@
rt-thread
0x4
ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::.\ARMCC
0
- GD32F450IK
+ GD32F207IK
GigaDevice
- IRAM(0x20000000-0x20030000) IROM(0x08000000-0x08300000) CLOCK(20000000) CPUTYPE("Cortex-M4") FPU2
+ GigaDevice.GD32F20x_DFP.2.2.2
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x040000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
- "Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000)
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F20x_CL -FS08000000 -FL0300000 -FP0($$Device:GD32F207IK$Flash\GD32F20x_CL.FLM))
0
- gd32f4xx0.h
+ $$Device:GD32F207IK$Device\Include\gd32f20x.h
@@ -30,14 +33,14 @@
- SFD\GD\GD32F4xx\GD32F4xx.SFR
+ $$Device:GD32F207IK$SVD\GD32F20x_CL.svd
0
0
- GD\GD32F4xx\
- GD\GD32F4xx\
+
+
0
0
@@ -45,13 +48,13 @@
0
1
- .\output\
+ .\build\
rtthread
1
0
- 1
+ 0
1
- 1
+ 0
.\build\
1
0
@@ -77,9 +80,9 @@
0
- 0
+ 1
0
-
+ fromelf --bin !L --output rtthread.bin
0
0
@@ -123,47 +126,6 @@
0
16
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 0
- 1
-
- 0
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
@@ -176,7 +138,7 @@
1
BIN\UL2CM3.DLL
- "" ()
+
@@ -212,7 +174,7 @@
1
0
0
- "Cortex-M4"
+ "Cortex-M3"
0
0
@@ -221,12 +183,13 @@
1
0
0
- 2
+ 0
0
+ 0
0
0
8
- 1
+ 0
0
0
0
@@ -283,12 +246,12 @@
0
0x20000000
- 0x30001
+ 0x40000
1
0x8000000
- 0x300001
+ 0x300000
0
@@ -338,28 +301,28 @@
0
0x20000000
- 0x30000
+ 0x40000
0
- 0x10000000
- 0x10000
+ 0x0
+ 0x0
1
- 1
+ 4
0
0
- 1
+ 0
0
0
0
0
0
- 2
+ 0
0
0
1
@@ -374,9 +337,9 @@
0
- USE_STDPERIPH_DRIVER, GD32F450, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
+ USE_STDPERIPH_DRIVER, GD32F20X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc;..\..\..\examples\utest\testcases\kernel
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m3;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Include;..\libraries\GD32F20x_Firmware_Library\CMSIS;..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -389,7 +352,7 @@
0
0
0
- 0
+ 4
@@ -407,7 +370,7 @@
0x08000000
0x20000000
-
+ .\gd32_rom.ld
@@ -430,105 +393,105 @@
Compiler
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
- time.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ time.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\time.c
CPU
-
- showmem.c
- 1
- ..\..\..\libcpu\arm\common\showmem.c
-
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
+
+
+ showmem.c
+ 1
+ ..\..\..\..\libcpu\arm\common\showmem.c
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m3\cpuport.c
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m3\context_rvds.S
DeviceDrivers
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
dataqueue.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -536,9 +499,9 @@
Drivers
- startup_gd32f4xx.s
+ startup_gd32f20x_cl.s
2
- ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
board.c
@@ -563,17 +526,17 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -581,69 +544,69 @@
Kernel
- mempool.c
+ irq.c
1
- ..\..\..\src\mempool.c
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
+ ..\..\..\..\src\irq.c
components.c
1
- ..\..\..\src\components.c
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
+ ..\..\..\..\src\components.c
thread.c
1
- ..\..\..\src\thread.c
+ ..\..\..\..\src\thread.c
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
ipc.c
1
- ..\..\..\src\ipc.c
+ ..\..\..\..\src\ipc.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
@@ -651,44 +614,70 @@
Libraries
- gd32f4xx_syscfg.c
+ system_gd32f20x.c
1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+ ..\libraries\GD32F20x_Firmware_Library\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
- gd32f4xx_exti.c
+ gd32f20x_exti.c
1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
- gd32f4xx_gpio.c
+ gd32f20x_gpio.c
1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
- gd32f4xx_rcu.c
+ gd32f20x_misc.c
1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
- gd32f4xx_misc.c
+ gd32f20x_rcu.c
1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
- gd32f4xx_usart.c
+ gd32f20x_usart.c
1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
-
-
- system_gd32f4xx.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+ ..\libraries\GD32F20x_Firmware_Library\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+
+ ::CMSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+
+
+
+
+
+ 0
+ 1
+
+
+
+
diff --git a/bsp/gd32/arm/gd32207i-eval/rtconfig.h b/bsp/gd32/arm/gd32207i-eval/rtconfig.h
new file mode 100644
index 0000000000..974ca3e4b8
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/rtconfig.h
@@ -0,0 +1,208 @@
+#ifndef RT_CONFIG_H__
+#define RT_CONFIG_H__
+
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Configuration */
+
+/* RT-Thread Kernel */
+
+#define RT_NAME_MAX 8
+#define RT_ALIGN_SIZE 4
+#define RT_THREAD_PRIORITY_32
+#define RT_THREAD_PRIORITY_MAX 32
+#define RT_TICK_PER_SECOND 100
+#define RT_USING_OVERFLOW_CHECK
+#define RT_USING_HOOK
+#define RT_HOOK_USING_FUNC_PTR
+#define RT_USING_IDLE_HOOK
+#define RT_IDLE_HOOK_LIST_SIZE 4
+#define IDLE_THREAD_STACK_SIZE 256
+
+/* kservice optimization */
+
+#define RT_DEBUG
+#define RT_DEBUG_COLOR
+
+/* Inter-Thread communication */
+
+#define RT_USING_SEMAPHORE
+#define RT_USING_MUTEX
+#define RT_USING_EVENT
+#define RT_USING_MAILBOX
+#define RT_USING_MESSAGEQUEUE
+
+/* Memory Management */
+
+#define RT_USING_MEMPOOL
+#define RT_USING_SMALL_MEM
+#define RT_USING_SMALL_MEM_AS_HEAP
+#define RT_USING_HEAP
+
+/* Kernel Device Object */
+
+#define RT_USING_DEVICE
+#define RT_USING_CONSOLE
+#define RT_CONSOLEBUF_SIZE 128
+#define RT_CONSOLE_DEVICE_NAME "uart0"
+#define RT_VER_NUM 0x40100
+
+/* RT-Thread Components */
+
+#define RT_USING_COMPONENTS_INIT
+#define RT_USING_USER_MAIN
+#define RT_MAIN_THREAD_STACK_SIZE 2048
+#define RT_MAIN_THREAD_PRIORITY 10
+
+/* C++ features */
+
+
+/* Command shell */
+
+#define RT_USING_FINSH
+#define RT_USING_MSH
+#define FINSH_USING_MSH
+#define FINSH_THREAD_NAME "tshell"
+#define FINSH_THREAD_PRIORITY 20
+#define FINSH_THREAD_STACK_SIZE 4096
+#define FINSH_USING_HISTORY
+#define FINSH_HISTORY_LINES 5
+#define FINSH_USING_SYMTAB
+#define FINSH_CMD_SIZE 80
+#define MSH_USING_BUILT_IN_COMMANDS
+#define FINSH_USING_DESCRIPTION
+#define FINSH_ARG_MAX 10
+
+/* Device virtual file system */
+
+
+/* Device Drivers */
+
+#define RT_USING_DEVICE_IPC
+#define RT_USING_SYSTEM_WORKQUEUE
+#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
+#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
+#define RT_USING_SERIAL
+#define RT_USING_SERIAL_V1
+#define RT_SERIAL_USING_DMA
+#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_PIN
+
+/* Using USB */
+
+
+/* POSIX layer and C standard library */
+
+#define RT_LIBC_DEFAULT_TIMEZONE 8
+
+/* POSIX (Portable Operating System Interface) layer */
+
+
+/* Interprocess Communication (IPC) */
+
+
+/* Socket is in the 'Network' category */
+
+/* Network */
+
+
+/* VBUS(Virtual Software BUS) */
+
+
+/* Utilities */
+
+
+/* RT-Thread Utestcases */
+
+
+/* RT-Thread online packages */
+
+/* IoT - internet of things */
+
+
+/* Wi-Fi */
+
+/* Marvell WiFi */
+
+
+/* Wiced WiFi */
+
+
+/* IoT Cloud */
+
+
+/* security packages */
+
+
+/* language packages */
+
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
+
+/* multimedia packages */
+
+/* LVGL: powerful and easy-to-use embedded GUI library */
+
+
+/* u8g2: a monochrome graphic library */
+
+
+/* PainterEngine: A cross-platform graphics application framework written in C language */
+
+
+/* tools packages */
+
+
+/* system packages */
+
+/* enhanced kernel services */
+
+
+/* POSIX extension functions */
+
+
+/* acceleration: Assembly language or algorithmic acceleration packages */
+
+
+/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
+
+
+/* Micrium: Micrium software products porting for RT-Thread */
+
+
+/* peripheral libraries and drivers */
+
+
+/* AI packages */
+
+
+/* miscellaneous packages */
+
+/* project laboratory */
+
+/* samples: kernel and components samples */
+
+
+/* entertainment: terminal games and other interesting software packages */
+
+
+/* Hardware Drivers Config */
+
+#define SOC_SERIES_GD32F20x
+#define SOC_GD32207I
+
+/* Onboard Peripheral Drivers */
+
+/* On-chip Peripheral Drivers */
+
+#define BSP_USING_GPIO
+#define BSP_USING_UART
+#define BSP_USING_UART0
+#define BSP_USING_UART1
+
+/* Board extended module Drivers */
+
+
+#endif
diff --git a/bsp/gd32/arm/gd32207i-eval/rtconfig.py b/bsp/gd32/arm/gd32207i-eval/rtconfig.py
new file mode 100644
index 0000000000..4285e6b03c
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/rtconfig.py
@@ -0,0 +1,150 @@
+import os
+
+# toolchains options
+ARCH='arm'
+CPU='cortex-m3'
+CROSS_TOOL='keil'
+
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
+if os.getenv('RTT_CC'):
+ CROSS_TOOL = os.getenv('RTT_CC')
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+
+# cross_tool provides the cross compiler
+# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
+if CROSS_TOOL == 'gcc':
+ PLATFORM = 'gcc'
+ EXEC_PATH = r'C:\Users\XXYYZZ'
+elif CROSS_TOOL == 'keil':
+ PLATFORM = 'armcc'
+ EXEC_PATH = r'C:/Keil_v5'
+elif CROSS_TOOL == 'iar':
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
+
+if os.getenv('RTT_EXEC_PATH'):
+ EXEC_PATH = os.getenv('RTT_EXEC_PATH')
+
+BUILD = 'debug'
+
+if PLATFORM == 'gcc':
+ # toolchains
+ PREFIX = 'arm-none-eabi-'
+ CC = PREFIX + 'gcc'
+ AS = PREFIX + 'gcc'
+ AR = PREFIX + 'ar'
+ CXX = PREFIX + 'g++'
+ LINK = PREFIX + 'gcc'
+ TARGET_EXT = 'elf'
+ SIZE = PREFIX + 'size'
+ OBJDUMP = PREFIX + 'objdump'
+ OBJCPY = PREFIX + 'objcopy'
+
+ DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections'
+ CFLAGS = DEVICE + ' -Dgcc'
+ AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
+ LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.ld'
+
+ CPATH = ''
+ LPATH = ''
+
+ if BUILD == 'debug':
+ CFLAGS += ' -O0 -gdwarf-2 -g'
+ AFLAGS += ' -gdwarf-2'
+ else:
+ CFLAGS += ' -O2'
+
+ CXXFLAGS = CFLAGS
+
+ POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
+
+elif PLATFORM == 'armcc':
+ # toolchains
+ CC = 'armcc'
+ CXX = 'armcc'
+ AS = 'armasm'
+ AR = 'armar'
+ LINK = 'armlink'
+ TARGET_EXT = 'axf'
+
+ DEVICE = ' --cpu Cortex-M3.fp '
+ CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99'
+ AFLAGS = DEVICE + ' --apcs=interwork '
+ LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rtthread.map --strict'
+ CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include'
+ LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib'
+
+ CFLAGS += ' -D__MICROLIB '
+ AFLAGS += ' --pd "__MICROLIB SETA 1" '
+ LFLAGS += ' --library_type=microlib '
+ EXEC_PATH += '/ARM/ARMCC/bin/'
+
+ if BUILD == 'debug':
+ CFLAGS += ' -g -O0'
+ AFLAGS += ' -g'
+ else:
+ CFLAGS += ' -O2'
+
+ CXXFLAGS = CFLAGS
+ CFLAGS += ' -std=c99'
+
+ POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
+
+elif PLATFORM == 'iar':
+ # toolchains
+ CC = 'iccarm'
+ CXX = 'iccarm'
+ AS = 'iasmarm'
+ AR = 'iarchive'
+ LINK = 'ilinkarm'
+ TARGET_EXT = 'out'
+
+ DEVICE = '-Dewarm'
+
+ CFLAGS = DEVICE
+ CFLAGS += ' --diag_suppress Pa050'
+ CFLAGS += ' --no_cse'
+ CFLAGS += ' --no_unroll'
+ CFLAGS += ' --no_inline'
+ CFLAGS += ' --no_code_motion'
+ CFLAGS += ' --no_tbaa'
+ CFLAGS += ' --no_clustering'
+ CFLAGS += ' --no_scheduling'
+ CFLAGS += ' --endian=little'
+ CFLAGS += ' --cpu=Cortex-M3'
+ CFLAGS += ' -e'
+ CFLAGS += ' --fpu=None'
+ CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"'
+ CFLAGS += ' --silent'
+
+ AFLAGS = DEVICE
+ AFLAGS += ' -s+'
+ AFLAGS += ' -w+'
+ AFLAGS += ' -r'
+ AFLAGS += ' --cpu Cortex-M3'
+ AFLAGS += ' --fpu None'
+ AFLAGS += ' -S'
+
+ if BUILD == 'debug':
+ CFLAGS += ' --debug'
+ CFLAGS += ' -On'
+ else:
+ CFLAGS += ' -Oh'
+
+ LFLAGS = ' --config "board/linker_scripts/link.icf"'
+ LFLAGS += ' --entry __iar_program_start'
+
+ CXXFLAGS = CFLAGS
+
+ EXEC_PATH = EXEC_PATH + '/arm/bin/'
+ POST_ACTION = 'ielftool --bin $TARGET rtthread.bin'
+
+def dist_handle(BSP_ROOT, dist_dir):
+ import sys
+ cwd_path = os.getcwd()
+ sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
+ from sdk_dist import dist_do_building
+ dist_do_building(BSP_ROOT, dist_dir)
diff --git a/bsp/gd32/arm/gd32207i-eval/template.ewp b/bsp/gd32/arm/gd32207i-eval/template.ewp
new file mode 100644
index 0000000000..6fb4d43cc8
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32107c-eval/template.uvoptx b/bsp/gd32/arm/gd32207i-eval/template.uvoptx
similarity index 97%
rename from bsp/gd32/gd32107c-eval/template.uvoptx
rename to bsp/gd32/arm/gd32207i-eval/template.uvoptx
index 4dfb02c5ad..d6cce1a318 100644
--- a/bsp/gd32/gd32107c-eval/template.uvoptx
+++ b/bsp/gd32/arm/gd32207i-eval/template.uvoptx
@@ -73,7 +73,7 @@
0
- 1
+ 0
0
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM)
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F20x_CL -FL0300000 -FS08000000 -FP0($$Device:GD32F207IK$Flash\GD32F20x_CL.FLM)
diff --git a/bsp/gd32/arm/gd32207i-eval/template.uvproj b/bsp/gd32/arm/gd32207i-eval/template.uvproj
new file mode 100644
index 0000000000..28520e5350
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/template.uvproj
@@ -0,0 +1,628 @@
+
+
+
+ 1.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 0
+
+
+ GD32F207IK
+ GigaDevice
+ IRAM(0x20000000-0x040000) IROM(0x08000000-0x300000) CLOCK(25000000) CPUTYPE("Cortex-M3")
+
+ "Startup\GD\GD32F20x\startup_gd32f20x_cl.s" ("GD32F20x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F20x_CL -FS08000000 -FL0300000)
+ 0
+ gd32f20x0.h
+
+
+
+
+
+
+
+
+
+ SFD\GD\GD32F20x\GD32F20x_CL.SFR
+ 0
+ 0
+
+
+
+ GD\GD32F20x\
+ GD\GD32F20x\
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\output\
+ rtthread
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\build\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -REMAP
+ DCM.DLL
+ -pCM3
+ SARMCM3.DLL
+
+ TCM.DLL
+ -pCM3
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M3"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 1
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+
+
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Include;..\..\..\Library\Firmware\CMSIS\GD\GD32F20x\Include;..\..\..\Library\Utilities;..\
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Application
+
+
+ main.c
+ 1
+ ..\main.c
+
+
+ gd32f20x_it.c
+ 1
+ ..\gd32f20x_it.c
+
+
+
+
+ CMSIS
+
+
+ system_gd32f20x.c
+ 1
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F20x\Source\system_gd32f20x.c
+
+
+
+
+ GD32F20x_Peripherals
+
+
+ gd32f20x_adc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_adc.c
+
+
+ gd32f20x_can.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_can.c
+
+
+ gd32f20x_crc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_crc.c
+
+
+ gd32f20x_ctc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_ctc.c
+
+
+ gd32f20x_dac.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_dac.c
+
+
+ gd32f20x_dbg.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_dbg.c
+
+
+ gd32f20x_dci.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_dci.c
+
+
+ gd32f20x_dma.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_dma.c
+
+
+ gd32f20x_enet.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_enet.c
+
+
+ gd32f20x_exmc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_exmc.c
+
+
+ gd32f20x_exti.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_exti.c
+
+
+ gd32f20x_fmc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_fmc.c
+
+
+ gd32f20x_fwdgt.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_fwdgt.c
+
+
+ gd32f20x_gpio.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_gpio.c
+
+
+ gd32f20x_i2c.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_i2c.c
+
+
+ gd32f20x_ipa.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_ipa.c
+
+
+ gd32f20x_iref.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_iref.c
+
+
+ gd32f20x_misc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_misc.c
+
+
+ gd32f20x_pmu.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_pmu.c
+
+
+ gd32f20x_rcu.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_rcu.c
+
+
+ gd32f20x_rtc.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_rtc.c
+
+
+ gd32f20x_sdio.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_sdio.c
+
+
+ gd32f20x_spi.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_spi.c
+
+
+ gd32f20x_syscfg.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_syscfg.c
+
+
+ gd32f20x_timer.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_timer.c
+
+
+ gd32f20x_tli.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_tli.c
+
+
+ gd32f20x_trng.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_trng.c
+
+
+ gd32f20x_usart.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_usart.c
+
+
+ gd32f20x_wwdgt.c
+ 1
+ ..\..\..\Library\Firmware\GD32F20x_standard_peripheral\Source\gd32f20x_wwdgt.c
+
+
+
+
+ GD32F20x_START
+
+
+ gd32f205r_start.c
+ 1
+ ..\..\..\Library\Utilities\gd32f205r_start.c
+
+
+
+
+ Startup
+
+
+ startup_gd32f20x_cl.s
+ 2
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F20x\Source\ARM\startup_gd32f20x_cl.s
+
+
+
+
+ Doc
+
+
+ readme.txt
+ 5
+ ..\readme.txt
+
+
+
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32207i-eval/template.uvprojx b/bsp/gd32/arm/gd32207i-eval/template.uvprojx
new file mode 100644
index 0000000000..839cfea9a9
--- /dev/null
+++ b/bsp/gd32/arm/gd32207i-eval/template.uvprojx
@@ -0,0 +1,417 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 0
+
+
+ GD32F207IK
+ GigaDevice
+ GigaDevice.GD32F20x_DFP.2.2.2
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x040000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F20x_CL -FS08000000 -FL0300000 -FP0($$Device:GD32F207IK$Flash\GD32F20x_CL.FLM))
+ 0
+ $$Device:GD32F207IK$Device\Include\gd32f20x.h
+
+
+
+
+
+
+
+
+
+ $$Device:GD32F207IK$SVD\GD32F20x_CL.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\build\
+ rtthread
+ 1
+ 0
+ 0
+ 1
+ 0
+ .\build\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ fromelf --bin !L --output rtthread.bin
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -REMAP
+ DCM.DLL
+ -pCM3
+ SARMCM3.DLL
+
+ TCM.DLL
+ -pCM3
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M3"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x40000
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x40000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ .\gd32_rom.ld
+
+
+
+
+
+
+
+
+
+
+ ::CMSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32303e-eval/.config b/bsp/gd32/arm/gd32303e-eval/.config
new file mode 100644
index 0000000000..6d32e7b7d3
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/.config
@@ -0,0 +1,698 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Configuration
+#
+
+#
+# RT-Thread Kernel
+#
+CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_ALIGN_SIZE=4
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=100
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=256
+# CONFIG_RT_USING_TIMER_SOFT is not set
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_TINY_FFS is not set
+# CONFIG_RT_PRINTF_LONGLONG is not set
+CONFIG_RT_DEBUG=y
+CONFIG_RT_DEBUG_COLOR=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_SIGNALS is not set
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+CONFIG_RT_USING_SMALL_MEM=y
+# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_MEMHEAP is not set
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
+CONFIG_RT_USING_HEAP=y
+
+#
+# Kernel Device Object
+#
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=128
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
+CONFIG_RT_VER_NUM=0x40100
+# CONFIG_RT_USING_CPU_FFS is not set
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+# CONFIG_RT_USING_LEGACY is not set
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
+CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
+# CONFIG_RT_USING_DFS is not set
+
+#
+# Device Drivers
+#
+CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
+CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
+CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
+CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
+CONFIG_RT_SERIAL_USING_DMA=y
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+# CONFIG_RT_USING_SPI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_WIFI is not set
+
+#
+# Using USB
+#
+# CONFIG_RT_USING_USB is not set
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+
+#
+# POSIX layer and C standard library
+#
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+# CONFIG_RT_USING_POSIX_FS is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Interprocess Communication (IPC)
+#
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
+
+#
+# Socket is in the 'Network' category
+#
+
+#
+# Network
+#
+# CONFIG_RT_USING_SAL is not set
+# CONFIG_RT_USING_NETDEV is not set
+# CONFIG_RT_USING_LWIP is not set
+# CONFIG_RT_USING_AT is not set
+
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+
+#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_LWIP is not set
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_NANOPB is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# CONFIG_PKG_USING_RW007 is not set
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+# CONFIG_PKG_USING_NMEALIB is not set
+# CONFIG_PKG_USING_PDULIB is not set
+# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
+# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
+# CONFIG_PKG_USING_MAVLINK is not set
+# CONFIG_PKG_USING_BSAL is not set
+# CONFIG_PKG_USING_AGILE_MODBUS is not set
+# CONFIG_PKG_USING_AGILE_FTP is not set
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
+
+#
+# language packages
+#
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# CONFIG_PKG_USING_LUATOS_SOC is not set
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+
+#
+# multimedia packages
+#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ULOG_FILE is not set
+# CONFIG_PKG_USING_LOGMGR is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# CONFIG_PKG_USING_ANV_BENCH is not set
+# CONFIG_PKG_USING_DEVMEM is not set
+# CONFIG_PKG_USING_REGEX is not set
+# CONFIG_PKG_USING_MEM_SANDBOX is not set
+# CONFIG_PKG_USING_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+
+#
+# system packages
+#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# POSIX extension functions
+#
+# CONFIG_PKG_USING_POSIX_GETLINE is not set
+# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
+# CONFIG_PKG_USING_POSIX_ITOA is not set
+# CONFIG_PKG_USING_POSIX_STRINGS is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# CONFIG_PKG_USING_UC_CLK is not set
+# CONFIG_PKG_USING_UC_COMMON is not set
+# CONFIG_PKG_USING_UC_MODBUS is not set
+# CONFIG_PKG_USING_RTDUINO is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_DFS_JFFS2 is not set
+# CONFIG_PKG_USING_DFS_UFFS is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_WM_LIBRARIES is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
+# CONFIG_PKG_USING_NES is not set
+# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
+# CONFIG_PKG_USING_VDEVICE is not set
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
+
+#
+# miscellaneous packages
+#
+
+#
+# project laboratory
+#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_KI is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_SERIES_GD32F30x=y
+CONFIG_SOC_GD32303Z=y
+
+#
+# Onboard Peripheral Drivers
+#
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+CONFIG_BSP_USING_UART=y
+# CONFIG_BSP_USING_UART0 is not set
+CONFIG_BSP_USING_UART1=y
+# CONFIG_BSP_UART1_RX_USING_DMA is not set
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
+# CONFIG_BSP_USING_UART4 is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
+
+#
+# Board extended module Drivers
+#
diff --git a/bsp/gd32/arm/gd32303e-eval/Kconfig b/bsp/gd32/arm/gd32303e-eval/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/gd32303e-eval/README.md b/bsp/gd32/arm/gd32303e-eval/README.md
similarity index 57%
rename from bsp/gd32/gd32303e-eval/README.md
rename to bsp/gd32/arm/gd32303e-eval/README.md
index f71b1cd0e6..c30b3a7636 100644
--- a/bsp/gd32/gd32303e-eval/README.md
+++ b/bsp/gd32/arm/gd32303e-eval/README.md
@@ -7,29 +7,41 @@ GD3303E-EVAL是-兆易创新推出的一款GD32F30X系列的评估板,最高
该开发板常用 **板载资源** 如下:
- GD32303ZET6,主频 120MHz,512KB FLASH ,64KB RAM
-
- 常用外设
- - LED :5个,LED1 (电源指示灯),LED2(PC0),LED3(PC2),LED4(PE0),LED5(PE1)
- - 按键:3个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PB14)
-
+ - LED :5个,LED1 (电源指示灯),LED2(PF0),LED3(PF1),LED4(PF2),LED5(PF3)
+ - 按键:4个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PF5),K4(用户按键,PF4)
+ - General TM * 4、Advanced TM * 2、Basic TM * 2
+ - 系统时钟 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - USART * 3、UART * 2
+ - I2C * 2、I2S * 2
+ - SPI * 3
+ - CAN2.0B * 1
+ - USB2.0 OTG FS * 1
+ - TFT-LCD
+ - EXMC/SDRAM * 1
+ - ADC * 3
+ - DAC * 2
+ - 最多支持112GPIOs
- 常用接口:USB 接口
-
- 调试接口:GD-LINK
## 外设支持
本 BSP 目前对外设的支持情况如下:
-| **片上外设** | **支持情况** | **备注** |
-|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART | 支持 | UART0 - UART4 |
-| I2C | 支持 | I2C1 |
-| SPI | 支持 | SPI0 - SPI2 |
-| SPI FLASH | 支持 | |
-| **扩展模块** | **支持情况** | **备注** |
-| 暂无 | 暂不支持 | 暂不支持 |
+| **片上外设** | **支持情况** | **备注** |
+| :----------- | :----------: | :------------------------------- |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...111 |
+| UART | 支持 | UART0 - UART4 |
+| I2C | 支持 | I2C1 |
+| SPI | 支持 | SPI0 - SPI2 |
+| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC2 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
## 使用说明
@@ -45,11 +57,11 @@ GD3303E-EVAL是-兆易创新推出的一款GD32F30X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
-使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
+使用数据线连接开发板到 PC,使用USB转232连接USART1,打开电源开关。
#### 编译下载
@@ -81,7 +93,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/gd32305r-start/SConscript b/bsp/gd32/arm/gd32303e-eval/SConscript
similarity index 100%
rename from bsp/gd32/gd32305r-start/SConscript
rename to bsp/gd32/arm/gd32303e-eval/SConscript
diff --git a/bsp/gd32/gd32303e-eval/SConstruct b/bsp/gd32/arm/gd32303e-eval/SConstruct
similarity index 94%
rename from bsp/gd32/gd32303e-eval/SConstruct
rename to bsp/gd32/arm/gd32303e-eval/SConstruct
index d733bb923d..a39a8933ac 100644
--- a/bsp/gd32/gd32303e-eval/SConstruct
+++ b/bsp/gd32/arm/gd32303e-eval/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32305r-start/applications/SConscript b/bsp/gd32/arm/gd32303e-eval/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32305r-start/applications/SConscript
rename to bsp/gd32/arm/gd32303e-eval/applications/SConscript
diff --git a/bsp/gd32/gd32303e-eval/applications/main.c b/bsp/gd32/arm/gd32303e-eval/applications/main.c
similarity index 91%
rename from bsp/gd32/gd32303e-eval/applications/main.c
rename to bsp/gd32/arm/gd32303e-eval/applications/main.c
index 3e85fc86ca..cbd3cc50f5 100644
--- a/bsp/gd32/gd32303e-eval/applications/main.c
+++ b/bsp/gd32/arm/gd32303e-eval/applications/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32303e-eval/board/Kconfig b/bsp/gd32/arm/gd32303e-eval/board/Kconfig
similarity index 60%
rename from bsp/gd32/gd32303e-eval/board/Kconfig
rename to bsp/gd32/arm/gd32303e-eval/board/Kconfig
index a36e954a1d..e954516cdf 100644
--- a/bsp/gd32/gd32303e-eval/board/Kconfig
+++ b/bsp/gd32/arm/gd32303e-eval/board/Kconfig
@@ -115,6 +115,91 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32303e-eval/board/SConscript b/bsp/gd32/arm/gd32303e-eval/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32303e-eval/board/SConscript
rename to bsp/gd32/arm/gd32303e-eval/board/SConscript
index 4952e20f50..1d4c0408eb 100644
--- a/bsp/gd32/gd32303e-eval/board/SConscript
+++ b/bsp/gd32/arm/gd32303e-eval/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_hd.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_hd.s']
CPPDEFINES = ['GD32F30X_HD']
diff --git a/bsp/gd32/gd32303e-eval/board/board.c b/bsp/gd32/arm/gd32303e-eval/board/board.c
similarity index 96%
rename from bsp/gd32/gd32303e-eval/board/board.c
rename to bsp/gd32/arm/gd32303e-eval/board/board.c
index c409645b37..4a7c61b8cf 100644
--- a/bsp/gd32/gd32303e-eval/board/board.c
+++ b/bsp/gd32/arm/gd32303e-eval/board/board.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32303e-eval/board/board.h b/bsp/gd32/arm/gd32303e-eval/board/board.h
similarity index 95%
rename from bsp/gd32/gd32303e-eval/board/board.h
rename to bsp/gd32/arm/gd32303e-eval/board/board.h
index aecf8beaad..57e4dd68f8 100644
--- a/bsp/gd32/gd32303e-eval/board/board.h
+++ b/bsp/gd32/arm/gd32303e-eval/board/board.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32303e-eval/board/gd32f30x_libopt.h b/bsp/gd32/arm/gd32303e-eval/board/gd32f30x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32303e-eval/board/gd32f30x_libopt.h
rename to bsp/gd32/arm/gd32303e-eval/board/gd32f30x_libopt.h
diff --git a/bsp/gd32/gd32303e-eval/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32303e-eval/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32303e-eval/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32303e-eval/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32303e-eval/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32303e-eval/board/linker_scripts/link.ld
similarity index 100%
rename from bsp/gd32/gd32303e-eval/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32303e-eval/board/linker_scripts/link.ld
diff --git a/bsp/gd32/gd32303e-eval/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32303e-eval/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32303e-eval/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32303e-eval/board/linker_scripts/link.sct
diff --git a/bsp/gd32/arm/gd32303e-eval/project.ewd b/bsp/gd32/arm/gd32303e-eval/project.ewd
new file mode 100644
index 0000000000..1c6168a2f8
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32303e-eval/project.ewp b/bsp/gd32/arm/gd32303e-eval/project.ewp
new file mode 100644
index 0000000000..81fedea825
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\IAR\startup_gd32f30x_hd.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32303e-eval/project.eww b/bsp/gd32/arm/gd32303e-eval/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32303e-eval/project.uvoptx b/bsp/gd32/arm/gd32303e-eval/project.uvoptx
new file mode 100644
index 0000000000..a0414d390b
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 8000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 0
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_HD -FS08000000 -FL080000 -FP0($$Device:GD32F303ZE$Flash\GD32F30x_HD.FLM))
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_hd.s
+ startup_gd32f30x_hd.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+ system_gd32f30x.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+ gd32f30x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+ gd32f30x_usart.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+ gd32f30x_exti.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+ gd32f30x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+ gd32f30x_misc.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32303e-eval/project.uvproj b/bsp/gd32/arm/gd32303e-eval/project.uvproj
similarity index 98%
rename from bsp/gd32/gd32303e-eval/project.uvproj
rename to bsp/gd32/arm/gd32303e-eval/project.uvproj
index 9baf49642d..991ade9637 100644
--- a/bsp/gd32/gd32303e-eval/project.uvproj
+++ b/bsp/gd32/arm/gd32303e-eval/project.uvproj
@@ -12,10 +12,10 @@
GD32F303ZE
GigaDevice
- IRAM(0x20000000-0x20010000) IROM(0x08000000-0x08080000) CLOCK(12000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20010000) IROM(0x08000000-0x08080000) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2
- "Startup\GD\GD32F30x\startup_gd32f30x.s" ("GD32F30x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F30x\startup_gd32f30x_hd.s" ("GD32F30x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_HD -FS08000000 -FL080000)
0
gd32f30x0.h
@@ -27,7 +27,7 @@
- SFD\GD\GD32F30x\GD32F30x.SFR
+ SFD\GD\GD32F30x\GD32F30x_HD.SFR
0
0
@@ -427,16 +427,16 @@
Compiler
- syscalls.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
- syscall_mem.c
+ syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\components\libc\compilers\armlibc\syscalls.c
@@ -458,9 +458,9 @@
CPU
- backtrace.c
+ div0.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\libcpu\arm\common\div0.c
@@ -472,9 +472,9 @@
- div0.c
+ backtrace.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\libcpu\arm\common\backtrace.c
@@ -503,9 +503,9 @@
- completion.c
+ pipe.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\components\drivers\ipc\pipe.c
@@ -515,6 +515,13 @@
..\..\..\components\drivers\ipc\workqueue.c
+
+
+ completion.c
+ 1
+ ..\..\..\components\drivers\ipc\completion.c
+
+
ringblk_buf.c
@@ -524,9 +531,9 @@
- pipe.c
+ dataqueue.c
1
- ..\..\..\components\drivers\ipc\pipe.c
+ ..\..\..\components\drivers\ipc\dataqueue.c
@@ -536,13 +543,6 @@
..\..\..\components\drivers\ipc\ringbuffer.c
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
pin.c
@@ -615,27 +615,6 @@
Kernel
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
device.c
@@ -645,16 +624,9 @@
- scheduler.c
+ mempool.c
1
- ..\..\..\src\scheduler.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
+ ..\..\..\src\mempool.c
@@ -664,13 +636,6 @@
..\..\..\src\object.c
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
clock.c
@@ -680,9 +645,9 @@
- mempool.c
+ scheduler.c
1
- ..\..\..\src\mempool.c
+ ..\..\..\src\scheduler.c
@@ -699,6 +664,20 @@
..\..\..\src\thread.c
+
+
+ timer.c
+ 1
+ ..\..\..\src\timer.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
components.c
@@ -706,6 +685,27 @@
..\..\..\src\components.c
+
+
+ kservice.c
+ 1
+ ..\..\..\src\kservice.c
+
+
+
+
+ irq.c
+ 1
+ ..\..\..\src\irq.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\src\idle.c
+
+
Libraries
diff --git a/bsp/gd32/gd32303e-eval/project.uvprojx b/bsp/gd32/arm/gd32303e-eval/project.uvprojx
similarity index 76%
rename from bsp/gd32/gd32303e-eval/project.uvprojx
rename to bsp/gd32/arm/gd32303e-eval/project.uvprojx
index 624591c89d..ed1d7fbc17 100644
--- a/bsp/gd32/gd32303e-eval/project.uvprojx
+++ b/bsp/gd32/arm/gd32303e-eval/project.uvprojx
@@ -1,7 +1,10 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
@@ -13,31 +16,31 @@
GD32F303ZE
GigaDevice
- GigaDevice.GD32F30x_DFP.2.1.0
+ GigaDevice.GD32F30x_DFP.2.2.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x010000) IROM(0x08000000,0x080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F303ZE$Flash\GD32F30x_CL.FLM))
+ IRAM(0x20000000,0x010000) IROM(0x08000000,0x080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(8000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL080000 -FP0($$Device:GD32F303ZE$Flash\GD32F30x_HD.FLM))
0
$$Device:GD32F303ZE$Device\Include\gd32f30x.h
-
-
-
-
-
-
-
-
-
- $$Device:GD32F303ZE$SVD\GD32F30x_CL.svd
+
+
+
+
+
+
+
+
+
+ $$Device:GD32F303ZE$SVD\GD32F30x_HD.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -59,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -69,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -80,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -101,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -135,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -172,7 +175,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -243,12 +246,12 @@
0
0x20000000
- 0x18000
+ 0x10000
1
0x8000000
- 0x40000
+ 0x80000
0
@@ -306,7 +309,7 @@
0x0
-
+
1
@@ -333,10 +336,10 @@
0
0
-
+
GD32F30X_HD, USE_STDPERIPH_DRIVER, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Include;..\libraries\GD32F30x_Firmware_Library\CMSIS;..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Include;..\libraries\GD32F30x_Firmware_Library\CMSIS;..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -351,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -366,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -393,66 +396,52 @@
syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
-
-
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
CPU
-
-
- div0.c
- 1
- ..\..\..\libcpu\arm\common\div0.c
-
-
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
+
+
+ div0.c
+ 1
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
@@ -462,63 +451,47 @@
waitqueue.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
-
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
completion.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\..\components\drivers\ipc\completion.c
-
-
ringblk_buf.c
1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -530,22 +503,16 @@
2
..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_hd.s
-
-
board.c
1
board\board.c
-
-
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
@@ -559,115 +526,87 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
Kernel
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
ipc.c
1
- ..\..\..\src\ipc.c
+ ..\..\..\..\src\ipc.c
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
components.c
1
- ..\..\..\src\components.c
+ ..\..\..\..\src\components.c
-
-
- timer.c
+ thread.c
1
- ..\..\..\src\timer.c
+ ..\..\..\..\src\thread.c
-
-
- object.c
+ idle.c
1
- ..\..\..\src\object.c
+ ..\..\..\..\src\idle.c
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
-
-
mempool.c
1
- ..\..\..\src\mempool.c
+ ..\..\..\..\src\mempool.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
@@ -679,36 +618,26 @@
1
..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
-
-
gd32f30x_rcu.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
-
-
gd32f30x_usart.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
-
-
gd32f30x_exti.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
-
-
gd32f30x_gpio.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
-
-
gd32f30x_misc.c
1
@@ -716,33 +645,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32303e-eval/rtconfig.h b/bsp/gd32/arm/gd32303e-eval/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32303e-eval/rtconfig.h
rename to bsp/gd32/arm/gd32303e-eval/rtconfig.h
index 2c8afb2f75..ebad857126 100644
--- a/bsp/gd32/gd32303e-eval/rtconfig.h
+++ b/bsp/gd32/arm/gd32303e-eval/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -81,7 +90,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -93,10 +102,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32303e-eval/rtconfig.py b/bsp/gd32/arm/gd32303e-eval/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32303e-eval/rtconfig.py
rename to bsp/gd32/arm/gd32303e-eval/rtconfig.py
index 2075890edf..a91905a233 100644
--- a/bsp/gd32/gd32303e-eval/rtconfig.py
+++ b/bsp/gd32/arm/gd32303e-eval/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32303e-eval/template.ewp b/bsp/gd32/arm/gd32303e-eval/template.ewp
new file mode 100644
index 0000000000..d33673620b
--- /dev/null
+++ b/bsp/gd32/arm/gd32303e-eval/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32303e-eval/template.uvoptx b/bsp/gd32/arm/gd32303e-eval/template.uvoptx
similarity index 96%
rename from bsp/gd32/gd32303e-eval/template.uvoptx
rename to bsp/gd32/arm/gd32303e-eval/template.uvoptx
index 18fdad5165..e04b402ce0 100644
--- a/bsp/gd32/gd32303e-eval/template.uvoptx
+++ b/bsp/gd32/arm/gd32303e-eval/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 8000000
1
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_HD -FS08000000 -FL080000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_HD.FLM))
diff --git a/bsp/gd32/gd32303e-eval/template.uvproj b/bsp/gd32/arm/gd32303e-eval/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32303e-eval/template.uvproj
rename to bsp/gd32/arm/gd32303e-eval/template.uvproj
index c42d8a33b1..1ae05a1082 100644
--- a/bsp/gd32/gd32303e-eval/template.uvproj
+++ b/bsp/gd32/arm/gd32303e-eval/template.uvproj
@@ -15,10 +15,10 @@
GD32F303ZE
GigaDevice
- IRAM(0x20000000-0x20010000) IROM(0x08000000-0x08080000) CLOCK(12000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20010000) IROM(0x08000000-0x08080000) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2
- "Startup\GD\GD32F30x\startup_gd32f30x.s" ("GD32F30x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F30x\startup_gd32f30x_hd.s" ("GD32F30x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_HD -FS08000000 -FL080000)
0
gd32f30x0.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F30x\GD32F30x.SFR
+ SFD\GD\GD32F30x\GD32F30x_HD.SFR
0
0
@@ -605,9 +605,9 @@
Startup
- startup_gd32f30x.s
+ startup_gd32f30x_hd.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_hd.s
diff --git a/bsp/gd32/gd32303e-eval/template.uvprojx b/bsp/gd32/arm/gd32303e-eval/template.uvprojx
similarity index 97%
rename from bsp/gd32/gd32303e-eval/template.uvprojx
rename to bsp/gd32/arm/gd32303e-eval/template.uvprojx
index 7f6137db37..3678894906 100644
--- a/bsp/gd32/gd32303e-eval/template.uvprojx
+++ b/bsp/gd32/arm/gd32303e-eval/template.uvprojx
@@ -18,10 +18,10 @@
GigaDevice
GigaDevice.GD32F30x_DFP.2.1.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x010000) IROM(0x08000000,0x080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
+ IRAM(0x20000000,0x010000) IROM(0x08000000,0x080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(8000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F303ZE$Flash\GD32F30x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL080000 -FP0($$Device:GD32F303ZE$Flash\GD32F30x_HD.FLM))
0
$$Device:GD32F303ZE$Device\Include\gd32f30x.h
@@ -33,7 +33,7 @@
- $$Device:GD32F303ZE$SVD\GD32F30x_CL.svd
+ $$Device:GD32F303ZE$SVD\GD32F30x_HD.svd
0
0
diff --git a/bsp/gd32/gd32305r-start/.config b/bsp/gd32/arm/gd32305r-start/.config
similarity index 96%
rename from bsp/gd32/gd32305r-start/.config
rename to bsp/gd32/arm/gd32305r-start/.config
index dc221bfb49..8b498bdca2 100644
--- a/bsp/gd32/gd32305r-start/.config
+++ b/bsp/gd32/arm/gd32305r-start/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -152,7 +164,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -176,7 +188,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -186,6 +197,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -194,7 +210,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -259,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -298,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -337,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -411,6 +429,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -442,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -484,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -638,6 +659,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -662,6 +685,13 @@ CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART4 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/arm/gd32305r-start/Kconfig b/bsp/gd32/arm/gd32305r-start/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32305r-start/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/gd32305r-start/README.md b/bsp/gd32/arm/gd32305r-start/README.md
similarity index 86%
rename from bsp/gd32/gd32305r-start/README.md
rename to bsp/gd32/arm/gd32305r-start/README.md
index 49db8aa8ad..5f99b8bacd 100644
--- a/bsp/gd32/gd32305r-start/README.md
+++ b/bsp/gd32/arm/gd32305r-start/README.md
@@ -2,7 +2,7 @@
## 简介
-GD3305R-START是-兆易创新推出的一款GD32F30X系列的评估板,最高主频高达120M,该开发板具有丰富的板载资源,可以充分发挥 GD3230R 的芯片性能。
+GD3305R-START是-兆易创新推出的一款GD32F30X系列的评估板,最高主频高达120M,该开发板具有丰富的板载资源,可以充分发挥 GD32305RC 的芯片性能。
开发板外观如下图所示:
@@ -27,11 +27,12 @@ GD3305R-START是-兆易创新推出的一款GD32F30X系列的评估板,最高
| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...50 |
| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
| SPI | 支持 | SPI0 - SPI2 |
| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC1 |
| **扩展模块** | **支持情况** | **备注** |
| 暂无 | 暂不支持 | 暂不支持 |
@@ -49,7 +50,7 @@ GD3305R-START是-兆易创新推出的一款GD32F30X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
@@ -85,7 +86,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/gd32407v-start/SConscript b/bsp/gd32/arm/gd32305r-start/SConscript
similarity index 100%
rename from bsp/gd32/gd32407v-start/SConscript
rename to bsp/gd32/arm/gd32305r-start/SConscript
diff --git a/bsp/gd32/gd32305r-start/SConstruct b/bsp/gd32/arm/gd32305r-start/SConstruct
similarity index 94%
rename from bsp/gd32/gd32305r-start/SConstruct
rename to bsp/gd32/arm/gd32305r-start/SConstruct
index d733bb923d..a39a8933ac 100644
--- a/bsp/gd32/gd32305r-start/SConstruct
+++ b/bsp/gd32/arm/gd32305r-start/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32407v-start/applications/SConscript b/bsp/gd32/arm/gd32305r-start/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32407v-start/applications/SConscript
rename to bsp/gd32/arm/gd32305r-start/applications/SConscript
diff --git a/bsp/gd32/gd32305r-start/applications/main.c b/bsp/gd32/arm/gd32305r-start/applications/main.c
similarity index 100%
rename from bsp/gd32/gd32305r-start/applications/main.c
rename to bsp/gd32/arm/gd32305r-start/applications/main.c
diff --git a/bsp/gd32/gd32305r-start/board/Kconfig b/bsp/gd32/arm/gd32305r-start/board/Kconfig
similarity index 61%
rename from bsp/gd32/gd32305r-start/board/Kconfig
rename to bsp/gd32/arm/gd32305r-start/board/Kconfig
index 043313a0fb..0fc1318daa 100644
--- a/bsp/gd32/gd32305r-start/board/Kconfig
+++ b/bsp/gd32/arm/gd32305r-start/board/Kconfig
@@ -115,6 +115,87 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32305r-start/board/SConscript b/bsp/gd32/arm/gd32305r-start/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32305r-start/board/SConscript
rename to bsp/gd32/arm/gd32305r-start/board/SConscript
index 09ae44cf73..ec6b7bf3c1 100644
--- a/bsp/gd32/gd32305r-start/board/SConscript
+++ b/bsp/gd32/arm/gd32305r-start/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_cl.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_cl.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_cl.s']
CPPDEFINES = ['GD32F30X_CL']
diff --git a/bsp/gd32/gd32103c-eval/board/board.c b/bsp/gd32/arm/gd32305r-start/board/board.c
similarity index 96%
rename from bsp/gd32/gd32103c-eval/board/board.c
rename to bsp/gd32/arm/gd32305r-start/board/board.c
index c409645b37..4a7c61b8cf 100644
--- a/bsp/gd32/gd32103c-eval/board/board.c
+++ b/bsp/gd32/arm/gd32305r-start/board/board.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32305r-start/board/board.h b/bsp/gd32/arm/gd32305r-start/board/board.h
similarity index 100%
rename from bsp/gd32/gd32305r-start/board/board.h
rename to bsp/gd32/arm/gd32305r-start/board/board.h
diff --git a/bsp/gd32/gd32305r-start/board/gd32f30x_libopt.h b/bsp/gd32/arm/gd32305r-start/board/gd32f30x_libopt.h
similarity index 100%
rename from bsp/gd32/gd32305r-start/board/gd32f30x_libopt.h
rename to bsp/gd32/arm/gd32305r-start/board/gd32f30x_libopt.h
diff --git a/bsp/gd32/gd32305r-start/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32305r-start/board/linker_scripts/link.icf
similarity index 100%
rename from bsp/gd32/gd32305r-start/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32305r-start/board/linker_scripts/link.icf
diff --git a/bsp/gd32/gd32105c-eval/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32305r-start/board/linker_scripts/link.ld
similarity index 100%
rename from bsp/gd32/gd32105c-eval/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32305r-start/board/linker_scripts/link.ld
diff --git a/bsp/gd32/gd32305r-start/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32305r-start/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32305r-start/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32305r-start/board/linker_scripts/link.sct
diff --git a/bsp/gd32/gd32305r-start/figures/board.jpg b/bsp/gd32/arm/gd32305r-start/figures/board.jpg
similarity index 100%
rename from bsp/gd32/gd32305r-start/figures/board.jpg
rename to bsp/gd32/arm/gd32305r-start/figures/board.jpg
diff --git a/bsp/gd32/arm/gd32305r-start/project.ewd b/bsp/gd32/arm/gd32305r-start/project.ewd
new file mode 100644
index 0000000000..b16503f95c
--- /dev/null
+++ b/bsp/gd32/arm/gd32305r-start/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32305r-start/project.ewp b/bsp/gd32/arm/gd32305r-start/project.ewp
new file mode 100644
index 0000000000..8dac0702e5
--- /dev/null
+++ b/bsp/gd32/arm/gd32305r-start/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\IAR\startup_gd32f30x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32305r-start/project.eww b/bsp/gd32/arm/gd32305r-start/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32305r-start/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32305r-start/project.uvoptx b/bsp/gd32/arm/gd32305r-start/project.uvoptx
new file mode 100644
index 0000000000..3f89f6b481
--- /dev/null
+++ b/bsp/gd32/arm/gd32305r-start/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+ 3
+ 10
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
+ startup_gd32f30x_cl.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+ system_gd32f30x.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+ gd32f30x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+ gd32f30x_usart.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+ gd32f30x_exti.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+ gd32f30x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+ gd32f30x_misc.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32305r-start/project.uvproj b/bsp/gd32/arm/gd32305r-start/project.uvproj
similarity index 98%
rename from bsp/gd32/gd32305r-start/project.uvproj
rename to bsp/gd32/arm/gd32305r-start/project.uvproj
index 7b14d78c05..dc7bfdc0d7 100644
--- a/bsp/gd32/gd32305r-start/project.uvproj
+++ b/bsp/gd32/arm/gd32305r-start/project.uvproj
@@ -12,10 +12,10 @@
GD32F305RC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(12000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
- "Startup\GD\GD32F30x\startup_gd32f30x.s" ("GD32F30x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F30x\startup_gd32f30x_cl.s" ("GD32F30x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000)
0
gd32f30x.h
@@ -27,7 +27,7 @@
- SFD\GD\GD32F30x\GD32F30x.SFR
+ SFD\GD\GD32F30x\GD32F30x_CL.SFR
0
0
@@ -458,9 +458,9 @@
CPU
- showmem.c
+ backtrace.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\libcpu\arm\common\backtrace.c
@@ -472,16 +472,9 @@
- backtrace.c
+ showmem.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
-
-
- context_rvds.S
- 2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ ..\..\..\libcpu\arm\common\showmem.c
@@ -491,23 +484,16 @@
..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ context_rvds.S
+ 2
+ ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+
+
DeviceDrivers
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
pipe.c
@@ -515,13 +501,6 @@
..\..\..\components\drivers\ipc\pipe.c
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
workqueue.c
@@ -529,6 +508,13 @@
..\..\..\components\drivers\ipc\workqueue.c
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\components\drivers\ipc\ringbuffer.c
+
+
ringblk_buf.c
@@ -538,9 +524,23 @@
- ringbuffer.c
+ completion.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\components\drivers\ipc\completion.c
+
+
+
+
+ dataqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\dataqueue.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\waitqueue.c
@@ -617,9 +617,9 @@
Kernel
- thread.c
+ clock.c
1
- ..\..\..\src\thread.c
+ ..\..\..\src\clock.c
@@ -629,13 +629,6 @@
..\..\..\src\components.c
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
mempool.c
@@ -645,9 +638,16 @@
- kservice.c
+ thread.c
1
- ..\..\..\src\kservice.c
+ ..\..\..\src\thread.c
+
+
+
+
+ device.c
+ 1
+ ..\..\..\src\device.c
@@ -659,9 +659,9 @@
- clock.c
+ scheduler.c
1
- ..\..\..\src\clock.c
+ ..\..\..\src\scheduler.c
@@ -671,20 +671,6 @@
..\..\..\src\mem.c
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
idle.c
@@ -694,9 +680,23 @@
- device.c
+ object.c
1
- ..\..\..\src\device.c
+ ..\..\..\src\object.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\src\ipc.c
+
+
+
+
+ kservice.c
+ 1
+ ..\..\..\src\kservice.c
diff --git a/bsp/gd32/gd32305r-start/project.uvprojx b/bsp/gd32/arm/gd32305r-start/project.uvprojx
similarity index 76%
rename from bsp/gd32/gd32305r-start/project.uvprojx
rename to bsp/gd32/arm/gd32305r-start/project.uvprojx
index 92bb19e9ba..6c30daae2f 100644
--- a/bsp/gd32/gd32305r-start/project.uvprojx
+++ b/bsp/gd32/arm/gd32305r-start/project.uvprojx
@@ -1,7 +1,10 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
@@ -13,31 +16,31 @@
GD32F305RC
GigaDevice
- GigaDevice.GD32F30x_DFP.2.1.0
+ GigaDevice.GD32F30x_DFP.2.2.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x018000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
+ IRAM(0x20000000,0x018000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
0
$$Device:GD32F305RC$Device\Include\gd32f30x.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F305RC$SVD\GD32F30x_CL.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -59,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -69,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -80,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -101,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -135,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -172,7 +175,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -306,7 +309,7 @@
0x0
-
+
1
@@ -333,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F30X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Include;..\libraries\GD32F30x_Firmware_Library\CMSIS;..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Include;..\libraries\GD32F30x_Firmware_Library\CMSIS;..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -351,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -366,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -389,70 +392,56 @@
Compiler
-
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
- stdlib.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
+
+
+ stdlib.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
CPU
-
-
- div0.c
- 1
- ..\..\..\libcpu\arm\common\div0.c
-
-
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
-
-
- context_rvds.S
- 2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ div0.c
+ 1
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ context_rvds.S
+ 2
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
@@ -460,65 +449,49 @@
DeviceDrivers
- waitqueue.c
+ workqueue.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\workqueue.c
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
dataqueue.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
pipe.c
1
- ..\..\..\components\drivers\ipc\pipe.c
+ ..\..\..\..\components\drivers\ipc\pipe.c
-
-
- workqueue.c
+ completion.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\completion.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -530,22 +503,16 @@
2
..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
-
-
board.c
1
board\board.c
-
-
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
@@ -559,21 +526,17 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -581,93 +544,69 @@
Kernel
- mempool.c
+ kservice.c
1
- ..\..\..\src\mempool.c
+ ..\..\..\..\src\kservice.c
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
idle.c
1
- ..\..\..\src\idle.c
+ ..\..\..\..\src\idle.c
-
-
mem.c
1
- ..\..\..\src\mem.c
+ ..\..\..\..\src\mem.c
-
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
clock.c
1
- ..\..\..\src\clock.c
+ ..\..\..\..\src\clock.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
@@ -679,36 +618,26 @@
1
..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
-
-
gd32f30x_rcu.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
-
-
gd32f30x_usart.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
-
-
gd32f30x_exti.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
-
-
gd32f30x_gpio.c
1
..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
-
-
gd32f30x_misc.c
1
@@ -716,33 +645,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32305r-start/rtconfig.h b/bsp/gd32/arm/gd32305r-start/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32305r-start/rtconfig.h
rename to bsp/gd32/arm/gd32305r-start/rtconfig.h
index d6804594cb..fcac9e83be 100644
--- a/bsp/gd32/gd32305r-start/rtconfig.h
+++ b/bsp/gd32/arm/gd32305r-start/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -81,7 +90,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -93,10 +102,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32305r-start/rtconfig.py b/bsp/gd32/arm/gd32305r-start/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32305r-start/rtconfig.py
rename to bsp/gd32/arm/gd32305r-start/rtconfig.py
index 2075890edf..a91905a233 100644
--- a/bsp/gd32/gd32305r-start/rtconfig.py
+++ b/bsp/gd32/arm/gd32305r-start/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32305r-start/template.ewp b/bsp/gd32/arm/gd32305r-start/template.ewp
new file mode 100644
index 0000000000..3fbd2cab92
--- /dev/null
+++ b/bsp/gd32/arm/gd32305r-start/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32305r-start/template.uvoptx b/bsp/gd32/arm/gd32305r-start/template.uvoptx
similarity index 96%
rename from bsp/gd32/gd32305r-start/template.uvoptx
rename to bsp/gd32/arm/gd32305r-start/template.uvoptx
index 18fdad5165..9a597f5230 100644
--- a/bsp/gd32/gd32305r-start/template.uvoptx
+++ b/bsp/gd32/arm/gd32305r-start/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
diff --git a/bsp/gd32/gd32305r-start/template.uvproj b/bsp/gd32/arm/gd32305r-start/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32305r-start/template.uvproj
rename to bsp/gd32/arm/gd32305r-start/template.uvproj
index 919038f7f4..c1ac6be5d7 100644
--- a/bsp/gd32/gd32305r-start/template.uvproj
+++ b/bsp/gd32/arm/gd32305r-start/template.uvproj
@@ -15,10 +15,10 @@
GD32F305RC
GigaDevice
- IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(12000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
- "Startup\GD\GD32F30x\startup_gd32f30x.s" ("GD32F30x Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F30x\startup_gd32f30x_cl.s" ("GD32F30x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000)
0
gd32f30x.h
@@ -30,7 +30,7 @@
- SFD\GD\GD32F30x\GD32F30x.SFR
+ SFD\GD\GD32F30x\GD32F30x_CL.SFR
0
0
@@ -605,9 +605,9 @@
Startup
- startup_gd32f30x.s
+ startup_gd32f30x_cl.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
diff --git a/bsp/gd32/gd32305r-start/template.uvprojx b/bsp/gd32/arm/gd32305r-start/template.uvprojx
similarity index 98%
rename from bsp/gd32/gd32305r-start/template.uvprojx
rename to bsp/gd32/arm/gd32305r-start/template.uvprojx
index 0c172a57a8..3e3ed8c310 100644
--- a/bsp/gd32/gd32305r-start/template.uvprojx
+++ b/bsp/gd32/arm/gd32305r-start/template.uvprojx
@@ -18,10 +18,10 @@
GigaDevice
GigaDevice.GD32F30x_DFP.2.1.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x018000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
+ IRAM(0x20000000,0x018000) IROM(0x08000000,0x040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
0
$$Device:GD32F305RC$Device\Include\gd32f30x.h
diff --git a/bsp/gd32/gd32303e-eval/.config b/bsp/gd32/arm/gd32307e-start/.config
similarity index 96%
rename from bsp/gd32/gd32303e-eval/.config
rename to bsp/gd32/arm/gd32307e-start/.config
index f0dea1ae4c..b8663cde56 100644
--- a/bsp/gd32/gd32303e-eval/.config
+++ b/bsp/gd32/arm/gd32307e-start/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -152,7 +164,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -176,7 +188,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -186,6 +197,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -194,7 +210,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -259,6 +274,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -298,6 +314,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -337,6 +354,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -411,6 +429,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -442,6 +461,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -484,6 +504,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -638,12 +659,13 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
#
# Hardware Drivers Config
#
CONFIG_SOC_SERIES_GD32F30x=y
-CONFIG_SOC_GD32303Z=y
+CONFIG_SOC_GD32307E=y
#
# Onboard Peripheral Drivers
@@ -662,6 +684,13 @@ CONFIG_BSP_USING_UART1=y
# CONFIG_BSP_USING_UART4 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/arm/gd32307e-start/Kconfig b/bsp/gd32/arm/gd32307e-start/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/gd32407v-start/README.md b/bsp/gd32/arm/gd32307e-start/README.md
similarity index 72%
rename from bsp/gd32/gd32407v-start/README.md
rename to bsp/gd32/arm/gd32307e-start/README.md
index f938dc9f84..ce1e2ea9d4 100644
--- a/bsp/gd32/gd32407v-start/README.md
+++ b/bsp/gd32/arm/gd32307e-start/README.md
@@ -1,8 +1,8 @@
-# GD32407V-START开发板BSP说明
+# GD32307E-START开发板BSP说明
## 简介
-GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高主频高达168M,该开发板具有丰富的板载资源,可以充分发挥 GD32407V 的芯片性能。
+GD3307E-START是-兆易创新推出的一款GD32F30X系列的评估板,最高主频高达120M,该开发板具有丰富的板载资源,可以充分发挥 GD32307VE 的芯片性能。
开发板外观如下图所示:
@@ -10,11 +10,11 @@ GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高
该开发板常用 **板载资源** 如下:
-- GD32407V,主频 168MHz,3072KB FLASH ,192KB RAM
+- GD32307VE,主频 120MHz,512KB FLASH ,96KB RAM
- 常用外设
- - LED :2个,LED1 (电源指示灯),LED2(PC6)
+ - LED :2个,LED1(PC6)
- 按键:2个,K1(复位引脚),K2(用户按键,PA0)
- 常用接口:USB 接口
@@ -27,11 +27,12 @@ GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高
| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART | 支持 | UART0 - UART5 |
+| GPIO | 支持 | PA0, PA1...---> PIN: 0, 1...79 |
+| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
-| SPI | 支持 | SPI0 - SPI2 |
+| SPI | 支持 | SPI0 - SPI2 |
| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC1 |
| **扩展模块** | **支持情况** | **备注** |
| 暂无 | 暂不支持 | 暂不支持 |
@@ -49,7 +50,7 @@ GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
@@ -70,8 +71,8 @@ GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高
```bash
\ | /
- RT - Thread Operating System
- / | \ 4.0.4 build Jan 9 2021
- 2006 - 2021 Copyright by rt-thread team
+ / | \ 4.1.0 build May 3 2022 09:26:08
+ 2006 - 2022 Copyright by RT-Thread team
msh >
```
@@ -85,7 +86,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/gd32450i-eval/SConscript b/bsp/gd32/arm/gd32307e-start/SConscript
similarity index 100%
rename from bsp/gd32/gd32450i-eval/SConscript
rename to bsp/gd32/arm/gd32307e-start/SConscript
diff --git a/bsp/gd32/arm/gd32307e-start/SConstruct b/bsp/gd32/arm/gd32307e-start/SConstruct
new file mode 100644
index 0000000000..a39a8933ac
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/SConstruct
@@ -0,0 +1,60 @@
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+ from building import *
+except:
+ print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+ print(RTT_ROOT)
+ exit(-1)
+
+TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+ AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+ CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ AR = rtconfig.AR, ARFLAGS = '-rc',
+ CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+ LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+
+if rtconfig.PLATFORM == 'iar':
+ env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
+ env.Replace(ARFLAGS = [''])
+ env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+# prepare building environment
+objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+
+gd32_library = 'GD32F30x_Firmware_Library'
+rtconfig.BSP_LIBRARY_TYPE = gd32_library
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)
diff --git a/bsp/gd32/gd32450i-eval/applications/SConscript b/bsp/gd32/arm/gd32307e-start/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32450i-eval/applications/SConscript
rename to bsp/gd32/arm/gd32307e-start/applications/SConscript
diff --git a/bsp/gd32/arm/gd32307e-start/applications/main.c b/bsp/gd32/arm/gd32307e-start/applications/main.c
new file mode 100644
index 0000000000..cc273e0829
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/applications/main.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-05-03 BruceOu first implementation
+ */
+
+#include
+#include
+#include
+#include
+
+/* defined the LED1 pin: PC6 */
+#define LED1_PIN GET_PIN(C, 6)
+
+int main(void)
+{
+ int count = 1;
+
+ /* set LED1 pin mode to output */
+ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
+
+ while (count++)
+ {
+ rt_pin_write(LED1_PIN, PIN_HIGH);
+ rt_thread_mdelay(500);
+ rt_pin_write(LED1_PIN, PIN_LOW);
+ rt_thread_mdelay(500);
+ }
+
+ return RT_EOK;
+}
diff --git a/bsp/gd32/arm/gd32307e-start/board/Kconfig b/bsp/gd32/arm/gd32307e-start/board/Kconfig
new file mode 100644
index 0000000000..11ccc123a6
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/Kconfig
@@ -0,0 +1,208 @@
+menu "Hardware Drivers Config"
+
+config SOC_SERIES_GD32F30x
+ bool
+ default y
+
+config SOC_GD32307E
+ bool
+ select SOC_SERIES_GD32F30x
+ select RT_USING_COMPONENTS_INIT
+ select RT_USING_USER_MAIN
+ default y
+
+menu "Onboard Peripheral Drivers"
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+
+ config BSP_USING_GPIO
+ bool "Enable GPIO"
+ select RT_USING_PIN
+ default y
+
+ menuconfig BSP_USING_UART
+ bool "Enable UART"
+ default y
+ select RT_USING_SERIAL
+ if BSP_USING_UART
+ config BSP_USING_UART0
+ bool "Enable UART0"
+ default n
+
+ config BSP_UART0_RX_USING_DMA
+ bool "Enable UART0 RX DMA"
+ depends on BSP_USING_UART0
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART1
+ bool "Enable UART1"
+ default y
+
+ config BSP_UART1_RX_USING_DMA
+ bool "Enable UART1 RX DMA"
+ depends on BSP_USING_UART1
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART2
+ bool "Enable UART2"
+ default n
+
+ config BSP_UART2_RX_USING_DMA
+ bool "Enable UART2 RX DMA"
+ depends on BSP_USING_UART2
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART3
+ bool "Enable UART3"
+ default n
+
+ config BSP_UART3_RX_USING_DMA
+ bool "Enable UART3 RX DMA"
+ depends on BSP_USING_UART3
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART4
+ bool "Enable UART4"
+ default n
+
+ config BSP_UART4_RX_USING_DMA
+ bool "Enable UART4 RX DMA"
+ depends on BSP_USING_UART4
+ select RT_SERIAL_USING_DMA
+ default n
+
+ endif
+
+ menuconfig BSP_USING_SPI
+ bool "Enable SPI BUS"
+ default n
+ select RT_USING_SPI
+ if BSP_USING_SPI
+ config BSP_USING_SPI1
+ bool "Enable SPI1 BUS"
+ default n
+
+ config BSP_SPI1_TX_USING_DMA
+ bool "Enable SPI1 TX DMA"
+ depends on BSP_USING_SPI1
+ default n
+
+ config BSP_SPI1_RX_USING_DMA
+ bool "Enable SPI1 RX DMA"
+ depends on BSP_USING_SPI1
+ select BSP_SPI1_TX_USING_DMA
+ default n
+ endif
+
+ menuconfig BSP_USING_I2C1
+ bool "Enable I2C1 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C1
+ config BSP_I2C1_SCL_PIN
+ int "i2c1 scl pin number"
+ range 1 216
+ default 24
+ config BSP_I2C1_SDA_PIN
+ int "I2C1 sda pin number"
+ range 1 216
+ default 25
+ endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
+ source "../libraries/gd32_drivers/Kconfig"
+
+endmenu
+
+menu "Board extended module Drivers"
+
+endmenu
+
+endmenu
diff --git a/bsp/gd32/arm/gd32307e-start/board/SConscript b/bsp/gd32/arm/gd32307e-start/board/SConscript
new file mode 100644
index 0000000000..ec6b7bf3c1
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/SConscript
@@ -0,0 +1,28 @@
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+''')
+
+path = [cwd]
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+ src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_cl.s']
+elif rtconfig.CROSS_TOOL == 'keil':
+ src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_cl.s']
+elif rtconfig.CROSS_TOOL == 'iar':
+ src += [startup_path_prefix + '/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_cl.s']
+
+CPPDEFINES = ['GD32F30X_CL']
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+
+Return('group')
diff --git a/bsp/gd32/arm/gd32307e-start/board/board.c b/bsp/gd32/arm/gd32307e-start/board/board.c
new file mode 100644
index 0000000000..4a7c61b8cf
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/board.c
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-12-18 BruceOu first implementation
+ */
+#include
+#include
+#include
+#include
+
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @param None
+ * @retval None
+ */
+void Error_Handler(void)
+{
+ /* USER CODE BEGIN Error_Handler */
+ /* User can add his own implementation to report the HAL error return state */
+ while (1)
+ {
+ }
+ /* USER CODE END Error_Handler */
+}
+
+/** System Clock Configuration
+*/
+void SystemClock_Config(void)
+{
+ SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
+ NVIC_SetPriority(SysTick_IRQn, 0);
+}
+
+/**
+ * This is the timer interrupt service routine.
+ *
+ */
+void SysTick_Handler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_tick_increase();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+/**
+ * This function will initial GD32 board.
+ */
+void rt_hw_board_init()
+{
+ /* NVIC Configuration */
+#define NVIC_VTOR_MASK 0x3FFFFF80
+#ifdef VECT_TAB_RAM
+ /* Set the Vector Table base location at 0x10000000 */
+ SCB->VTOR = (0x10000000 & NVIC_VTOR_MASK);
+#else /* VECT_TAB_FLASH */
+ /* Set the Vector Table base location at 0x08000000 */
+ SCB->VTOR = (0x08000000 & NVIC_VTOR_MASK);
+#endif
+
+ SystemClock_Config();
+
+#ifdef RT_USING_COMPONENTS_INIT
+ rt_components_board_init();
+#endif
+
+#ifdef RT_USING_CONSOLE
+ rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+#endif
+
+#ifdef BSP_USING_SDRAM
+ rt_system_heap_init((void *)EXT_SDRAM_BEGIN, (void *)EXT_SDRAM_END);
+#else
+ rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
+#endif
+}
+
+/*@}*/
diff --git a/bsp/gd32/arm/gd32307e-start/board/board.h b/bsp/gd32/arm/gd32307e-start/board/board.h
new file mode 100644
index 0000000000..7bc2c83c60
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/board.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-12-18 BruceOu first implementation
+ */
+#ifndef __BOARD_H__
+#define __BOARD_H__
+
+#include "gd32f30x.h"
+#include "drv_usart.h"
+#include "drv_gpio.h"
+
+#include "gd32f30x_exti.h"
+
+#define EXT_SDRAM_BEGIN (0xC0000000U) /* the begining address of external SDRAM */
+#define EXT_SDRAM_END (EXT_SDRAM_BEGIN + (32U * 1024 * 1024)) /* the end address of external SDRAM */
+
+// Internal SRAM memory size[Kbytes] <8-96>
+// Default: 96
+#ifdef __ICCARM__
+// Use *.icf ram symbal, to avoid hardcode.
+extern char __ICFEDIT_region_RAM_end__;
+#define GD32_SRAM_END &__ICFEDIT_region_RAM_end__
+#else
+#define GD32_SRAM_SIZE 96
+#define GD32_SRAM_END (0x20000000 + GD32_SRAM_SIZE * 1024)
+#endif
+
+#ifdef __CC_ARM
+extern int Image$$RW_IRAM1$$ZI$$Limit;
+#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit)
+#elif __ICCARM__
+#pragma section="HEAP"
+#define HEAP_BEGIN (__segment_end("HEAP"))
+#else
+extern int __bss_end;
+#define HEAP_BEGIN (&__bss_end)
+#endif
+
+#define HEAP_END GD32_SRAM_END
+
+#endif
+
diff --git a/bsp/gd32/arm/gd32307e-start/board/gd32f30x_libopt.h b/bsp/gd32/arm/gd32307e-start/board/gd32f30x_libopt.h
new file mode 100644
index 0000000000..e026fd658a
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/gd32f30x_libopt.h
@@ -0,0 +1,65 @@
+/*!
+ \file gd32f30x_libopt.h
+ \brief library optional for gd32f30x
+
+ \version 2021-03-23, V2.0.0, demo for GD32F30x
+*/
+
+/*
+ Copyright (c) 2021, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32F30X_LIBOPT_H
+#define GD32F30X_LIBOPT_H
+
+#include "gd32f30x_rcu.h"
+#include "gd32f30x_adc.h"
+#include "gd32f30x_can.h"
+#include "gd32f30x_crc.h"
+#include "gd32f30x_ctc.h"
+#include "gd32f30x_dac.h"
+#include "gd32f30x_dbg.h"
+#include "gd32f30x_dma.h"
+#include "gd32f30x_exti.h"
+#include "gd32f30x_fmc.h"
+#include "gd32f30x_fwdgt.h"
+#include "gd32f30x_gpio.h"
+#include "gd32f30x_i2c.h"
+#include "gd32f30x_pmu.h"
+#include "gd32f30x_bkp.h"
+#include "gd32f30x_rtc.h"
+#include "gd32f30x_sdio.h"
+#include "gd32f30x_spi.h"
+#include "gd32f30x_timer.h"
+#include "gd32f30x_usart.h"
+#include "gd32f30x_wwdgt.h"
+#include "gd32f30x_misc.h"
+#include "gd32f30x_exmc.h"
+#ifdef GD32F30X_CL
+#include "gd32f30x_enet.h"
+#endif /* GD32F30X_CL */
+
+#endif /* GD32F30X_LIBOPT_H */
diff --git a/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.icf
new file mode 100644
index 0000000000..498c2369e2
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.icf
@@ -0,0 +1,40 @@
+/*###ICF### Section handled by ICF editor, don't touch! ****/
+/*-Editor annotation file-*/
+/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
+/*-Specials-*/
+define symbol __ICFEDIT_intvec_start__ = 0x08000000;
+/*-Memory Regions-*/
+define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
+define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF;
+define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
+define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF;
+/*-Sizes-*/
+define symbol __ICFEDIT_size_cstack__ = 0x200;
+define symbol __ICFEDIT_size_heap__ = 0x200;
+/**** End of ICF editor section. ###ICF###*/
+
+export symbol __ICFEDIT_region_RAM_end__;
+
+define symbol __region_RAM1_start__ = 0x10000000;
+define symbol __region_RAM1_end__ = 0x1000FFFF;
+
+define memory mem with size = 4G;
+define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
+define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
+define region RAM1_region = mem:[from __region_RAM1_start__ to __region_RAM1_end__];
+
+define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
+define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
+
+initialize by copy { readwrite };
+do not initialize { section .noinit };
+
+keep { section FSymTab };
+keep { section VSymTab };
+keep { section .rti_fn* };
+place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+
+place in ROM_region { readonly };
+place in RAM_region { readwrite,
+ block CSTACK, block HEAP };
+place in RAM1_region { section .sram };
\ No newline at end of file
diff --git a/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.ld
new file mode 100644
index 0000000000..aa1aaaec2c
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.ld
@@ -0,0 +1,142 @@
+/*
+ * linker script for GD32F30x with GNU ld
+ * BruceOu 2022-05-03
+ */
+
+/* Program Entry, set to mark it as "used" and avoid gc */
+MEMORY
+{
+ CODE (rx) : ORIGIN = 0x08000000, LENGTH = 512k /* 512KB flash */
+ DATA (rw) : ORIGIN = 0x20000000, LENGTH = 96k /* 96KB sram */
+}
+ENTRY(Reset_Handler)
+_system_stack_size = 0x200;
+
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _stext = .;
+ KEEP(*(.isr_vector)) /* Startup code */
+ . = ALIGN(4);
+ *(.text) /* remaining code */
+ *(.text.*) /* remaining code */
+ *(.rodata) /* read-only data (constants) */
+ *(.rodata*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.gnu.linkonce.t*)
+
+ /* section information for finsh shell */
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ KEEP(*(FSymTab))
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ KEEP(*(VSymTab))
+ __vsymtab_end = .;
+ . = ALIGN(4);
+
+ /* section information for initial. */
+ . = ALIGN(4);
+ __rt_init_start = .;
+ KEEP(*(SORT(.rti_fn*)))
+ __rt_init_end = .;
+ . = ALIGN(4);
+
+ . = ALIGN(4);
+ _etext = .;
+ } > CODE = 0
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ __exidx_start = .;
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+
+ /* This is used by the startup in order to initialize the .data secion */
+ _sidata = .;
+ } > CODE
+ __exidx_end = .;
+
+ /* .data section which is used for initialized data */
+
+ .data : AT (_sidata)
+ {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .data secion */
+ _sdata = . ;
+
+ *(.data)
+ *(.data.*)
+ *(.gnu.linkonce.d*)
+
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .data secion */
+ _edata = . ;
+ } >DATA
+
+ .stack :
+ {
+ . = . + _system_stack_size;
+ . = ALIGN(4);
+ _estack = .;
+ } >DATA
+
+ __bss_start = .;
+ .bss :
+ {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _sbss = .;
+
+ *(.bss)
+ *(.bss.*)
+ *(COMMON)
+
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _ebss = . ;
+
+ *(.bss.init)
+ } > DATA
+ __bss_end = .;
+
+ _end = .;
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ /* DWARF debug sections.
+ * Symbols in the DWARF debugging sections are relative to the beginning
+ * of the section so we begin them at 0. */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+}
diff --git a/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.sct
new file mode 100644
index 0000000000..6afcafa346
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/board/linker_scripts/link.sct
@@ -0,0 +1,15 @@
+; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x08000000 0x00080000 { ; load region size_region
+ ER_IROM1 0x08000000 0x00080000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+ RW_IRAM1 0x20000000 0x00018000 { ; RW data
+ .ANY (+RW +ZI)
+ }
+}
+
diff --git a/bsp/gd32/arm/gd32307e-start/figures/board.jpg b/bsp/gd32/arm/gd32307e-start/figures/board.jpg
new file mode 100644
index 0000000000..1b333a070a
Binary files /dev/null and b/bsp/gd32/arm/gd32307e-start/figures/board.jpg differ
diff --git a/bsp/gd32/arm/gd32307e-start/project.ewd b/bsp/gd32/arm/gd32307e-start/project.ewd
new file mode 100644
index 0000000000..7b40c0e00a
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32307e-start/project.ewp b/bsp/gd32/arm/gd32307e-start/project.ewp
new file mode 100644
index 0000000000..effeedbc85
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/project.ewp
@@ -0,0 +1,2316 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 112
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\IAR\startup_gd32f30x_cl.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32307e-start/project.eww b/bsp/gd32/arm/gd32307e-start/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32307e-start/project.uvoptx b/bsp/gd32/arm/gd32307e-start/project.uvoptx
new file mode 100644
index 0000000000..af76758d40
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/project.uvoptx
@@ -0,0 +1,784 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 0
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F30x_CL -FL080000 -FS08000000 -FP0($$Device:GD32F307VE$Flash\GD32F30x_CL.FLM)
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
+ startup_gd32f30x_cl.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+ system_gd32f30x.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+ gd32f30x_rcu.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+ gd32f30x_usart.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+ gd32f30x_exti.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+ gd32f30x_gpio.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+ gd32f30x_misc.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/arm/gd32307e-start/project.uvproj b/bsp/gd32/arm/gd32307e-start/project.uvproj
new file mode 100644
index 0000000000..b1dc6a8cd4
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/project.uvproj
@@ -0,0 +1,758 @@
+
+
+ 1.1
+ ### uVision Project, (C) Keil Software
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 0
+
+
+ GD32F307VE
+ GigaDevice
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
+
+ "Startup\GD\GD32F30x\startup_gd32f30x_cl.s" ("GD32F30x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000)
+ 0
+ gd32f30x.h
+
+
+
+
+
+
+
+
+
+ SFD\GD\GD32F30x\GD32F30x_CL.SFR
+ 0
+ 0
+
+
+
+ GD\GD32F30x\
+ GD\GD32F30x\
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\output\
+ rtthread
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\build\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -REMAP
+ DCM.DLL
+ -pCM3
+ SARMCM3.DLL
+
+ TCM.DLL
+ -pCM3
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 1
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x300000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ USE_STDPERIPH_DRIVER, GD32F30X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Include;..\libraries\GD32F30x_Firmware_Library\CMSIS;..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+
+
+ main.c
+ 1
+ applications\main.c
+
+
+
+
+ Compiler
+
+
+ syscall_mem.c
+ 1
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+
+
+
+
+ syscalls.c
+ 1
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+
+
+
+
+ stdlib.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+
+
+ time.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+
+ CPU
+
+
+ showmem.c
+ 1
+ ..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+
+ backtrace.c
+ 1
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+
+
+ div0.c
+ 1
+ ..\..\..\..\libcpu\arm\common\div0.c
+
+
+
+
+ context_rvds.S
+ 2
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+
+
+
+
+ cpuport.c
+ 1
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+
+
+ DeviceDrivers
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+
+
+ pin.c
+ 1
+ ..\..\..\..\components\drivers\misc\pin.c
+
+
+
+
+ serial.c
+ 1
+ ..\..\..\..\components\drivers\serial\serial.c
+
+
+
+
+ Drivers
+
+
+ startup_gd32f30x_cl.s
+ 2
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
+
+
+
+
+ board.c
+ 1
+ board\board.c
+
+
+
+
+ drv_gpio.c
+ 1
+ ..\libraries\gd32_drivers\drv_gpio.c
+
+
+
+
+ drv_usart.c
+ 1
+ ..\libraries\gd32_drivers\drv_usart.c
+
+
+
+
+ Finsh
+
+
+ shell.c
+ 1
+ ..\..\..\..\components\finsh\shell.c
+
+
+
+
+ msh.c
+ 1
+ ..\..\..\..\components\finsh\msh.c
+
+
+
+
+ cmd.c
+ 1
+ ..\..\..\..\components\finsh\cmd.c
+
+
+
+
+ Kernel
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
+
+
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
+
+
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
+
+
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
+
+
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+
+
+ Libraries
+
+
+ system_gd32f30x.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+
+
+
+
+ gd32f30x_rcu.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+
+
+
+
+ gd32f30x_usart.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+
+
+
+
+ gd32f30x_exti.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+
+
+
+
+ gd32f30x_gpio.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+
+
+
+
+ gd32f30x_misc.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+
+
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32307e-start/project.uvprojx b/bsp/gd32/arm/gd32307e-start/project.uvprojx
new file mode 100644
index 0000000000..8bece19b3a
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/project.uvprojx
@@ -0,0 +1,683 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::.\ARMCC
+ 0
+
+
+ GD32F307VE
+ GigaDevice
+ GigaDevice.GD32F30x_DFP.2.2.0
+ http://gd32mcu.com/data/documents/pack/
+ IRAM(0x20000000,0x018000) IROM(0x08000000,0x080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL080000 -FP0($$Device:GD32F307VE$Flash\GD32F30x_CL.FLM))
+ 0
+ $$Device:GD32F307VE$Device\Include\gd32f30x.h
+
+
+
+
+
+
+
+
+
+ $$Device:GD32F307VE$SVD\GD32F30x_CL.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\build\
+ rtthread
+ 1
+ 0
+ 0
+ 1
+ 0
+ .\build\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ fromelf --bin !L --output rtthread.bin
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 0
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x18000
+
+
+ 1
+ 0x8000000
+ 0x80000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x80000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x18000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ USE_STDPERIPH_DRIVER, GD32F30X_CL, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Include;..\libraries\GD32F30x_Firmware_Library\CMSIS;..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ .\gd32_rom.ld
+
+
+
+
+
+
+
+
+
+
+ Applications
+
+
+ main.c
+ 1
+ applications\main.c
+
+
+
+
+ Compiler
+
+
+ syscall_mem.c
+ 1
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+
+
+ syscalls.c
+ 1
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+
+
+ time.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\time.c
+
+
+ stdlib.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+
+
+ CPU
+
+
+ div0.c
+ 1
+ ..\..\..\..\libcpu\arm\common\div0.c
+
+
+ showmem.c
+ 1
+ ..\..\..\..\libcpu\arm\common\showmem.c
+
+
+ backtrace.c
+ 1
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ context_rvds.S
+ 2
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+
+
+ cpuport.c
+ 1
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+
+
+ DeviceDrivers
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ ringbuffer.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ pin.c
+ 1
+ ..\..\..\..\components\drivers\misc\pin.c
+
+
+ serial.c
+ 1
+ ..\..\..\..\components\drivers\serial\serial.c
+
+
+
+
+ Drivers
+
+
+ startup_gd32f30x_cl.s
+ 2
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
+
+
+ board.c
+ 1
+ board\board.c
+
+
+ drv_gpio.c
+ 1
+ ..\libraries\gd32_drivers\drv_gpio.c
+
+
+ drv_usart.c
+ 1
+ ..\libraries\gd32_drivers\drv_usart.c
+
+
+
+
+ Finsh
+
+
+ shell.c
+ 1
+ ..\..\..\..\components\finsh\shell.c
+
+
+ msh.c
+ 1
+ ..\..\..\..\components\finsh\msh.c
+
+
+ cmd.c
+ 1
+ ..\..\..\..\components\finsh\cmd.c
+
+
+
+
+ Kernel
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
+
+
+ thread.c
+ 1
+ ..\..\..\..\src\thread.c
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+ timer.c
+ 1
+ ..\..\..\..\src\timer.c
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+
+
+ Libraries
+
+
+ system_gd32f30x.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
+
+
+ gd32f30x_rcu.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
+
+
+ gd32f30x_usart.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
+
+
+ gd32f30x_exti.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
+
+
+ gd32f30x_gpio.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
+
+
+ gd32f30x_misc.c
+ 1
+ ..\libraries\GD32F30x_Firmware_Library\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
+
+
+
+
+ ::CMSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32307e-start/rtconfig.h b/bsp/gd32/arm/gd32307e-start/rtconfig.h
new file mode 100644
index 0000000000..79841232f1
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/rtconfig.h
@@ -0,0 +1,207 @@
+#ifndef RT_CONFIG_H__
+#define RT_CONFIG_H__
+
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Configuration */
+
+/* RT-Thread Kernel */
+
+#define RT_NAME_MAX 8
+#define RT_ALIGN_SIZE 4
+#define RT_THREAD_PRIORITY_32
+#define RT_THREAD_PRIORITY_MAX 32
+#define RT_TICK_PER_SECOND 100
+#define RT_USING_OVERFLOW_CHECK
+#define RT_USING_HOOK
+#define RT_HOOK_USING_FUNC_PTR
+#define RT_USING_IDLE_HOOK
+#define RT_IDLE_HOOK_LIST_SIZE 4
+#define IDLE_THREAD_STACK_SIZE 256
+
+/* kservice optimization */
+
+#define RT_DEBUG
+#define RT_DEBUG_COLOR
+
+/* Inter-Thread communication */
+
+#define RT_USING_SEMAPHORE
+#define RT_USING_MUTEX
+#define RT_USING_EVENT
+#define RT_USING_MAILBOX
+#define RT_USING_MESSAGEQUEUE
+
+/* Memory Management */
+
+#define RT_USING_MEMPOOL
+#define RT_USING_SMALL_MEM
+#define RT_USING_SMALL_MEM_AS_HEAP
+#define RT_USING_HEAP
+
+/* Kernel Device Object */
+
+#define RT_USING_DEVICE
+#define RT_USING_CONSOLE
+#define RT_CONSOLEBUF_SIZE 128
+#define RT_CONSOLE_DEVICE_NAME "uart1"
+#define RT_VER_NUM 0x40100
+
+/* RT-Thread Components */
+
+#define RT_USING_COMPONENTS_INIT
+#define RT_USING_USER_MAIN
+#define RT_MAIN_THREAD_STACK_SIZE 2048
+#define RT_MAIN_THREAD_PRIORITY 10
+
+/* C++ features */
+
+
+/* Command shell */
+
+#define RT_USING_FINSH
+#define RT_USING_MSH
+#define FINSH_USING_MSH
+#define FINSH_THREAD_NAME "tshell"
+#define FINSH_THREAD_PRIORITY 20
+#define FINSH_THREAD_STACK_SIZE 4096
+#define FINSH_USING_HISTORY
+#define FINSH_HISTORY_LINES 5
+#define FINSH_USING_SYMTAB
+#define FINSH_CMD_SIZE 80
+#define MSH_USING_BUILT_IN_COMMANDS
+#define FINSH_USING_DESCRIPTION
+#define FINSH_ARG_MAX 10
+
+/* Device virtual file system */
+
+
+/* Device Drivers */
+
+#define RT_USING_DEVICE_IPC
+#define RT_USING_SYSTEM_WORKQUEUE
+#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
+#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
+#define RT_USING_SERIAL
+#define RT_USING_SERIAL_V1
+#define RT_SERIAL_USING_DMA
+#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_PIN
+
+/* Using USB */
+
+
+/* POSIX layer and C standard library */
+
+#define RT_LIBC_DEFAULT_TIMEZONE 8
+
+/* POSIX (Portable Operating System Interface) layer */
+
+
+/* Interprocess Communication (IPC) */
+
+
+/* Socket is in the 'Network' category */
+
+/* Network */
+
+
+/* VBUS(Virtual Software BUS) */
+
+
+/* Utilities */
+
+
+/* RT-Thread Utestcases */
+
+
+/* RT-Thread online packages */
+
+/* IoT - internet of things */
+
+
+/* Wi-Fi */
+
+/* Marvell WiFi */
+
+
+/* Wiced WiFi */
+
+
+/* IoT Cloud */
+
+
+/* security packages */
+
+
+/* language packages */
+
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
+
+/* multimedia packages */
+
+/* LVGL: powerful and easy-to-use embedded GUI library */
+
+
+/* u8g2: a monochrome graphic library */
+
+
+/* PainterEngine: A cross-platform graphics application framework written in C language */
+
+
+/* tools packages */
+
+
+/* system packages */
+
+/* enhanced kernel services */
+
+
+/* POSIX extension functions */
+
+
+/* acceleration: Assembly language or algorithmic acceleration packages */
+
+
+/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
+
+
+/* Micrium: Micrium software products porting for RT-Thread */
+
+
+/* peripheral libraries and drivers */
+
+
+/* AI packages */
+
+
+/* miscellaneous packages */
+
+/* project laboratory */
+
+/* samples: kernel and components samples */
+
+
+/* entertainment: terminal games and other interesting software packages */
+
+
+/* Hardware Drivers Config */
+
+#define SOC_SERIES_GD32F30x
+#define SOC_GD32307E
+
+/* Onboard Peripheral Drivers */
+
+/* On-chip Peripheral Drivers */
+
+#define BSP_USING_GPIO
+#define BSP_USING_UART
+#define BSP_USING_UART1
+
+/* Board extended module Drivers */
+
+
+#endif
diff --git a/bsp/gd32/gd32407v-start/rtconfig.py b/bsp/gd32/arm/gd32307e-start/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32407v-start/rtconfig.py
rename to bsp/gd32/arm/gd32307e-start/rtconfig.py
index 2075890edf..a91905a233 100644
--- a/bsp/gd32/gd32407v-start/rtconfig.py
+++ b/bsp/gd32/arm/gd32307e-start/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32307e-start/template.ewp b/bsp/gd32/arm/gd32307e-start/template.ewp
new file mode 100644
index 0000000000..45f5f4f799
--- /dev/null
+++ b/bsp/gd32/arm/gd32307e-start/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32103c-eval/template.uvoptx b/bsp/gd32/arm/gd32307e-start/template.uvoptx
similarity index 97%
rename from bsp/gd32/gd32103c-eval/template.uvoptx
rename to bsp/gd32/arm/gd32307e-start/template.uvoptx
index e99a756fe7..74f85b97bc 100644
--- a/bsp/gd32/gd32103c-eval/template.uvoptx
+++ b/bsp/gd32/arm/gd32307e-start/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -73,7 +73,7 @@
0
- 1
+ 0
0
1
@@ -120,7 +120,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM)
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F30x_CL -FL080000 -FS08000000 -FP0($$Device:GD32F307VE$Flash\GD32F30x_CL.FLM)
diff --git a/bsp/gd32/gd32450i-eval/template.uvproj b/bsp/gd32/arm/gd32307e-start/template.uvproj
similarity index 75%
rename from bsp/gd32/gd32450i-eval/template.uvproj
rename to bsp/gd32/arm/gd32307e-start/template.uvproj
index 40e80c8971..93d90e478e 100644
--- a/bsp/gd32/gd32450i-eval/template.uvproj
+++ b/bsp/gd32/arm/gd32307e-start/template.uvproj
@@ -13,14 +13,14 @@
0
- GD32F450IK
+ GD32F307VE
GigaDevice
- IRAM(0x20000000-0x20030000) IROM(0x08000000-0x08300000) CLOCK(20000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20018000) IROM(0x08000000-0x08040000) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
- "Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
- UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000)
+ "Startup\GD\GD32F30x\startup_gd32f30x_cl.s" ("GD32F30x Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000)
0
- gd32f4xx0.h
+ gd32f30x.h
@@ -30,14 +30,14 @@
- SFD\GD\GD32F4xx\GD32F4xx.SFR
+ SFD\GD\GD32F30x\GD32F30x_CL.SFR
0
0
- GD\GD32F4xx\
- GD\GD32F4xx\
+ GD\GD32F30x\
+ GD\GD32F30x\
0
0
@@ -375,7 +375,7 @@
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Include;..\..\..\Library\Firmware\CMSIS\GD\GD32F4xx\Include;..\..\..\Library\Utilities;..\
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Include;..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Include;..\..\..\Library\Utilities;..\
@@ -425,9 +425,9 @@
..\main.c
- gd32f4xx_it.c
+ gd32f30x_it.c
1
- ..\gd32f4xx_it.c
+ ..\gd32f30x_it.c
@@ -435,169 +435,169 @@
CMSIS
- system_gd32f4xx.c
+ system_gd32f30x.c
1
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Source\system_gd32f30x.c
- GD32F4xx_Peripherals
+ GD32F30x_Peripherals
- gd32f4xx_adc.c
+ gd32f30x_adc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_adc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_adc.c
- gd32f4xx_can.c
+ gd32f30x_can.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_can.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_can.c
- gd32f4xx_crc.c
+ gd32f30x_crc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_crc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_crc.c
- gd32f4xx_ctc.c
+ gd32f30x_ctc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_ctc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_ctc.c
- gd32f4xx_dac.c
+ gd32f30x_dac.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_dac.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_dac.c
- gd32f4xx_dbg.c
+ gd32f30x_dbg.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_dbg.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_dbg.c
- gd32f4xx_dci.c
+ gd32f30x_dci.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_dci.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_dci.c
- gd32f4xx_dma.c
+ gd32f30x_dma.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_dma.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_dma.c
- gd32f4xx_enet.c
+ gd32f30x_enet.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_enet.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_enet.c
- gd32f4xx_exmc.c
+ gd32f30x_exmc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_exmc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_exmc.c
- gd32f4xx_exti.c
+ gd32f30x_exti.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_exti.c
- gd32f4xx_fmc.c
+ gd32f30x_fmc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_fmc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_fmc.c
- gd32f4xx_fwdgt.c
+ gd32f30x_fwdgt.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_fwdgt.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_fwdgt.c
- gd32f4xx_gpio.c
+ gd32f30x_gpio.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_gpio.c
- gd32f4xx_i2c.c
+ gd32f30x_i2c.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_i2c.c
- gd32f4xx_ipa.c
+ gd32f30x_ipa.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_ipa.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_ipa.c
- gd32f4xx_iref.c
+ gd32f30x_iref.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_iref.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_iref.c
- gd32f4xx_misc.c
+ gd32f30x_misc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_misc.c
- gd32f4xx_pmu.c
+ gd32f30x_pmu.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_pmu.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_pmu.c
- gd32f4xx_rcu.c
+ gd32f30x_rcu.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_rcu.c
- gd32f4xx_rtc.c
+ gd32f30x_rtc.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_rtc.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_rtc.c
- gd32f4xx_sdio.c
+ gd32f30x_sdio.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_sdio.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_sdio.c
- gd32f4xx_spi.c
+ gd32f30x_spi.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_spi.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_spi.c
- gd32f4xx_syscfg.c
+ gd32f30x_syscfg.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_syscfg.c
- gd32f4xx_timer.c
+ gd32f30x_timer.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_timer.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_timer.c
- gd32f4xx_tli.c
+ gd32f30x_tli.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_tli.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_tli.c
- gd32f4xx_trng.c
+ gd32f30x_trng.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_trng.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_trng.c
- gd32f4xx_usart.c
+ gd32f30x_usart.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_usart.c
- gd32f4xx_wwdgt.c
+ gd32f30x_wwdgt.c
1
- ..\..\..\Library\Firmware\GD32F4xx_standard_peripheral\Source\gd32f4xx_wwdgt.c
+ ..\..\..\Library\Firmware\GD32F30x_standard_peripheral\Source\gd32f30x_wwdgt.c
- GD32F4xx_EVAL
+ GD32F30x_START
- gd32f450i_eval.c
+ gd32f305r_start.c
1
- ..\..\..\Library\Utilities\gd32f450i_eval.c
+ ..\..\..\Library\Utilities\gd32f305r_start.c
@@ -605,9 +605,9 @@
Startup
- startup_gd32f4xx.s
+ startup_gd32f30x_cl.s
2
- ..\..\..\Library\Firmware\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
+ ..\..\..\Library\Firmware\CMSIS\GD\GD32F30x\Source\ARM\startup_gd32f30x_cl.s
diff --git a/bsp/gd32/gd32450i-eval/template.uvprojx b/bsp/gd32/arm/gd32307e-start/template.uvprojx
similarity index 93%
rename from bsp/gd32/gd32450i-eval/template.uvprojx
rename to bsp/gd32/arm/gd32307e-start/template.uvprojx
index d5716156b4..b528108c9a 100644
--- a/bsp/gd32/gd32450i-eval/template.uvprojx
+++ b/bsp/gd32/arm/gd32307e-start/template.uvprojx
@@ -10,19 +10,20 @@
rt-thread
0x4
ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::.\ARMCC
0
- GD32F450IK
+ GD32F307VE
GigaDevice
- GigaDevice.GD32F4xx_DFP.2.1.0
+ GigaDevice.GD32F30x_DFP.2.2.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x040000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(20000000) ELITTLE
+ IRAM(0x20000000,0x018000) IROM(0x08000000,0x080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL080000 -FP0($$Device:GD32F307VE$Flash\GD32F30x_CL.FLM))
0
- $$Device:GD32F450IK$Device\Include\gd32f4xx.h
+ $$Device:GD32F307VE$Device\Include\gd32f30x.h
@@ -32,7 +33,7 @@
- $$Device:GD32F450IK$SVD\GD32F4xx.svd
+ $$Device:GD32F307VE$SVD\GD32F30x_CL.svd
0
0
@@ -188,12 +189,12 @@
0
0
8
- 0
+ 1
0
0
0
3
- 4
+ 3
0
0
0
@@ -245,12 +246,12 @@
0
0x20000000
- 0x40000
+ 0x18000
1
0x8000000
- 0x300000
+ 0x80000
0
@@ -275,7 +276,7 @@
1
0x8000000
- 0x300000
+ 0x80000
1
@@ -300,12 +301,12 @@
0
0x20000000
- 0x30000
+ 0x18000
0
- 0x10000000
- 0x10000
+ 0x0
+ 0x0
@@ -389,8 +390,8 @@
-
-
+
+
diff --git a/bsp/gd32/gd32407v-start/.config b/bsp/gd32/arm/gd32407v-start/.config
similarity index 96%
rename from bsp/gd32/gd32407v-start/.config
rename to bsp/gd32/arm/gd32407v-start/.config
index 8c3f9d4b13..5dd7d92bb1 100644
--- a/bsp/gd32/gd32407v-start/.config
+++ b/bsp/gd32/arm/gd32407v-start/.config
@@ -90,8 +90,17 @@ CONFIG_RT_USING_USER_MAIN=y
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
CONFIG_RT_MAIN_THREAD_PRIORITY=10
# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
+
+#
+# C++ features
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Command shell
+#
CONFIG_RT_USING_FINSH=y
+CONFIG_RT_USING_MSH=y
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_THREAD_NAME="tshell"
CONFIG_FINSH_THREAD_PRIORITY=20
@@ -105,8 +114,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
# CONFIG_FINSH_USING_AUTH is not set
CONFIG_FINSH_ARG_MAX=10
+
+#
+# Device virtual file system
+#
# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
#
# Device Drivers
@@ -155,7 +167,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_USB_DEVICE is not set
#
-# C/C++ and POSIX layer
+# POSIX layer and C standard library
#
CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
@@ -179,7 +191,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# Socket is in the 'Network' category
#
-# CONFIG_RT_USING_CPLUSPLUS is not set
#
# Network
@@ -189,6 +200,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_LWIP is not set
# CONFIG_RT_USING_AT is not set
+#
+# VBUS(Virtual Software BUS)
+#
+# CONFIG_RT_USING_VBUS is not set
+
#
# Utilities
#
@@ -197,7 +213,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_RT_USING_UTEST is not set
# CONFIG_RT_USING_VAR_EXPORT is not set
# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
#
# RT-Thread Utestcases
@@ -262,6 +277,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
# CONFIG_PKG_USING_NIMBLE is not set
# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -301,6 +317,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
#
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
@@ -340,6 +357,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_LVGL is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
#
# u8g2: a monochrome graphic library
@@ -414,6 +432,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_FDT is not set
# CONFIG_PKG_USING_CBOX is not set
# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
#
# system packages
@@ -445,6 +464,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
#
# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
#
@@ -487,6 +507,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_TINYUSB is not set
# CONFIG_PKG_USING_CHERRYUSB is not set
# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
#
# peripheral libraries and drivers
@@ -641,6 +662,8 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
# CONFIG_PKG_USING_CONTROLLER is not set
# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
#
# Hardware Drivers Config
@@ -668,6 +691,13 @@ CONFIG_BSP_USING_UART1=y
CONFIG_BSP_USING_I2C1=y
CONFIG_BSP_I2C1_SCL_PIN=24
CONFIG_BSP_I2C1_SDA_PIN=25
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_SDIO is not set
+# CONFIG_BSP_USING_USBD is not set
+# CONFIG_BSP_USING_USBH is not set
#
# Board extended module Drivers
diff --git a/bsp/gd32/arm/gd32407v-start/Kconfig b/bsp/gd32/arm/gd32407v-start/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/arm/gd32407v-start/README.md b/bsp/gd32/arm/gd32407v-start/README.md
new file mode 100644
index 0000000000..c08e06c584
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/README.md
@@ -0,0 +1,99 @@
+# GD32407V-START开发板BSP说明
+
+## 简介
+
+GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高主频高达168M,该开发板具有丰富的板载资源,可以充分发挥 GD32407V 的芯片性能。
+
+开发板外观如下图所示:
+
+
+
+该开发板常用 **板载资源** 如下:
+
+- GD32407VKT6,主频 168MHz,3072KB FLASH ,192KB RAM
+
+- 常用外设
+
+ - LED :2个,LED1 (电源指示灯),LED2(PC6)
+ - 按键:2个,K1(复位引脚),K2(用户按键,PA0)
+
+- 常用接口:USB 接口
+
+- 调试接口:GD-LINK
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **片上外设** | **支持情况** | **备注** |
+| :----------- | :----------: | :------------------------------ |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...81 |
+| UART | 支持 | UART0 - UART5 |
+| I2C | 支持 | I2C1 |
+| SPI | 支持 | SPI0 - SPI2 |
+| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC2 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+ 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+
+- 进阶使用
+
+ 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+### 快速上手
+
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+
+#### 硬件连接
+
+使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
+
+#### 编译下载
+
+双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
+
+> 工程默认配置使用 GD-Link 仿真器下载程序,在通过 GD-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板
+
+#### 运行结果
+
+下载程序成功之后,系统会自动运行,LED 闪烁。
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
+
+```bash
+ \ | /
+- RT - Thread Operating System
+ / | \ 4.0.4 build Jan 9 2021
+ 2006 - 2021 Copyright by rt-thread team
+msh >
+```
+
+### 进阶使用
+
+此 BSP 默认只开启了 GPIO 和 串口1的功能,如果需使用高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+
+1. 在 bsp 下打开 env 工具。
+
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+
+3. 输入`pkgs --update`命令更新软件包。
+
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
+
+## 注意事项
+
+暂无
+
+## 联系人信息
+
+维护人:
+
+- [BruceOu](https://github.com/Ouxiaolong/), 邮箱:
\ No newline at end of file
diff --git a/bsp/gd32/gd32450z-eval/SConscript b/bsp/gd32/arm/gd32407v-start/SConscript
similarity index 100%
rename from bsp/gd32/gd32450z-eval/SConscript
rename to bsp/gd32/arm/gd32407v-start/SConscript
diff --git a/bsp/gd32/gd32407v-start/SConstruct b/bsp/gd32/arm/gd32407v-start/SConstruct
similarity index 94%
rename from bsp/gd32/gd32407v-start/SConstruct
rename to bsp/gd32/arm/gd32407v-start/SConstruct
index 2e0cd022f1..36481e3cea 100644
--- a/bsp/gd32/gd32407v-start/SConstruct
+++ b/bsp/gd32/arm/gd32407v-start/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/gd32450z-eval/applications/SConscript b/bsp/gd32/arm/gd32407v-start/applications/SConscript
similarity index 100%
rename from bsp/gd32/gd32450z-eval/applications/SConscript
rename to bsp/gd32/arm/gd32407v-start/applications/SConscript
diff --git a/bsp/gd32/gd32407v-start/applications/main.c b/bsp/gd32/arm/gd32407v-start/applications/main.c
similarity index 100%
rename from bsp/gd32/gd32407v-start/applications/main.c
rename to bsp/gd32/arm/gd32407v-start/applications/main.c
diff --git a/bsp/gd32/gd32407v-start/board/Kconfig b/bsp/gd32/arm/gd32407v-start/board/Kconfig
similarity index 62%
rename from bsp/gd32/gd32407v-start/board/Kconfig
rename to bsp/gd32/arm/gd32407v-start/board/Kconfig
index 572e421de8..9bcff58577 100644
--- a/bsp/gd32/gd32407v-start/board/Kconfig
+++ b/bsp/gd32/arm/gd32407v-start/board/Kconfig
@@ -125,6 +125,91 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32407v-start/board/SConscript b/bsp/gd32/arm/gd32407v-start/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32407v-start/board/SConscript
rename to bsp/gd32/arm/gd32407v-start/board/SConscript
index 0d775ec7dc..171600e2e1 100644
--- a/bsp/gd32/gd32407v-start/board/SConscript
+++ b/bsp/gd32/arm/gd32407v-start/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s']
CPPDEFINES = ['GD32F407']
diff --git a/bsp/gd32/gd32407v-start/board/board.c b/bsp/gd32/arm/gd32407v-start/board/board.c
similarity index 100%
rename from bsp/gd32/gd32407v-start/board/board.c
rename to bsp/gd32/arm/gd32407v-start/board/board.c
diff --git a/bsp/gd32/gd32407v-start/board/board.h b/bsp/gd32/arm/gd32407v-start/board/board.h
similarity index 100%
rename from bsp/gd32/gd32407v-start/board/board.h
rename to bsp/gd32/arm/gd32407v-start/board/board.h
diff --git a/bsp/gd32/gd32407v-start/board/gd32f4xx_libopt.h b/bsp/gd32/arm/gd32407v-start/board/gd32f4xx_libopt.h
similarity index 100%
rename from bsp/gd32/gd32407v-start/board/gd32f4xx_libopt.h
rename to bsp/gd32/arm/gd32407v-start/board/gd32f4xx_libopt.h
diff --git a/bsp/gd32/gd32450z-eval/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.icf
similarity index 88%
rename from bsp/gd32/gd32450z-eval/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.icf
index be287f2c06..2dd20cf186 100644
--- a/bsp/gd32/gd32450z-eval/board/linker_scripts/link.icf
+++ b/bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.icf
@@ -7,10 +7,10 @@ define symbol __ICFEDIT_intvec_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x082FFFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF;
+define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF;
/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x2000;
-define symbol __ICFEDIT_size_heap__ = 0x2000;
+define symbol __ICFEDIT_size_cstack__ = 0x200;
+define symbol __ICFEDIT_size_heap__ = 0x200;
/**** End of ICF editor section. ###ICF###*/
export symbol __ICFEDIT_region_RAM_end__;
diff --git a/bsp/gd32/gd32407v-start/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.ld
similarity index 99%
rename from bsp/gd32/gd32407v-start/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.ld
index ec1c65c34e..331fdd7a86 100644
--- a/bsp/gd32/gd32407v-start/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.ld
@@ -1,6 +1,6 @@
/*
* linker script for GD32F4xx with GNU ld
- * bernard.xiong 2009-10-14
+ * BruceOu 2021-12-14
*/
/* Program Entry, set to mark it as "used" and avoid gc */
diff --git a/bsp/gd32/gd32407v-start/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32407v-start/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32407v-start/board/linker_scripts/link.sct
diff --git a/bsp/gd32/gd32407v-start/figures/board.jpg b/bsp/gd32/arm/gd32407v-start/figures/board.jpg
similarity index 100%
rename from bsp/gd32/gd32407v-start/figures/board.jpg
rename to bsp/gd32/arm/gd32407v-start/figures/board.jpg
diff --git a/bsp/gd32/arm/gd32407v-start/project.ewd b/bsp/gd32/arm/gd32407v-start/project.ewd
new file mode 100644
index 0000000000..428d928f12
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32407v-start/project.ewp b/bsp/gd32/arm/gd32407v-start/project.ewp
new file mode 100644
index 0000000000..d1cccc99f1
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/project.ewp
@@ -0,0 +1,2334 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\i2c\i2c-bit-ops.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\i2c\i2c_core.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\i2c\i2c_dev.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_soft_i2c.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\IAR\startup_gd32f4xx.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32407v-start/project.ewt b/bsp/gd32/arm/gd32407v-start/project.ewt
new file mode 100644
index 0000000000..03124a4a87
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/project.ewt
@@ -0,0 +1,3043 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-STAT
+ 515
+
+ 515
+
+ 0
+
+ 1
+ 600
+ 1
+ 6
+ 0
+ 1
+ 100
+ Debug\C-STAT
+
+
+ 2.3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RuntimeChecking
+ 0
+
+ 2
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-STAT
+ 515
+
+ 515
+
+ 0
+
+ 1
+ 600
+ 1
+ 6
+ 0
+ 1
+ 100
+ Release\C-STAT
+
+
+ 2.3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RuntimeChecking
+ 0
+
+ 2
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\i2c\i2c-bit-ops.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\i2c\i2c_core.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\i2c\i2c_dev.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_soft_i2c.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\IAR\startup_gd32f4xx.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32407v-start/project.eww b/bsp/gd32/arm/gd32407v-start/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32407v-start/project.uvoptx b/bsp/gd32/arm/gd32407v-start/project.uvoptx
new file mode 100644
index 0000000000..837f87095c
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/project.uvoptx
@@ -0,0 +1,856 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F4xx_3MB -FL0300000 -FS08000000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM)
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+ 3
+ 10
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\i2c\i2c_core.c
+ i2c_core.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\i2c\i2c_dev.c
+ i2c_dev.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\i2c\i2c-bit-ops.c
+ i2c-bit-ops.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 20
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 21
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 23
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
+ startup_gd32f4xx.s
+ 0
+ 0
+
+
+ 5
+ 24
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+ 5
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_soft_i2c.c
+ drv_soft_i2c.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
+ gd32f4xx_i2c.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+ gd32f4xx_syscfg.c
+ 0
+ 0
+
+
+ 8
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+ gd32f4xx_exti.c
+ 0
+ 0
+
+
+ 8
+ 47
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+ gd32f4xx_gpio.c
+ 0
+ 0
+
+
+ 8
+ 48
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+ gd32f4xx_rcu.c
+ 0
+ 0
+
+
+ 8
+ 49
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+ gd32f4xx_misc.c
+ 0
+ 0
+
+
+ 8
+ 50
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
+ gd32f4xx_usart.c
+ 0
+ 0
+
+
+ 8
+ 51
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+ system_gd32f4xx.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32407v-start/project.uvproj b/bsp/gd32/arm/gd32407v-start/project.uvproj
similarity index 99%
rename from bsp/gd32/gd32407v-start/project.uvproj
rename to bsp/gd32/arm/gd32407v-start/project.uvproj
index 14bf6ce052..726aa25f4d 100644
--- a/bsp/gd32/gd32407v-start/project.uvproj
+++ b/bsp/gd32/arm/gd32407v-start/project.uvproj
@@ -12,10 +12,10 @@
GD32F407VK
GigaDevice
- IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(16800000)
+ IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000)
"Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
0
gd32f4xx.h
@@ -425,13 +425,6 @@
Compiler
-
-
- syscalls.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
syscall_mem.c
@@ -441,9 +434,9 @@
- time.c
+ syscalls.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\components\libc\compilers\armlibc\syscalls.c
@@ -453,16 +446,16 @@
..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ time.c
+ 1
+ ..\..\..\components\libc\compilers\common\time.c
+
+
CPU
-
-
- div0.c
- 1
- ..\..\..\libcpu\arm\common\div0.c
-
-
showmem.c
@@ -479,9 +472,9 @@
- context_rvds.S
- 2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ div0.c
+ 1
+ ..\..\..\libcpu\arm\common\div0.c
@@ -491,6 +484,13 @@
..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ context_rvds.S
+ 2
+ ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+
+
DeviceDrivers
@@ -517,23 +517,9 @@
- pipe.c
+ completion.c
1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
+ ..\..\..\components\drivers\ipc\completion.c
@@ -550,6 +536,20 @@
..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ workqueue.c
+ 1
+ ..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+
+ pipe.c
+ 1
+ ..\..\..\components\drivers\ipc\pipe.c
+
+
ringbuffer.c
@@ -559,9 +559,9 @@
- completion.c
+ dataqueue.c
1
- ..\..\..\components\drivers\ipc\completion.c
+ ..\..\..\components\drivers\ipc\dataqueue.c
@@ -645,30 +645,9 @@
Kernel
- idle.c
+ components.c
1
- ..\..\..\src\idle.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
+ ..\..\..\src\components.c
@@ -678,6 +657,13 @@
..\..\..\src\timer.c
+
+
+ device.c
+ 1
+ ..\..\..\src\device.c
+
+
irq.c
@@ -687,9 +673,9 @@
- scheduler.c
+ mempool.c
1
- ..\..\..\src\scheduler.c
+ ..\..\..\src\mempool.c
@@ -699,6 +685,20 @@
..\..\..\src\ipc.c
+
+
+ mem.c
+ 1
+ ..\..\..\src\mem.c
+
+
+
+
+ clock.c
+ 1
+ ..\..\..\src\clock.c
+
+
kservice.c
@@ -715,23 +715,23 @@
- clock.c
+ scheduler.c
1
- ..\..\..\src\clock.c
+ ..\..\..\src\scheduler.c
- device.c
+ idle.c
1
- ..\..\..\src\device.c
+ ..\..\..\src\idle.c
- components.c
+ object.c
1
- ..\..\..\src\components.c
+ ..\..\..\src\object.c
diff --git a/bsp/gd32/gd32407v-start/project.uvprojx b/bsp/gd32/arm/gd32407v-start/project.uvprojx
similarity index 76%
rename from bsp/gd32/gd32407v-start/project.uvprojx
rename to bsp/gd32/arm/gd32407v-start/project.uvprojx
index 4ba51852ab..c10f5a0f9e 100644
--- a/bsp/gd32/gd32407v-start/project.uvprojx
+++ b/bsp/gd32/arm/gd32407v-start/project.uvprojx
@@ -1,7 +1,10 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
@@ -15,29 +18,29 @@
GigaDevice
GigaDevice.GD32F4xx_DFP.2.1.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(16800000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
+ IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
0
$$Device:GD32F407VK$Device\F4XX\Include\gd32f4xx.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F407VK$SVD\GD32F4xx.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -59,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -69,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -80,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -101,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -135,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -172,7 +175,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -306,7 +309,7 @@
0x10000
-
+
1
@@ -333,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F407, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -351,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -366,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -389,32 +392,26 @@
Compiler
-
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+
+
+ syscall_mem.c
+ 1
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
-
-
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
@@ -424,35 +421,27 @@
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
-
-
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
@@ -462,84 +451,62 @@
i2c_core.c
1
- ..\..\..\components\drivers\i2c\i2c_core.c
+ ..\..\..\..\components\drivers\i2c\i2c_core.c
-
-
i2c_dev.c
1
- ..\..\..\components\drivers\i2c\i2c_dev.c
+ ..\..\..\..\components\drivers\i2c\i2c_dev.c
-
-
i2c-bit-ops.c
1
- ..\..\..\components\drivers\i2c\i2c-bit-ops.c
+ ..\..\..\..\components\drivers\i2c\i2c-bit-ops.c
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
workqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ dataqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
-
-
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -551,29 +518,21 @@
2
..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
-
-
board.c
1
board\board.c
-
-
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
..\libraries\gd32_drivers\drv_usart.c
-
-
drv_soft_i2c.c
1
@@ -587,21 +546,17 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -611,91 +566,67 @@
object.c
1
- ..\..\..\src\object.c
+ ..\..\..\..\src\object.c
-
-
idle.c
1
- ..\..\..\src\idle.c
+ ..\..\..\..\src\idle.c
-
-
thread.c
1
- ..\..\..\src\thread.c
+ ..\..\..\..\src\thread.c
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
timer.c
1
- ..\..\..\src\timer.c
+ ..\..\..\..\src\timer.c
+
+
+ mem.c
+ 1
+ ..\..\..\..\src\mem.c
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
+
+
+ ipc.c
+ 1
+ ..\..\..\..\src\ipc.c
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
@@ -707,50 +638,36 @@
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
-
-
gd32f4xx_syscfg.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
-
-
gd32f4xx_exti.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
-
-
gd32f4xx_gpio.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
-
-
gd32f4xx_rcu.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
-
-
gd32f4xx_misc.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
-
-
gd32f4xx_usart.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
-
-
system_gd32f4xx.c
1
@@ -758,33 +675,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32407v-start/rtconfig.h b/bsp/gd32/arm/gd32407v-start/rtconfig.h
similarity index 95%
rename from bsp/gd32/gd32407v-start/rtconfig.h
rename to bsp/gd32/arm/gd32407v-start/rtconfig.h
index e904c8f094..dfc65383a1 100644
--- a/bsp/gd32/gd32407v-start/rtconfig.h
+++ b/bsp/gd32/arm/gd32407v-start/rtconfig.h
@@ -52,8 +52,14 @@
#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
+
+/* C++ features */
+
+
+/* Command shell */
+
#define RT_USING_FINSH
+#define RT_USING_MSH
#define FINSH_USING_MSH
#define FINSH_THREAD_NAME "tshell"
#define FINSH_THREAD_PRIORITY 20
@@ -66,6 +72,9 @@
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 10
+/* Device virtual file system */
+
+
/* Device Drivers */
#define RT_USING_DEVICE_IPC
@@ -83,7 +92,7 @@
/* Using USB */
-/* C/C++ and POSIX layer */
+/* POSIX layer and C standard library */
#define RT_LIBC_DEFAULT_TIMEZONE 8
@@ -95,10 +104,12 @@
/* Socket is in the 'Network' category */
-
/* Network */
+/* VBUS(Virtual Software BUS) */
+
+
/* Utilities */
diff --git a/bsp/gd32/gd32450i-eval/rtconfig.py b/bsp/gd32/arm/gd32407v-start/rtconfig.py
similarity index 95%
rename from bsp/gd32/gd32450i-eval/rtconfig.py
rename to bsp/gd32/arm/gd32407v-start/rtconfig.py
index c6165614cb..ba952e3598 100644
--- a/bsp/gd32/gd32450i-eval/rtconfig.py
+++ b/bsp/gd32/arm/gd32407v-start/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -43,7 +43,7 @@ if PLATFORM == 'gcc':
OBJDUMP = PREFIX + 'objdump'
OBJCPY = PREFIX + 'objcopy'
- DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -DGD32F450'
+ DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections'
CFLAGS = DEVICE + ' -Dgcc'
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.ld'
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
@@ -103,6 +103,7 @@ elif PLATFORM == 'iccarm':
TARGET_EXT = 'out'
DEVICE = '-Dewarm'
+ #DEVICE = ' -D USE_STDPERIPH_DRIVER' + ' -D GD32F407xK'
CFLAGS = DEVICE
CFLAGS += ' --diag_suppress Pa050'
@@ -125,8 +126,8 @@ elif PLATFORM == 'iccarm':
AFLAGS += ' -w+'
AFLAGS += ' -r'
AFLAGS += ' --cpu Cortex-M4'
- AFLAGS += ' --fpu VFPv4_sp'
AFLAGS += ' -S'
+ AFLAGS += ' --fpu VFPv4_sp'
if BUILD == 'debug':
CFLAGS += ' --debug'
diff --git a/bsp/gd32/arm/gd32407v-start/template.ewp b/bsp/gd32/arm/gd32407v-start/template.ewp
new file mode 100644
index 0000000000..c3cff156ac
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/template.ewp
@@ -0,0 +1,1889 @@
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32407v-start/template.uvoptx b/bsp/gd32/arm/gd32407v-start/template.uvoptx
new file mode 100644
index 0000000000..263c23a06e
--- /dev/null
+++ b/bsp/gd32/arm/gd32407v-start/template.uvoptx
@@ -0,0 +1,180 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC800 -FD20000000 -FF0GD32F4xx_3MB -FL0300000 -FS08000000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM)
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32407v-start/template.uvproj b/bsp/gd32/arm/gd32407v-start/template.uvproj
similarity index 98%
rename from bsp/gd32/gd32407v-start/template.uvproj
rename to bsp/gd32/arm/gd32407v-start/template.uvproj
index 69d95a4e29..deb72d33b0 100644
--- a/bsp/gd32/gd32407v-start/template.uvproj
+++ b/bsp/gd32/arm/gd32407v-start/template.uvproj
@@ -15,10 +15,10 @@
GD32F407VK
GigaDevice
- IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(16800000)
+ IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000)
"Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
0
gd32f4xx.h
diff --git a/bsp/gd32/gd32407v-start/template.uvprojx b/bsp/gd32/arm/gd32407v-start/template.uvprojx
similarity index 98%
rename from bsp/gd32/gd32407v-start/template.uvprojx
rename to bsp/gd32/arm/gd32407v-start/template.uvprojx
index dd4e87c945..a185b70851 100644
--- a/bsp/gd32/gd32407v-start/template.uvprojx
+++ b/bsp/gd32/arm/gd32407v-start/template.uvprojx
@@ -18,10 +18,10 @@
GigaDevice
GigaDevice.GD32F4xx_DFP.2.1.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(16800000) ELITTLE
+ IRAM(0x20000000,0x020000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM))
0
$$Device:GD32F407VK$Device\F4XX\Include\gd32f4xx.h
diff --git a/bsp/gd32/arm/gd32450z-eval/Kconfig b/bsp/gd32/arm/gd32450z-eval/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/gd32450z-eval/README.md b/bsp/gd32/arm/gd32450z-eval/README.md
similarity index 62%
rename from bsp/gd32/gd32450z-eval/README.md
rename to bsp/gd32/arm/gd32450z-eval/README.md
index 6b398d8661..198a828958 100644
--- a/bsp/gd32/gd32450z-eval/README.md
+++ b/bsp/gd32/arm/gd32450z-eval/README.md
@@ -12,7 +12,21 @@ GD32450Z-EVAL是-兆易创新推出的一款GD32F4XX系列的评估板,最高
- LED :3个,LED1 (PD4),LED2(PD5),LED3(PG3)
- 按键:2个,K1(PA0),K2(PC13),K3(PB14)
-
+ - General TM * 10、Advanced TM * 2、Basic TM * 2
+ - 系统时钟 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - USART * 4、UART * 4
+ - I2C * 3、I2S * 2
+ - SPI * 6
+ - CAN2.0B * 2
+ - USB2.0 OTG * 2
+ - 以太网 * 1
+ - TFT-LCD
+ - EXMC/SDRAM * 1
+ - ADC * 3
+ - DAC * 2
+ - 最多支持114GPIOs
- 常用接口:USB 接口
- 调试接口:GD-LINK
@@ -21,15 +35,16 @@ GD32450Z-EVAL是-兆易创新推出的一款GD32F4XX系列的评估板,最高
本 BSP 目前对外设的支持情况如下:
-| **片上外设** | **支持情况** | **备注** |
-|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART | 支持 | UART0 - UART7 |
-| I2C | 支持 | I2C1 |
-| SPI | 支持 | SPI0 - SPI2 |
-| SPI FLASH | 支持 | |
-| **扩展模块** | **支持情况** | **备注** |
-| 暂无 | 暂不支持 | 暂不支持 |
+| **片上外设** | **支持情况** | **备注** |
+| :----------- | :----------: | :------------------------------- |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...113 |
+| UART | 支持 | UART0 - UART7 |
+| I2C | 支持 | I2C1 |
+| SPI | 支持 | SPI0 - SPI2 |
+| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC2 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
## 使用说明
@@ -45,11 +60,11 @@ GD32450Z-EVAL是-兆易创新推出的一款GD32F4XX系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
#### 硬件连接
-使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
+使用数据线连接开发板到 PC,使用USB转232连接USART0,打开电源开关。
#### 编译下载
@@ -81,7 +96,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
## 注意事项
diff --git a/bsp/gd32/arm/gd32450z-eval/SConscript b/bsp/gd32/arm/gd32450z-eval/SConscript
new file mode 100644
index 0000000000..20f7689c53
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/SConscript
@@ -0,0 +1,15 @@
+# for module compiling
+import os
+Import('RTT_ROOT')
+from building import *
+
+cwd = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+
+for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')
diff --git a/bsp/gd32/gd32450i-eval/SConstruct b/bsp/gd32/arm/gd32450z-eval/SConstruct
similarity index 94%
rename from bsp/gd32/gd32450i-eval/SConstruct
rename to bsp/gd32/arm/gd32450z-eval/SConstruct
index 2e0cd022f1..36481e3cea 100644
--- a/bsp/gd32/gd32450i-eval/SConstruct
+++ b/bsp/gd32/arm/gd32450z-eval/SConstruct
@@ -5,7 +5,7 @@ import rtconfig
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
try:
@@ -26,7 +26,7 @@ env = Environment(tools = ['mingw'],
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-if rtconfig.PLATFORM in ['iccarm']:
+if rtconfig.PLATFORM == 'iar':
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
env.Replace(ARFLAGS = [''])
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
diff --git a/bsp/gd32/arm/gd32450z-eval/applications/SConscript b/bsp/gd32/arm/gd32450z-eval/applications/SConscript
new file mode 100644
index 0000000000..01eb940dfb
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/applications/SConscript
@@ -0,0 +1,11 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = os.path.join(str(Dir('#')), 'applications')
+src = Glob('*.c')
+CPPPATH = [cwd, str(Dir('#'))]
+
+group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/bsp/gd32/gd32450z-eval/applications/main.c b/bsp/gd32/arm/gd32450z-eval/applications/main.c
similarity index 91%
rename from bsp/gd32/gd32450z-eval/applications/main.c
rename to bsp/gd32/arm/gd32450z-eval/applications/main.c
index 5ce66c9b0c..916f6b8a89 100644
--- a/bsp/gd32/gd32450z-eval/applications/main.c
+++ b/bsp/gd32/arm/gd32450z-eval/applications/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32450z-eval/board/Kconfig b/bsp/gd32/arm/gd32450z-eval/board/Kconfig
similarity index 66%
rename from bsp/gd32/gd32450z-eval/board/Kconfig
rename to bsp/gd32/arm/gd32450z-eval/board/Kconfig
index c74455ad92..c32001e040 100644
--- a/bsp/gd32/gd32450z-eval/board/Kconfig
+++ b/bsp/gd32/arm/gd32450z-eval/board/Kconfig
@@ -29,7 +29,7 @@ menu "On-chip Peripheral Drivers"
if BSP_USING_UART
config BSP_USING_UART0
bool "Enable UART0"
- default n
+ default y
config BSP_UART0_RX_USING_DMA
bool "Enable UART0 RX DMA"
@@ -39,7 +39,7 @@ menu "On-chip Peripheral Drivers"
config BSP_USING_UART1
bool "Enable UART1"
- default y
+ default n
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
@@ -145,6 +145,91 @@ menu "On-chip Peripheral Drivers"
range 1 216
default 25
endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ config BSP_USING_SDIO
+ bool "Enable SDIO"
+ select RT_USING_SDIO
+ select RT_USING_DFS
+ default n
+
+ config BSP_USING_USBD
+ bool "Enable USB Device"
+ select RT_USING_USB_DEVICE
+ default n
+
+ menuconfig BSP_USING_USBH
+ bool "Enable USB Host"
+ select RT_USING_USB_HOST
+ default n
+ if BSP_USING_USBH
+ menuconfig RT_USBH_MSTORAGE
+ bool "Enable Udisk Drivers"
+ default n
+ if RT_USBH_MSTORAGE
+ config UDISK_MOUNTPOINT
+ string "Udisk mount dir"
+ default "/"
+ endif
+ endif
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
diff --git a/bsp/gd32/gd32450i-eval/board/SConscript b/bsp/gd32/arm/gd32450z-eval/board/SConscript
similarity index 84%
rename from bsp/gd32/gd32450i-eval/board/SConscript
rename to bsp/gd32/arm/gd32450z-eval/board/SConscript
index cc9fd76fbd..77a18f74e1 100644
--- a/bsp/gd32/gd32450i-eval/board/SConscript
+++ b/bsp/gd32/arm/gd32450z-eval/board/SConscript
@@ -15,11 +15,11 @@ path = [cwd]
startup_path_prefix = SDK_LIB
-if rtconfig.PLATFORM in ['gcc']:
+if rtconfig.CROSS_TOOL == 'gcc':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
+elif rtconfig.CROSS_TOOL == 'keil':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['iccarm']:
+elif rtconfig.CROSS_TOOL == 'iar':
src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s']
CPPDEFINES = ['GD32F450']
diff --git a/bsp/gd32/gd32450z-eval/board/board.c b/bsp/gd32/arm/gd32450z-eval/board/board.c
similarity index 96%
rename from bsp/gd32/gd32450z-eval/board/board.c
rename to bsp/gd32/arm/gd32450z-eval/board/board.c
index 0e9f89865a..8331a86841 100644
--- a/bsp/gd32/gd32450z-eval/board/board.c
+++ b/bsp/gd32/arm/gd32450z-eval/board/board.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32450z-eval/board/board.h b/bsp/gd32/arm/gd32450z-eval/board/board.h
similarity index 95%
rename from bsp/gd32/gd32450z-eval/board/board.h
rename to bsp/gd32/arm/gd32450z-eval/board/board.h
index 59e00a88ca..70ad21024d 100644
--- a/bsp/gd32/gd32450z-eval/board/board.h
+++ b/bsp/gd32/arm/gd32450z-eval/board/board.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/bsp/gd32/gd32450i-eval/board/gd32f4xx_libopt.h b/bsp/gd32/arm/gd32450z-eval/board/gd32f4xx_libopt.h
similarity index 100%
rename from bsp/gd32/gd32450i-eval/board/gd32f4xx_libopt.h
rename to bsp/gd32/arm/gd32450z-eval/board/gd32f4xx_libopt.h
diff --git a/bsp/gd32/gd32407v-start/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.icf
similarity index 94%
rename from bsp/gd32/gd32407v-start/board/linker_scripts/link.icf
rename to bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.icf
index 1741be6a71..c32661c11b 100644
--- a/bsp/gd32/gd32407v-start/board/linker_scripts/link.icf
+++ b/bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.icf
@@ -7,7 +7,7 @@ define symbol __ICFEDIT_intvec_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x082FFFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
+define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x2000;
define symbol __ICFEDIT_size_heap__ = 0x2000;
diff --git a/bsp/gd32/gd32450i-eval/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.ld
similarity index 99%
rename from bsp/gd32/gd32450i-eval/board/linker_scripts/link.ld
rename to bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.ld
index f39b59d02d..a69ea2837a 100644
--- a/bsp/gd32/gd32450i-eval/board/linker_scripts/link.ld
+++ b/bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.ld
@@ -1,6 +1,6 @@
/*
* linker script for GD32F4xx with GNU ld
- * bernard.xiong 2009-10-14
+ * BruceOu 2021-12-14
*/
/* Program Entry, set to mark it as "used" and avoid gc */
diff --git a/bsp/gd32/gd32450z-eval/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.sct
similarity index 100%
rename from bsp/gd32/gd32450z-eval/board/linker_scripts/link.sct
rename to bsp/gd32/arm/gd32450z-eval/board/linker_scripts/link.sct
diff --git a/bsp/gd32/arm/gd32450z-eval/project.ewd b/bsp/gd32/arm/gd32450z-eval/project.ewd
new file mode 100644
index 0000000000..ff32f65ffb
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/project.ewd
@@ -0,0 +1,3056 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 1
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ C-SPY
+ 2
+
+ 32
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+ CADI_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 4
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+ IJET_ID
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JLINK_ID
+ 2
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ NULINK_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 3
+ 1
+ 0
+
+
+
+
+
+
+
+ STLINK_ID
+ 2
+
+ 7
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ TIFET_ID
+ 2
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XDS100_ID
+ 2
+
+ 8
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9BE.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
diff --git a/bsp/gd32/arm/gd32450z-eval/project.ewp b/bsp/gd32/arm/gd32450z-eval/project.ewp
new file mode 100644
index 0000000000..0b77ae33fc
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/project.ewp
@@ -0,0 +1,2321 @@
+
+
+ 3
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 33
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 64
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 33
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 37
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 11
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+ inputOutputBased
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 25
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\main.c
+
+
+
+ Compiler
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\stdlib.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\dlib\syscalls.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\libc\compilers\common\time.c
+
+
+
+ CPU
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\completion.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\misc\pin.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\pipe.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\drivers\ipc\workqueue.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\board\board.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\gd32_drivers\drv_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\IAR\startup_gd32f4xx.s
+
+
+
+ Finsh
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\msh.c
+
+
+ $PROJ_DIR$\..\..\..\..\components\finsh\shell.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\..\..\src\timer.c
+
+
+
+ Libraries
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
+
+
+ $PROJ_DIR$\..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+
+
+
+ POSIX
+
+
diff --git a/bsp/gd32/arm/gd32450z-eval/project.eww b/bsp/gd32/arm/gd32450z-eval/project.eww
new file mode 100644
index 0000000000..c2cb02eb1e
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/project.eww
@@ -0,0 +1,10 @@
+
+
+
+
+ $WS_DIR$\project.ewp
+
+
+
+
+
diff --git a/bsp/gd32/arm/gd32450z-eval/project.uvoptx b/bsp/gd32/arm/gd32450z-eval/project.uvoptx
new file mode 100644
index 0000000000..d1ac42416b
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/project.uvoptx
@@ -0,0 +1,806 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ rt-thread
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\build\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 255
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 3
+
+
+
+
+
+
+
+
+
+
+ BIN\CMSIS_AGDI.dll
+
+
+
+ 0
+ CMSIS_AGDI
+ -X"CMSIS-DAP" -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM)
+
+
+ 0
+ JL2CM3
+ -U59401765 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ Applications
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ applications\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ Compiler
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
+ syscalls.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ syscall_mem.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\time.c
+ time.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
+ stdlib.c
+ 0
+ 0
+
+
+
+
+ CPU
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\div0.c
+ div0.c
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\showmem.c
+ showmem.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\common\backtrace.c
+ backtrace.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ context_rvds.S
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ cpuport.c
+ 0
+ 0
+
+
+
+
+ DeviceDrivers
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+ ringbuffer.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\pipe.c
+ pipe.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
+ dataqueue.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+ waitqueue.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\completion.c
+ completion.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+ ringblk_buf.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\ipc\workqueue.c
+ workqueue.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\misc\pin.c
+ pin.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\drivers\serial\serial.c
+ serial.c
+ 0
+ 0
+
+
+
+
+ Drivers
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 20
+ 2
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
+ startup_gd32f4xx.s
+ 0
+ 0
+
+
+ 5
+ 21
+ 1
+ 0
+ 0
+ 0
+ board\board.c
+ board.c
+ 0
+ 0
+
+
+ 5
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_gpio.c
+ drv_gpio.c
+ 0
+ 0
+
+
+ 5
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\gd32_drivers\drv_usart.c
+ drv_usart.c
+ 0
+ 0
+
+
+
+
+ Finsh
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\shell.c
+ shell.c
+ 0
+ 0
+
+
+ 6
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\msh.c
+ msh.c
+ 0
+ 0
+
+
+ 6
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\finsh\cmd.c
+ cmd.c
+ 0
+ 0
+
+
+
+
+ Kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\ipc.c
+ ipc.c
+ 0
+ 0
+
+
+ 7
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\thread.c
+ thread.c
+ 0
+ 0
+
+
+ 7
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mem.c
+ mem.c
+ 0
+ 0
+
+
+ 7
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\kservice.c
+ kservice.c
+ 0
+ 0
+
+
+ 7
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\irq.c
+ irq.c
+ 0
+ 0
+
+
+ 7
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\mempool.c
+ mempool.c
+ 0
+ 0
+
+
+ 7
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\components.c
+ components.c
+ 0
+ 0
+
+
+ 7
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\timer.c
+ timer.c
+ 0
+ 0
+
+
+ 7
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\device.c
+ device.c
+ 0
+ 0
+
+
+ 7
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\idle.c
+ idle.c
+ 0
+ 0
+
+
+ 7
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\scheduler.c
+ scheduler.c
+ 0
+ 0
+
+
+ 7
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\clock.c
+ clock.c
+ 0
+ 0
+
+
+ 7
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\object.c
+ object.c
+ 0
+ 0
+
+
+
+
+ Libraries
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
+ gd32f4xx_syscfg.c
+ 0
+ 0
+
+
+ 8
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
+ gd32f4xx_exti.c
+ 0
+ 0
+
+
+ 8
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
+ gd32f4xx_gpio.c
+ 0
+ 0
+
+
+ 8
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
+ gd32f4xx_rcu.c
+ 0
+ 0
+
+
+ 8
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
+ gd32f4xx_misc.c
+ 0
+ 0
+
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
+ gd32f4xx_usart.c
+ 0
+ 0
+
+
+ 8
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
+ system_gd32f4xx.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/bsp/gd32/gd32450z-eval/project.uvproj b/bsp/gd32/arm/gd32450z-eval/project.uvproj
similarity index 87%
rename from bsp/gd32/gd32450z-eval/project.uvproj
rename to bsp/gd32/arm/gd32450z-eval/project.uvproj
index 54fc0812e2..46a67506a8 100644
--- a/bsp/gd32/gd32450z-eval/project.uvproj
+++ b/bsp/gd32/arm/gd32450z-eval/project.uvproj
@@ -12,7 +12,7 @@
GD32F450ZK
GigaDevice
- IRAM(0x20000000-0x20030000) IROM(0x08000000-0x08300000) CLOCK(20000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20030000) IRAM2(0x10000000-0x10010000) IROM(0x08000000-0x08300000) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
"Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000)
@@ -372,7 +372,7 @@
USE_STDPERIPH_DRIVER, GD32F450, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -427,30 +427,30 @@
Compiler
- syscall_mem.c
+ syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
- syscalls.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
stdlib.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
@@ -460,35 +460,35 @@
backtrace.c
1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
-
-
- showmem.c
- 1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\backtrace.c
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
+
+
+
+
+ showmem.c
+ 1
+ ..\..\..\..\libcpu\arm\common\showmem.c
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
@@ -498,63 +498,63 @@
dataqueue.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
completion.c
1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
+ ..\..\..\..\components\drivers\ipc\completion.c
workqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\workqueue.c
ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringbuffer.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
+
+
+
+
+ pipe.c
+ 1
+ ..\..\..\..\components\drivers\ipc\pipe.c
+
+
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -595,21 +595,21 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -617,93 +617,93 @@
Kernel
- components.c
+ scheduler.c
1
- ..\..\..\src\components.c
-
-
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
+ ..\..\..\..\src\scheduler.c
timer.c
1
- ..\..\..\src\timer.c
+ ..\..\..\..\src\timer.c
- scheduler.c
+ mem.c
1
- ..\..\..\src\scheduler.c
+ ..\..\..\..\src\mem.c
- device.c
+ object.c
1
- ..\..\..\src\device.c
+ ..\..\..\..\src\object.c
- kservice.c
+ ipc.c
1
- ..\..\..\src\kservice.c
+ ..\..\..\..\src\ipc.c
+
+
+
+
+ mempool.c
+ 1
+ ..\..\..\..\src\mempool.c
+
+
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
thread.c
1
- ..\..\..\src\thread.c
+ ..\..\..\..\src\thread.c
+
+
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
+
+
+
+
+ components.c
+ 1
+ ..\..\..\..\src\components.c
+
+
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
+
+
+
+
+ device.c
+ 1
+ ..\..\..\..\src\device.c
diff --git a/bsp/gd32/gd32450z-eval/project.uvprojx b/bsp/gd32/arm/gd32450z-eval/project.uvprojx
similarity index 76%
rename from bsp/gd32/gd32450z-eval/project.uvprojx
rename to bsp/gd32/arm/gd32450z-eval/project.uvprojx
index 2cfc044022..88806a834a 100644
--- a/bsp/gd32/gd32450z-eval/project.uvprojx
+++ b/bsp/gd32/arm/gd32450z-eval/project.uvprojx
@@ -1,12 +1,16 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread
0x4
ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::.\ARMCC
0
@@ -14,29 +18,29 @@
GigaDevice
GigaDevice.GD32F4xx_DFP.2.1.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x040000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(20000000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
+ IRAM(0x20000000-0x20030000) IRAM2(0x10000000-0x10010000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
0
$$Device:GD32F450ZK$Device\Include\gd32f4xx.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F450ZK$SVD\GD32F4xx.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -58,8 +62,8 @@
0
0
-
-
+
+
0
0
0
@@ -68,8 +72,8 @@
0
0
-
-
+
+
0
0
0
@@ -79,14 +83,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -100,8 +104,8 @@
0
0
3
-
-
+
+
1
@@ -134,11 +138,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -171,7 +175,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -182,7 +186,7 @@
2
0
0
- 0
+ 1
0
8
0
@@ -242,7 +246,7 @@
0
0x20000000
- 0x40000
+ 0x30001
1
@@ -305,7 +309,7 @@
0x10000
-
+
1
@@ -332,10 +336,10 @@
0
0
-
+
USE_STDPERIPH_DRIVER, GD32F450, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc
+
+ applications;.;..\..\..\..\components\libc\compilers\common;..\..\..\..\components\libc\compilers\common\extension;..\..\..\..\libcpu\arm\common;..\..\..\..\libcpu\arm\cortex-m4;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;..\..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\..\components\finsh;.;..\..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\..\components\libc\posix\io\poll;..\..\..\..\components\libc\posix\io\stdio;..\..\..\..\components\libc\posix\ipc
@@ -350,10 +354,10 @@
0
4
-
-
-
-
+
+
+
+
@@ -365,13 +369,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
-
-
-
+
+
+
+
+
@@ -388,32 +392,26 @@
Compiler
-
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
syscalls.c
1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
- stdlib.c
+ syscall_mem.c
1
- ..\..\..\components\libc\compilers\common\stdlib.c
+ ..\..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
time.c
1
- ..\..\..\components\libc\compilers\common\time.c
+ ..\..\..\..\components\libc\compilers\common\time.c
+
+
+ stdlib.c
+ 1
+ ..\..\..\..\components\libc\compilers\common\stdlib.c
@@ -423,35 +421,27 @@
div0.c
1
- ..\..\..\libcpu\arm\common\div0.c
+ ..\..\..\..\libcpu\arm\common\div0.c
-
-
-
- backtrace.c
- 1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
-
showmem.c
1
- ..\..\..\libcpu\arm\common\showmem.c
+ ..\..\..\..\libcpu\arm\common\showmem.c
+
+
+ backtrace.c
+ 1
+ ..\..\..\..\libcpu\arm\common\backtrace.c
-
-
context_rvds.S
2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
+ ..\..\..\..\libcpu\arm\cortex-m4\context_rvds.S
-
-
cpuport.c
1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
+ ..\..\..\..\libcpu\arm\cortex-m4\cpuport.c
@@ -459,65 +449,49 @@
DeviceDrivers
- ringblk_buf.c
+ ringbuffer.c
1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
+ ..\..\..\..\components\drivers\ipc\ringbuffer.c
-
-
pipe.c
1
- ..\..\..\components\drivers\ipc\pipe.c
+ ..\..\..\..\components\drivers\ipc\pipe.c
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
dataqueue.c
1
- ..\..\..\components\drivers\ipc\dataqueue.c
+ ..\..\..\..\components\drivers\ipc\dataqueue.c
-
-
waitqueue.c
1
- ..\..\..\components\drivers\ipc\waitqueue.c
+ ..\..\..\..\components\drivers\ipc\waitqueue.c
+
+
+ completion.c
+ 1
+ ..\..\..\..\components\drivers\ipc\completion.c
+
+
+ ringblk_buf.c
+ 1
+ ..\..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
workqueue.c
1
- ..\..\..\components\drivers\ipc\workqueue.c
+ ..\..\..\..\components\drivers\ipc\workqueue.c
-
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
pin.c
1
- ..\..\..\components\drivers\misc\pin.c
+ ..\..\..\..\components\drivers\misc\pin.c
-
-
serial.c
1
- ..\..\..\components\drivers\serial\serial.c
+ ..\..\..\..\components\drivers\serial\serial.c
@@ -529,22 +503,16 @@
2
..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
-
-
board.c
1
board\board.c
-
-
drv_gpio.c
1
..\libraries\gd32_drivers\drv_gpio.c
-
-
drv_usart.c
1
@@ -558,21 +526,17 @@
shell.c
1
- ..\..\..\components\finsh\shell.c
+ ..\..\..\..\components\finsh\shell.c
-
-
msh.c
1
- ..\..\..\components\finsh\msh.c
+ ..\..\..\..\components\finsh\msh.c
-
-
cmd.c
1
- ..\..\..\components\finsh\cmd.c
+ ..\..\..\..\components\finsh\cmd.c
@@ -580,93 +544,69 @@
Kernel
- clock.c
+ ipc.c
1
- ..\..\..\src\clock.c
+ ..\..\..\..\src\ipc.c
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
thread.c
1
- ..\..\..\src\thread.c
+ ..\..\..\..\src\thread.c
-
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
-
mem.c
1
- ..\..\..\src\mem.c
+ ..\..\..\..\src\mem.c
+
+
+ kservice.c
+ 1
+ ..\..\..\..\src\kservice.c
+
+
+ irq.c
+ 1
+ ..\..\..\..\src\irq.c
-
-
mempool.c
1
- ..\..\..\src\mempool.c
+ ..\..\..\..\src\mempool.c
-
-
- scheduler.c
+ components.c
1
- ..\..\..\src\scheduler.c
+ ..\..\..\..\src\components.c
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
timer.c
1
- ..\..\..\src\timer.c
+ ..\..\..\..\src\timer.c
-
-
- ipc.c
+ device.c
1
- ..\..\..\src\ipc.c
+ ..\..\..\..\src\device.c
+
+
+ idle.c
+ 1
+ ..\..\..\..\src\idle.c
+
+
+ scheduler.c
+ 1
+ ..\..\..\..\src\scheduler.c
+
+
+ clock.c
+ 1
+ ..\..\..\..\src\clock.c
+
+
+ object.c
+ 1
+ ..\..\..\..\src\object.c
@@ -678,43 +618,31 @@
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
-
-
gd32f4xx_exti.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
-
-
gd32f4xx_gpio.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
-
-
gd32f4xx_rcu.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
-
-
gd32f4xx_misc.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
-
-
gd32f4xx_usart.c
1
..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
-
-
system_gd32f4xx.c
1
@@ -722,33 +650,39 @@
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
<Project Info>
-
-
-
-
-
+
+
+
+
+
0
1
+
diff --git a/bsp/gd32/gd32450i-eval/rtconfig.h b/bsp/gd32/arm/gd32450z-eval/rtconfig.h
similarity index 98%
rename from bsp/gd32/gd32450i-eval/rtconfig.h
rename to bsp/gd32/arm/gd32450z-eval/rtconfig.h
index 8b26a86fed..af0753934d 100644
--- a/bsp/gd32/gd32450i-eval/rtconfig.h
+++ b/bsp/gd32/arm/gd32450z-eval/rtconfig.h
@@ -191,7 +191,7 @@
/* Hardware Drivers Config */
#define SOC_SERIES_GD32F4xx
-#define SOC_GD32450I
+#define SOC_GD32450Z
/* Onboard Peripheral Drivers */
@@ -200,6 +200,7 @@
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART0
+#define BSP_USING_UART1
/* Board extended module Drivers */
diff --git a/bsp/gd32/gd32450z-eval/rtconfig.py b/bsp/gd32/arm/gd32450z-eval/rtconfig.py
similarity index 98%
rename from bsp/gd32/gd32450z-eval/rtconfig.py
rename to bsp/gd32/arm/gd32450z-eval/rtconfig.py
index c6165614cb..c0c0b203cf 100644
--- a/bsp/gd32/gd32450z-eval/rtconfig.py
+++ b/bsp/gd32/arm/gd32450z-eval/rtconfig.py
@@ -22,8 +22,8 @@ elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
- PLATFORM = 'iccarm'
- EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+ PLATFORM = 'iar'
+ EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
if os.getenv('RTT_EXEC_PATH'):
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
@@ -93,7 +93,7 @@ elif PLATFORM == 'armcc':
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
-elif PLATFORM == 'iccarm':
+elif PLATFORM == 'iar':
# toolchains
CC = 'iccarm'
CXX = 'iccarm'
diff --git a/bsp/gd32/arm/gd32450z-eval/template.ewp b/bsp/gd32/arm/gd32450z-eval/template.ewp
new file mode 100644
index 0000000000..963857b281
--- /dev/null
+++ b/bsp/gd32/arm/gd32450z-eval/template.ewp
@@ -0,0 +1,1892 @@
+
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 22
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+
+
diff --git a/bsp/gd32/gd32450z-eval/template.uvoptx b/bsp/gd32/arm/gd32450z-eval/template.uvoptx
similarity index 96%
rename from bsp/gd32/gd32450z-eval/template.uvoptx
rename to bsp/gd32/arm/gd32450z-eval/template.uvoptx
index 3947c5e208..e921b2fe4e 100644
--- a/bsp/gd32/gd32450z-eval/template.uvoptx
+++ b/bsp/gd32/arm/gd32450z-eval/template.uvoptx
@@ -26,7 +26,7 @@
0x4
ARM-ADS
- 12000000
+ 25000000
1
1
@@ -130,7 +130,7 @@
0
UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
diff --git a/bsp/gd32/gd32450z-eval/template.uvproj b/bsp/gd32/arm/gd32450z-eval/template.uvproj
similarity index 99%
rename from bsp/gd32/gd32450z-eval/template.uvproj
rename to bsp/gd32/arm/gd32450z-eval/template.uvproj
index a23ad93c9a..d7a936eb29 100644
--- a/bsp/gd32/gd32450z-eval/template.uvproj
+++ b/bsp/gd32/arm/gd32450z-eval/template.uvproj
@@ -15,7 +15,7 @@
GD32F450ZK
GigaDevice
- IRAM(0x20000000-0x20030000) IROM(0x08000000-0x08300000) CLOCK(20000000) CPUTYPE("Cortex-M4") FPU2
+ IRAM(0x20000000-0x20030000) IRAM2(0x10000000-0x10010000) IROM(0x08000000-0x08300000) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
"Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000)
diff --git a/bsp/gd32/gd32450z-eval/template.uvprojx b/bsp/gd32/arm/gd32450z-eval/template.uvprojx
similarity index 97%
rename from bsp/gd32/gd32450z-eval/template.uvprojx
rename to bsp/gd32/arm/gd32450z-eval/template.uvprojx
index 5653f2da1d..3a24d98008 100644
--- a/bsp/gd32/gd32450z-eval/template.uvprojx
+++ b/bsp/gd32/arm/gd32450z-eval/template.uvprojx
@@ -17,10 +17,10 @@
GigaDevice
GigaDevice.GD32F4xx_DFP.2.1.0
http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x040000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(20000000) ELITTLE
+ IRAM(0x20000000-0x20030000) IRAM2(0x10000000-0x10010000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(25000000) ELITTLE
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
0
$$Device:GD32F450ZK$Device\Include\gd32f4xx.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/gd32f10x.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/gd32f10x.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/gd32f10x.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/gd32f10x.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Include/system_gd32f10x.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_cl.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_hd.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_md.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/ARM/startup_gd32f10x_xd.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_cl.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_hd.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_hd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_hd.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_hd.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_md.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_md.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_md.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_md.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_xd.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_xd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_xd.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/GCC/startup_gd32f10x_xd.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_cl.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_hd.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_md.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/IAR/startup_gd32f10x_xd.s
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/system_gd32f10x.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/system_gd32f10x.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/system_gd32f10x.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/GD/GD32F10x/Source/system_gd32f10x.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/core_cm3.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/core_cm3.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/core_cm3.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/core_cm3.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmFunc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmFunc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmFunc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmFunc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmInstr.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmInstr.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmInstr.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/CMSIS/core_cmInstr.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_adc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_bkp.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_can.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_can.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_can.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_can.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_crc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_crc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_crc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_crc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dac.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dac.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dac.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dac.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dbg.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dbg.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dbg.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dbg.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dma.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dma.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dma.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_dma.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_enet.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_enet.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_enet.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_enet.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exmc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_exti.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fmc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_fwdgt.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_gpio.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_i2c.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_i2c.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_i2c.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_i2c.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_misc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_pmu.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rcu.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_rtc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_sdio.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_spi.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_timer.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_usart.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Include/gd32f10x_wwdgt.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_adc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_bkp.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_can.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_can.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_can.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_can.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_crc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dac.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dbg.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_dma.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_enet.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exmc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_exti.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fmc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_fwdgt.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_gpio.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_i2c.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_misc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_pmu.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rcu.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_rtc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_sdio.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_spi.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_timer.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_usart.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_standard_peripheral/Source/gd32f10x_wwdgt.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_out_itf.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_out_itf.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_out_itf.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Include/audio_out_itf.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_out_itf.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_out_itf.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_out_itf.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/audio/Source/audio_out_itf.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Include/cdc_acm_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Include/cdc_acm_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Include/cdc_acm_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Include/cdc_acm_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Source/cdc_acm_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Source/cdc_acm_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Source/cdc_acm_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/cdc/Source/cdc_acm_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Include/dfu_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Include/dfu_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Include/dfu_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Include/dfu_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Source/dfu_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Source/dfu_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Source/dfu_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/dfu/Source/dfu_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/custom_hid_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/custom_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/custom_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/custom_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/standard_hid_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/standard_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/standard_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/standard_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/usb_hid.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/usb_hid.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/usb_hid.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Include/usb_hid.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/custom_hid_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/custom_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/custom_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/custom_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/standard_hid_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/standard_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/standard_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/hid/Source/standard_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Include/usb_iap_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Include/usb_iap_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Include/usb_iap_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Include/usb_iap_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Source/usb_iap_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Source/usb_iap_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Source/usb_iap_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/iap/Source/usb_iap_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_data.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_data.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_data.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_data.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_mem.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_mem.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_mem.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_mem.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_data.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_data.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_data.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_data.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Include/printer_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Include/printer_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Include/printer_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Include/printer_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Source/printer_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Source/printer_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Source/printer_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/class/device/printer/Source/printer_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usb_ch9_std.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usb_ch9_std.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usb_ch9_std.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usb_ch9_std.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_enum.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_enum.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_enum.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_pwr.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_pwr.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_pwr.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_pwr.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_transc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_transc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Include/usbd_transc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_enum.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_enum.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_enum.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_pwr.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_pwr.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_pwr.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_pwr.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_transc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_transc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/device/Source/usbd_transc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_int.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_int.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_int.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_regs.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_regs.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_regs.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Include/usbd_lld_regs.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_int.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_int.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbd_library/usbd/Source/usbd_lld_int.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_out_itf.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_out_itf.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_out_itf.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Include/audio_out_itf.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_out_itf.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_out_itf.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_out_itf.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/audio/Source/audio_out_itf.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_mal.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_mal.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_mal.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Include/dfu_mal.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_mal.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_mal.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_mal.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/dfu/Source/dfu_mal.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/custom_hid_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/custom_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/custom_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/custom_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/standard_hid_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/standard_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/standard_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Include/standard_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/custom_hid_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/custom_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/custom_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/custom_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/standard_hid_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/standard_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/standard_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/hid/Source/standard_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Include/usb_iap_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Include/usb_iap_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Include/usb_iap_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Include/usb_iap_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Source/usb_iap_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Source/usb_iap_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Source/usb_iap_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/iap/Source/usb_iap_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_data.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_data.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Include/printer_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Include/printer_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Include/printer_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Include/printer_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Source/printer_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Source/printer_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Source/printer_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/class/printer/Source/printer_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_enum.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_enum.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_enum.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_transc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_transc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Include/usbd_transc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_enum.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_enum.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_enum.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_transc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_transc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/device/core/Source/usbd_transc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_dev.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_dev.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_dev.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_dev.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_host.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_host.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_host.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_host.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_hw.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_hw.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_hw.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_hw.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_regs.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_regs.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_regs.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usb_regs.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbd_int.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbd_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbd_int.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbd_int.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbh_int.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbh_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbh_int.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Include/drv_usbh_int.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_dev.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_dev.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_dev.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_dev.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_host.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_host.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_host.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usb_host.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbd_int.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbd_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbd_int.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbd_int.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbh_int.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbh_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbh_int.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/driver/Source/drv_usbh_int.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_core.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_core.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_core.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_enum.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_enum.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_enum.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_pipe.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_pipe.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_pipe.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_pipe.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_transc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_transc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Include/usbh_transc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_core.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_core.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_core.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_enum.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_enum.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_enum.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_pipe.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_pipe.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_pipe.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_pipe.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_transc.c b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_transc.c
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/host/core/Source/usbh_transc.c
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/cdc/usb_cdc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/cdc/usb_cdc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/cdc/usb_cdc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/cdc/usb_cdc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/hid/usb_hid.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/hid/usb_hid.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/hid/usb_hid.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/hid/usb_hid.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_bbb.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_scsi.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/usb_msc.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/usb_msc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/usb_msc.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/class/msc/usb_msc.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/common/usb_ch9_std.h b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/common/usb_ch9_std.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/common/usb_ch9_std.h
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/GD32F10x_usbfs_library/ustd/common/usb_ch9_std.h
diff --git a/bsp/gd32/libraries/GD32F10x_Firmware_Library/SConscript b/bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/SConscript
similarity index 100%
rename from bsp/gd32/libraries/GD32F10x_Firmware_Library/SConscript
rename to bsp/gd32/arm/libraries/GD32F10x_Firmware_Library/SConscript
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/gd32f20x.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/gd32f20x.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/gd32f20x.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/gd32f20x.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/system_gd32f20x.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/system_gd32f20x.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/system_gd32f20x.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Include/system_gd32f20x.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/ARM/startup_gd32f20x_cl.s b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/ARM/startup_gd32f20x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/ARM/startup_gd32f20x_cl.s
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/ARM/startup_gd32f20x_cl.s
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/GCC/startup_gd32f20x_cl.s b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/GCC/startup_gd32f20x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/GCC/startup_gd32f20x_cl.s
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/GCC/startup_gd32f20x_cl.s
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/IAR/startup_gd32f20x_cl.s b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/IAR/startup_gd32f20x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/IAR/startup_gd32f20x_cl.s
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/IAR/startup_gd32f20x_cl.s
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/system_gd32f20x.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/system_gd32f20x.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/system_gd32f20x.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/GD/GD32F20x/Source/system_gd32f20x.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/cmsis_armcc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/cmsis_armcc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/cmsis_armcc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/cmsis_armcc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/core_cm3.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/core_cm3.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/core_cm3.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/core_cm3.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmFunc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmFunc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmFunc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmFunc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmInstr.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmInstr.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmInstr.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/CMSIS/core_cmInstr.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_adc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_adc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_adc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_adc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_bkp.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_bkp.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_bkp.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_bkp.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_can.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_can.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_can.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_can.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_cau.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_cau.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_cau.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_cau.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_crc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_crc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_crc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_crc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dac.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dac.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dac.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dac.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dbg.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dbg.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dbg.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dbg.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dci.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dci.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dci.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dci.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dma.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dma.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dma.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_dma.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_enet.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_enet.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_enet.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_enet.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exmc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exmc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exmc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exti.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exti.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exti.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_exti.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fmc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fmc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fmc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fwdgt.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fwdgt.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_fwdgt.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_gpio.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_gpio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_gpio.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_gpio.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_hau.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_hau.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_hau.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_hau.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_i2c.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_i2c.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_i2c.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_i2c.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_misc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_misc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_misc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_misc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_pmu.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_pmu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_pmu.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_pmu.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rcu.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rcu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rcu.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rcu.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rtc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rtc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rtc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_rtc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_sdio.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_sdio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_sdio.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_sdio.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_spi.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_spi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_spi.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_spi.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_timer.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_timer.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_timer.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_timer.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_tli.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_tli.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_tli.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_tli.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_trng.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_trng.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_trng.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_trng.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_usart.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_usart.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_usart.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_usart.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_wwdgt.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_wwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_wwdgt.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Include/gd32f20x_wwdgt.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_adc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_adc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_adc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_adc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_bkp.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_bkp.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_bkp.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_bkp.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_can.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_can.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_can.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_can.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_aes.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_aes.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_aes.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_aes.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_des.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_des.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_des.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_des.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_tdes.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_tdes.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_tdes.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_cau_tdes.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_crc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_crc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_crc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_crc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dac.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dac.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dac.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dac.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dbg.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dbg.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dbg.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dbg.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dci.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dci.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dci.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dci.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dma.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dma.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dma.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_dma.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_enet.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_enet.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_enet.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_enet.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exmc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exmc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exmc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exti.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exti.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exti.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_exti.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fmc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fmc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fmc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fwdgt.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fwdgt.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_fwdgt.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_gpio.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_gpio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_gpio.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_gpio.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau_sha_md5.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau_sha_md5.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau_sha_md5.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_hau_sha_md5.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_i2c.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_i2c.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_i2c.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_i2c.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_misc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_misc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_misc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_misc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_pmu.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_pmu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_pmu.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_pmu.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rcu.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rcu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rcu.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rcu.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rtc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rtc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rtc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_rtc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_sdio.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_sdio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_sdio.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_sdio.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_spi.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_spi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_spi.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_spi.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_timer.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_timer.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_timer.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_timer.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_tli.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_tli.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_tli.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_tli.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_trng.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_trng.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_trng.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_trng.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_usart.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_usart.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_usart.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_usart.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_wwdgt.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_wwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_wwdgt.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_standard_peripheral/Source/gd32f20x_wwdgt.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_out_itf.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_out_itf.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_out_itf.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Include/audio_out_itf.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_out_itf.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_out_itf.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_out_itf.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/audio/Source/audio_out_itf.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_mal.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_mal.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_mal.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Include/dfu_mal.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_mal.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_mal.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_mal.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/dfu/Source/dfu_mal.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/custom_hid_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/custom_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/custom_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/custom_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/standard_hid_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/standard_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/standard_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Include/standard_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/custom_hid_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/custom_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/custom_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/custom_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/standard_hid_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/standard_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/standard_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/hid/Source/standard_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Include/usb_iap_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Include/usb_iap_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Include/usb_iap_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Include/usb_iap_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Source/usb_iap_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Source/usb_iap_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Source/usb_iap_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/iap/Source/usb_iap_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_data.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_data.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Include/printer_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Include/printer_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Include/printer_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Include/printer_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Source/printer_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Source/printer_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Source/printer_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/class/printer/Source/printer_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_enum.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_enum.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_enum.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_transc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_transc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Include/usbd_transc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_enum.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_enum.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_enum.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_transc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_transc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/device/core/Source/usbd_transc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_dev.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_dev.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_dev.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_dev.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_host.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_host.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_host.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_host.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_hw.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_hw.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_hw.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_hw.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_regs.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_regs.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_regs.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usb_regs.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbd_int.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbd_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbd_int.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbd_int.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbh_int.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbh_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbh_int.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Include/drv_usbh_int.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_dev.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_dev.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_dev.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_dev.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_host.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_host.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_host.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usb_host.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbd_int.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbd_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbd_int.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbd_int.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbh_int.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbh_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbh_int.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/driver/Source/drv_usbh_int.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_core.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_core.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_core.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_enum.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_enum.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_enum.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_pipe.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_pipe.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_pipe.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_pipe.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_transc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_transc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Include/usbh_transc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_core.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_core.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_core.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_enum.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_enum.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_enum.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_pipe.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_pipe.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_pipe.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_pipe.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_transc.c b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_transc.c
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/host/core/Source/usbh_transc.c
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/cdc/usb_cdc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/cdc/usb_cdc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/cdc/usb_cdc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/cdc/usb_cdc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/hid/usb_hid.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/hid/usb_hid.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/hid/usb_hid.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/hid/usb_hid.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_bbb.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_scsi.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/usb_msc.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/usb_msc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/usb_msc.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/class/msc/usb_msc.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/common/usb_ch9_std.h b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/common/usb_ch9_std.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/common/usb_ch9_std.h
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/GD32F20x_usbfs_library/ustd/common/usb_ch9_std.h
diff --git a/bsp/gd32/libraries/GD32F20x_Firmware_Library/SConscript b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/SConscript
similarity index 96%
rename from bsp/gd32/libraries/GD32F20x_Firmware_Library/SConscript
rename to bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/SConscript
index e6b05ca3c9..90cca69a13 100644
--- a/bsp/gd32/libraries/GD32F20x_Firmware_Library/SConscript
+++ b/bsp/gd32/arm/libraries/GD32F20x_Firmware_Library/SConscript
@@ -37,7 +37,6 @@ if GetDepend(['RT_USING_DAC']):
if GetDepend(['RT_USING_RTC']):
src += ['GD32F20x_standard_peripheral/Source/gd32f20x_rtc.c']
- src += ['GD32F20x_standard_peripheral/Source/gd32f20x_pmu.c']
if GetDepend(['RT_USING_WDT']):
src += ['GD32F20x_standard_peripheral/Source/gd32f20x_wwdgt.c']
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/gd32f30x.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/gd32f30x.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/gd32f30x.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/gd32f30x.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/system_gd32f30x.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/system_gd32f30x.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/system_gd32f30x.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Include/system_gd32f30x.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_cl.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_cl.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_cl.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_hd.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_hd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_hd.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_hd.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_xd.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_xd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_xd.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/ARM/startup_gd32f30x_xd.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_cl.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_cl.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_cl.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_hd.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_xd.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_xd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_xd.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/GCC/startup_gd32f30x_xd.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_cl.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_cl.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_cl.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_cl.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_hd.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_hd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_hd.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_hd.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_xd.s b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_xd.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_xd.s
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/IAR/startup_gd32f30x_xd.s
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/system_gd32f30x.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/system_gd32f30x.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/system_gd32f30x.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/GD/GD32F30x/Source/system_gd32f30x.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4_simd.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4_simd.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4_simd.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cm4_simd.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmFunc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmFunc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmFunc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmFunc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmInstr.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmInstr.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmInstr.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/CMSIS/core_cmInstr.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_adc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_adc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_adc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_adc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_bkp.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_bkp.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_bkp.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_bkp.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_can.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_can.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_can.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_can.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_crc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_crc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_crc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_crc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_ctc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_ctc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_ctc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_ctc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dac.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dac.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dac.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dac.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dbg.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dbg.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dbg.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dbg.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dma.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dma.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dma.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_dma.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_enet.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_enet.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_enet.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_enet.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exmc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exmc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exmc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exti.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exti.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exti.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_exti.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fmc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fmc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fmc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fwdgt.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fwdgt.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_fwdgt.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_gpio.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_gpio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_gpio.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_gpio.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_i2c.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_i2c.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_i2c.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_i2c.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_misc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_misc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_misc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_misc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_pmu.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_pmu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_pmu.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_pmu.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rcu.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rcu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rcu.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rcu.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rtc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rtc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rtc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_rtc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_sdio.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_sdio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_sdio.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_sdio.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_spi.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_spi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_spi.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_spi.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_timer.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_timer.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_timer.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_timer.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_usart.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_usart.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_usart.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_usart.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_wwdgt.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_wwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_wwdgt.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Include/gd32f30x_wwdgt.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_adc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_adc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_adc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_adc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_bkp.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_bkp.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_bkp.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_bkp.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_can.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_can.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_can.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_can.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_crc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_crc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_crc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_crc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_ctc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_ctc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_ctc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_ctc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dac.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dac.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dac.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dac.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dbg.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dbg.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dbg.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dbg.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dma.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dma.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dma.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_dma.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_enet.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_enet.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_enet.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_enet.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exmc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exmc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exmc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exti.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exti.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exti.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_exti.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fmc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fmc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fmc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fwdgt.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fwdgt.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_fwdgt.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_gpio.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_gpio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_gpio.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_gpio.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_i2c.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_i2c.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_i2c.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_i2c.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_misc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_misc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_misc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_misc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_pmu.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_pmu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_pmu.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_pmu.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rcu.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rcu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rcu.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rcu.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rtc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rtc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rtc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_rtc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_sdio.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_sdio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_sdio.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_sdio.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_spi.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_spi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_spi.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_spi.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_timer.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_timer.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_timer.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_timer.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_usart.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_usart.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_usart.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_usart.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_wwdgt.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_wwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_wwdgt.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_standard_peripheral/Source/gd32f30x_wwdgt.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_out_itf.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_out_itf.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_out_itf.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Include/audio_out_itf.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_out_itf.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_out_itf.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_out_itf.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/audio/Source/audio_out_itf.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Include/cdc_acm_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Include/cdc_acm_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Include/cdc_acm_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Include/cdc_acm_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Source/cdc_acm_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Source/cdc_acm_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Source/cdc_acm_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/cdc/Source/cdc_acm_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Include/dfu_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Include/dfu_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Include/dfu_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Include/dfu_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Source/dfu_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Source/dfu_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Source/dfu_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/dfu/Source/dfu_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/custom_hid_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/custom_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/custom_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/custom_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/standard_hid_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/standard_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/standard_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/standard_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/std_hid_mouse_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/std_hid_mouse_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/std_hid_mouse_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/std_hid_mouse_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/usb_hid.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/usb_hid.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/usb_hid.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Include/usb_hid.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/custom_hid_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/custom_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/custom_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/custom_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/standard_hid_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/standard_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/standard_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/standard_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/std_hid_mouse_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/std_hid_mouse_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/std_hid_mouse_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/hid/Source/std_hid_mouse_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Include/usb_iap_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Include/usb_iap_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Include/usb_iap_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Include/usb_iap_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Source/usb_iap_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Source/usb_iap_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Source/usb_iap_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/iap/Source/usb_iap_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_data.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_data.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_data.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_data.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_mem.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_mem.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_mem.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_mem.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Include/usbd_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_data.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_data.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_data.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_data.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/msc/Source/usbd_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Include/printer_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Include/printer_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Include/printer_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Include/printer_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Source/printer_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Source/printer_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Source/printer_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/class/device/printer/Source/printer_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usb_ch9_std.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usb_ch9_std.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usb_ch9_std.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usb_ch9_std.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_enum.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_enum.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_enum.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_pwr.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_pwr.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_pwr.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_pwr.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_transc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_transc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Include/usbd_transc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_enum.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_enum.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_enum.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_pwr.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_pwr.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_pwr.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_pwr.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_transc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_transc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/device/Source/usbd_transc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_int.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_int.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_int.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_regs.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_regs.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_regs.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Include/usbd_lld_regs.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_int.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_int.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbd_library/usbd/Source/usbd_lld_int.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_out_itf.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_out_itf.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_out_itf.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Include/audio_out_itf.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_out_itf.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_out_itf.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_out_itf.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/audio/Source/audio_out_itf.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_mal.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_mal.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_mal.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Include/dfu_mal.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_mal.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_mal.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_mal.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/dfu/Source/dfu_mal.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/custom_hid_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/custom_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/custom_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/custom_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/standard_hid_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/standard_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/standard_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Include/standard_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/custom_hid_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/custom_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/custom_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/custom_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/standard_hid_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/standard_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/standard_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/hid/Source/standard_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Include/usb_iap_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Include/usb_iap_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Include/usb_iap_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Include/usb_iap_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Source/usb_iap_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Source/usb_iap_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Source/usb_iap_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/iap/Source/usb_iap_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_data.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_data.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_data.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_data.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Include/printer_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Include/printer_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Include/printer_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Include/printer_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Source/printer_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Source/printer_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Source/printer_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/class/printer/Source/printer_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_enum.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_enum.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_enum.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_transc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_transc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Include/usbd_transc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_enum.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_enum.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_enum.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_transc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_transc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/device/core/Source/usbd_transc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_dev.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_dev.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_dev.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_dev.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_host.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_host.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_host.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_host.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_hw.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_hw.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_hw.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_hw.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_regs.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_regs.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_regs.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usb_regs.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbd_int.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbd_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbd_int.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbd_int.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbh_int.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbh_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbh_int.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Include/drv_usbh_int.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_dev.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_dev.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_dev.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_dev.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_host.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_host.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_host.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usb_host.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbd_int.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbd_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbd_int.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbd_int.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbh_int.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbh_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbh_int.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/driver/Source/drv_usbh_int.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_core.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_core.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_core.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_enum.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_enum.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_enum.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_pipe.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_pipe.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_pipe.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_pipe.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_transc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_transc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Include/usbh_transc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_core.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_core.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_core.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_enum.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_enum.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_enum.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_pipe.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_pipe.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_pipe.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_pipe.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_transc.c b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_transc.c
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/host/core/Source/usbh_transc.c
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/cdc/usb_cdc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/cdc/usb_cdc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/cdc/usb_cdc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/cdc/usb_cdc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/hid/usb_hid.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/hid/usb_hid.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/hid/usb_hid.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/hid/usb_hid.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_bbb.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_scsi.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/usb_msc.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/usb_msc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/usb_msc.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/class/msc/usb_msc.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/common/usb_ch9_std.h b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/common/usb_ch9_std.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/common/usb_ch9_std.h
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/GD32F30x_usbfs_library/ustd/common/usb_ch9_std.h
diff --git a/bsp/gd32/libraries/GD32F30x_Firmware_Library/SConscript b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/SConscript
similarity index 96%
rename from bsp/gd32/libraries/GD32F30x_Firmware_Library/SConscript
rename to bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/SConscript
index 5341d8bc52..09f70ea989 100644
--- a/bsp/gd32/libraries/GD32F30x_Firmware_Library/SConscript
+++ b/bsp/gd32/arm/libraries/GD32F30x_Firmware_Library/SConscript
@@ -37,7 +37,6 @@ if GetDepend(['RT_USING_DAC']):
if GetDepend(['RT_USING_RTC']):
src += ['GD32F30x_standard_peripheral/Source/gd32f30x_rtc.c']
- src += ['GD32F30x_standard_peripheral/Source/gd32f30x_pmu.c']
if GetDepend(['RT_USING_WDT']):
src += ['GD32F30x_standard_peripheral/Source/gd32f30x_wwdgt.c']
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/gd32f4xx.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/gd32f4xx.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/gd32f4xx.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/gd32f4xx.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/system_gd32f4xx.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/system_gd32f4xx.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/system_gd32f4xx.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Include/system_gd32f4xx.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/system_gd32f4xx.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/system_gd32f4xx.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/system_gd32f4xx.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/system_gd32f4xx.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4_simd.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4_simd.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4_simd.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cm4_simd.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmFunc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmFunc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmFunc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmFunc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmInstr.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmInstr.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmInstr.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/CMSIS/core_cmInstr.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_adc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_adc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_adc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_adc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_can.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_can.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_can.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_can.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_crc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_crc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_crc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_crc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ctc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ctc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ctc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ctc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dac.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dac.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dac.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dac.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dbg.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dbg.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dbg.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dbg.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dci.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dci.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dci.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dci.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dma.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dma.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dma.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_dma.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_enet.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_enet.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_enet.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_enet.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exmc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exmc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exmc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exti.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exti.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exti.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_exti.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fmc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fmc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fmc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fmc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fwdgt.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fwdgt.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_fwdgt.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_gpio.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_gpio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_gpio.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_gpio.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_i2c.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_i2c.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_i2c.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_i2c.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ipa.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ipa.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ipa.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_ipa.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_iref.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_iref.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_iref.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_iref.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_misc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_misc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_misc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_misc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_pmu.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_pmu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_pmu.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_pmu.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rcu.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rcu.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rcu.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rcu.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rtc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rtc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rtc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_rtc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_sdio.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_sdio.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_sdio.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_sdio.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_spi.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_spi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_spi.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_spi.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_syscfg.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_syscfg.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_syscfg.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_syscfg.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_timer.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_timer.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_timer.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_timer.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_tli.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_tli.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_tli.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_tli.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_trng.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_trng.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_trng.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_trng.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_usart.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_usart.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_usart.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_usart.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_wwdgt.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_wwdgt.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_wwdgt.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Include/gd32f4xx_wwdgt.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_adc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_adc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_adc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_adc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_can.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_can.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_can.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_can.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_crc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_crc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_crc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_crc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ctc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ctc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ctc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ctc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dac.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dac.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dac.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dac.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dbg.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dbg.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dbg.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dbg.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dci.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dci.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dci.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dci.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dma.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dma.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dma.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_dma.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_enet.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_enet.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_enet.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_enet.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exmc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exmc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exmc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exti.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exti.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exti.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_exti.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fmc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fmc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fmc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fmc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fwdgt.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fwdgt.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_fwdgt.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_gpio.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_gpio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_gpio.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_gpio.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_i2c.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_i2c.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_i2c.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_i2c.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ipa.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ipa.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ipa.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_ipa.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_iref.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_iref.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_iref.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_iref.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_misc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_misc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_misc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_misc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_pmu.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_pmu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_pmu.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_pmu.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rcu.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rcu.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rcu.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rcu.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rtc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rtc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rtc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_rtc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_sdio.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_sdio.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_sdio.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_sdio.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_spi.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_spi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_spi.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_spi.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_syscfg.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_syscfg.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_syscfg.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_syscfg.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_timer.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_timer.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_timer.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_timer.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_tli.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_tli.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_tli.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_tli.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_trng.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_trng.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_trng.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_trng.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_usart.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_usart.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_usart.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_usart.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_wwdgt.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_wwdgt.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_wwdgt.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_standard_peripheral/Source/gd32f4xx_wwdgt.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_out_itf.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_out_itf.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_out_itf.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Include/audio_out_itf.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_out_itf.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_out_itf.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_out_itf.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/audio/Source/audio_out_itf.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Include/cdc_acm_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Include/cdc_acm_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Include/cdc_acm_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Include/cdc_acm_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Source/cdc_acm_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Source/cdc_acm_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Source/cdc_acm_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/cdc/Source/cdc_acm_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_mal.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_mal.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_mal.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Include/dfu_mal.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_mal.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_mal.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_mal.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/dfu/Source/dfu_mal.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/custom_hid_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/custom_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/custom_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/custom_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/standard_hid_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/standard_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/standard_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Include/standard_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/custom_hid_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/custom_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/custom_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/custom_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/standard_hid_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/standard_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/standard_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/hid/Source/standard_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Include/usb_iap_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Include/usb_iap_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Include/usb_iap_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Include/usb_iap_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Source/usb_iap_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Source/usb_iap_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Source/usb_iap_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/iap/Source/usb_iap_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_data.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_data.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_data.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_data.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_mem.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_mem.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_mem.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_mem.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Include/usbd_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_data.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_data.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_data.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_data.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/msc/Source/usbd_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Include/printer_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Include/printer_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Include/printer_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Include/printer_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Source/printer_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Source/printer_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Source/printer_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/class/printer/Source/printer_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_enum.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_enum.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_enum.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_transc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_transc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Include/usbd_transc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_enum.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_enum.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_enum.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_transc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_transc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/device/core/Source/usbd_transc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_dev.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_dev.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_dev.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_dev.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_host.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_host.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_host.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_host.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_hw.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_hw.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_hw.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_hw.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_regs.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_regs.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_regs.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usb_regs.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbd_int.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbd_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbd_int.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbd_int.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbh_int.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbh_int.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbh_int.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Include/drv_usbh_int.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_dev.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_dev.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_dev.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_dev.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_host.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_host.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_host.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usb_host.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbd_int.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbd_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbd_int.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbd_int.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbh_int.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbh_int.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbh_int.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/driver/Source/drv_usbh_int.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_keybd.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_keybd.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_keybd.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_keybd.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_mouse.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_mouse.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_mouse.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_mouse.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_parser.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_parser.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_parser.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_parser.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_usage.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_usage.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_usage.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Include/usbh_hid_usage.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_keybd.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_keybd.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_keybd.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_keybd.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_mouse.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_mouse.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_mouse.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_mouse.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_parser.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_parser.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_parser.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/hid/Source/usbh_hid_parser.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_bbb.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_scsi.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Include/usbh_msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_bbb.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_bbb.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_bbb.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_bbb.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_fatfs.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_fatfs.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_fatfs.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_fatfs.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_scsi.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_scsi.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_scsi.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/class/msc/Source/usbh_msc_scsi.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_core.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_core.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_core.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_core.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_enum.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_enum.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_enum.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_enum.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_pipe.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_pipe.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_pipe.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_pipe.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_transc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_transc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_transc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Include/usbh_transc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_core.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_core.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_core.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_core.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_enum.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_enum.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_enum.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_enum.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_pipe.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_pipe.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_pipe.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_pipe.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_transc.c b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_transc.c
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_transc.c
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/host/core/Source/usbh_transc.c
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/cdc/usb_cdc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/cdc/usb_cdc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/cdc/usb_cdc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/cdc/usb_cdc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/hid/usb_hid.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/hid/usb_hid.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/hid/usb_hid.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/hid/usb_hid.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_bbb.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_bbb.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_bbb.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_bbb.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_scsi.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_scsi.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_scsi.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/msc_scsi.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/usb_msc.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/usb_msc.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/usb_msc.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/class/msc/usb_msc.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/common/usb_ch9_std.h b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/common/usb_ch9_std.h
similarity index 100%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/common/usb_ch9_std.h
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/GD32F4xx_usb_library/ustd/common/usb_ch9_std.h
diff --git a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/SConscript b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/SConscript
similarity index 96%
rename from bsp/gd32/libraries/GD32F4xx_Firmware_Library/SConscript
rename to bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/SConscript
index 1963d0e1db..5f87f85bdd 100644
--- a/bsp/gd32/libraries/GD32F4xx_Firmware_Library/SConscript
+++ b/bsp/gd32/arm/libraries/GD32F4xx_Firmware_Library/SConscript
@@ -38,7 +38,6 @@ if GetDepend(['RT_USING_DAC']):
if GetDepend(['RT_USING_RTC']):
src += ['GD32F4xx_standard_peripheral/Source/gd32f4xx_rtc.c']
- src += ['GD32F4xx_standard_peripheral/Source/gd32f4xx_pmu.c']
if GetDepend(['RT_USING_WDT']):
src += ['GD32F4xx_standard_peripheral/Source/gd32f4xx_wwdgt.c']
diff --git a/bsp/gd32/libraries/Kconfig b/bsp/gd32/arm/libraries/Kconfig
similarity index 100%
rename from bsp/gd32/libraries/Kconfig
rename to bsp/gd32/arm/libraries/Kconfig
diff --git a/bsp/gd32/libraries/gd32_drivers/Kconfig b/bsp/gd32/arm/libraries/gd32_drivers/Kconfig
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/Kconfig
rename to bsp/gd32/arm/libraries/gd32_drivers/Kconfig
diff --git a/bsp/gd32/libraries/gd32_drivers/SConscript b/bsp/gd32/arm/libraries/gd32_drivers/SConscript
similarity index 93%
rename from bsp/gd32/libraries/gd32_drivers/SConscript
rename to bsp/gd32/arm/libraries/gd32_drivers/SConscript
index 16a76e2b0b..df963f3b78 100644
--- a/bsp/gd32/libraries/gd32_drivers/SConscript
+++ b/bsp/gd32/arm/libraries/gd32_drivers/SConscript
@@ -29,15 +29,19 @@ if GetDepend('RT_USING_SPI'):
if GetDepend('RT_USING_SFUD'):
src += ['drv_spi_flash.c', 'drv_spi.c']
+# add wdt drivers.
if GetDepend('RT_USING_WDT'):
src += ['drv_wdt.c']
+# add rtc drivers.
if GetDepend('RT_USING_RTC'):
src += ['drv_rtc.c']
+# add timer drivers.
if GetDepend('RT_USING_HWTIMER'):
src += ['drv_hwtimer.c']
+# add adc drivers.
if GetDepend('RT_USING_ADC'):
src += ['drv_adc.c']
diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_adc.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_adc.c
new file mode 100644
index 0000000000..ae89469d1d
--- /dev/null
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_adc.c
@@ -0,0 +1,206 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-02-25 iysheng first version
+ * 2022-05-03 BruceOu optimization adc
+ */
+
+#include "drv_adc.h"
+
+#define DBG_TAG "drv.adc"
+#define DBG_LVL DBG_INFO
+
+#include
+
+#ifdef RT_USING_ADC
+
+#if defined(BSP_USING_ADC0)
+struct rt_adc_device adc0;
+#endif
+
+#if defined(BSP_USING_ADC1)
+struct rt_adc_device adc1;
+#endif
+
+#if defined(BSP_USING_ADC2)
+struct rt_adc_device adc2;
+#endif
+
+#define MAX_EXTERN_ADC_CHANNEL 16
+
+static const struct gd32_adc adc_obj[] = {
+#ifdef BSP_USING_ADC0
+ {
+ ADC0,
+ RCU_ADC0,
+ {
+ GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
+ GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
+ GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
+ GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
+ },
+ &adc0,
+ "adc0",
+ },
+#endif
+
+#ifdef BSP_USING_ADC1
+ {
+ ADC1,
+ RCU_ADC1,
+ {
+ GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
+ GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
+ GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
+ GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
+ },
+ &adc1,
+ "adc1",
+ },
+#endif
+#ifdef BSP_USING_ADC2
+ {
+ ADC2,
+ RCU_ADC2,
+ {
+ GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
+ GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
+ GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
+ GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
+ },
+ &adc2,
+ "adc2",
+ },
+#endif
+};
+
+/**
+* @brief ADC MSP Initialization
+* This function configures the hardware resources.
+* @param adc_clk, pin
+* @retval None
+*/
+static void gd32_adc_gpio_init(rcu_periph_enum adc_clk, rt_base_t pin)
+{
+ /* enable ADC clock */
+ rcu_periph_clock_enable(adc_clk);
+
+#if defined SOC_SERIES_GD32F4xx
+ /* configure adc pin */
+ gpio_mode_set(PIN_GDPORT(pin), GPIO_MODE_ANALOG, GPIO_PUPD_NONE, PIN_GDPIN(pin));
+#else
+ /* configure adc pin */
+ gpio_init(PIN_GDPORT(pin), GPIO_MODE_AIN, GPIO_OSPEED_50MHZ, PIN_GDPIN(pin));
+
+#endif
+}
+
+/**
+* @brief ADC enable
+* This function enable adc.
+* @param device, channel, enabled
+* @retval None
+*/
+static rt_err_t gd32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
+{
+ uint32_t adc_periph;
+ struct gd32_adc * adc = (struct gd32_adc *)device->parent.user_data;
+
+ if (channel >= MAX_EXTERN_ADC_CHANNEL)
+ {
+ LOG_E("invalid channel");
+ return -RT_EINVAL;
+ }
+
+ adc_periph = (uint32_t )(adc->adc_periph);
+
+ if (enabled == ENABLE)
+ {
+ gd32_adc_gpio_init(adc->adc_clk, adc->adc_pins[channel]);
+
+ adc_channel_length_config(adc_periph, ADC_REGULAR_CHANNEL, 1);
+ adc_data_alignment_config(adc_periph, ADC_DATAALIGN_RIGHT);
+
+#if defined SOC_SERIES_GD32F4xx
+ adc_external_trigger_source_config(adc_periph, ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_EXTI_11);
+#else
+ adc_external_trigger_source_config(adc_periph, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE);
+#endif
+ adc_external_trigger_config(adc_periph, ADC_REGULAR_CHANNEL, ENABLE);
+
+#if defined SOC_SERIES_GD32F4xx
+ adc_regular_channel_config(adc_periph, 0, channel, ADC_SAMPLETIME_480);
+#else
+ adc_regular_channel_config(adc_periph, 0, channel, ADC_SAMPLETIME_13POINT5);
+#endif
+
+ adc_enable(adc_periph);
+
+ /* ADC calibration and reset calibration */
+ adc_calibration_enable(adc_periph);
+ }
+ else
+ {
+ adc_disable(adc_periph);
+ }
+ return 0;
+}
+
+/**
+* @brief convert adc.
+* This function get adc value.
+* @param device, channel, value
+* @retval None
+*/
+static rt_err_t gd32_adc_convert(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
+{
+ uint32_t adc_periph;
+ struct gd32_adc * adc = (struct gd32_adc *)(device->parent.user_data);
+
+ if (!value)
+ {
+ LOG_E("invalid param");
+ return -RT_EINVAL;
+ }
+
+ adc_periph = (uint32_t )(adc->adc_periph);
+ adc_software_trigger_enable(adc_periph, ADC_REGULAR_CHANNEL);
+
+ while(!adc_flag_get(adc_periph, ADC_FLAG_EOC)){};
+ // clear flag
+ adc_flag_clear(adc_periph, ADC_FLAG_EOC);
+
+ *value = adc_regular_data_read(adc_periph);
+
+ return 0;
+}
+
+static struct rt_adc_ops gd32_adc_ops = {
+ .enabled = gd32_adc_enabled,
+ .convert = gd32_adc_convert,
+};
+
+static int rt_hw_adc_init(void)
+{
+ int ret, i = 0;
+
+ for (; i < sizeof(adc_obj) / sizeof(adc_obj[0]); i++)
+ {
+ ret = rt_hw_adc_register(adc_obj[i].adc, \
+ (const char *)adc_obj[i].device_name, \
+ &gd32_adc_ops, &adc_obj[i]);
+ if (ret != RT_EOK)
+ {
+ /* TODO err handler */
+ LOG_E("failed register %s, err=%d", adc_obj[i].device_name, ret);
+ }
+ }
+
+ return ret;
+}
+INIT_BOARD_EXPORT(rt_hw_adc_init);
+#endif
diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_adc.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_adc.h
new file mode 100644
index 0000000000..b2bc10eb98
--- /dev/null
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_adc.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-05-03 BruceOu first implementation
+ */
+
+#ifndef __DRV_ADC_H__
+#define __DRV_ADC_H__
+
+#include
+#include
+#include
+#include "drv_gpio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* gd32 adc dirver class */
+struct gd32_adc
+{
+ uint32_t adc_periph;
+ rcu_periph_enum adc_clk;
+ rt_base_t adc_pins[16];
+ struct rt_adc_device *adc;
+ char *device_name;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DRV_ADC_H__ */
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_gpio.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c
similarity index 84%
rename from bsp/gd32/libraries/gd32_drivers/drv_gpio.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c
index 8ce5330077..73cf5cb620 100644
--- a/bsp/gd32/libraries/gd32_drivers/drv_gpio.c
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c
@@ -18,7 +18,7 @@
static const struct pin_index pins[] =
{
- /* GPIOA 0-15 */
+#ifdef GPIOA
GD32_PIN(0, A, 0),
GD32_PIN(1, A, 1),
GD32_PIN(2, A, 2),
@@ -35,7 +35,8 @@ static const struct pin_index pins[] =
GD32_PIN(13, A, 13),
GD32_PIN(14, A, 14),
GD32_PIN(15, A, 15),
- /* GPIOB 0-15 */
+#endif
+#ifdef GPIOB
GD32_PIN(16, B, 0),
GD32_PIN(17, B, 1),
GD32_PIN(18, B, 2),
@@ -52,7 +53,8 @@ static const struct pin_index pins[] =
GD32_PIN(39, B, 13),
GD32_PIN(30, B, 14),
GD32_PIN(31, B, 15),
- /* GPIOC 0-15 */
+#endif
+#ifdef GPIOC
GD32_PIN(32, C, 0),
GD32_PIN(33, C, 1),
GD32_PIN(34, C, 2),
@@ -69,104 +71,115 @@ static const struct pin_index pins[] =
GD32_PIN(45, C, 13),
GD32_PIN(46, C, 14),
GD32_PIN(47, C, 15),
- /* GPIOD 0-15 */
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
+#endif
+#ifdef GPIOD
+ GD32_PIN(48, D, 0),
+ GD32_PIN(49, D, 1),
GD32_PIN(50, D, 2),
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- /* GPIOE 0-15 */
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
+ GD32_PIN(51, D, 3),
+ GD32_PIN(52, D, 4),
+ GD32_PIN(53, D, 5),
+ GD32_PIN(54, D, 6),
+ GD32_PIN(55, D, 7),
+ GD32_PIN(56, D, 8),
+ GD32_PIN(57, D, 9),
+ GD32_PIN(58, D, 10),
+ GD32_PIN(59, D, 11),
+ GD32_PIN(60, D, 12),
+ GD32_PIN(61, D, 13),
+ GD32_PIN(62, D, 14),
+ GD32_PIN(63, D, 15),
+#endif
+#ifdef GPIOE
+ GD32_PIN(64, E, 0),
+ GD32_PIN(65, E, 1),
GD32_PIN(66, E, 2),
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- /* GPIOF 0-15 */
- GD32_PIN(64, F, 0),
- GD32_PIN(65, F, 1),
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN(68, F, 4),
- GD32_PIN(69, F, 5),
- GD32_PIN(70, F, 6),
- GD32_PIN(71, F, 7),
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- /* GPIOG 0-15 */
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- /* GPIOH 0-15 */
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- /* GPIOI 0-11 */
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
- GD32_PIN_DEFAULT,
+ GD32_PIN(67, E, 3),
+ GD32_PIN(68, E, 4),
+ GD32_PIN(69, E, 5),
+ GD32_PIN(70, E, 6),
+ GD32_PIN(71, E, 7),
+ GD32_PIN(72, E, 8),
+ GD32_PIN(73, E, 9),
+ GD32_PIN(74, E, 10),
+ GD32_PIN(75, E, 11),
+ GD32_PIN(76, E, 12),
+ GD32_PIN(77, E, 13),
+ GD32_PIN(78, E, 14),
+ GD32_PIN(79, E, 15),
+#endif
+#ifdef GPIOF
+ GD32_PIN(80, F, 0),
+ GD32_PIN(81, F, 1),
+ GD32_PIN(82, F, 2),
+ GD32_PIN(83, F, 3),
+ GD32_PIN(84, F, 4),
+ GD32_PIN(85, F, 5),
+ GD32_PIN(86, F, 6),
+ GD32_PIN(87, F, 7),
+ GD32_PIN(88, F, 8),
+ GD32_PIN(89, F, 9),
+ GD32_PIN(90, F, 10),
+ GD32_PIN(91, F, 11),
+ GD32_PIN(92, F, 12),
+ GD32_PIN(93, F, 13),
+ GD32_PIN(94, F, 14),
+ GD32_PIN(95, F, 15),
+#endif
+#ifdef GPIOG
+ GD32_PIN(96, G, 0),
+ GD32_PIN(97, G, 1),
+ GD32_PIN(98, G, 2),
+ GD32_PIN(99, G, 3),
+ GD32_PIN(100, G, 4),
+ GD32_PIN(101, G, 5),
+ GD32_PIN(102, G, 6),
+ GD32_PIN(103, G, 7),
+ GD32_PIN(104, G, 8),
+ GD32_PIN(105, G, 9),
+ GD32_PIN(106, G, 10),
+ GD32_PIN(107, G, 11),
+ GD32_PIN(108, G, 12),
+ GD32_PIN(109, G, 13),
+ GD32_PIN(110, G, 14),
+ GD32_PIN(111, G, 15),
+#endif
+#ifdef GPIOH
+ GD32_PIN(112, H, 0),
+ GD32_PIN(113, H, 1),
+ GD32_PIN(114, H, 2),
+ GD32_PIN(115, H, 3),
+ GD32_PIN(116, H, 4),
+ GD32_PIN(117, H, 5),
+ GD32_PIN(118, H, 6),
+ GD32_PIN(119, H, 7),
+ GD32_PIN(120, H, 8),
+ GD32_PIN(121, H, 9),
+ GD32_PIN(122, H, 10),
+ GD32_PIN(123, H, 11),
+ GD32_PIN(124, H, 12),
+ GD32_PIN(125, H, 13),
+ GD32_PIN(126, H, 14),
+ GD32_PIN(127, H, 15),
+#endif
+#ifdef GPIOI
+ GD32_PIN(128, I, 0),
+ GD32_PIN(129, I, 1),
+ GD32_PIN(130, I, 2),
+ GD32_PIN(131, I, 3),
+ GD32_PIN(132, I, 4),
+ GD32_PIN(133, I, 5),
+ GD32_PIN(134, I, 6),
+ GD32_PIN(135, I, 7),
+ GD32_PIN(136, I, 8),
+ GD32_PIN(137, I, 9),
+ GD32_PIN(138, I, 10),
+ GD32_PIN(139, I, 11),
+ GD32_PIN(140, I, 12),
+ GD32_PIN(141, I, 13),
+ GD32_PIN(142, I, 14),
+ GD32_PIN(143, I, 15),
+#endif
};
static const struct pin_irq_map pin_irq_map[] =
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_gpio.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h
similarity index 78%
rename from bsp/gd32/libraries/gd32_drivers/drv_gpio.h
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h
index aa4db2351d..5258a4f5ac 100644
--- a/bsp/gd32/libraries/gd32_drivers/drv_gpio.h
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h
@@ -48,13 +48,11 @@ extern "C" {
#define GET_PIN(PORTx,PIN) (rt_base_t)((16 * ( ((rt_base_t)__GD32_PORT(PORTx) - (rt_base_t)GPIO_BASE)/(0x0400UL) )) + PIN)
-#define PIN_NUM(port, no) (((((port)&0xFu) << 4) | ((no)&0xFu)))
-#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
-#define PIN_NO(pin) ((uint8_t)((pin)&0xFu))
+#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
+#define PIN_NO(pin) ((uint8_t)((pin) & 0xFu))
-#define PIN_GDPORT(pin) (GPIO_BASE + (0x400u * PIN_PORT(pin))) /* gpio_periph GPIOA~GPIOG */
-#define PIN_GDPIN(pin) ((uint16_t)(1u << PIN_NO(pin))) /* GPIO_PIN_0~GPIO_PIN_15 */
-#define PIN_GDRCU(pin) RCU_REGIDX_BIT(APB2EN_REG_OFFSET, PIN_PORT(pin) + 2) /* pin gpio外设时钟 */
+#define PIN_GDPORT(pin) (GPIO_BASE + (0x400u * PIN_PORT(pin)))
+#define PIN_GDPIN(pin) ((uint16_t)(1u << PIN_NO(pin)))
struct pin_index
{
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_hwtimer.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_hwtimer.c
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/drv_hwtimer.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_hwtimer.c
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_rtc.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/drv_rtc.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_soft_i2c.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_soft_i2c.c
similarity index 97%
rename from bsp/gd32/libraries/gd32_drivers/drv_soft_i2c.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_soft_i2c.c
index 176a7e3319..18c9795c9e 100644
--- a/bsp/gd32/libraries/gd32_drivers/drv_soft_i2c.c
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_soft_i2c.c
@@ -16,7 +16,7 @@
#if !defined(BSP_USING_I2C0) && !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3)
#error "Please define at least one BSP_USING_I2Cx"
-/* this driver can be disabled at menuconfig -> RT-Thread Components -> Device Drivers */
+/* this driver can be disabled at menuconfig → RT-Thread Components → Device Drivers */
#endif
static const struct gd32_soft_i2c_config soft_i2c_config[] =
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_soft_i2c.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_soft_i2c.h
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/drv_soft_i2c.h
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_soft_i2c.h
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_spi.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c
similarity index 76%
rename from bsp/gd32/libraries/gd32_drivers/drv_spi.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c
index aa626c4a77..fcbf523f88 100644
--- a/bsp/gd32/libraries/gd32_drivers/drv_spi.c
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c
@@ -11,7 +11,7 @@
#ifdef RT_USING_SPI
-#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2) || defined(BSP_USING_SPI3) || defined(BSP_USING_SPI4)
+#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2)
#define LOG_TAG "drv.spi"
#include
@@ -25,12 +25,6 @@ static struct rt_spi_bus spi_bus1;
#ifdef BSP_USING_SPI2
static struct rt_spi_bus spi_bus2;
#endif
-#ifdef BSP_USING_SPI3
-static struct rt_spi_bus spi_bus3;
-#endif
-#ifdef BSP_USING_SPI4
-static struct rt_spi_bus spi_bus4;
-#endif
static const struct gd32_spi spi_bus_obj[] = {
@@ -42,13 +36,10 @@ static const struct gd32_spi spi_bus_obj[] = {
RCU_GPIOA,
&spi_bus0,
GPIOA,
-#if defined SOC_SERIES_GD32F4xx
- GPIO_AF_5,
-#endif
GPIO_PIN_5,
GPIO_PIN_6,
GPIO_PIN_7,
- },
+ }
#endif /* BSP_USING_SPI0 */
#ifdef BSP_USING_SPI1
@@ -59,13 +50,10 @@ static const struct gd32_spi spi_bus_obj[] = {
RCU_GPIOB,
&spi_bus1,
GPIOB,
-#if defined SOC_SERIES_GD32F4xx
- GPIO_AF_5,
-#endif
GPIO_PIN_12,
GPIO_PIN_14,
GPIO_PIN_15,
- },
+ }
#endif /* BSP_USING_SPI1 */
#ifdef BSP_USING_SPI2
@@ -76,48 +64,11 @@ static const struct gd32_spi spi_bus_obj[] = {
RCU_GPIOB,
&spi_bus2,
GPIOB,
-#if defined SOC_SERIES_GD32F4xx
- GPIO_AF_6,
-#endif
GPIO_PIN_3,
GPIO_PIN_4,
GPIO_PIN_5,
- },
-#endif /* BSP_USING_SPI2 */
-
-#ifdef BSP_USING_SPI3
- {
- SPI2,
- "spi2",
- RCU_SPI3,
- RCU_GPIOE,
- &spi_bus3,
- GPIOB,
-#if defined SOC_SERIES_GD32F4xx
- GPIO_AF_5,
-#endif
- GPIO_PIN_2,
- GPIO_PIN_5,
- GPIO_PIN_6,
- },
-#endif /* BSP_USING_SPI3 */
-
-#ifdef BSP_USING_SPI4
- {
- SPI4,
- "spi4",
- RCU_SPI4,
- RCU_GPIOF,
- &spi_bus4,
- GPIOF,
-#if defined SOC_SERIES_GD32F4xx
- GPIO_AF_5,
-#endif
- GPIO_PIN_7,
- GPIO_PIN_8,
- GPIO_PIN_9,
}
-#endif /* BSP_USING_SPI4 */
+#endif /* BSP_USING_SPI2 */
};
/* private rt-thread spi ops function */
@@ -143,10 +94,11 @@ static void gd32_spi_init(struct gd32_spi *gd32_spi)
#if defined SOC_SERIES_GD32F4xx
/*GPIO pin configuration*/
- gpio_af_set(gd32_spi->spi_port, gd32_spi->alt_func_num, gd32_spi->sck_pin | gd32_spi->mosi_pin | gd32_spi->miso_pin);
+ gpio_af_set(gd32_spi->spi_port, GPIO_AF_5, gd32_spi->sck_pin | gd32_spi->mosi_pin | gd32_spi->miso_pin);
+
+ gpio_mode_set(gd32_spi->spi_port, GPIO_MODE_AF, GPIO_PUPD_NONE, gd32_spi->miso_pin| gd32_spi->miso_pin);
+ gpio_output_options_set(gd32_spi->spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_200MHZ,gd32_spi->miso_pin| gd32_spi->miso_pin);
- gpio_mode_set(gd32_spi->spi_port, GPIO_MODE_AF, GPIO_PUPD_NONE, gd32_spi->sck_pin | gd32_spi->mosi_pin | gd32_spi->miso_pin);
- gpio_output_options_set(gd32_spi->spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_200MHZ, gd32_spi->sck_pin | gd32_spi->miso_pin| gd32_spi->miso_pin);
#else
/* Init SPI SCK MOSI */
gpio_init(gd32_spi->spi_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, gd32_spi->sck_pin | gd32_spi->mosi_pin);
@@ -379,50 +331,6 @@ static rt_uint32_t spixfer(struct rt_spi_device* device, struct rt_spi_message*
return message->length;
};
-/**
- * Attach the spi device to SPI bus, this function must be used after initialization.
- */
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, uint32_t cs_gpiox, uint16_t cs_gpio_pin)
-{
- RT_ASSERT(bus_name != RT_NULL);
- RT_ASSERT(device_name != RT_NULL);
-
- rt_err_t result;
- struct rt_spi_device *spi_device;
- struct gd32_spi_cs *cs_pin;
-
-#if defined SOC_SERIES_GD32F4xx
- /* initialize the cs pin && select the slave*/
- gpio_mode_set(cs_gpiox, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, cs_gpio_pin);
- gpio_output_options_set(cs_gpiox, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, cs_gpio_pin);
- gpio_bit_set(cs_gpiox, cs_gpio_pin);
-#else
- /* initialize the cs pin && select the slave*/
- gpio_init(cs_gpiox, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, cs_gpio_pin);
- gpio_bit_set(cs_gpiox, cs_gpio_pin);
-#endif
-
- /* attach the device to spi bus*/
- spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
- RT_ASSERT(spi_device != RT_NULL);
- cs_pin = (struct gd32_spi_cs *)rt_malloc(sizeof(struct gd32_spi_cs));
- RT_ASSERT(cs_pin != RT_NULL);
- cs_pin->GPIOx = cs_gpiox;
- cs_pin->GPIO_Pin = cs_gpio_pin;
- result = rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin);
-
- if (result != RT_EOK)
- {
- LOG_E("%s attach to %s faild, %d\n", device_name, bus_name, result);
- }
-
- RT_ASSERT(result == RT_EOK);
-
- LOG_D("%s attach to %s done", device_name, bus_name);
-
- return result;
-}
-
int rt_hw_spi_init(void)
{
int result = 0;
@@ -444,5 +352,5 @@ int rt_hw_spi_init(void)
INIT_BOARD_EXPORT(rt_hw_spi_init);
-#endif /* BSP_USING_SPI0 || BSP_USING_SPI1 || BSP_USING_SPI2 || BSP_USING_SPI3 || BSP_USING_SPI4*/
+#endif /* BSP_USING_SPI0 || BSP_USING_SPI1 || BSP_USING_SPI2 */
#endif /* RT_USING_SPI */
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_spi.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h
similarity index 80%
rename from bsp/gd32/libraries/gd32_drivers/drv_spi.h
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h
index 0f3e066f28..6359d75bd1 100644
--- a/bsp/gd32/libraries/gd32_drivers/drv_spi.h
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h
@@ -34,16 +34,11 @@ struct gd32_spi
rcu_periph_enum gpio_clk;
struct rt_spi_bus *spi_bus;
uint32_t spi_port;
-#if defined SOC_SERIES_GD32F4xx
- uint32_t alt_func_num;
-#endif
uint16_t sck_pin;
uint16_t miso_pin;
uint16_t mosi_pin;
};
-rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, uint32_t cs_gpiox, uint16_t cs_gpio_pin);
-
#ifdef __cplusplus
}
#endif
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_spi_flash.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi_flash.c
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/drv_spi_flash.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_spi_flash.c
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_usart.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c
similarity index 99%
rename from bsp/gd32/libraries/gd32_drivers/drv_usart.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c
index 9eebb96327..c74c3468ca 100644
--- a/bsp/gd32/libraries/gd32_drivers/drv_usart.c
+++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c
@@ -496,7 +496,7 @@ static const struct rt_uart_ops gd32_uart_ops =
* @param None
* @retval None
*/
-int gd32_hw_usart_init(void)
+int rt_hw_usart_init(void)
{
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
int i;
@@ -519,6 +519,6 @@ int gd32_hw_usart_init(void)
return result;
}
-INIT_BOARD_EXPORT(gd32_hw_usart_init);
+INIT_BOARD_EXPORT(rt_hw_usart_init);
#endif
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_usart.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.h
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/drv_usart.h
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_usart.h
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_wdt.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c
similarity index 100%
rename from bsp/gd32/libraries/gd32_drivers/drv_wdt.c
rename to bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c
diff --git a/bsp/gd32/tools/sdk_dist.py b/bsp/gd32/arm/tools/sdk_dist.py
similarity index 100%
rename from bsp/gd32/tools/sdk_dist.py
rename to bsp/gd32/arm/tools/sdk_dist.py
diff --git a/bsp/gd32/docs/figures/menuconfig_gd32407v-start.png b/bsp/gd32/docs/figures/menuconfig_gd32407v-start.png
deleted file mode 100644
index ffb58f2390..0000000000
Binary files a/bsp/gd32/docs/figures/menuconfig_gd32407v-start.png and /dev/null differ
diff --git a/bsp/gd32/docs/figures/scons.png b/bsp/gd32/docs/figures/scons.png
deleted file mode 100644
index 6550574793..0000000000
Binary files a/bsp/gd32/docs/figures/scons.png and /dev/null differ
diff --git a/bsp/gd32/docs/figures/scons_dist.png b/bsp/gd32/docs/figures/scons_dist.png
deleted file mode 100644
index b36303e427..0000000000
Binary files a/bsp/gd32/docs/figures/scons_dist.png and /dev/null differ
diff --git a/bsp/gd32/docs/figures/scons_mdk5.png b/bsp/gd32/docs/figures/scons_mdk5.png
deleted file mode 100644
index e627581364..0000000000
Binary files a/bsp/gd32/docs/figures/scons_mdk5.png and /dev/null differ
diff --git a/bsp/gd32/docs/figures/scons_success.png b/bsp/gd32/docs/figures/scons_success.png
deleted file mode 100644
index d084d385a6..0000000000
Binary files a/bsp/gd32/docs/figures/scons_success.png and /dev/null differ
diff --git a/bsp/gd32/docs/figures/update.png b/bsp/gd32/docs/figures/update.png
deleted file mode 100644
index 01332bd377..0000000000
Binary files a/bsp/gd32/docs/figures/update.png and /dev/null differ
diff --git a/bsp/gd32/gd32105r-start/project.uvoptx b/bsp/gd32/gd32105r-start/project.uvoptx
deleted file mode 100644
index c41712a0e7..0000000000
--- a/bsp/gd32/gd32105r-start/project.uvoptx
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 10800000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 0
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F10x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F105RC$Flash\GD32F10x_CL.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32107c-eval/project.uvoptx b/bsp/gd32/gd32107c-eval/project.uvoptx
deleted file mode 100644
index 4dfb02c5ad..0000000000
--- a/bsp/gd32/gd32107c-eval/project.uvoptx
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 1
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F10x_CL -FL040000 -FS08000000 -FP0($$Device:GD32F107VC$Flash\GD32F10x_CL.FLM)
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32205r-start/Kconfig b/bsp/gd32/gd32205r-start/Kconfig
deleted file mode 100644
index 8cbc7b71a8..0000000000
--- a/bsp/gd32/gd32205r-start/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
diff --git a/bsp/gd32/gd32205r-start/project.uvoptx b/bsp/gd32/gd32205r-start/project.uvoptx
deleted file mode 100644
index 3511a69bb3..0000000000
--- a/bsp/gd32/gd32205r-start/project.uvoptx
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 0
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F20x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F205RC$Flash\GD32F20x_CL.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32303e-eval/Kconfig b/bsp/gd32/gd32303e-eval/Kconfig
deleted file mode 100644
index 8cbc7b71a8..0000000000
--- a/bsp/gd32/gd32303e-eval/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
diff --git a/bsp/gd32/gd32303e-eval/project.uvoptx b/bsp/gd32/gd32303e-eval/project.uvoptx
deleted file mode 100644
index 18fdad5165..0000000000
--- a/bsp/gd32/gd32303e-eval/project.uvoptx
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 0
- 0
- 1
-
- 0
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32305r-start/Kconfig b/bsp/gd32/gd32305r-start/Kconfig
deleted file mode 100644
index 8cbc7b71a8..0000000000
--- a/bsp/gd32/gd32305r-start/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
diff --git a/bsp/gd32/gd32305r-start/project.uvoptx b/bsp/gd32/gd32305r-start/project.uvoptx
deleted file mode 100644
index 18fdad5165..0000000000
--- a/bsp/gd32/gd32305r-start/project.uvoptx
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 0
- 0
- 1
-
- 0
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_CL -FS08000000 -FL040000 -FP0($$Device:GD32F305RC$Flash\GD32F30x_CL.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32407v-start/Kconfig b/bsp/gd32/gd32407v-start/Kconfig
deleted file mode 100644
index 8cbc7b71a8..0000000000
--- a/bsp/gd32/gd32407v-start/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
diff --git a/bsp/gd32/gd32407v-start/project.uvoptx b/bsp/gd32/gd32407v-start/project.uvoptx
deleted file mode 100644
index 6f7965ced8..0000000000
--- a/bsp/gd32/gd32407v-start/project.uvoptx
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 1
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0GD32F4xx_3MB -FL0300000 -FS08000000 -FP0($$Device:GD32F407VK$Flash\GD32F4xx_3MB.FLM)
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32450i-eval/Kconfig b/bsp/gd32/gd32450i-eval/Kconfig
deleted file mode 100644
index 8cbc7b71a8..0000000000
--- a/bsp/gd32/gd32450i-eval/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
diff --git a/bsp/gd32/gd32450i-eval/README.md b/bsp/gd32/gd32450i-eval/README.md
deleted file mode 100644
index 297275cb63..0000000000
--- a/bsp/gd32/gd32450i-eval/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# GD32450I-EVAL开发板BSP说明
-
-## 简介
-
-GD32450I-EVAL是兆易创新推出的一款GD32F4XX系列的评估板,最高主频高达200M,该开发板具有丰富的板载资源,可以充分发挥 GD32F450IKH6的芯片性能。
-
-该开发板常用 **板载资源** 如下:
-
-- GD32F450IKH6,主频 200MHz,3072KB FLASH ,256KB RAM
-
-- 常用外设
-
- - LED :3个,LED1 (PE2),LED2(PE3),LED3(PF10)
- - 按键:2个,K1(PA0),K2(PC13),K3(PB14)
-
-- 常用接口:USB 接口
-
-- 调试接口:GD-LINK
-
-## 外设支持
-
-本 BSP 目前对外设的支持情况如下:
-
-| **片上外设** | **支持情况** | **备注** |
-|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART | 支持 | UART0 - UART7 |
-| I2C | 支持 | I2C1 |
-| SPI | 支持 | SPI0 - SPI2 |
-| SPI FLASH | 支持 | |
-| **扩展模块** | **支持情况** | **备注** |
-| 暂无 | 暂不支持 | 暂不支持 |
-
-## 使用说明
-
-使用说明分为如下两个章节:
-
-- 快速上手
-
- 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
-
-- 进阶使用
-
- 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
-
-### 快速上手
-
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
-
-#### 硬件连接
-
-使用数据线连接开发板到 PC,使用RS232线连接COM0,打开电源开关。
-
-#### 编译下载
-
-双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
-
-> 工程默认配置使用 GD-Link 仿真器下载程序,在通过 GD-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板
-
-#### 运行结果
-
-下载程序成功之后,系统会自动运行,LED 闪烁。
-
-连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
-
-```bash
- \ | /
-- RT - Thread Operating System
- / | \ 4.1.0 build Mar 28 2022
- 2006 - 2022 Copyright by rt-thread team
-msh >
-```
-
-### 进阶使用
-
-此 BSP 默认只开启了 GPIO 和 串口1的功能,如果需使用高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
-
-1. 在 bsp 下打开 env 工具。
-
-2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
-
-3. 输入`pkgs --update`命令更新软件包。
-
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
-
-## 注意事项
-
-暂无
-
-## 联系人信息
-
-维护人:
-
-- [CornerOfSkyline](https://github.com/CornerOfSkyline), 邮箱:
\ No newline at end of file
diff --git a/bsp/gd32/gd32450i-eval/board/board.h b/bsp/gd32/gd32450i-eval/board/board.h
deleted file mode 100644
index 66708836c7..0000000000
--- a/bsp/gd32/gd32450i-eval/board/board.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-08-20 BruceOu first implementation
- */
-#ifndef __BOARD_H__
-#define __BOARD_H__
-
-#include "gd32f4xx.h"
-#include "drv_usart.h"
-#include "drv_gpio.h"
-
-#include "gd32f4xx_exti.h"
-
-#define EXT_SDRAM_BEGIN (0xC0000000U) /* the begining address of external SDRAM */
-#define EXT_SDRAM_END (EXT_SDRAM_BEGIN + (32U * 1024 * 1024)) /* the end address of external SDRAM */
-
-// Internal SRAM memory size[Kbytes] <8-256>
-// Default: 256
-#ifdef __ICCARM__
-// Use *.icf ram symbal, to avoid hardcode.
-extern char __ICFEDIT_region_RAM_end__;
-#define GD32_SRAM_END &__ICFEDIT_region_RAM_end__
-#else
-#define GD32_SRAM_SIZE 192
-#define GD32_SRAM_END (0x20000000 + GD32_SRAM_SIZE * 1024)
-#endif
-
-#ifdef __CC_ARM
-extern int Image$$RW_IRAM1$$ZI$$Limit;
-#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit)
-#elif __ICCARM__
-#pragma section="HEAP"
-#define HEAP_BEGIN (__segment_end("HEAP"))
-#else
-extern int __bss_end;
-#define HEAP_BEGIN (&__bss_end)
-#endif
-
-#define HEAP_END GD32_SRAM_END
-
-#endif
-
diff --git a/bsp/gd32/gd32450i-eval/project.uvoptx b/bsp/gd32/gd32450i-eval/project.uvoptx
deleted file mode 100644
index 1ae6de1bf8..0000000000
--- a/bsp/gd32/gd32450i-eval/project.uvoptx
+++ /dev/null
@@ -1,190 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 1
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- CMSIS_AGDI
- -X"CMSIS-DAP" -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM)
-
-
- 0
- JL2CM3
- -U59401765 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM)
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32450i-eval/project.uvprojx b/bsp/gd32/gd32450i-eval/project.uvprojx
deleted file mode 100644
index 00f3dc6b12..0000000000
--- a/bsp/gd32/gd32450i-eval/project.uvprojx
+++ /dev/null
@@ -1,754 +0,0 @@
-
-
- 2.1
- ### uVision Project, (C) Keil Software
-
-
- rt-thread
- 0x4
- ARM-ADS
- 0
-
-
- GD32F450IK
- GigaDevice
- GigaDevice.GD32F4xx_DFP.2.1.0
- http://gd32mcu.com/data/documents/pack/
- IRAM(0x20000000,0x040000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(20000000) ELITTLE
-
-
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM))
- 0
- $$Device:GD32F450IK$Device\Include\gd32f4xx.h
-
-
-
-
-
-
-
-
-
- $$Device:GD32F450IK$SVD\GD32F4xx.svd
- 0
- 0
-
-
-
-
-
-
- 0
- 0
- 0
- 0
- 1
-
- .\build\
- rtthread
- 1
- 0
- 0
- 1
- 0
- .\build\
- 1
- 0
- 0
-
- 0
- 0
-
-
- 0
- 0
- 0
- 0
-
-
- 0
- 0
-
-
- 0
- 0
- 0
- 0
-
-
- 1
- 0
- fromelf --bin !L --output rtthread.bin
-
- 0
- 0
- 0
- 0
-
- 0
-
-
-
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 3
-
-
- 1
-
-
- SARMCM3.DLL
- -REMAP -MPU
- DCM.DLL
- -pCM4
- SARMCM3.DLL
- -MPU
- TCM.DLL
- -pCM4
-
-
-
- 1
- 0
- 0
- 0
- 16
-
-
-
-
- 1
- 0
- 0
- 1
- 1
- 4096
-
- 1
- BIN\UL2CM3.DLL
-
-
-
-
-
- 0
-
-
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 1
- 0
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
- "Cortex-M4"
-
- 0
- 0
- 0
- 1
- 1
- 0
- 0
- 2
- 0
- 0
- 0
- 0
- 8
- 0
- 0
- 0
- 0
- 3
- 4
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 1
- 0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x20000000
- 0x40000
-
-
- 1
- 0x8000000
- 0x300000
-
-
- 0
- 0x0
- 0x0
-
-
- 1
- 0x0
- 0x0
-
-
- 1
- 0x0
- 0x0
-
-
- 1
- 0x0
- 0x0
-
-
- 1
- 0x8000000
- 0x300000
-
-
- 1
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x0
- 0x0
-
-
- 0
- 0x20000000
- 0x30000
-
-
- 0
- 0x10000000
- 0x10000
-
-
-
-
-
- 1
- 4
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 0
-
-
- USE_STDPERIPH_DRIVER, GD32F450, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND
-
- applications;.;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\gd32_drivers;..\..\..\components\finsh;.;..\..\..\include;..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Include;..\libraries\GD32F4xx_Firmware_Library\CMSIS;..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc;..\..\..\examples\utest\testcases\kernel
-
-
-
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 4
-
-
-
-
-
-
-
-
- 1
- 0
- 0
- 0
- 1
- 0
- 0x08000000
- 0x20000000
-
- .\gd32_rom.ld
-
-
-
-
-
-
-
-
-
-
- Applications
-
-
- main.c
- 1
- applications\main.c
-
-
-
-
- Compiler
-
-
- syscalls.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscalls.c
-
-
-
-
- syscall_mem.c
- 1
- ..\..\..\components\libc\compilers\armlibc\syscall_mem.c
-
-
-
-
- stdlib.c
- 1
- ..\..\..\components\libc\compilers\common\stdlib.c
-
-
-
-
- time.c
- 1
- ..\..\..\components\libc\compilers\common\time.c
-
-
-
-
- CPU
-
-
- showmem.c
- 1
- ..\..\..\libcpu\arm\common\showmem.c
-
-
-
-
- backtrace.c
- 1
- ..\..\..\libcpu\arm\common\backtrace.c
-
-
-
-
- div0.c
- 1
- ..\..\..\libcpu\arm\common\div0.c
-
-
-
-
- context_rvds.S
- 2
- ..\..\..\libcpu\arm\cortex-m4\context_rvds.S
-
-
-
-
- cpuport.c
- 1
- ..\..\..\libcpu\arm\cortex-m4\cpuport.c
-
-
-
-
- DeviceDrivers
-
-
- ringbuffer.c
- 1
- ..\..\..\components\drivers\ipc\ringbuffer.c
-
-
-
-
- pipe.c
- 1
- ..\..\..\components\drivers\ipc\pipe.c
-
-
-
-
- dataqueue.c
- 1
- ..\..\..\components\drivers\ipc\dataqueue.c
-
-
-
-
- waitqueue.c
- 1
- ..\..\..\components\drivers\ipc\waitqueue.c
-
-
-
-
- workqueue.c
- 1
- ..\..\..\components\drivers\ipc\workqueue.c
-
-
-
-
- ringblk_buf.c
- 1
- ..\..\..\components\drivers\ipc\ringblk_buf.c
-
-
-
-
- completion.c
- 1
- ..\..\..\components\drivers\ipc\completion.c
-
-
-
-
- pin.c
- 1
- ..\..\..\components\drivers\misc\pin.c
-
-
-
-
- serial.c
- 1
- ..\..\..\components\drivers\serial\serial.c
-
-
-
-
- Drivers
-
-
- startup_gd32f4xx.s
- 2
- ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\ARM\startup_gd32f4xx.s
-
-
-
-
- board.c
- 1
- board\board.c
-
-
-
-
- drv_gpio.c
- 1
- ..\libraries\gd32_drivers\drv_gpio.c
-
-
-
-
- drv_usart.c
- 1
- ..\libraries\gd32_drivers\drv_usart.c
-
-
-
-
- Finsh
-
-
- shell.c
- 1
- ..\..\..\components\finsh\shell.c
-
-
-
-
- msh.c
- 1
- ..\..\..\components\finsh\msh.c
-
-
-
-
- cmd.c
- 1
- ..\..\..\components\finsh\cmd.c
-
-
-
-
- Kernel
-
-
- timer.c
- 1
- ..\..\..\src\timer.c
-
-
-
-
- thread.c
- 1
- ..\..\..\src\thread.c
-
-
-
-
- clock.c
- 1
- ..\..\..\src\clock.c
-
-
-
-
- irq.c
- 1
- ..\..\..\src\irq.c
-
-
-
-
- scheduler.c
- 1
- ..\..\..\src\scheduler.c
-
-
-
-
- object.c
- 1
- ..\..\..\src\object.c
-
-
-
-
- kservice.c
- 1
- ..\..\..\src\kservice.c
-
-
-
-
- components.c
- 1
- ..\..\..\src\components.c
-
-
-
-
- device.c
- 1
- ..\..\..\src\device.c
-
-
-
-
- idle.c
- 1
- ..\..\..\src\idle.c
-
-
-
-
- mempool.c
- 1
- ..\..\..\src\mempool.c
-
-
-
-
- ipc.c
- 1
- ..\..\..\src\ipc.c
-
-
-
-
- mem.c
- 1
- ..\..\..\src\mem.c
-
-
-
-
- Libraries
-
-
- gd32f4xx_syscfg.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
-
-
-
-
- gd32f4xx_exti.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
-
-
-
-
- gd32f4xx_gpio.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
-
-
-
-
- gd32f4xx_rcu.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
-
-
-
-
- gd32f4xx_misc.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
-
-
-
-
- gd32f4xx_usart.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
-
-
-
-
- system_gd32f4xx.c
- 1
- ..\libraries\GD32F4xx_Firmware_Library\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <Project Info>
-
-
-
-
-
- 0
- 1
-
-
-
-
diff --git a/bsp/gd32/gd32450i-eval/template.uvoptx b/bsp/gd32/gd32450i-eval/template.uvoptx
deleted file mode 100644
index 1ae6de1bf8..0000000000
--- a/bsp/gd32/gd32450i-eval/template.uvoptx
+++ /dev/null
@@ -1,190 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 1
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- CMSIS_AGDI
- -X"CMSIS-DAP" -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM)
-
-
- 0
- JL2CM3
- -U59401765 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM)
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450IK$Flash\GD32F4xx_3MB.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32450z-eval/.config b/bsp/gd32/gd32450z-eval/.config
deleted file mode 100644
index 73c05ec3d9..0000000000
--- a/bsp/gd32/gd32450z-eval/.config
+++ /dev/null
@@ -1,671 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Configuration
-#
-
-#
-# RT-Thread Kernel
-#
-CONFIG_RT_NAME_MAX=8
-# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
-# CONFIG_RT_USING_SMP is not set
-CONFIG_RT_ALIGN_SIZE=4
-# CONFIG_RT_THREAD_PRIORITY_8 is not set
-CONFIG_RT_THREAD_PRIORITY_32=y
-# CONFIG_RT_THREAD_PRIORITY_256 is not set
-CONFIG_RT_THREAD_PRIORITY_MAX=32
-CONFIG_RT_TICK_PER_SECOND=100
-CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_USING_HOOK=y
-CONFIG_RT_HOOK_USING_FUNC_PTR=y
-CONFIG_RT_USING_IDLE_HOOK=y
-CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
-CONFIG_IDLE_THREAD_STACK_SIZE=256
-# CONFIG_RT_USING_TIMER_SOFT is not set
-
-#
-# kservice optimization
-#
-# CONFIG_RT_KSERVICE_USING_STDLIB is not set
-# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
-# CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_PRINTF_LONGLONG is not set
-CONFIG_RT_DEBUG=y
-CONFIG_RT_DEBUG_COLOR=y
-# CONFIG_RT_DEBUG_INIT_CONFIG is not set
-# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
-# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
-# CONFIG_RT_DEBUG_IPC_CONFIG is not set
-# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
-# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
-# CONFIG_RT_DEBUG_MEM_CONFIG is not set
-# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
-# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
-# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
-
-#
-# Inter-Thread communication
-#
-CONFIG_RT_USING_SEMAPHORE=y
-CONFIG_RT_USING_MUTEX=y
-CONFIG_RT_USING_EVENT=y
-CONFIG_RT_USING_MAILBOX=y
-CONFIG_RT_USING_MESSAGEQUEUE=y
-# CONFIG_RT_USING_SIGNALS is not set
-
-#
-# Memory Management
-#
-CONFIG_RT_USING_MEMPOOL=y
-CONFIG_RT_USING_SMALL_MEM=y
-# CONFIG_RT_USING_SLAB is not set
-# CONFIG_RT_USING_MEMHEAP is not set
-CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
-# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
-# CONFIG_RT_USING_SLAB_AS_HEAP is not set
-# CONFIG_RT_USING_USERHEAP is not set
-# CONFIG_RT_USING_NOHEAP is not set
-# CONFIG_RT_USING_MEMTRACE is not set
-# CONFIG_RT_USING_HEAP_ISR is not set
-CONFIG_RT_USING_HEAP=y
-
-#
-# Kernel Device Object
-#
-CONFIG_RT_USING_DEVICE=y
-# CONFIG_RT_USING_DEVICE_OPS is not set
-# CONFIG_RT_USING_INTERRUPT_INFO is not set
-CONFIG_RT_USING_CONSOLE=y
-CONFIG_RT_CONSOLEBUF_SIZE=128
-CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
-CONFIG_RT_VER_NUM=0x40100
-# CONFIG_RT_USING_CPU_FFS is not set
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-
-#
-# RT-Thread Components
-#
-CONFIG_RT_USING_COMPONENTS_INIT=y
-CONFIG_RT_USING_USER_MAIN=y
-CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
-CONFIG_RT_MAIN_THREAD_PRIORITY=10
-# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
-CONFIG_RT_USING_FINSH=y
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_THREAD_NAME="tshell"
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=4096
-CONFIG_FINSH_USING_HISTORY=y
-CONFIG_FINSH_HISTORY_LINES=5
-CONFIG_FINSH_USING_SYMTAB=y
-CONFIG_FINSH_CMD_SIZE=80
-CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
-CONFIG_FINSH_USING_DESCRIPTION=y
-# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-# CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_ARG_MAX=10
-# CONFIG_RT_USING_DFS is not set
-# CONFIG_RT_USING_FAL is not set
-
-#
-# Device Drivers
-#
-CONFIG_RT_USING_DEVICE_IPC=y
-CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
-CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
-CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
-CONFIG_RT_USING_SERIAL=y
-CONFIG_RT_USING_SERIAL_V1=y
-# CONFIG_RT_USING_SERIAL_V2 is not set
-CONFIG_RT_SERIAL_USING_DMA=y
-CONFIG_RT_SERIAL_RB_BUFSZ=64
-# CONFIG_RT_USING_CAN is not set
-# CONFIG_RT_USING_HWTIMER is not set
-# CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
-# CONFIG_RT_USING_PHY is not set
-CONFIG_RT_USING_PIN=y
-# CONFIG_RT_USING_ADC is not set
-# CONFIG_RT_USING_DAC is not set
-# CONFIG_RT_USING_PWM is not set
-# CONFIG_RT_USING_MTD_NOR is not set
-# CONFIG_RT_USING_MTD_NAND is not set
-# CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_RTC is not set
-# CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
-# CONFIG_RT_USING_WDT is not set
-# CONFIG_RT_USING_AUDIO is not set
-# CONFIG_RT_USING_SENSOR is not set
-# CONFIG_RT_USING_TOUCH is not set
-# CONFIG_RT_USING_HWCRYPTO is not set
-# CONFIG_RT_USING_PULSE_ENCODER is not set
-# CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_WIFI is not set
-
-#
-# Using USB
-#
-# CONFIG_RT_USING_USB is not set
-# CONFIG_RT_USING_USB_HOST is not set
-# CONFIG_RT_USING_USB_DEVICE is not set
-
-#
-# C/C++ and POSIX layer
-#
-CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
-
-#
-# POSIX (Portable Operating System Interface) layer
-#
-# CONFIG_RT_USING_POSIX_FS is not set
-# CONFIG_RT_USING_POSIX_DELAY is not set
-# CONFIG_RT_USING_POSIX_CLOCK is not set
-# CONFIG_RT_USING_POSIX_TIMER is not set
-# CONFIG_RT_USING_PTHREADS is not set
-# CONFIG_RT_USING_MODULE is not set
-
-#
-# Interprocess Communication (IPC)
-#
-# CONFIG_RT_USING_POSIX_PIPE is not set
-# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
-# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
-
-#
-# Socket is in the 'Network' category
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# Network
-#
-# CONFIG_RT_USING_SAL is not set
-# CONFIG_RT_USING_NETDEV is not set
-# CONFIG_RT_USING_LWIP is not set
-# CONFIG_RT_USING_AT is not set
-
-#
-# Utilities
-#
-# CONFIG_RT_USING_RYM is not set
-# CONFIG_RT_USING_ULOG is not set
-# CONFIG_RT_USING_UTEST is not set
-# CONFIG_RT_USING_VAR_EXPORT is not set
-# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
-
-#
-# RT-Thread Utestcases
-#
-# CONFIG_RT_USING_UTESTCASES is not set
-
-#
-# RT-Thread online packages
-#
-
-#
-# IoT - internet of things
-#
-# CONFIG_PKG_USING_LWIP is not set
-# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
-# CONFIG_PKG_USING_PAHOMQTT is not set
-# CONFIG_PKG_USING_UMQTT is not set
-# CONFIG_PKG_USING_WEBCLIENT is not set
-# CONFIG_PKG_USING_WEBNET is not set
-# CONFIG_PKG_USING_MONGOOSE is not set
-# CONFIG_PKG_USING_MYMQTT is not set
-# CONFIG_PKG_USING_KAWAII_MQTT is not set
-# CONFIG_PKG_USING_BC28_MQTT is not set
-# CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_LIBMODBUS is not set
-# CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_NANOPB is not set
-
-#
-# Wi-Fi
-#
-
-#
-# Marvell WiFi
-#
-# CONFIG_PKG_USING_WLANMARVELL is not set
-
-#
-# Wiced WiFi
-#
-# CONFIG_PKG_USING_WLAN_WICED is not set
-# CONFIG_PKG_USING_RW007 is not set
-# CONFIG_PKG_USING_COAP is not set
-# CONFIG_PKG_USING_NOPOLL is not set
-# CONFIG_PKG_USING_NETUTILS is not set
-# CONFIG_PKG_USING_CMUX is not set
-# CONFIG_PKG_USING_PPP_DEVICE is not set
-# CONFIG_PKG_USING_AT_DEVICE is not set
-# CONFIG_PKG_USING_ATSRV_SOCKET is not set
-# CONFIG_PKG_USING_WIZNET is not set
-# CONFIG_PKG_USING_ZB_COORDINATOR is not set
-
-#
-# IoT Cloud
-#
-# CONFIG_PKG_USING_ONENET is not set
-# CONFIG_PKG_USING_GAGENT_CLOUD is not set
-# CONFIG_PKG_USING_ALI_IOTKIT is not set
-# CONFIG_PKG_USING_AZURE is not set
-# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
-# CONFIG_PKG_USING_JIOT-C-SDK is not set
-# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
-# CONFIG_PKG_USING_JOYLINK is not set
-# CONFIG_PKG_USING_EZ_IOT_OS is not set
-# CONFIG_PKG_USING_NIMBLE is not set
-# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
-# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
-# CONFIG_PKG_USING_IPMSG is not set
-# CONFIG_PKG_USING_LSSDP is not set
-# CONFIG_PKG_USING_AIRKISS_OPEN is not set
-# CONFIG_PKG_USING_LIBRWS is not set
-# CONFIG_PKG_USING_TCPSERVER is not set
-# CONFIG_PKG_USING_PROTOBUF_C is not set
-# CONFIG_PKG_USING_DLT645 is not set
-# CONFIG_PKG_USING_QXWZ is not set
-# CONFIG_PKG_USING_SMTP_CLIENT is not set
-# CONFIG_PKG_USING_ABUP_FOTA is not set
-# CONFIG_PKG_USING_LIBCURL2RTT is not set
-# CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_AGILE_TELNET is not set
-# CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_PDULIB is not set
-# CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
-# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
-# CONFIG_PKG_USING_MAVLINK is not set
-# CONFIG_PKG_USING_BSAL is not set
-# CONFIG_PKG_USING_AGILE_MODBUS is not set
-# CONFIG_PKG_USING_AGILE_FTP is not set
-# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
-# CONFIG_PKG_USING_RT_LINK_HW is not set
-# CONFIG_PKG_USING_LORA_PKT_FWD is not set
-# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
-# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
-# CONFIG_PKG_USING_HM is not set
-# CONFIG_PKG_USING_SMALL_MODBUS is not set
-# CONFIG_PKG_USING_NET_SERVER is not set
-
-#
-# security packages
-#
-# CONFIG_PKG_USING_MBEDTLS is not set
-# CONFIG_PKG_USING_LIBSODIUM is not set
-# CONFIG_PKG_USING_TINYCRYPT is not set
-# CONFIG_PKG_USING_TFM is not set
-# CONFIG_PKG_USING_YD_CRYPTO is not set
-
-#
-# language packages
-#
-
-#
-# JSON: JavaScript Object Notation, a lightweight data-interchange format
-#
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
-# CONFIG_PKG_USING_RAPIDJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
-
-#
-# XML: Extensible Markup Language
-#
-# CONFIG_PKG_USING_SIMPLE_XML is not set
-# CONFIG_PKG_USING_EZXML is not set
-# CONFIG_PKG_USING_LUATOS_SOC is not set
-# CONFIG_PKG_USING_LUA is not set
-# CONFIG_PKG_USING_JERRYSCRIPT is not set
-# CONFIG_PKG_USING_MICROPYTHON is not set
-# CONFIG_PKG_USING_PIKASCRIPT is not set
-
-#
-# multimedia packages
-#
-
-#
-# LVGL: powerful and easy-to-use embedded GUI library
-#
-# CONFIG_PKG_USING_LVGL is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
-
-#
-# u8g2: a monochrome graphic library
-#
-# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
-# CONFIG_PKG_USING_U8G2 is not set
-# CONFIG_PKG_USING_OPENMV is not set
-# CONFIG_PKG_USING_MUPDF is not set
-# CONFIG_PKG_USING_STEMWIN is not set
-# CONFIG_PKG_USING_WAVPLAYER is not set
-# CONFIG_PKG_USING_TJPGD is not set
-# CONFIG_PKG_USING_PDFGEN is not set
-# CONFIG_PKG_USING_HELIX is not set
-# CONFIG_PKG_USING_AZUREGUIX is not set
-# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
-# CONFIG_PKG_USING_NUEMWIN is not set
-# CONFIG_PKG_USING_MP3PLAYER is not set
-# CONFIG_PKG_USING_TINYJPEG is not set
-# CONFIG_PKG_USING_UGUI is not set
-
-#
-# PainterEngine: A cross-platform graphics application framework written in C language
-#
-# CONFIG_PKG_USING_PAINTERENGINE is not set
-# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
-# CONFIG_PKG_USING_MCURSES is not set
-# CONFIG_PKG_USING_TERMBOX is not set
-# CONFIG_PKG_USING_VT100 is not set
-# CONFIG_PKG_USING_QRCODE is not set
-# CONFIG_PKG_USING_GUIENGINE is not set
-
-#
-# tools packages
-#
-# CONFIG_PKG_USING_CMBACKTRACE is not set
-# CONFIG_PKG_USING_EASYFLASH is not set
-# CONFIG_PKG_USING_EASYLOGGER is not set
-# CONFIG_PKG_USING_SYSTEMVIEW is not set
-# CONFIG_PKG_USING_SEGGER_RTT is not set
-# CONFIG_PKG_USING_RDB is not set
-# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
-# CONFIG_PKG_USING_ULOG_FILE is not set
-# CONFIG_PKG_USING_LOGMGR is not set
-# CONFIG_PKG_USING_ADBD is not set
-# CONFIG_PKG_USING_COREMARK is not set
-# CONFIG_PKG_USING_DHRYSTONE is not set
-# CONFIG_PKG_USING_MEMORYPERF is not set
-# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
-# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
-# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
-# CONFIG_PKG_USING_BS8116A is not set
-# CONFIG_PKG_USING_GPS_RMC is not set
-# CONFIG_PKG_USING_URLENCODE is not set
-# CONFIG_PKG_USING_UMCN is not set
-# CONFIG_PKG_USING_LWRB2RTT is not set
-# CONFIG_PKG_USING_CPU_USAGE is not set
-# CONFIG_PKG_USING_GBK2UTF8 is not set
-# CONFIG_PKG_USING_VCONSOLE is not set
-# CONFIG_PKG_USING_KDB is not set
-# CONFIG_PKG_USING_WAMR is not set
-# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
-# CONFIG_PKG_USING_LWLOG is not set
-# CONFIG_PKG_USING_ANV_TRACE is not set
-# CONFIG_PKG_USING_ANV_MEMLEAK is not set
-# CONFIG_PKG_USING_ANV_TESTSUIT is not set
-# CONFIG_PKG_USING_ANV_BENCH is not set
-# CONFIG_PKG_USING_DEVMEM is not set
-# CONFIG_PKG_USING_REGEX is not set
-# CONFIG_PKG_USING_MEM_SANDBOX is not set
-# CONFIG_PKG_USING_SOLAR_TERMS is not set
-# CONFIG_PKG_USING_GAN_ZHI is not set
-# CONFIG_PKG_USING_FDT is not set
-# CONFIG_PKG_USING_CBOX is not set
-# CONFIG_PKG_USING_SNOWFLAKE is not set
-
-#
-# system packages
-#
-
-#
-# enhanced kernel services
-#
-# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
-# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
-# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
-
-#
-# POSIX extension functions
-#
-# CONFIG_PKG_USING_POSIX_GETLINE is not set
-# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
-# CONFIG_PKG_USING_POSIX_ITOA is not set
-# CONFIG_PKG_USING_POSIX_STRINGS is not set
-
-#
-# acceleration: Assembly language or algorithmic acceleration packages
-#
-# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
-# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
-# CONFIG_PKG_USING_QFPLIB_M3 is not set
-
-#
-# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
-#
-# CONFIG_PKG_USING_CMSIS_5 is not set
-# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
-
-#
-# Micrium: Micrium software products porting for RT-Thread
-#
-# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
-# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
-# CONFIG_PKG_USING_UC_CRC is not set
-# CONFIG_PKG_USING_UC_CLK is not set
-# CONFIG_PKG_USING_UC_COMMON is not set
-# CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_PKG_USING_RTDUINO is not set
-# CONFIG_PKG_USING_CAIRO is not set
-# CONFIG_PKG_USING_PIXMAN is not set
-# CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_FLASHDB is not set
-# CONFIG_PKG_USING_SQLITE is not set
-# CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_DFS_YAFFS is not set
-# CONFIG_PKG_USING_LITTLEFS is not set
-# CONFIG_PKG_USING_DFS_JFFS2 is not set
-# CONFIG_PKG_USING_DFS_UFFS is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
-# CONFIG_PKG_USING_THREAD_POOL is not set
-# CONFIG_PKG_USING_ROBOTS is not set
-# CONFIG_PKG_USING_EV is not set
-# CONFIG_PKG_USING_SYSWATCH is not set
-# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
-# CONFIG_PKG_USING_PLCCORE is not set
-# CONFIG_PKG_USING_RAMDISK is not set
-# CONFIG_PKG_USING_MININI is not set
-# CONFIG_PKG_USING_QBOOT is not set
-# CONFIG_PKG_USING_PPOOL is not set
-# CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_LPM is not set
-# CONFIG_PKG_USING_TLSF is not set
-# CONFIG_PKG_USING_EVENT_RECORDER is not set
-# CONFIG_PKG_USING_ARM_2D is not set
-# CONFIG_PKG_USING_MCUBOOT is not set
-# CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_CHERRYUSB is not set
-# CONFIG_PKG_USING_KMULTI_RTIMER is not set
-
-#
-# peripheral libraries and drivers
-#
-# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
-# CONFIG_PKG_USING_REALTEK_AMEBA is not set
-# CONFIG_PKG_USING_SHT2X is not set
-# CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_AS7341 is not set
-# CONFIG_PKG_USING_STM32_SDIO is not set
-# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_BUTTON is not set
-# CONFIG_PKG_USING_PCF8574 is not set
-# CONFIG_PKG_USING_SX12XX is not set
-# CONFIG_PKG_USING_SIGNAL_LED is not set
-# CONFIG_PKG_USING_LEDBLINK is not set
-# CONFIG_PKG_USING_LITTLED is not set
-# CONFIG_PKG_USING_LKDGUI is not set
-# CONFIG_PKG_USING_NRF5X_SDK is not set
-# CONFIG_PKG_USING_NRFX is not set
-# CONFIG_PKG_USING_WM_LIBRARIES is not set
-# CONFIG_PKG_USING_KENDRYTE_SDK is not set
-# CONFIG_PKG_USING_INFRARED is not set
-# CONFIG_PKG_USING_MULTI_INFRARED is not set
-# CONFIG_PKG_USING_AGILE_BUTTON is not set
-# CONFIG_PKG_USING_AGILE_LED is not set
-# CONFIG_PKG_USING_AT24CXX is not set
-# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
-# CONFIG_PKG_USING_AD7746 is not set
-# CONFIG_PKG_USING_PCA9685 is not set
-# CONFIG_PKG_USING_I2C_TOOLS is not set
-# CONFIG_PKG_USING_NRF24L01 is not set
-# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
-# CONFIG_PKG_USING_MAX17048 is not set
-# CONFIG_PKG_USING_RPLIDAR is not set
-# CONFIG_PKG_USING_AS608 is not set
-# CONFIG_PKG_USING_RC522 is not set
-# CONFIG_PKG_USING_WS2812B is not set
-# CONFIG_PKG_USING_EMBARC_BSP is not set
-# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
-# CONFIG_PKG_USING_MULTI_RTIMER is not set
-# CONFIG_PKG_USING_MAX7219 is not set
-# CONFIG_PKG_USING_BEEP is not set
-# CONFIG_PKG_USING_EASYBLINK is not set
-# CONFIG_PKG_USING_PMS_SERIES is not set
-# CONFIG_PKG_USING_CAN_YMODEM is not set
-# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
-# CONFIG_PKG_USING_QLED is not set
-# CONFIG_PKG_USING_PAJ7620 is not set
-# CONFIG_PKG_USING_AGILE_CONSOLE is not set
-# CONFIG_PKG_USING_LD3320 is not set
-# CONFIG_PKG_USING_WK2124 is not set
-# CONFIG_PKG_USING_LY68L6400 is not set
-# CONFIG_PKG_USING_DM9051 is not set
-# CONFIG_PKG_USING_SSD1306 is not set
-# CONFIG_PKG_USING_QKEY is not set
-# CONFIG_PKG_USING_RS485 is not set
-# CONFIG_PKG_USING_RS232 is not set
-# CONFIG_PKG_USING_NES is not set
-# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
-# CONFIG_PKG_USING_VDEVICE is not set
-# CONFIG_PKG_USING_SGM706 is not set
-# CONFIG_PKG_USING_STM32WB55_SDK is not set
-# CONFIG_PKG_USING_RDA58XX is not set
-# CONFIG_PKG_USING_LIBNFC is not set
-# CONFIG_PKG_USING_MFOC is not set
-# CONFIG_PKG_USING_TMC51XX is not set
-# CONFIG_PKG_USING_TCA9534 is not set
-# CONFIG_PKG_USING_KOBUKI is not set
-# CONFIG_PKG_USING_ROSSERIAL is not set
-# CONFIG_PKG_USING_MICRO_ROS is not set
-# CONFIG_PKG_USING_MCP23008 is not set
-# CONFIG_PKG_USING_BLUETRUM_SDK is not set
-# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
-# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
-# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
-# CONFIG_PKG_USING_BL_MCU_SDK is not set
-# CONFIG_PKG_USING_SOFT_SERIAL is not set
-# CONFIG_PKG_USING_MB85RS16 is not set
-# CONFIG_PKG_USING_CW2015 is not set
-# CONFIG_PKG_USING_RFM300 is not set
-
-#
-# AI packages
-#
-# CONFIG_PKG_USING_LIBANN is not set
-# CONFIG_PKG_USING_NNOM is not set
-# CONFIG_PKG_USING_ONNX_BACKEND is not set
-# CONFIG_PKG_USING_ONNX_PARSER is not set
-# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
-# CONFIG_PKG_USING_ELAPACK is not set
-# CONFIG_PKG_USING_ULAPACK is not set
-# CONFIG_PKG_USING_QUEST is not set
-# CONFIG_PKG_USING_NAXOS is not set
-
-#
-# miscellaneous packages
-#
-
-#
-# project laboratory
-#
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
-
-#
-# entertainment: terminal games and other interesting software packages
-#
-# CONFIG_PKG_USING_CMATRIX is not set
-# CONFIG_PKG_USING_SL is not set
-# CONFIG_PKG_USING_CAL is not set
-# CONFIG_PKG_USING_ACLOCK is not set
-# CONFIG_PKG_USING_THREES is not set
-# CONFIG_PKG_USING_2048 is not set
-# CONFIG_PKG_USING_SNAKE is not set
-# CONFIG_PKG_USING_TETRIS is not set
-# CONFIG_PKG_USING_DONUT is not set
-# CONFIG_PKG_USING_COWSAY is not set
-# CONFIG_PKG_USING_LIBCSV is not set
-# CONFIG_PKG_USING_OPTPARSE is not set
-# CONFIG_PKG_USING_FASTLZ is not set
-# CONFIG_PKG_USING_MINILZO is not set
-# CONFIG_PKG_USING_QUICKLZ is not set
-# CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_MULTIBUTTON is not set
-# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
-# CONFIG_PKG_USING_CANFESTIVAL is not set
-# CONFIG_PKG_USING_ZLIB is not set
-# CONFIG_PKG_USING_MINIZIP is not set
-# CONFIG_PKG_USING_HEATSHRINK is not set
-# CONFIG_PKG_USING_DSTR is not set
-# CONFIG_PKG_USING_TINYFRAME is not set
-# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
-# CONFIG_PKG_USING_DIGITALCTRL is not set
-# CONFIG_PKG_USING_UPACKER is not set
-# CONFIG_PKG_USING_UPARAM is not set
-# CONFIG_PKG_USING_HELLO is not set
-# CONFIG_PKG_USING_VI is not set
-# CONFIG_PKG_USING_KI is not set
-# CONFIG_PKG_USING_ARMv7M_DWT is not set
-# CONFIG_PKG_USING_UKAL is not set
-# CONFIG_PKG_USING_CRCLIB is not set
-# CONFIG_PKG_USING_LWGPS is not set
-# CONFIG_PKG_USING_STATE_MACHINE is not set
-# CONFIG_PKG_USING_DESIGN_PATTERN is not set
-# CONFIG_PKG_USING_CONTROLLER is not set
-# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
-# CONFIG_PKG_USING_MFBD is not set
-
-#
-# Hardware Drivers Config
-#
-CONFIG_SOC_SERIES_GD32F4xx=y
-CONFIG_SOC_GD32450Z=y
-
-#
-# Onboard Peripheral Drivers
-#
-
-#
-# On-chip Peripheral Drivers
-#
-CONFIG_BSP_USING_GPIO=y
-CONFIG_BSP_USING_UART=y
-# CONFIG_BSP_USING_UART0 is not set
-CONFIG_BSP_USING_UART1=y
-# CONFIG_BSP_UART1_RX_USING_DMA is not set
-# CONFIG_BSP_USING_UART2 is not set
-# CONFIG_BSP_USING_UART3 is not set
-# CONFIG_BSP_USING_UART4 is not set
-# CONFIG_BSP_USING_UART5 is not set
-# CONFIG_BSP_USING_UART6 is not set
-# CONFIG_BSP_USING_UART7 is not set
-# CONFIG_BSP_USING_SPI is not set
-# CONFIG_BSP_USING_I2C1 is not set
-
-#
-# Board extended module Drivers
-#
diff --git a/bsp/gd32/gd32450z-eval/Kconfig b/bsp/gd32/gd32450z-eval/Kconfig
deleted file mode 100644
index 8cbc7b71a8..0000000000
--- a/bsp/gd32/gd32450z-eval/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-mainmenu "RT-Thread Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "board/Kconfig"
diff --git a/bsp/gd32/gd32450z-eval/SConstruct b/bsp/gd32/gd32450z-eval/SConstruct
deleted file mode 100644
index 2e0cd022f1..0000000000
--- a/bsp/gd32/gd32450z-eval/SConstruct
+++ /dev/null
@@ -1,60 +0,0 @@
-import os
-import sys
-import rtconfig
-
-if os.getenv('RTT_ROOT'):
- RTT_ROOT = os.getenv('RTT_ROOT')
-else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
-
-sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
-try:
- from building import *
-except:
- print('Cannot found RT-Thread root directory, please check RTT_ROOT')
- print(RTT_ROOT)
- exit(-1)
-
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-
-DefaultEnvironment(tools=[])
-env = Environment(tools = ['mingw'],
- AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
- CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
- AR = rtconfig.AR, ARFLAGS = '-rc',
- CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
- LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
-env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-
-if rtconfig.PLATFORM in ['iccarm']:
- env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
- env.Replace(ARFLAGS = [''])
- env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
-
-Export('RTT_ROOT')
-Export('rtconfig')
-
-SDK_ROOT = os.path.abspath('./')
-
-if os.path.exists(SDK_ROOT + '/libraries'):
- libraries_path_prefix = SDK_ROOT + '/libraries'
-else:
- libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
-
-SDK_LIB = libraries_path_prefix
-Export('SDK_LIB')
-
-# prepare building environment
-objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
-
-gd32_library = 'GD32F4xx_Firmware_Library'
-rtconfig.BSP_LIBRARY_TYPE = gd32_library
-
-# include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
-
-# include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript')))
-
-# make a building
-DoBuilding(TARGET, objs)
diff --git a/bsp/gd32/gd32450z-eval/board/SConscript b/bsp/gd32/gd32450z-eval/board/SConscript
deleted file mode 100644
index cc9fd76fbd..0000000000
--- a/bsp/gd32/gd32450z-eval/board/SConscript
+++ /dev/null
@@ -1,28 +0,0 @@
-import os
-import rtconfig
-from building import *
-
-Import('SDK_LIB')
-
-cwd = GetCurrentDir()
-
-# add general drivers
-src = Split('''
-board.c
-''')
-
-path = [cwd]
-
-startup_path_prefix = SDK_LIB
-
-if rtconfig.PLATFORM in ['gcc']:
- src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/GCC/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['armcc', 'armclang']:
- src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/ARM/startup_gd32f4xx.s']
-elif rtconfig.PLATFORM in ['iccarm']:
- src += [startup_path_prefix + '/GD32F4xx_Firmware_Library/CMSIS/GD/GD32F4xx/Source/IAR/startup_gd32f4xx.s']
-
-CPPDEFINES = ['GD32F450']
-group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
-
-Return('group')
diff --git a/bsp/gd32/gd32450z-eval/board/gd32f4xx_libopt.h b/bsp/gd32/gd32450z-eval/board/gd32f4xx_libopt.h
deleted file mode 100644
index d26e3d15ec..0000000000
--- a/bsp/gd32/gd32450z-eval/board/gd32f4xx_libopt.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*!
- \file gd32f4xx_libopt.h
- \brief library optional for gd32f4xx
-*/
-
-/*
- Copyright (C) 2016 GigaDevice
-
- 2016-10-19, V1.0.0, firmware for GD32F4xx
-*/
-
-#ifndef GD32F4XX_LIBOPT_H
-#define GD32F4XX_LIBOPT_H
-#include "gd32f4xx_rcu.h"
-#include "gd32f4xx_adc.h"
-#include "gd32f4xx_can.h"
-#include "gd32f4xx_crc.h"
-#include "gd32f4xx_ctc.h"
-#include "gd32f4xx_dac.h"
-#include "gd32f4xx_dbg.h"
-#include "gd32f4xx_dci.h"
-#include "gd32f4xx_dma.h"
-//#include "gd32f4xx_enet.h"
-#include "gd32f4xx_exmc.h"
-#include "gd32f4xx_exti.h"
-#include "gd32f4xx_fmc.h"
-#include "gd32f4xx_fwdgt.h"
-#include "gd32f4xx_gpio.h"
-#include "gd32f4xx_syscfg.h"
-#include "gd32f4xx_i2c.h"
-#include "gd32f4xx_ipa.h"
-#include "gd32f4xx_iref.h"
-#include "gd32f4xx_pmu.h"
-#include "gd32f4xx_rcu.h"
-#include "gd32f4xx_rtc.h"
-#include "gd32f4xx_sdio.h"
-#include "gd32f4xx_spi.h"
-#include "gd32f4xx_timer.h"
-#include "gd32f4xx_tli.h"
-#include "gd32f4xx_trng.h"
-#include "gd32f4xx_usart.h"
-#include "gd32f4xx_wwdgt.h"
-#include "gd32f4xx_misc.h"
-
-#endif /* GD32F4XX_LIBOPT_H */
diff --git a/bsp/gd32/gd32450z-eval/project.uvoptx b/bsp/gd32/gd32450z-eval/project.uvoptx
deleted file mode 100644
index 3947c5e208..0000000000
--- a/bsp/gd32/gd32450z-eval/project.uvoptx
+++ /dev/null
@@ -1,190 +0,0 @@
-
-
-
- 1.0
-
- ### uVision Project, (C) Keil Software
-
-
- *.c
- *.s*; *.src; *.a*
- *.obj; *.o
- *.lib
- *.txt; *.h; *.inc
- *.plm
- *.cpp
- 0
-
-
-
- 0
- 0
-
-
-
- rt-thread
- 0x4
- ARM-ADS
-
- 12000000
-
- 1
- 1
- 0
- 1
- 0
-
-
- 1
- 65535
- 0
- 0
- 0
-
-
- 79
- 66
- 8
- .\build\
-
-
- 1
- 1
- 1
- 0
- 1
- 1
- 0
- 1
- 0
- 0
- 0
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 0
-
-
- 1
- 0
- 1
-
- 255
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
- 1
- 1
- 1
- 0
- 0
- 1
- 0
- 0
- 3
-
-
-
-
-
-
-
-
-
-
- BIN\CMSIS_AGDI.dll
-
-
-
- 0
- CMSIS_AGDI
- -X"CMSIS-DAP" -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM)
-
-
- 0
- JL2CM3
- -U59401765 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB.FLM -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM)
-
-
- 0
- UL2CM3
- UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
-
-
-
-
- 0
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
-
diff --git a/bsp/gd32/gd32450z-eval/rtconfig.h b/bsp/gd32/gd32450z-eval/rtconfig.h
deleted file mode 100644
index 85f56c7cc2..0000000000
--- a/bsp/gd32/gd32450z-eval/rtconfig.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef RT_CONFIG_H__
-#define RT_CONFIG_H__
-
-/* Automatically generated file; DO NOT EDIT. */
-/* RT-Thread Configuration */
-
-/* RT-Thread Kernel */
-
-#define RT_NAME_MAX 8
-#define RT_ALIGN_SIZE 4
-#define RT_THREAD_PRIORITY_32
-#define RT_THREAD_PRIORITY_MAX 32
-#define RT_TICK_PER_SECOND 100
-#define RT_USING_OVERFLOW_CHECK
-#define RT_USING_HOOK
-#define RT_HOOK_USING_FUNC_PTR
-#define RT_USING_IDLE_HOOK
-#define RT_IDLE_HOOK_LIST_SIZE 4
-#define IDLE_THREAD_STACK_SIZE 256
-
-/* kservice optimization */
-
-#define RT_DEBUG
-#define RT_DEBUG_COLOR
-
-/* Inter-Thread communication */
-
-#define RT_USING_SEMAPHORE
-#define RT_USING_MUTEX
-#define RT_USING_EVENT
-#define RT_USING_MAILBOX
-#define RT_USING_MESSAGEQUEUE
-
-/* Memory Management */
-
-#define RT_USING_MEMPOOL
-#define RT_USING_SMALL_MEM
-#define RT_USING_SMALL_MEM_AS_HEAP
-#define RT_USING_HEAP
-
-/* Kernel Device Object */
-
-#define RT_USING_DEVICE
-#define RT_USING_CONSOLE
-#define RT_CONSOLEBUF_SIZE 128
-#define RT_CONSOLE_DEVICE_NAME "uart1"
-#define RT_VER_NUM 0x40100
-
-/* RT-Thread Components */
-
-#define RT_USING_COMPONENTS_INIT
-#define RT_USING_USER_MAIN
-#define RT_MAIN_THREAD_STACK_SIZE 2048
-#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
-#define RT_USING_FINSH
-#define FINSH_USING_MSH
-#define FINSH_THREAD_NAME "tshell"
-#define FINSH_THREAD_PRIORITY 20
-#define FINSH_THREAD_STACK_SIZE 4096
-#define FINSH_USING_HISTORY
-#define FINSH_HISTORY_LINES 5
-#define FINSH_USING_SYMTAB
-#define FINSH_CMD_SIZE 80
-#define MSH_USING_BUILT_IN_COMMANDS
-#define FINSH_USING_DESCRIPTION
-#define FINSH_ARG_MAX 10
-
-/* Device Drivers */
-
-#define RT_USING_DEVICE_IPC
-#define RT_USING_SYSTEM_WORKQUEUE
-#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
-#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
-#define RT_USING_SERIAL
-#define RT_USING_SERIAL_V1
-#define RT_SERIAL_USING_DMA
-#define RT_SERIAL_RB_BUFSZ 64
-#define RT_USING_PIN
-
-/* Using USB */
-
-
-/* C/C++ and POSIX layer */
-
-#define RT_LIBC_DEFAULT_TIMEZONE 8
-
-/* POSIX (Portable Operating System Interface) layer */
-
-
-/* Interprocess Communication (IPC) */
-
-
-/* Socket is in the 'Network' category */
-
-
-/* Network */
-
-
-/* Utilities */
-
-
-/* RT-Thread Utestcases */
-
-
-/* RT-Thread online packages */
-
-/* IoT - internet of things */
-
-
-/* Wi-Fi */
-
-/* Marvell WiFi */
-
-
-/* Wiced WiFi */
-
-
-/* IoT Cloud */
-
-
-/* security packages */
-
-
-/* language packages */
-
-/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
-
-
-/* XML: Extensible Markup Language */
-
-
-/* multimedia packages */
-
-/* LVGL: powerful and easy-to-use embedded GUI library */
-
-
-/* u8g2: a monochrome graphic library */
-
-
-/* PainterEngine: A cross-platform graphics application framework written in C language */
-
-
-/* tools packages */
-
-
-/* system packages */
-
-/* enhanced kernel services */
-
-
-/* POSIX extension functions */
-
-
-/* acceleration: Assembly language or algorithmic acceleration packages */
-
-
-/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
-
-
-/* Micrium: Micrium software products porting for RT-Thread */
-
-
-/* peripheral libraries and drivers */
-
-
-/* AI packages */
-
-
-/* miscellaneous packages */
-
-/* project laboratory */
-
-/* samples: kernel and components samples */
-
-
-/* entertainment: terminal games and other interesting software packages */
-
-
-/* Hardware Drivers Config */
-
-#define SOC_SERIES_GD32F4xx
-#define SOC_GD32450Z
-
-/* Onboard Peripheral Drivers */
-
-/* On-chip Peripheral Drivers */
-
-#define BSP_USING_GPIO
-#define BSP_USING_UART
-#define BSP_USING_UART1
-
-/* Board extended module Drivers */
-
-
-#endif
diff --git a/bsp/gd32/libraries/gd32_drivers/drv_adc.c b/bsp/gd32/libraries/gd32_drivers/drv_adc.c
deleted file mode 100644
index 6653ca2c38..0000000000
--- a/bsp/gd32/libraries/gd32_drivers/drv_adc.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2006-2022, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-02-25 iysheng first version
- * 2022-04-13 wangh adc init and convert bug fix
- */
-
-#include
-
-#ifdef RT_USING_ADC
-
-#define DBG_TAG "drv.adc"
-#define DBG_LVL DBG_INFO
-#include
-
-#define MAX_EXTERN_ADC_CHANNEL 16
-
-typedef struct
-{
- struct rt_adc_device adc_dev;
- char name[8];
- rt_base_t adc_pins[16];
- void *private_data;
-} gd32_adc_device;
-
-static gd32_adc_device adc_devs[] = {
-#ifdef BSP_USING_ADC0
- {
- .name = "adc0",
- .adc_pins = {
- GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
- GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
- GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
- GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
- },
- .private_data = (void *)ADC0,
- },
-#endif
-
-#ifdef BSP_USING_ADC1
- {
- .name = "adc1",
- .adc_pins = {
- GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
- GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
- GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
- GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
- },
- .private_data = (void *)ADC1,
- },
-#endif
-};
-
-static void gd32_adc_gpio_init(rt_base_t pin)
-{
- rcu_periph_clock_enable((rcu_periph_enum)PIN_GDRCU(pin));
- gpio_init(PIN_GDPORT(pin), GPIO_MODE_AIN, GPIO_OSPEED_50MHZ, PIN_GDPIN(pin));
-}
-
-static rt_err_t drv_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
-{
- if ((device == NULL) || (channel >= MAX_EXTERN_ADC_CHANNEL))
- {
- LOG_E("invalid channel\r\n");
- return -RT_EINVAL;
- }
-
- gd32_adc_device *gd32_adc = (gd32_adc_device *)device;
- uint32_t adc_periph = (uint32_t )(device->parent.user_data);
-
- if (enabled == ENABLE)
- {
- gd32_adc_gpio_init(gd32_adc->adc_pins[channel]);
- adc_deinit(adc_periph);
- adc_channel_length_config(adc_periph, ADC_REGULAR_CHANNEL, 1);
- adc_data_alignment_config(adc_periph, ADC_DATAALIGN_RIGHT); /* 数据右对齐 */
- adc_external_trigger_config(adc_periph, ADC_REGULAR_CHANNEL, ENABLE); /* 规则组外部触发使能 */
- adc_external_trigger_source_config(adc_periph, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE);
- adc_special_function_config(adc_periph, ADC_SCAN_MODE, DISABLE); /* 扫描模式禁止,单通道模式 */
- adc_special_function_config(adc_periph, ADC_CONTINUOUS_MODE, DISABLE); /* 连续转换禁止,单次转换模式 */
- adc_discontinuous_mode_config(adc_periph, ADC_REGULAR_CHANNEL, 1); /* 规则组间断使能及转换通道数目 */
- adc_enable(adc_periph);
- rt_hw_us_delay(500);
- adc_calibration_enable(adc_periph); /* ADC自校准 */
- }
- else
- {
- adc_disable(adc_periph);
- }
-
- return 0;
-}
-
-static rt_err_t drv_adc_convert(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
-{
- if ((device == NULL) || (channel >= MAX_EXTERN_ADC_CHANNEL) || (value == NULL))
- {
- LOG_E("invalid param\r\n");
- return -RT_EINVAL;
- }
-
- uint32_t adc_periph = (uint32_t )(device->parent.user_data);
-
- adc_regular_channel_config(adc_periph, 0, channel, ADC_SAMPLETIME_239POINT5);
- adc_software_trigger_enable(adc_periph, ADC_REGULAR_CHANNEL);
-
- while(!adc_flag_get(adc_periph, ADC_FLAG_EOC)); /* 等待ADC转换完成 */
- adc_flag_clear(adc_periph, ADC_FLAG_EOC); /* 清除转换完成标志位 */
- adc_flag_clear(adc_periph, ADC_FLAG_STRC);
- *value = adc_regular_data_read(adc_periph);
-
- return 0;
-}
-
-static struct rt_adc_ops drv_adc_ops = {
- .enabled = drv_adc_enabled,
- .convert = drv_adc_convert,
-};
-
-static int rt_hw_adc_init(void)
-{
- int ret, i = 0;
-
-#ifdef BSP_USING_ADC0
- rcu_periph_clock_enable(RCU_ADC0);
-#endif
-
-#ifdef BSP_USING_ADC1
- rcu_periph_clock_enable(RCU_ADC1);
-#endif
-
- rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV6); /* 72/6 = 12MHz need < 14MHZ */
- adc_mode_config(ADC_MODE_FREE);
-
- for (; i < sizeof(adc_devs) / sizeof(gd32_adc_device); i++)
- {
- ret = rt_hw_adc_register(&adc_devs[i].adc_dev,
- (const char *)adc_devs[i].name,
- &drv_adc_ops, (void *)adc_devs[i].private_data);
- if (ret != RT_EOK)
- {
- /* TODO err handler */
- LOG_E("failed register %s, err=%d\r\n", adc_devs[i].name, ret);
- }
- }
-
- return ret;
-}
-INIT_BOARD_EXPORT(rt_hw_adc_init);
-#endif
diff --git a/bsp/gd32/risc-v/README.md b/bsp/gd32/risc-v/README.md
new file mode 100644
index 0000000000..cc2ba4c067
--- /dev/null
+++ b/bsp/gd32/risc-v/README.md
@@ -0,0 +1,20 @@
+
+# GD32 RISC-V 系列BSP 说明
+
+GD32 RISC-V系列 BSP 目前支持情况如下表所示:
+
+| **BSP 文件夹名称** | **开发板名称** |
+|:------------------------- |:-------------------------- |
+| **VF1 系列** | |
+| [gd32vf103v-eval](gd32vf103v-eval) | 兆易创新 官方 GD32VF103V-EVAL 开发板 |
+| [gd32vf103r-start](gd32vf103r-start) | 兆易创新 官方 GD32VF103R-START 开发板 |
+
+可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
+
+| **BSP 使用教程** | **简介** |
+|:-------------------- |:------------------------------------------------- |
+| [外设驱动使用教程](docs/GD32_RISC-V系列BSP外设驱动使用教程.md) | 讲解 BSP 上更多外设驱动的使用方法 |
+| [外设驱动介绍与应用](docs/GD32_RISC-V系列驱动介绍.md) | 讲解 GD32 RISC-V系列 BSP 驱动的支持情况,以及如何利用驱动框架开发应用程序 |
+| **BSP 制作与提交** | **简介** |
+| [BSP 制作教程](docs/GD32_RISC-V系列BSP制作教程.md) | 讲解 GD32 RISC-V系列 BSP 的制作方法 |
+
diff --git a/bsp/gd32/risc-v/docs/GD32_RISC-V系列BSP制作教程.md b/bsp/gd32/risc-v/docs/GD32_RISC-V系列BSP制作教程.md
new file mode 100644
index 0000000000..8e8622e5a0
--- /dev/null
+++ b/bsp/gd32/risc-v/docs/GD32_RISC-V系列BSP制作教程.md
@@ -0,0 +1,612 @@
+# GD32 RISC-V系列 BSP 制作教程
+
+## 1. BSP 框架介绍
+
+BSP 框架结构如下图所示:
+
+
+
+GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards,其中libraries包含了GD32的通用库,包括每个系列的Firmware Library以及适配RT-Thread的drivers;tools是生成工程的Python脚本工具;另外就是Boards文件,当然这里的Boards有很多,我这里值列举了GD32VF103V_EVAL。
+
+## 2. 知识准备
+
+制作一个 BSP 的过程就是构建一个新系统的过程,因此想要制作出好用的 BSP,要对 RT-Thread 系统的构建过程有一定了解,需要的知识准备如下所示:
+
+- 掌握 GD32 RISC-V系列 BSP 的使用方法
+
+ 了解 BSP 的使用方法,可以阅读 [BSP 说明文档](../README.md) 中使用教程表格内的文档。
+
+- 了解 RISC-V系列MCU的基本架构与特征
+
+- 了解 Scons 工程构建方法
+
+ RT-Thread 使用 Scons 作为系统的构建工具,因此了解 Scons 的常用命令对制作新 BSP 是基本要求。
+
+- 了解设备驱动框架
+
+ 在 RT-Thread 系统中,应用程序通过设备驱动框架来操作硬件,因此了解设备驱动框架,对添加 BSP 驱动是很重要的。
+
+- 了解 Kconfig 语法
+
+ RT-Thread 系统通过 menuconfig 的方式进行配置,而 menuconfig 中的选项是由 Kconfig 文件决定的,因此想要对 RT-Thread 系统进行配置,需要对 kconfig 语法有一定了解。
+
+## 3. BSP移植
+
+### 3.1 GCC环境准备
+
+RISC-V系列MCU使用的工具链是xPack GNU RISC-V Embedded GCC。
+
+在配置交叉编译工具链之前,需要下载得到GCC工具链的安装包,然后解压即可,也可配置环境变量。
+
+[GCC工具链下载地址](https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/)
+
+
+
+根据自己的主机选择相应的版本,下载完成解压即可。
+
+
+
+### 3.2 BSP工程制作
+
+**1.构建基础工程**
+首先看看RT-Thread代码仓库中已有很多BSP,而我要移植的是RISC-V内核。这里参考GD32 ARM工程。最终目录如下:
+```
+risc-v
+docs # 说明文档
+gd32vf103v-eval # 具体BSP
+libraries # 库文件
+ gd32_drivers
+ GD32VF103_Firmware_Library # GD官方固件库
+tools
+ OpenOCD # OpenOCD 下载调试工具
+README.md
+```
+**2.修改BSP构建脚本**
+bsp/gd32/risc-v/gd32vf103v-eval/SConstruct修改后的内容如下:
+```python
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+ from building import *
+except:
+ print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+ print(RTT_ROOT)
+ exit(-1)
+
+TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+ AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+ CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ AR = rtconfig.AR, ARFLAGS = '-rc',
+ CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+ LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+env['ASCOM'] = env['ASPPCOM']
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+# prepare building environment
+# objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+objs = PrepareBuilding(env, RTT_ROOT)
+
+gd32_library = 'GD32VF103_Firmware_Library'
+rtconfig.BSP_LIBRARY_TYPE = gd32_library
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)
+```
+该文件用于链接所有的依赖文件,并调用make进行编译。该文件主要修改固件库的路径。
+
+bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.py修改后的内容如下:
+```python
+import os
+
+# toolchains options
+ARCH='risc-v'
+CPU='bumblebee'
+CROSS_TOOL='gcc'
+
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
+if os.getenv('RTT_CC'):
+ CROSS_TOOL = os.getenv('RTT_CC')
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+
+# cross_tool provides the cross compiler
+# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
+if CROSS_TOOL == 'gcc':
+ PLATFORM = 'gcc'
+ EXEC_PATH = EXEC_PATH = r'D:/gcc/xpack-riscv-none-embed-gcc-10.2.0-1.2/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')
+
+CORE = 'risc-v'
+BUILD = 'debug'
+MAP_FILE = 'rtthread.map'
+LINK_FILE = '../libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds'
+
+if PLATFORM == 'gcc':
+ # toolchains
+ PREFIX = 'riscv-none-embed-'
+ CC = PREFIX + 'gcc'
+ AS = PREFIX + 'gcc'
+ AR = PREFIX + 'ar'
+ CXX = PREFIX + 'g++'
+ LINK = PREFIX + 'gcc'
+ TARGET_EXT = 'elf'
+ SIZE = PREFIX + 'size'
+ OBJDUMP = PREFIX + 'objdump'
+ OBJCPY = PREFIX + 'objcopy'
+
+ DEVICE = ' -march=rv32imac -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -L. -nostartfiles -lc '
+ CFLAGS = DEVICE
+ CFLAGS += ' -save-temps=obj'
+ AFLAGS = '-c'+ DEVICE + ' -x assembler-with-cpp'
+ AFLAGS += ' -Iplatform -Ilibraries/RISCV/include -Ilibraries/RISCV/env_Eclipse'
+ LFLAGS = DEVICE
+ LFLAGS += ' -Wl,--gc-sections,-cref,-Map=' + MAP_FILE
+ LFLAGS += ' -T ' + LINK_FILE
+ LFLAGS += ' -Wl,-wrap=memset'
+
+ CPATH = ''
+ LPATH = ''
+
+ if BUILD == 'debug':
+ CFLAGS += ' -O0 -g3'
+ AFLAGS += ' -g3'
+ else:
+ CFLAGS += ' -O2'
+
+ CXXFLAGS = CFLAGS
+
+ POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
+
+def dist_handle(BSP_ROOT, dist_dir):
+ import sys
+ cwd_path = os.getcwd()
+ sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
+ from sdk_dist import dist_do_building
+dist_do_building(BSP_ROOT, dist_dir)
+```
+该文件编译参数,主要关注链接脚本和交叉编译工具链,工具链的地址需要根据实际的地址修改,gd32vf103v-eval开发板使用的芯片是GD32VF103VB,因此其链接脚本是GD32VF103xB.lds。
+
+**3.修改board文件夹**
+(1) 修改bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig文件
+
+修改后内容如下:
+```
+menu "Hardware Drivers Config"
+
+config SOC_SERIES_GD32VF103V
+ bool
+ default y
+
+config SOC_GD32VF103V
+ bool
+ select SOC_SERIES_GD32VF103V
+ select RT_USING_COMPONENTS_INIT
+ select RT_USING_USER_MAIN
+ default y
+
+menu "Onboard Peripheral Drivers"
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+
+ config BSP_USING_GPIO
+ bool "Enable GPIO"
+ select RT_USING_PIN
+ default y
+
+ menuconfig BSP_USING_UART
+ bool "Enable UART"
+ default y
+ select RT_USING_SERIAL
+ if BSP_USING_UART
+ config BSP_USING_UART0
+ bool "Enable UART0"
+ default y
+
+ config BSP_UART0_RX_USING_DMA
+ bool "Enable UART0 RX DMA"
+ depends on BSP_USING_UART0
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART1
+ bool "Enable UART1"
+ default n
+
+ config BSP_UART1_RX_USING_DMA
+ bool "Enable UART1 RX DMA"
+ depends on BSP_USING_UART1
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART2
+ bool "Enable UART2"
+ default n
+
+ config BSP_UART2_RX_USING_DMA
+ bool "Enable UART2 RX DMA"
+ depends on BSP_USING_UART2
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART3
+ bool "Enable UART3"
+ default n
+
+ config BSP_UART3_RX_USING_DMA
+ bool "Enable UART3 RX DMA"
+ depends on BSP_USING_UART3
+ select RT_SERIAL_USING_DMA
+ default n
+
+ config BSP_USING_UART4
+ bool "Enable UART4"
+ default n
+
+ config BSP_UART4_RX_USING_DMA
+ bool "Enable UART4 RX DMA"
+ depends on BSP_USING_UART4
+ select RT_SERIAL_USING_DMA
+ default n
+ endif
+
+ menuconfig BSP_USING_SPI
+ bool "Enable SPI BUS"
+ default n
+ select RT_USING_SPI
+ if BSP_USING_SPI
+ config BSP_USING_SPI1
+ bool "Enable SPI1 BUS"
+ default n
+
+ config BSP_SPI1_TX_USING_DMA
+ bool "Enable SPI1 TX DMA"
+ depends on BSP_USING_SPI1
+ default n
+
+ config BSP_SPI1_RX_USING_DMA
+ bool "Enable SPI1 RX DMA"
+ depends on BSP_USING_SPI1
+ select BSP_SPI1_TX_USING_DMA
+ default n
+ endif
+
+ menuconfig BSP_USING_I2C1
+ bool "Enable I2C1 BUS (software simulation)"
+ default n
+ select RT_USING_I2C
+ select RT_USING_I2C_BITOPS
+ select RT_USING_PIN
+ if BSP_USING_I2C1
+ config BSP_I2C1_SCL_PIN
+ int "i2c1 scl pin number"
+ range 1 216
+ default 24
+ config BSP_I2C1_SDA_PIN
+ int "I2C1 sda pin number"
+ range 1 216
+ default 25
+ endif
+
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
+ default n
+ endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
+ source "../libraries/gd32_drivers/Kconfig"
+
+endmenu
+
+menu "Board extended module Drivers"
+
+endmenu
+
+endmenu
+```
+这个文件就是配置板子驱动的,这里可根据实际需求添加。
+
+(2) 修改bsp/gd32/risc-v/gd32vf103v-eval/board/SConscript文件
+修改后内容如下:
+```python
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+''')
+
+path = [cwd]
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+ src += [startup_path_prefix + '/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S']
+ src += [startup_path_prefix + '/GD32VF103_Firmware_Library/RISCV/env_Eclipse/entry.S']
+
+CPPDEFINES = ['GD32VF103V_EVAL']
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+
+
+Return('group')
+```
+该文件主要添加board文件夹的.c文件和头文件路径。另外根据开发环境选择相应的汇编文件,和前面的libraries的SConscript语法是一样,文件的结构都是类似的,这里就没有注释了。
+
+到这里,基本所有的依赖脚本都配置完成了。
+
+**4.固件库修改**
+(1) 修改bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S
+GCC 环境下的启动是由 entry() 函数调用的启动函数 rt_thread_startup(),所以需要修改启动文的C语言入口。
+
+
+
+
+(2) 修改bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds
+GD32VF103xB.lds文件需要新增RT-Thread堆栈的位置,否则无法正常运转,新增代码如下:
+```
+/* section information for finsh shell */
+. = ALIGN(4);
+__fsymtab_start = .;
+KEEP(*(FSymTab))
+__fsymtab_end = .;
+. = ALIGN(4);
+__vsymtab_start = .;
+KEEP(*(VSymTab))
+__vsymtab_end = .;
+. = ALIGN(4);
+
+/* section information for initial. */
+. = ALIGN(4);
+__rt_init_start = .;
+KEEP(*(SORT(.rti_fn*)))
+__rt_init_end = .;
+. = ALIGN(4);
+
+/* section information for modules */
+. = ALIGN(4);
+__rtmsymtab_start = .;
+KEEP(*(RTMSymTab))
+__rtmsymtab_end = .;
+```
+
+
+
+**5.驱动修改**
+一个基本的BSP中,串口是必不可少的,所以还需要编写串口驱动,这里使用的串口0作为调试串口。
+
+板子上还有LED灯,主要编写GPIO驱动即可。
+
+关于串口和LED的驱动可以查看源码,这里就不贴出来了。
+
+**6.应用开发**
+笔者在applications的main.c中添加LED的应用代码,
+
+```c
+#include
+#include
+#include
+#include
+
+/* defined the LED1 pin: PC0 */
+#define LED1_PIN GET_PIN(C, 0)
+
+int main(void)
+{
+ int count = 1;
+
+ /* set LED1 pin mode to output */
+ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
+
+ while (count++)
+ {
+ rt_pin_write(LED1_PIN, PIN_HIGH);
+ rt_thread_mdelay(500);
+ rt_pin_write(LED1_PIN, PIN_LOW);
+ rt_thread_mdelay(500);
+ }
+
+ return RT_EOK;
+}
+```
+
+当然,这需要GPIO驱动的支持。
+
+**7.使用ENV编译工程**
+在env中执行:scons
+
+
+
+编译成功打印信息如下:
+
+
+
+**8.使用VS Code开发GD32**
+在env中执行:scons --target=vsc
+
+
+
+这样就可方便使用VSCode开发GD32了,当然,这里只是生成了c_cpp_properties.json,要想使用VS Code下载代码还需要更多的配置,下一节讲解。
+
+### 3.3固件下载
+前面使用ENV成功编译GD32VF103V-SEVAL的固件,那么接下来就是下载环节,下载方式很多,笔者这里讲解使用OpenOCD工具下载。
+
+OpenOCD是用于对RISC-V进行下载仿真的软件工具,是一个开源软件包。当然啦,要想使用OpenOCD下载固件,需要GD-Link或者J-Link的支持。OpenOCD软件包已经放在bsp/gd32/risc-v/tools,只需要简单配置就可以,笔者这里使用VS Code开发。
+
+**1.新建bsp/gd32/risc-v/gd32vf103v-eval/.vscode/tasks.json**
+
+tasks.json的作用就是配置工程的编译、下载等工作。如果没有则需要创建tasks.json文件,内容如下:
+```json
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "download",
+ "type": "shell",
+ "command": "../tools/OpenOCD/bin/openocd.exe",
+ "args": [
+ "-f",
+ "../tools/interface/openocd_gdlink_riscv.cfg",
+ "-c",
+ "program rtthread.elf exit"
+ ]
+ }
+ ]
+}
+```
+这个文件创建了一个任务,任务名为download,用于在线下载固件。
+选择“终端->运行任务…”
+
+
+
+选择task中配置的命令download。
+
+
+
+稍等片刻,即可下载成功。
+
+
+
+
+固件下载成后,接上串口0,打印信息如下:
+
+
+
+同时LED会不断闪烁。
+
+
+## 4. 规范
+
+本章节介绍 RT-Thread GD32 系列 BSP 制作与提交时应当遵守的规范 。开发人员在 BSP 制作完成后,可以根据本规范提出的检查点对制作的 BSP 进行检查,确保 BSP 在提交前有较高的质量 。
+
+### 4.1 BSP 制作规范
+
+GD32 BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和 IDE 配置。在已有的 GD32 系列 BSP 的模板中,已经根据下列规范对模板进行配置。在制作新 BSP 的过程中,拷贝模板进行修改时,需要注意的是不要修改这些默认的配置。BSP 制作完成后,需要对新制作的 BSP 进行功能测试,功能正常后再进行代码提交。
+
+下面将详细介绍 BSP 的制作规范。
+
+#### 4.1.1 工程配置
+
+- 遵从RT-Thread 编码规范,代码注释风格统一
+- main 函数功能保持一致
+ - 如果有 LED 的话,main 函数里**只放一个** LED 1HZ 闪烁的程序
+- 在 `rt_hw_board_init` 中需要完成堆的初始化:调用 `rt_system_heap_init`
+- 默认只初始化 GPIO 驱动和 FinSH 对应的串口驱动,不使用 DMA
+- 当使能板载外设驱动时,应做到不需要修改代码就能编译下载使用
+- 提交前应检查 GCC/IAR 编译器直接编译或者重新生成后编译是否成功
+- 使用 `dist` 命令对 BSP 进行发布,检查使用 `dist` 命令生成的工程是否可以正常使用
+
+#### 4.1.2 ENV 配置
+
+- 系统心跳统一设置为 1000(宏:RT_TICK_PER_SECOND)
+- BSP 中需要打开调试选项中的断言(宏:RT_DEBUG)
+- 系统空闲线程栈大小统一设置为 256(宏:IDLE_THREAD_STACK_SIZE)
+- 开启组件自动初始化(宏:RT_USING_COMPONENTS_INIT)
+- 需要开启 user main 选项(宏:RT_USING_USER_MAIN)
+- 默认关闭 libc(宏:RT_USING_LIBC)
+- FinSH 默认只使用 MSH 模式(宏:FINSH_USING_MSH_ONLY)
+
+### 4.2 BSP 提交规范
+
+- 提交前请认真修改 BSP 的 README.md 文件,README.md 文件的外设支持表单只填写 BSP 支持的外设,可参考其他 BSP 填写。查看文档[《GD32系列驱动介绍》](./GD32 RISC-V系列驱动介绍.md)了解驱动分类。
+- 提交 BSP 分为 2 个阶段提交:
+ - 第一阶段:基础 BSP 包括串口驱动和 GPIO 驱动,能运行 FinSH 控制台。完成IAR 和 GCC 编译器支持。 BSP 的 README.md 文件需要填写第二阶段要完成的驱动。
+ - 第二阶段:完成板载外设驱动支持,所有板载外设使用 menuconfig 配置后就能直接使用。若开发板没有板载外设,则此阶段可以不用完成。不同的驱动要分开提交,方便 review 和合并。
+- 只提交 BSP 必要的文件,删除无关的中间文件,能够提交的文件请对照其他 BSP。
+- 提交前要对 BSP 进行编译测试,确保在不同编译器下编译正常
+- 提交前要对 BSP 进行功能测试,确保 BSP 的在提交前符合工程配置章节中的要求
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/docs/GD32_RISC-V系列BSP外设驱动使用教程.md b/bsp/gd32/risc-v/docs/GD32_RISC-V系列BSP外设驱动使用教程.md
new file mode 100644
index 0000000000..ec15fdc45e
--- /dev/null
+++ b/bsp/gd32/risc-v/docs/GD32_RISC-V系列BSP外设驱动使用教程.md
@@ -0,0 +1,77 @@
+# GD32 RISC-V系列BSP外设驱动使用教程
+
+## 简介
+
+本文档是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+主要包括以下内容:
+
+1. 如何使用开发板上更多的板载资源
+2. 如何使用更多的片上资源
+3. 如何添加更多片上资源选项
+
+## 前提要求
+
+- 学会如何使用 ENV 工具,参考:[RT-Thread env 工具用户手册](https://www.rt-thread.org/document/site/programming-manual/env/env/)
+
+## 如何使用更多的板载资源
+
+开发板上一般有很多板载资源,如 Flash、SD卡等,但是 BSP 工程默认没有开启这些外设驱动。RT-Thread 提供了 ENV 工具来开启或关闭 BSP 的外设驱动。下面以在GD32VFf103V-EVAL开发板上开启 UART1驱动为例,一步步的展示如何使用 ENV 工具对 BSP 进行配置。
+
+### 1)打开配置工具
+
+在目录 `rt-thread\bsp\gd32\risc-v\gd32vf103v-eval` 下打开 menuconfig 配置界面。
+
+
+
+打开的配置工具界面如下所示:
+
+
+
+通过键盘上的上下键移动光标,选中 `Hardware Drivers Config`然后按回车键进入硬件驱动配置菜单。
+
+### 2)进入硬件驱动配置菜单
+
+在硬件配置菜单里有三个选项,分别是 **板载外设配置菜单**、**片上外设配置菜单**和**扩展模块配置菜单**,按回车键进入板载外设配置菜单。
+
+
+
+### 3)在板载外设配置菜单里开启 UART1 选项
+
+
+
+### 4)保存退出
+
+然后右移光标选中 Save 按回车键保存,然后按 Esc 键退出配置工具。
+
+
+
+### 5)更新软件包
+
+输入命令 `pkgs --update` 使软件包配置生效。
+
+
+
+### 6)编译
+
+直接使用gcc编译程序。
+
+
+
+值得注意的是,使用gcc编译程序,需要先配置好RISC-V系列MCU的交叉编译工具链。
+
+### 7)下载
+
+下载工具可以使用J-Link/GD-Link,可使用GD官方的DFU,也可使用OpenOCD下载。
+
+### 8)查看运行结果
+
+程序运行后,输入命令 `list_device` 可以看到名为 uart1的设备,此时 `UART1` 设备已经可以使用了。
+
+
+
+
+
+## 总结
+
+当开发者需要使用未开启的外设时,只要在 ENV 工具中使能相关的外设即可,重新生成的工程中就会添加对应的驱动文件。开发者就可以利用 RT-Thread 提供的驱动开快速开发应用了。
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/docs/GD32_RISC-V系列驱动介绍.md b/bsp/gd32/risc-v/docs/GD32_RISC-V系列驱动介绍.md
new file mode 100644
index 0000000000..074e8b79a3
--- /dev/null
+++ b/bsp/gd32/risc-v/docs/GD32_RISC-V系列驱动介绍.md
@@ -0,0 +1,59 @@
+# GD32 RISC-V系列驱动介绍
+
+在 RT-Thread 实时操作系统中,各种各样的设备驱动是通过一套 I/O 设备管理框架来管理的。设备管理框架给上层应用提供了一套标准的设备操作 API,开发者通过调用这些标准设备操作 API,可以高效地完成和底层硬件外设的交互。设备管理框架的结构如下图所示:
+
+
+
+使用 I/O 设备管理框架开发应用程序,有如下优点:
+
+- 使用同一套标准的 API 开发应用程序,使应用程序具有更好的移植性
+- 底层驱动的升级和修改不会影响到上层代码
+- 驱动和应用程序相互独立,方便多个开发者协同开发
+
+## 1. 驱动分类介绍
+
+本小节介绍 BSP 提供的不同类别驱动的概念,对一个 BSP 而言,有如下三类驱动:
+
+- **板载外设驱动**:指 MCU 之外,开发板上外设,例如 TF 卡、以太网和 LCD 等
+- **片上外设驱动**:指 MCU 芯片上的外设,例如硬件定时器、ADC 和看门狗等
+- **扩展模块驱动**:指可以通过扩展接口或者杜邦线连接的开发板的模块,例如 ESP8266 模块
+
+这三种外设的示意图如下所示:
+
+
+
+## 2. 外设驱动的使用方法
+
+点击下表中的驱动名称,即可跳转到对应驱动框架的介绍文档。开发者可以通过阅读相关资料,了解如何在应用开发中通过设备驱动框架来使用这些外设驱动。
+
+### 2.1 片上外设
+
+| 序号 | 驱动 | 简介 |
+| ---- | ------------------------------------------------------------ | ------------------------------------------------ |
+| 1 | [GPIO](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pin/pin.md) | 操作 GPIO 管脚 |
+| 2 | [UART](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart) | 通过串口收发数据 |
+| 3 | [soft I2C](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c.md) | 通过软件 I2C 收发数据 |
+| 4 | [SPI](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/spi/spi) | 通过 SPI 收发数据 |
+| 5 | [ADC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/adc/adc.md) | 测量管脚上的模拟量 |
+| 6 | [TIMER](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/hwtimer/hwtimer.md) | 使用硬件定时器实现测量时间和定时执行回调函数功能 |
+| 7 | [PWM](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pwm/pwm.md) | 在特定的管脚输出 PWM 波形 |
+| 8 | [RTC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/rtc/rtc.md) | 设置和读取时间 |
+| 9 | [WDT](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/watchdog/watchdog.md) | 看门狗驱动 |
+
+
+### 2.2 板载外设
+
+| 序号 | 驱动 | 简介 |
+| ---- | ------- | --------------------------------------- |
+| 1 | USB FS | USB |
+| 2 | LCD | 显示屏 |
+
+### 2.3 扩展模块
+
+| 序号 | 驱动 | 简介 |
+| ---- | -------- | ---------------------- |
+| 1 | ESP8266 | 串口转 WIFI 模块 |
+
+### 2.4 驱动示例代码
+
+在 RT-Thread 的 `examples\test` 目录下,有 RT-Thread 提供的基于不同外设驱动的示例代码。在 env 工具中开启 BSP 中要测试的驱动,并将 `examples\test` 中对应的驱动框架测试文件加入工程,即可快速测试 BSP 中提供的驱动。
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/docs/figures/GD32VF103xB.png b/bsp/gd32/risc-v/docs/figures/GD32VF103xB.png
new file mode 100644
index 0000000000..7322cbac0a
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/GD32VF103xB.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/Peripheral.png b/bsp/gd32/risc-v/docs/figures/Peripheral.png
new file mode 100644
index 0000000000..af74c9ee38
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/Peripheral.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/UART1.png b/bsp/gd32/risc-v/docs/figures/UART1.png
new file mode 100644
index 0000000000..c6c5e30a49
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/UART1.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/config1.png b/bsp/gd32/risc-v/docs/figures/config1.png
new file mode 100644
index 0000000000..c41344bd0a
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/config1.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/config2.png b/bsp/gd32/risc-v/docs/figures/config2.png
new file mode 100644
index 0000000000..5bbcf7e0bb
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/config2.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/frame.png b/bsp/gd32/risc-v/docs/figures/frame.png
new file mode 100644
index 0000000000..0c702bcbf3
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/frame.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/gcc.png b/bsp/gd32/risc-v/docs/figures/gcc.png
new file mode 100644
index 0000000000..c8cb6be300
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/gcc.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/menuconfig_gd32vf103v-eval.png b/bsp/gd32/risc-v/docs/figures/menuconfig_gd32vf103v-eval.png
new file mode 100644
index 0000000000..8c276520b2
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/menuconfig_gd32vf103v-eval.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/rt_device.png b/bsp/gd32/risc-v/docs/figures/rt_device.png
new file mode 100644
index 0000000000..e5e1b70d00
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/rt_device.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/run.png b/bsp/gd32/risc-v/docs/figures/run.png
new file mode 100644
index 0000000000..f97c104f40
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/run.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/run_flash.png b/bsp/gd32/risc-v/docs/figures/run_flash.png
new file mode 100644
index 0000000000..364dd283fe
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/run_flash.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/save.png b/bsp/gd32/risc-v/docs/figures/save.png
new file mode 100644
index 0000000000..1edae30bf0
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/save.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/scons.png b/bsp/gd32/risc-v/docs/figures/scons.png
new file mode 100644
index 0000000000..640470550f
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/scons.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/scons_success.png b/bsp/gd32/risc-v/docs/figures/scons_success.png
new file mode 100644
index 0000000000..609c30cb45
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/scons_success.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/start.png b/bsp/gd32/risc-v/docs/figures/start.png
new file mode 100644
index 0000000000..517dd04a88
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/start.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/svc_download.png b/bsp/gd32/risc-v/docs/figures/svc_download.png
new file mode 100644
index 0000000000..808f7f197e
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/svc_download.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/svc_download_success.png b/bsp/gd32/risc-v/docs/figures/svc_download_success.png
new file mode 100644
index 0000000000..d4d33634df
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/svc_download_success.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/svc_run_task.png b/bsp/gd32/risc-v/docs/figures/svc_run_task.png
new file mode 100644
index 0000000000..5408b66970
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/svc_run_task.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/update.png b/bsp/gd32/risc-v/docs/figures/update.png
new file mode 100644
index 0000000000..6f57e8e3f5
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/update.png differ
diff --git a/bsp/gd32/risc-v/docs/figures/vsc.png b/bsp/gd32/risc-v/docs/figures/vsc.png
new file mode 100644
index 0000000000..c9cb628331
Binary files /dev/null and b/bsp/gd32/risc-v/docs/figures/vsc.png differ
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/.config b/bsp/gd32/risc-v/gd32vf103r-start/.config
new file mode 100644
index 0000000000..73fe15f934
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/.config
@@ -0,0 +1,686 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Configuration
+#
+
+#
+# RT-Thread Kernel
+#
+CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_ALIGN_SIZE=4
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=100
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=512
+CONFIG_RT_USING_TIMER_SOFT=y
+CONFIG_RT_TIMER_THREAD_PRIO=4
+CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_TINY_FFS is not set
+# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_COLOR is not set
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_SIGNALS is not set
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+CONFIG_RT_USING_SMALL_MEM=y
+# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_MEMHEAP is not set
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
+CONFIG_RT_USING_HEAP=y
+
+#
+# Kernel Device Object
+#
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=128
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
+CONFIG_RT_VER_NUM=0x40101
+# CONFIG_RT_USING_CPU_FFS is not set
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+# CONFIG_RT_USING_LEGACY is not set
+CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_ARG_MAX=10
+# CONFIG_RT_USING_DFS is not set
+# CONFIG_RT_USING_FAL is not set
+
+#
+# Device Drivers
+#
+CONFIG_RT_USING_DEVICE_IPC=y
+# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
+CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
+# CONFIG_RT_SERIAL_USING_DMA is not set
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+# CONFIG_RT_USING_SPI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_WIFI is not set
+
+#
+# Using USB
+#
+# CONFIG_RT_USING_USB is not set
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+
+#
+# C/C++ and POSIX layer
+#
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+# CONFIG_RT_USING_POSIX_FS is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Interprocess Communication (IPC)
+#
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
+
+#
+# Socket is in the 'Network' category
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Network
+#
+# CONFIG_RT_USING_SAL is not set
+# CONFIG_RT_USING_NETDEV is not set
+# CONFIG_RT_USING_LWIP is not set
+# CONFIG_RT_USING_AT is not set
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+# CONFIG_RT_USING_VBUS is not set
+
+#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_LWIP is not set
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_NANOPB is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# CONFIG_PKG_USING_RW007 is not set
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+# CONFIG_PKG_USING_NMEALIB is not set
+# CONFIG_PKG_USING_PDULIB is not set
+# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
+# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
+# CONFIG_PKG_USING_MAVLINK is not set
+# CONFIG_PKG_USING_BSAL is not set
+# CONFIG_PKG_USING_AGILE_MODBUS is not set
+# CONFIG_PKG_USING_AGILE_FTP is not set
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
+
+#
+# language packages
+#
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# CONFIG_PKG_USING_LUATOS_SOC is not set
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
+
+#
+# multimedia packages
+#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ULOG_FILE is not set
+# CONFIG_PKG_USING_LOGMGR is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# CONFIG_PKG_USING_ANV_BENCH is not set
+# CONFIG_PKG_USING_DEVMEM is not set
+# CONFIG_PKG_USING_REGEX is not set
+# CONFIG_PKG_USING_MEM_SANDBOX is not set
+# CONFIG_PKG_USING_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+
+#
+# system packages
+#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# POSIX extension functions
+#
+# CONFIG_PKG_USING_POSIX_GETLINE is not set
+# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
+# CONFIG_PKG_USING_POSIX_ITOA is not set
+# CONFIG_PKG_USING_POSIX_STRINGS is not set
+# CONFIG_PKG_USING_POSIX_CTYPES is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# CONFIG_PKG_USING_UC_CLK is not set
+# CONFIG_PKG_USING_UC_COMMON is not set
+# CONFIG_PKG_USING_UC_MODBUS is not set
+# CONFIG_PKG_USING_RTDUINO is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_DFS_JFFS2 is not set
+# CONFIG_PKG_USING_DFS_UFFS is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_WM_LIBRARIES is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
+# CONFIG_PKG_USING_NES is not set
+# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
+# CONFIG_PKG_USING_VDEVICE is not set
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
+
+#
+# miscellaneous packages
+#
+
+#
+# project laboratory
+#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_KI is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+CONFIG_SOC_FAMILY_GD32=y
+CONFIG_SOC_GD32VF103V=y
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_SERIES_GD32VF103V=y
+
+#
+# Onboard Peripheral Drivers
+#
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+CONFIG_BSP_USING_UART=y
+# CONFIG_BSP_USING_UART0 is not set
+CONFIG_BSP_USING_UART1=y
+# CONFIG_BSP_UART1_RX_USING_DMA is not set
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
+# CONFIG_BSP_USING_UART4 is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+
+#
+# Board extended module Drivers
+#
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/Kconfig b/bsp/gd32/risc-v/gd32vf103r-start/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/gd32105c-eval/README.md b/bsp/gd32/risc-v/gd32vf103r-start/README.md
similarity index 60%
rename from bsp/gd32/gd32105c-eval/README.md
rename to bsp/gd32/risc-v/gd32vf103r-start/README.md
index 125d7e6890..a51c3d9c5c 100644
--- a/bsp/gd32/gd32105c-eval/README.md
+++ b/bsp/gd32/risc-v/gd32vf103r-start/README.md
@@ -1,8 +1,8 @@
-# GD32105C-EVAL开发板BSP说明
+# GD32VF103R_START开发板BSP说明
## 简介
-GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高主频高达108M,该开发板具有丰富的板载资源,可以充分发挥 GD32105VCT6 的芯片性能。
+GD32VF103V_EVAL是-兆易创新推出的一款GD32VF1系列的评估板,最高主频高达108M,该开发板具有丰富的板载资源,可以充分发挥 GD32VF103RB 的芯片性能。
开发板外观如下图所示:
@@ -10,16 +10,17 @@ GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
该开发板常用 **板载资源** 如下:
-- GD32105VCT6,主频 108MHz,256KB FLASH ,96KB RAM
+- GD32VF103RB ,主频 108MHz,128KB FLASH ,32KB RAM
- 常用外设
- - LED :5个,LED1 (电源指示灯),LED2(PC0),LED3(PC2),LED4(PE0),LED5(PE1)
- - 按键:3个,K1(用户按键,PA0),K2(用户按键,PC13),K3(用户按键,PB14)
+ - LED :2个,LED1(PA7),LED2(PA8),LED3(PA10),LED4(PC13)
+ - 按键:2个,K1(复位引脚),K2(用户按键,PA0)
- 常用接口:USB 接口
-- 调试接口:GD-LINK
+- 调试接口:GD-Link
+
## 外设支持
@@ -27,11 +28,11 @@ GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
| **片上外设** | **支持情况** | **备注** |
|:--------- |:--------:|:------------------------------------- |
-| GPIO | 支持 | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...50 |
| UART | 支持 | UART0 - UART4 |
| I2C | 支持 | I2C1 |
| SPI | 支持 | SPI0 - SPI2 |
-| SPI FLASH | 支持 | |
+| ADC | 支持 | ADC0 - ADC1 |
| **扩展模块** | **支持情况** | **备注** |
| 暂无 | 暂不支持 | 暂不支持 |
@@ -49,17 +50,15 @@ GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
### 快速上手
-本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境,也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
+本 BSP 为开发者提供 GCC 工程。下面介绍如何将系统运行起来。
#### 硬件连接
-使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
+使用数据线连接开发板到 PC,使用USB转TTL连接USART1,打开电源开关。
#### 编译下载
-双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
-
-> 工程默认配置使用 GD-Link 仿真器下载程序,在通过 GD-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板
+在工程目录下输入`scons `命令编译工程,使用GD-Link下载程序到开发板。
#### 运行结果
@@ -70,8 +69,8 @@ GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
```bash
\ | /
- RT - Thread Operating System
- / | \ 4.0.4 build Dec 19 2021 10:00:27
- 2006 - 2021 Copyright by rt-thread team
+ / | \ 4.1.1 build Jun 8 2022 00:49:01
+ 2006 - 2022 Copyright by RT-Thread team
msh >
```
@@ -85,7 +84,7 @@ msh >
3. 输入`pkgs --update`命令更新软件包。
-4. 输入`scons --target=mdk4/mdk5` 命令重新生成工程。
+4. 输入`scons `命令重新编译工程。
## 注意事项
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/SConscript b/bsp/gd32/risc-v/gd32vf103r-start/SConscript
new file mode 100644
index 0000000000..945e23289a
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/SConscript
@@ -0,0 +1,16 @@
+# for module compiling
+import os
+Import('RTT_ROOT')
+from building import *
+
+cwd = str(Dir('#'))
+
+objs = []
+list = os.listdir(cwd)
+
+for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/SConstruct b/bsp/gd32/risc-v/gd32vf103r-start/SConstruct
new file mode 100644
index 0000000000..cc841fc64a
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/SConstruct
@@ -0,0 +1,57 @@
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+ from building import *
+except:
+ print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+ print(RTT_ROOT)
+ exit(-1)
+
+TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+ AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+ CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ AR = rtconfig.AR, ARFLAGS = '-rc',
+ CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+ LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+env['ASCOM'] = env['ASPPCOM']
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+# prepare building environment
+# objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+objs = PrepareBuilding(env, RTT_ROOT)
+
+gd32_library = 'GD32VF103_Firmware_Library'
+rtconfig.BSP_LIBRARY_TYPE = gd32_library
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/applications/SConscript b/bsp/gd32/risc-v/gd32vf103r-start/applications/SConscript
new file mode 100644
index 0000000000..ef1c39fd83
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/applications/SConscript
@@ -0,0 +1,11 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd, ]
+
+group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/applications/main.c b/bsp/gd32/risc-v/gd32vf103r-start/applications/main.c
new file mode 100644
index 0000000000..4b1c6df62e
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/applications/main.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#include
+#include
+#include
+#include
+
+/* defined the LED1 pin: PA7 */
+#define LED1_PIN GET_PIN(A, 7)
+
+int main(void)
+{
+ int count = 1;
+
+ /* set LED1 pin mode to output */
+ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
+
+ while (count++)
+ {
+ rt_pin_write(LED1_PIN, PIN_HIGH);
+ rt_thread_mdelay(500);
+ rt_pin_write(LED1_PIN, PIN_LOW);
+ rt_thread_mdelay(500);
+ }
+
+ return RT_EOK;
+}
diff --git a/bsp/gd32/gd32105r-start/board/Kconfig b/bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig
similarity index 76%
rename from bsp/gd32/gd32105r-start/board/Kconfig
rename to bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig
index 8c6338255d..a5691b840d 100644
--- a/bsp/gd32/gd32105r-start/board/Kconfig
+++ b/bsp/gd32/risc-v/gd32vf103r-start/board/Kconfig
@@ -1,16 +1,16 @@
menu "Hardware Drivers Config"
-config SOC_SERIES_GD32F10x
+config SOC_SERIES_GD32VF103V
bool
default y
-
-config SOC_GD32105R
+
+config SOC_GD32VF103V
bool
- select SOC_SERIES_GD32F10x
+ select SOC_SERIES_GD32VF103V
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
default y
-
+
menu "Onboard Peripheral Drivers"
endmenu
@@ -77,33 +77,25 @@ menu "On-chip Peripheral Drivers"
select RT_SERIAL_USING_DMA
default n
endif
-
- menuconfig BSP_USING_ADC
- bool "Enable ADC"
- default n
- select RT_USING_ADC
- if BSP_USING_ADC
- config BSP_USING_ADC0
- bool "using adc0"
- default n
- config BSP_USING_ADC1
- bool "using adc1"
- default n
- endif
-
+
menuconfig BSP_USING_SPI
bool "Enable SPI BUS"
default n
select RT_USING_SPI
if BSP_USING_SPI
- config BSP_USING_SPI0
- bool "Enable SPI0 BUS"
- default n
- config BSP_USING_SPI1
+ config BSP_USING_SPI1
bool "Enable SPI1 BUS"
default n
- config BSP_USING_SPI2
- bool "Enable SPI2 BUS"
+
+ config BSP_SPI1_TX_USING_DMA
+ bool "Enable SPI1 TX DMA"
+ depends on BSP_USING_SPI1
+ default n
+
+ config BSP_SPI1_RX_USING_DMA
+ bool "Enable SPI1 RX DMA"
+ depends on BSP_USING_SPI1
+ select BSP_SPI1_TX_USING_DMA
default n
endif
@@ -124,44 +116,68 @@ menu "On-chip Peripheral Drivers"
default 25
endif
- menuconfig BSP_USING_TIM
+ menuconfig BSP_USING_ADC
+ bool "Enable ADC"
+ default n
+ select RT_USING_ADC
+ if BSP_USING_ADC
+ config BSP_USING_ADC0
+ bool "Enable ADC0"
+ default n
+
+ config BSP_USING_ADC1
+ bool "Enable ADC1"
+ default n
+
+ endif
+
+ menuconfig BSP_USING_TIM
bool "Enable timer"
default n
select RT_USING_HWTIMER
if BSP_USING_TIM
- config BSP_USING_TIM10
+ config BSP_USING_TIM10
bool "Enable TIM10"
default n
-
+
config BSP_USING_TIM11
bool "Enable TIM11"
- default n
-
- config BSP_USING_TIM12
- bool "Enable TIM12"
default n
- config BSP_USING_TIM13
+ config BSP_USING_TIM12
bool "Enable TIM13"
default n
endif
-
- config BSP_USING_WDT
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
bool "Enable Watchdog Timer"
select RT_USING_WDT
default n
- config BSP_USING_RTC
- bool "using internal rtc"
- default n
- select RT_USING_RTC
-
source "../libraries/gd32_drivers/Kconfig"
-
+
endmenu
menu "Board extended module Drivers"
endmenu
-
+
endmenu
+
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/board/SConscript b/bsp/gd32/risc-v/gd32vf103r-start/board/SConscript
new file mode 100644
index 0000000000..f21fc1fdd8
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/board/SConscript
@@ -0,0 +1,26 @@
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+''')
+
+path = [cwd]
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+ src += [startup_path_prefix + '/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S']
+ src += [startup_path_prefix + '/GD32VF103_Firmware_Library/RISCV/env_Eclipse/entry.S']
+
+CPPDEFINES = ['GD32VF103R_START']
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+
+
+Return('group')
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/board/board.c b/bsp/gd32/risc-v/gd32vf103r-start/board/board.c
new file mode 100644
index 0000000000..64b28a505d
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/board/board.c
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#include
+#include
+#include
+#include "board.h"
+
+#ifdef RT_USING_SERIAL
+#include
+#endif
+
+/* System Tick Configuration */
+static void systick_config(rt_uint32_t ticks)
+{
+ /* set value */
+ *(rt_uint64_t *) (TIMER_CTRL_ADDR + TIMER_MTIMECMP) = ticks;
+ /* enable interrupt */
+ eclic_irq_enable(CLIC_INT_TMR, 0, 0);
+ /* clear value */
+ *(rt_uint64_t *) (TIMER_CTRL_ADDR + TIMER_MTIME) = 0;
+}
+
+/* This is the timer interrupt service routine. */
+void eclic_mtip_handler(void)
+{
+ /* clear value */
+ *(rt_uint64_t *) (TIMER_CTRL_ADDR + TIMER_MTIME) = 0;
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+ /* tick increase */
+ rt_tick_increase();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+/* fixed misaligned bug for qemu */
+void *__wrap_memset(void *s, int c, size_t n)
+{
+ return rt_memset(s, c, n);
+}
+
+void rt_hw_board_init(void)
+{
+extern void _init(void);
+ _init();
+ systick_config(TIMER_FREQ / RT_TICK_PER_SECOND);
+
+ /* USART driver initialization is open by default */
+#ifdef RT_USING_SERIAL
+ rt_hw_usart_init();
+#endif
+
+ /* Set the shell console output device */
+#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
+ rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+#endif
+
+ /* Board underlying hardware initialization */
+#ifdef RT_USING_COMPONENTS_INIT
+ rt_components_board_init();
+#endif
+
+#ifdef RT_USING_HEAP
+ rt_system_heap_init((void *) HEAP_BEGIN, (void *) HEAP_END);
+#endif
+
+}
+
+/******************** end of file *******************/
+
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/board/board.h b/bsp/gd32/risc-v/gd32vf103r-start/board/board.h
new file mode 100644
index 0000000000..a169a57eb3
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/board/board.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#ifndef __BOARD__
+#define __BOARD__
+#include "gd32vf103.h"
+#include "drv_gpio.h"
+extern void *_end;
+extern void *_heap_end;
+#define HEAP_BEGIN &_end
+#define HEAP_END &_heap_end
+
+void rt_hw_board_init(void);
+
+#endif /* __BOARD__ */
+
+/******************** end of file *******************/
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/board/gd32vf103_libopt.h b/bsp/gd32/risc-v/gd32vf103r-start/board/gd32vf103_libopt.h
new file mode 100644
index 0000000000..a04737a6f5
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/board/gd32vf103_libopt.h
@@ -0,0 +1,62 @@
+/*!
+ \file gd32vf103_libopt.h
+ \brief library optional for gd32vf103
+
+ \version 2019-06-05, V1.0.0, demo for GD32VF103
+ \version 2020-12-18, V1.1.0, demo for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_LIBOPT_H
+#define GD32VF103_LIBOPT_H
+
+#include "gd32vf103_adc.h"
+#include "gd32vf103_bkp.h"
+#include "gd32vf103_can.h"
+#include "gd32vf103_crc.h"
+#include "gd32vf103_dac.h"
+#include "gd32vf103_dma.h"
+#include "gd32vf103_eclic.h"
+#include "gd32vf103_exmc.h"
+#include "gd32vf103_exti.h"
+#include "gd32vf103_fmc.h"
+#include "gd32vf103_gpio.h"
+#include "gd32vf103_i2c.h"
+#include "gd32vf103_fwdgt.h"
+#include "gd32vf103_dbg.h"
+#include "gd32vf103_pmu.h"
+#include "gd32vf103_rcu.h"
+#include "gd32vf103_rtc.h"
+#include "gd32vf103_spi.h"
+#include "gd32vf103_timer.h"
+#include "gd32vf103_usart.h"
+#include "gd32vf103_wwdgt.h"
+#include "n200_func.h"
+
+#endif /* GD32VF103_LIBOPT_H */
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/figures/board.jpg b/bsp/gd32/risc-v/gd32vf103r-start/figures/board.jpg
new file mode 100644
index 0000000000..6b6f4b10ac
Binary files /dev/null and b/bsp/gd32/risc-v/gd32vf103r-start/figures/board.jpg differ
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/rtconfig.h b/bsp/gd32/risc-v/gd32vf103r-start/rtconfig.h
new file mode 100644
index 0000000000..33038e06bc
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/rtconfig.h
@@ -0,0 +1,195 @@
+#ifndef RT_CONFIG_H__
+#define RT_CONFIG_H__
+
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Configuration */
+
+/* RT-Thread Kernel */
+
+#define RT_NAME_MAX 8
+#define RT_ALIGN_SIZE 4
+#define RT_THREAD_PRIORITY_32
+#define RT_THREAD_PRIORITY_MAX 32
+#define RT_TICK_PER_SECOND 100
+#define RT_USING_OVERFLOW_CHECK
+#define RT_USING_HOOK
+#define RT_HOOK_USING_FUNC_PTR
+#define RT_USING_IDLE_HOOK
+#define RT_IDLE_HOOK_LIST_SIZE 4
+#define IDLE_THREAD_STACK_SIZE 512
+#define RT_USING_TIMER_SOFT
+#define RT_TIMER_THREAD_PRIO 4
+#define RT_TIMER_THREAD_STACK_SIZE 512
+
+/* kservice optimization */
+
+#define RT_DEBUG
+
+/* Inter-Thread communication */
+
+#define RT_USING_SEMAPHORE
+#define RT_USING_MUTEX
+#define RT_USING_EVENT
+#define RT_USING_MAILBOX
+#define RT_USING_MESSAGEQUEUE
+
+/* Memory Management */
+
+#define RT_USING_MEMPOOL
+#define RT_USING_SMALL_MEM
+#define RT_USING_SMALL_MEM_AS_HEAP
+#define RT_USING_HEAP
+
+/* Kernel Device Object */
+
+#define RT_USING_DEVICE
+#define RT_USING_CONSOLE
+#define RT_CONSOLEBUF_SIZE 128
+#define RT_CONSOLE_DEVICE_NAME "uart1"
+#define RT_VER_NUM 0x40101
+
+/* RT-Thread Components */
+
+#define RT_USING_COMPONENTS_INIT
+#define RT_USING_USER_MAIN
+#define RT_MAIN_THREAD_STACK_SIZE 2048
+#define RT_MAIN_THREAD_PRIORITY 10
+#define RT_USING_MSH
+#define RT_USING_FINSH
+#define FINSH_USING_MSH
+#define FINSH_THREAD_NAME "tshell"
+#define FINSH_THREAD_PRIORITY 20
+#define FINSH_THREAD_STACK_SIZE 4096
+#define FINSH_USING_HISTORY
+#define FINSH_HISTORY_LINES 5
+#define FINSH_USING_SYMTAB
+#define FINSH_CMD_SIZE 80
+#define MSH_USING_BUILT_IN_COMMANDS
+#define FINSH_USING_DESCRIPTION
+#define FINSH_ARG_MAX 10
+
+/* Device Drivers */
+
+#define RT_USING_DEVICE_IPC
+#define RT_USING_SERIAL
+#define RT_USING_SERIAL_V1
+#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_PIN
+
+/* Using USB */
+
+
+/* C/C++ and POSIX layer */
+
+#define RT_LIBC_DEFAULT_TIMEZONE 8
+
+/* POSIX (Portable Operating System Interface) layer */
+
+
+/* Interprocess Communication (IPC) */
+
+
+/* Socket is in the 'Network' category */
+
+
+/* Network */
+
+
+/* Utilities */
+
+
+/* RT-Thread Utestcases */
+
+
+/* RT-Thread online packages */
+
+/* IoT - internet of things */
+
+
+/* Wi-Fi */
+
+/* Marvell WiFi */
+
+
+/* Wiced WiFi */
+
+
+/* IoT Cloud */
+
+
+/* security packages */
+
+
+/* language packages */
+
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
+
+/* multimedia packages */
+
+/* LVGL: powerful and easy-to-use embedded GUI library */
+
+
+/* u8g2: a monochrome graphic library */
+
+
+/* PainterEngine: A cross-platform graphics application framework written in C language */
+
+
+/* tools packages */
+
+
+/* system packages */
+
+/* enhanced kernel services */
+
+
+/* POSIX extension functions */
+
+
+/* acceleration: Assembly language or algorithmic acceleration packages */
+
+
+/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
+
+
+/* Micrium: Micrium software products porting for RT-Thread */
+
+
+/* peripheral libraries and drivers */
+
+
+/* AI packages */
+
+
+/* miscellaneous packages */
+
+/* project laboratory */
+
+/* samples: kernel and components samples */
+
+
+/* entertainment: terminal games and other interesting software packages */
+
+#define SOC_FAMILY_GD32
+#define SOC_GD32VF103V
+
+/* Hardware Drivers Config */
+
+#define SOC_SERIES_GD32VF103V
+
+/* Onboard Peripheral Drivers */
+
+/* On-chip Peripheral Drivers */
+
+#define BSP_USING_GPIO
+#define BSP_USING_UART
+#define BSP_USING_UART1
+
+/* Board extended module Drivers */
+
+
+#endif
diff --git a/bsp/gd32/risc-v/gd32vf103r-start/rtconfig.py b/bsp/gd32/risc-v/gd32vf103r-start/rtconfig.py
new file mode 100644
index 0000000000..454c4eee9d
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103r-start/rtconfig.py
@@ -0,0 +1,74 @@
+import os
+
+# toolchains options
+ARCH='risc-v'
+CPU='bumblebee'
+CROSS_TOOL='gcc'
+
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
+if os.getenv('RTT_CC'):
+ CROSS_TOOL = os.getenv('RTT_CC')
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+
+# cross_tool provides the cross compiler
+# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
+if CROSS_TOOL == 'gcc':
+ PLATFORM = 'gcc'
+ EXEC_PATH = EXEC_PATH = r'D:/gcc/xpack-riscv-none-embed-gcc-10.2.0-1.2/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')
+
+CORE = 'risc-v'
+BUILD = 'debug'
+MAP_FILE = 'rtthread.map'
+LINK_FILE = '../libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds'
+
+if PLATFORM == 'gcc':
+ # toolchains
+ PREFIX = 'riscv-none-embed-'
+ CC = PREFIX + 'gcc'
+ AS = PREFIX + 'gcc'
+ AR = PREFIX + 'ar'
+ CXX = PREFIX + 'g++'
+ LINK = PREFIX + 'gcc'
+ TARGET_EXT = 'elf'
+ SIZE = PREFIX + 'size'
+ OBJDUMP = PREFIX + 'objdump'
+ OBJCPY = PREFIX + 'objcopy'
+
+ DEVICE = ' -march=rv32imac -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -L. -nostartfiles -lc '
+ CFLAGS = DEVICE
+ CFLAGS += ' -save-temps=obj'
+ AFLAGS = '-c'+ DEVICE + ' -x assembler-with-cpp'
+ AFLAGS += ' -Iplatform -Ilibraries/RISCV/include -Ilibraries/RISCV/env_Eclipse'
+ LFLAGS = DEVICE
+ LFLAGS += ' -Wl,--gc-sections,-cref,-Map=' + MAP_FILE
+ LFLAGS += ' -T ' + LINK_FILE
+ LFLAGS += ' -Wl,-wrap=memset'
+
+ CPATH = ''
+ LPATH = ''
+
+ if BUILD == 'debug':
+ CFLAGS += ' -O0 -g3'
+ AFLAGS += ' -g3'
+ else:
+ CFLAGS += ' -O2'
+
+ CXXFLAGS = CFLAGS
+
+ POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
+
+def dist_handle(BSP_ROOT, dist_dir):
+ import sys
+ cwd_path = os.getcwd()
+ sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
+ from sdk_dist import dist_do_building
+ dist_do_building(BSP_ROOT, dist_dir)
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/.config b/bsp/gd32/risc-v/gd32vf103v-eval/.config
new file mode 100644
index 0000000000..3d43ebc099
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/.config
@@ -0,0 +1,686 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Configuration
+#
+
+#
+# RT-Thread Kernel
+#
+CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_ALIGN_SIZE=4
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=100
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=512
+CONFIG_RT_USING_TIMER_SOFT=y
+CONFIG_RT_TIMER_THREAD_PRIO=4
+CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_TINY_FFS is not set
+# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_COLOR is not set
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_SIGNALS is not set
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+CONFIG_RT_USING_SMALL_MEM=y
+# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_MEMHEAP is not set
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
+CONFIG_RT_USING_HEAP=y
+
+#
+# Kernel Device Object
+#
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=128
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
+CONFIG_RT_VER_NUM=0x40101
+# CONFIG_RT_USING_CPU_FFS is not set
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+# CONFIG_RT_USING_LEGACY is not set
+CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_ARG_MAX=10
+# CONFIG_RT_USING_DFS is not set
+# CONFIG_RT_USING_FAL is not set
+
+#
+# Device Drivers
+#
+CONFIG_RT_USING_DEVICE_IPC=y
+# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
+CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
+# CONFIG_RT_SERIAL_USING_DMA is not set
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+# CONFIG_RT_USING_SPI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_WIFI is not set
+
+#
+# Using USB
+#
+# CONFIG_RT_USING_USB is not set
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+
+#
+# C/C++ and POSIX layer
+#
+CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+# CONFIG_RT_USING_POSIX_FS is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Interprocess Communication (IPC)
+#
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
+
+#
+# Socket is in the 'Network' category
+#
+# CONFIG_RT_USING_CPLUSPLUS is not set
+
+#
+# Network
+#
+# CONFIG_RT_USING_SAL is not set
+# CONFIG_RT_USING_NETDEV is not set
+# CONFIG_RT_USING_LWIP is not set
+# CONFIG_RT_USING_AT is not set
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+# CONFIG_RT_USING_VBUS is not set
+
+#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_LWIP is not set
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_LIBMODBUS is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_NANOPB is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# CONFIG_PKG_USING_RW007 is not set
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_EZ_IOT_OS is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+# CONFIG_PKG_USING_NMEALIB is not set
+# CONFIG_PKG_USING_PDULIB is not set
+# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
+# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
+# CONFIG_PKG_USING_MAVLINK is not set
+# CONFIG_PKG_USING_BSAL is not set
+# CONFIG_PKG_USING_AGILE_MODBUS is not set
+# CONFIG_PKG_USING_AGILE_FTP is not set
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
+
+#
+# language packages
+#
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# CONFIG_PKG_USING_LUATOS_SOC is not set
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
+
+#
+# multimedia packages
+#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+
+#
+# PainterEngine: A cross-platform graphics application framework written in C language
+#
+# CONFIG_PKG_USING_PAINTERENGINE is not set
+# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_ULOG_FILE is not set
+# CONFIG_PKG_USING_LOGMGR is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# CONFIG_PKG_USING_ANV_BENCH is not set
+# CONFIG_PKG_USING_DEVMEM is not set
+# CONFIG_PKG_USING_REGEX is not set
+# CONFIG_PKG_USING_MEM_SANDBOX is not set
+# CONFIG_PKG_USING_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+
+#
+# system packages
+#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+
+#
+# POSIX extension functions
+#
+# CONFIG_PKG_USING_POSIX_GETLINE is not set
+# CONFIG_PKG_USING_POSIX_WCWIDTH is not set
+# CONFIG_PKG_USING_POSIX_ITOA is not set
+# CONFIG_PKG_USING_POSIX_STRINGS is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# CONFIG_PKG_USING_UC_CLK is not set
+# CONFIG_PKG_USING_UC_COMMON is not set
+# CONFIG_PKG_USING_UC_MODBUS is not set
+# CONFIG_PKG_USING_RTDUINO is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_DFS_JFFS2 is not set
+# CONFIG_PKG_USING_DFS_UFFS is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_SENSORS_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_WM_LIBRARIES is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_TOUCH_DRIVERS is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
+# CONFIG_PKG_USING_NES is not set
+# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
+# CONFIG_PKG_USING_VDEVICE is not set
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_BL_MCU_SDK is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
+
+#
+# miscellaneous packages
+#
+
+#
+# project laboratory
+#
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_KI is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+CONFIG_SOC_FAMILY_GD32=y
+CONFIG_SOC_GD32VF103V=y
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_SERIES_GD32VF103V=y
+
+#
+# Onboard Peripheral Drivers
+#
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+CONFIG_BSP_USING_UART=y
+CONFIG_BSP_USING_UART0=y
+# CONFIG_BSP_UART0_RX_USING_DMA is not set
+CONFIG_BSP_USING_UART1=y
+# CONFIG_BSP_UART1_RX_USING_DMA is not set
+# CONFIG_BSP_USING_UART2 is not set
+# CONFIG_BSP_USING_UART3 is not set
+# CONFIG_BSP_USING_UART4 is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_I2C1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_WDT is not set
+
+#
+# Board extended module Drivers
+#
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/Kconfig b/bsp/gd32/risc-v/gd32vf103v-eval/Kconfig
new file mode 100644
index 0000000000..dbc650938f
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/Kconfig
@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+ string
+ option env="BSP_ROOT"
+ default "."
+
+config RTT_DIR
+ string
+ option env="RTT_ROOT"
+ default "../../../.."
+
+config PKGS_DIR
+ string
+ option env="PKGS_ROOT"
+ default "packages"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "../libraries/Kconfig"
+source "board/Kconfig"
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/README.md b/bsp/gd32/risc-v/gd32vf103v-eval/README.md
new file mode 100644
index 0000000000..a145e36e4b
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/README.md
@@ -0,0 +1,105 @@
+# GD32VF103V_EVAL开发板BSP说明
+
+## 简介
+
+GD32VF103V_EVAL是-兆易创新推出的一款GD32VF1系列的评估板,最高主频高达108M,该开发板具有丰富的板载资源,可以充分发挥 GD32VF103VB 的芯片性能。
+
+开发板外观如下图所示:
+
+
+
+该开发板常用 **板载资源** 如下:
+
+- GD32VF103VBT6 ,主频 108MHz,128KB FLASH ,32KB RAM
+- 常用外设
+ - LED :4个,LED1(PC0),LED2(PC2),LED3(PE0),LED4(PE1)
+ - 按键:2个,K1(复位按键),K2(用户五向按键,PA0, PC13, PB14, PC5, PC4)
+ - General TM * 4 、Advanced TM * 1、Basic TM * 2
+ - 系统定时器 * 1
+ - 看门狗 * 2
+ - RTC * 1
+ - USART * 3、UART * 2
+ - I2C * 2、I2S * 2
+ - SPI * 3
+ - CAN2.0B * 2
+ - USB2.0 OTG FS * 1
+ - TFT-LCD
+ - EXMC/SDRAM * 1
+ - ADC * 2
+ - DAC * 2
+ - 最多支持80GPIOs
+- 调试接口:GD-Link/J-link
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **片上外设** | **支持情况** | **备注** |
+|:--------- |:--------:|:------------------------------------- |
+| GPIO | 支持 | PA0, PA1... ---> PIN: 0, 1...79 |
+| UART | 支持 | UART0 - UART4 |
+| I2C | 支持 | I2C1 |
+| SPI | 支持 | SPI0 - SPI2 |
+| ADC | 支持 | ADC0 - ADC2 |
+| **扩展模块** | **支持情况** | **备注** |
+| 暂无 | 暂不支持 | 暂不支持 |
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+ 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+
+- 进阶使用
+
+ 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+### 快速上手
+
+本 BSP 为开发者提供 GCC 工程。下面介绍如何将系统运行起来。
+
+#### 硬件连接
+
+使用数据线连接开发板到 PC,使用USB转232连接USART0,打开电源开关。
+
+#### 编译下载
+
+在工程目录下输入`scons `命令编译工程,使用J-link/GD-Link下载程序到开发板。
+
+#### 运行结果
+
+下载程序成功之后,系统会自动运行,LED 闪烁。
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
+
+```bash
+ \ | /
+- RT - Thread Operating System
+ / | \ 4.1.1 build Jun 8 2022 00:49:01
+ 2006 - 2022 Copyright by RT-Thread team
+msh >
+```
+
+### 进阶使用
+
+此 BSP 默认只开启了 GPIO 和 串口0的功能,如果需使用高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+
+1. 在 bsp 下打开 env 工具。
+
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+
+3. 输入`pkgs --update`命令更新软件包。
+
+4. 输入`scons `命令重新编译工程。
+
+## 注意事项
+
+暂无
+
+## 联系人信息
+
+维护人:
+
+- [BruceOu](https://github.com/Ouxiaolong/), 邮箱:
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/SConscript b/bsp/gd32/risc-v/gd32vf103v-eval/SConscript
new file mode 100644
index 0000000000..945e23289a
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/SConscript
@@ -0,0 +1,16 @@
+# for module compiling
+import os
+Import('RTT_ROOT')
+from building import *
+
+cwd = str(Dir('#'))
+
+objs = []
+list = os.listdir(cwd)
+
+for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/SConstruct b/bsp/gd32/risc-v/gd32vf103v-eval/SConstruct
new file mode 100644
index 0000000000..cc841fc64a
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/SConstruct
@@ -0,0 +1,57 @@
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+ RTT_ROOT = os.path.normpath(os.getcwd() + '/../../../..')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+ from building import *
+except:
+ print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+ print(RTT_ROOT)
+ exit(-1)
+
+TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+ AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+ CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+ AR = rtconfig.AR, ARFLAGS = '-rc',
+ CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+ LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+env['ASCOM'] = env['ASPPCOM']
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+ libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+ libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+# prepare building environment
+# objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+objs = PrepareBuilding(env, RTT_ROOT)
+
+gd32_library = 'GD32VF103_Firmware_Library'
+rtconfig.BSP_LIBRARY_TYPE = gd32_library
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/applications/SConscript b/bsp/gd32/risc-v/gd32vf103v-eval/applications/SConscript
new file mode 100644
index 0000000000..ef1c39fd83
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/applications/SConscript
@@ -0,0 +1,11 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd, ]
+
+group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/applications/main.c b/bsp/gd32/risc-v/gd32vf103v-eval/applications/main.c
new file mode 100644
index 0000000000..feb7854091
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/applications/main.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#include
+#include
+#include
+#include
+
+/* defined the LED1 pin: PC0 */
+#define LED1_PIN GET_PIN(C, 0)
+
+int main(void)
+{
+ int count = 1;
+
+ /* set LED1 pin mode to output */
+ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
+
+ while (count++)
+ {
+ rt_pin_write(LED1_PIN, PIN_HIGH);
+ rt_thread_mdelay(500);
+ rt_pin_write(LED1_PIN, PIN_LOW);
+ rt_thread_mdelay(500);
+ }
+
+ return RT_EOK;
+}
diff --git a/bsp/gd32/gd32103c-eval/board/Kconfig b/bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig
similarity index 78%
rename from bsp/gd32/gd32103c-eval/board/Kconfig
rename to bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig
index 3240e327b7..b24d929aa3 100644
--- a/bsp/gd32/gd32103c-eval/board/Kconfig
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/board/Kconfig
@@ -1,16 +1,16 @@
menu "Hardware Drivers Config"
-config SOC_SERIES_GD32F10x
+config SOC_SERIES_GD32VF103V
bool
default y
-
-config SOC_GD32103V
+
+config SOC_GD32VF103V
bool
- select SOC_SERIES_GD32F10x
+ select SOC_SERIES_GD32VF103V
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
default y
-
+
menu "Onboard Peripheral Drivers"
endmenu
@@ -29,7 +29,7 @@ menu "On-chip Peripheral Drivers"
if BSP_USING_UART
config BSP_USING_UART0
bool "Enable UART0"
- default n
+ default y
config BSP_UART0_RX_USING_DMA
bool "Enable UART0 RX DMA"
@@ -39,7 +39,7 @@ menu "On-chip Peripheral Drivers"
config BSP_USING_UART1
bool "Enable UART1"
- default y
+ default n
config BSP_UART1_RX_USING_DMA
bool "Enable UART1 RX DMA"
@@ -116,59 +116,64 @@ menu "On-chip Peripheral Drivers"
default 25
endif
- config BSP_USING_WDT
- bool "Enable Watchdog Timer"
- select RT_USING_WDT
- default n
-
- config BSP_USING_RTC
- bool "Enable Internal RTC"
- select RT_USING_RTC
- default n
-
- menuconfig BSP_USING_HWTIMER
- bool "Enable hwtimer"
- default n
- select RT_USING_HWTIMER
- if BSP_USING_HWTIMER
- config BSP_USING_HWTIMER0
- bool "using hwtimer0"
- default n
- config BSP_USING_HWTIMER1
- bool "using hwtimer1"
- default n
- config BSP_USING_HWTIMER2
- bool "using hwtimer2"
- default n
- config BSP_USING_HWTIMER3
- bool "using hwtimer3"
- default n
- config BSP_USING_HWTIMER4
- bool "using hwtimer4"
- default n
- config BSP_USING_HWTIMER5
- bool "using hwtimer5"
- default n
- config BSP_USING_HWTIMER6
- bool "using hwtimer6"
- default n
- config BSP_USING_HWTIMER7
- bool "using hwtimer7"
- default n
- endif
-
menuconfig BSP_USING_ADC
bool "Enable ADC"
default n
select RT_USING_ADC
if BSP_USING_ADC
config BSP_USING_ADC0
- bool "using adc0"
+ bool "Enable ADC0"
default n
+
config BSP_USING_ADC1
- bool "using adc1"
+ bool "Enable ADC1"
+ default n
+
+ config BSP_USING_ADC2
+ bool "Enable ADC2"
default n
endif
+
+ menuconfig BSP_USING_TIM
+ bool "Enable timer"
+ default n
+ select RT_USING_HWTIMER
+ if BSP_USING_TIM
+ config BSP_USING_TIM10
+ bool "Enable TIM10"
+ default n
+
+ config BSP_USING_TIM11
+ bool "Enable TIM11"
+ default n
+
+ config BSP_USING_TIM12
+ bool "Enable TIM13"
+ default n
+ endif
+
+ menuconfig BSP_USING_ONCHIP_RTC
+ bool "Enable RTC"
+ select RT_USING_RTC
+ default n
+ if BSP_USING_ONCHIP_RTC
+ choice
+ prompt "Select clock source"
+ default BSP_RTC_USING_LSE
+
+ config BSP_RTC_USING_LSE
+ bool "RTC USING LSE"
+
+ config BSP_RTC_USING_LSI
+ bool "RTC USING LSI"
+ endchoice
+ endif
+
+ config BSP_USING_WDT
+ bool "Enable Watchdog Timer"
+ select RT_USING_WDT
+ default n
+
source "../libraries/gd32_drivers/Kconfig"
endmenu
@@ -178,3 +183,4 @@ menu "Board extended module Drivers"
endmenu
endmenu
+
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/board/SConscript b/bsp/gd32/risc-v/gd32vf103v-eval/board/SConscript
new file mode 100644
index 0000000000..25ebfdce5c
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/board/SConscript
@@ -0,0 +1,26 @@
+import os
+import rtconfig
+from building import *
+
+Import('SDK_LIB')
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+''')
+
+path = [cwd]
+
+startup_path_prefix = SDK_LIB
+
+if rtconfig.CROSS_TOOL == 'gcc':
+ src += [startup_path_prefix + '/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S']
+ src += [startup_path_prefix + '/GD32VF103_Firmware_Library/RISCV/env_Eclipse/entry.S']
+
+CPPDEFINES = ['GD32VF103V_EVAL']
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
+
+
+Return('group')
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/board/board.c b/bsp/gd32/risc-v/gd32vf103v-eval/board/board.c
new file mode 100644
index 0000000000..64b28a505d
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/board/board.c
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#include
+#include
+#include
+#include "board.h"
+
+#ifdef RT_USING_SERIAL
+#include
+#endif
+
+/* System Tick Configuration */
+static void systick_config(rt_uint32_t ticks)
+{
+ /* set value */
+ *(rt_uint64_t *) (TIMER_CTRL_ADDR + TIMER_MTIMECMP) = ticks;
+ /* enable interrupt */
+ eclic_irq_enable(CLIC_INT_TMR, 0, 0);
+ /* clear value */
+ *(rt_uint64_t *) (TIMER_CTRL_ADDR + TIMER_MTIME) = 0;
+}
+
+/* This is the timer interrupt service routine. */
+void eclic_mtip_handler(void)
+{
+ /* clear value */
+ *(rt_uint64_t *) (TIMER_CTRL_ADDR + TIMER_MTIME) = 0;
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+ /* tick increase */
+ rt_tick_increase();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+/* fixed misaligned bug for qemu */
+void *__wrap_memset(void *s, int c, size_t n)
+{
+ return rt_memset(s, c, n);
+}
+
+void rt_hw_board_init(void)
+{
+extern void _init(void);
+ _init();
+ systick_config(TIMER_FREQ / RT_TICK_PER_SECOND);
+
+ /* USART driver initialization is open by default */
+#ifdef RT_USING_SERIAL
+ rt_hw_usart_init();
+#endif
+
+ /* Set the shell console output device */
+#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
+ rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+#endif
+
+ /* Board underlying hardware initialization */
+#ifdef RT_USING_COMPONENTS_INIT
+ rt_components_board_init();
+#endif
+
+#ifdef RT_USING_HEAP
+ rt_system_heap_init((void *) HEAP_BEGIN, (void *) HEAP_END);
+#endif
+
+}
+
+/******************** end of file *******************/
+
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/board/board.h b/bsp/gd32/risc-v/gd32vf103v-eval/board/board.h
new file mode 100644
index 0000000000..a169a57eb3
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/board/board.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#ifndef __BOARD__
+#define __BOARD__
+#include "gd32vf103.h"
+#include "drv_gpio.h"
+extern void *_end;
+extern void *_heap_end;
+#define HEAP_BEGIN &_end
+#define HEAP_END &_heap_end
+
+void rt_hw_board_init(void);
+
+#endif /* __BOARD__ */
+
+/******************** end of file *******************/
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/board/gd32vf103_libopt.h b/bsp/gd32/risc-v/gd32vf103v-eval/board/gd32vf103_libopt.h
new file mode 100644
index 0000000000..a04737a6f5
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/board/gd32vf103_libopt.h
@@ -0,0 +1,62 @@
+/*!
+ \file gd32vf103_libopt.h
+ \brief library optional for gd32vf103
+
+ \version 2019-06-05, V1.0.0, demo for GD32VF103
+ \version 2020-12-18, V1.1.0, demo for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_LIBOPT_H
+#define GD32VF103_LIBOPT_H
+
+#include "gd32vf103_adc.h"
+#include "gd32vf103_bkp.h"
+#include "gd32vf103_can.h"
+#include "gd32vf103_crc.h"
+#include "gd32vf103_dac.h"
+#include "gd32vf103_dma.h"
+#include "gd32vf103_eclic.h"
+#include "gd32vf103_exmc.h"
+#include "gd32vf103_exti.h"
+#include "gd32vf103_fmc.h"
+#include "gd32vf103_gpio.h"
+#include "gd32vf103_i2c.h"
+#include "gd32vf103_fwdgt.h"
+#include "gd32vf103_dbg.h"
+#include "gd32vf103_pmu.h"
+#include "gd32vf103_rcu.h"
+#include "gd32vf103_rtc.h"
+#include "gd32vf103_spi.h"
+#include "gd32vf103_timer.h"
+#include "gd32vf103_usart.h"
+#include "gd32vf103_wwdgt.h"
+#include "n200_func.h"
+
+#endif /* GD32VF103_LIBOPT_H */
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/figures/board.jpg b/bsp/gd32/risc-v/gd32vf103v-eval/figures/board.jpg
new file mode 100644
index 0000000000..997d98fbd5
Binary files /dev/null and b/bsp/gd32/risc-v/gd32vf103v-eval/figures/board.jpg differ
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.h b/bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.h
new file mode 100644
index 0000000000..278946708d
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.h
@@ -0,0 +1,196 @@
+#ifndef RT_CONFIG_H__
+#define RT_CONFIG_H__
+
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Configuration */
+
+/* RT-Thread Kernel */
+
+#define RT_NAME_MAX 8
+#define RT_ALIGN_SIZE 4
+#define RT_THREAD_PRIORITY_32
+#define RT_THREAD_PRIORITY_MAX 32
+#define RT_TICK_PER_SECOND 100
+#define RT_USING_OVERFLOW_CHECK
+#define RT_USING_HOOK
+#define RT_HOOK_USING_FUNC_PTR
+#define RT_USING_IDLE_HOOK
+#define RT_IDLE_HOOK_LIST_SIZE 4
+#define IDLE_THREAD_STACK_SIZE 512
+#define RT_USING_TIMER_SOFT
+#define RT_TIMER_THREAD_PRIO 4
+#define RT_TIMER_THREAD_STACK_SIZE 512
+
+/* kservice optimization */
+
+#define RT_DEBUG
+
+/* Inter-Thread communication */
+
+#define RT_USING_SEMAPHORE
+#define RT_USING_MUTEX
+#define RT_USING_EVENT
+#define RT_USING_MAILBOX
+#define RT_USING_MESSAGEQUEUE
+
+/* Memory Management */
+
+#define RT_USING_MEMPOOL
+#define RT_USING_SMALL_MEM
+#define RT_USING_SMALL_MEM_AS_HEAP
+#define RT_USING_HEAP
+
+/* Kernel Device Object */
+
+#define RT_USING_DEVICE
+#define RT_USING_CONSOLE
+#define RT_CONSOLEBUF_SIZE 128
+#define RT_CONSOLE_DEVICE_NAME "uart0"
+#define RT_VER_NUM 0x40101
+
+/* RT-Thread Components */
+
+#define RT_USING_COMPONENTS_INIT
+#define RT_USING_USER_MAIN
+#define RT_MAIN_THREAD_STACK_SIZE 2048
+#define RT_MAIN_THREAD_PRIORITY 10
+#define RT_USING_MSH
+#define RT_USING_FINSH
+#define FINSH_USING_MSH
+#define FINSH_THREAD_NAME "tshell"
+#define FINSH_THREAD_PRIORITY 20
+#define FINSH_THREAD_STACK_SIZE 4096
+#define FINSH_USING_HISTORY
+#define FINSH_HISTORY_LINES 5
+#define FINSH_USING_SYMTAB
+#define FINSH_CMD_SIZE 80
+#define MSH_USING_BUILT_IN_COMMANDS
+#define FINSH_USING_DESCRIPTION
+#define FINSH_ARG_MAX 10
+
+/* Device Drivers */
+
+#define RT_USING_DEVICE_IPC
+#define RT_USING_SERIAL
+#define RT_USING_SERIAL_V1
+#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_PIN
+
+/* Using USB */
+
+
+/* C/C++ and POSIX layer */
+
+#define RT_LIBC_DEFAULT_TIMEZONE 8
+
+/* POSIX (Portable Operating System Interface) layer */
+
+
+/* Interprocess Communication (IPC) */
+
+
+/* Socket is in the 'Network' category */
+
+
+/* Network */
+
+
+/* Utilities */
+
+
+/* RT-Thread Utestcases */
+
+
+/* RT-Thread online packages */
+
+/* IoT - internet of things */
+
+
+/* Wi-Fi */
+
+/* Marvell WiFi */
+
+
+/* Wiced WiFi */
+
+
+/* IoT Cloud */
+
+
+/* security packages */
+
+
+/* language packages */
+
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+
+/* XML: Extensible Markup Language */
+
+
+/* multimedia packages */
+
+/* LVGL: powerful and easy-to-use embedded GUI library */
+
+
+/* u8g2: a monochrome graphic library */
+
+
+/* PainterEngine: A cross-platform graphics application framework written in C language */
+
+
+/* tools packages */
+
+
+/* system packages */
+
+/* enhanced kernel services */
+
+
+/* POSIX extension functions */
+
+
+/* acceleration: Assembly language or algorithmic acceleration packages */
+
+
+/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
+
+
+/* Micrium: Micrium software products porting for RT-Thread */
+
+
+/* peripheral libraries and drivers */
+
+
+/* AI packages */
+
+
+/* miscellaneous packages */
+
+/* project laboratory */
+
+/* samples: kernel and components samples */
+
+
+/* entertainment: terminal games and other interesting software packages */
+
+#define SOC_FAMILY_GD32
+#define SOC_GD32VF103V
+
+/* Hardware Drivers Config */
+
+#define SOC_SERIES_GD32VF103V
+
+/* Onboard Peripheral Drivers */
+
+/* On-chip Peripheral Drivers */
+
+#define BSP_USING_GPIO
+#define BSP_USING_UART
+#define BSP_USING_UART0
+#define BSP_USING_UART1
+
+/* Board extended module Drivers */
+
+
+#endif
diff --git a/bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.py b/bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.py
new file mode 100644
index 0000000000..454c4eee9d
--- /dev/null
+++ b/bsp/gd32/risc-v/gd32vf103v-eval/rtconfig.py
@@ -0,0 +1,74 @@
+import os
+
+# toolchains options
+ARCH='risc-v'
+CPU='bumblebee'
+CROSS_TOOL='gcc'
+
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
+if os.getenv('RTT_CC'):
+ CROSS_TOOL = os.getenv('RTT_CC')
+if os.getenv('RTT_ROOT'):
+ RTT_ROOT = os.getenv('RTT_ROOT')
+
+# cross_tool provides the cross compiler
+# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
+if CROSS_TOOL == 'gcc':
+ PLATFORM = 'gcc'
+ EXEC_PATH = EXEC_PATH = r'D:/gcc/xpack-riscv-none-embed-gcc-10.2.0-1.2/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')
+
+CORE = 'risc-v'
+BUILD = 'debug'
+MAP_FILE = 'rtthread.map'
+LINK_FILE = '../libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds'
+
+if PLATFORM == 'gcc':
+ # toolchains
+ PREFIX = 'riscv-none-embed-'
+ CC = PREFIX + 'gcc'
+ AS = PREFIX + 'gcc'
+ AR = PREFIX + 'ar'
+ CXX = PREFIX + 'g++'
+ LINK = PREFIX + 'gcc'
+ TARGET_EXT = 'elf'
+ SIZE = PREFIX + 'size'
+ OBJDUMP = PREFIX + 'objdump'
+ OBJCPY = PREFIX + 'objcopy'
+
+ DEVICE = ' -march=rv32imac -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -L. -nostartfiles -lc '
+ CFLAGS = DEVICE
+ CFLAGS += ' -save-temps=obj'
+ AFLAGS = '-c'+ DEVICE + ' -x assembler-with-cpp'
+ AFLAGS += ' -Iplatform -Ilibraries/RISCV/include -Ilibraries/RISCV/env_Eclipse'
+ LFLAGS = DEVICE
+ LFLAGS += ' -Wl,--gc-sections,-cref,-Map=' + MAP_FILE
+ LFLAGS += ' -T ' + LINK_FILE
+ LFLAGS += ' -Wl,-wrap=memset'
+
+ CPATH = ''
+ LPATH = ''
+
+ if BUILD == 'debug':
+ CFLAGS += ' -O0 -g3'
+ AFLAGS += ' -g3'
+ else:
+ CFLAGS += ' -O2'
+
+ CXXFLAGS = CFLAGS
+
+ POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
+
+def dist_handle(BSP_ROOT, dist_dir):
+ import sys
+ cwd_path = os.getcwd()
+ sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
+ from sdk_dist import dist_do_building
+ dist_do_building(BSP_ROOT, dist_dir)
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h
new file mode 100644
index 0000000000..164fddf603
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h
@@ -0,0 +1,397 @@
+/*!
+ \file gd32vf103_adc.h
+ \brief definitions for the ADC
+
+ \version 2020-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_ADC_H
+#define GD32VF103_ADC_H
+
+#include "gd32vf103.h"
+
+/* ADC definitions */
+#define ADC0 ADC_BASE
+#define ADC1 (ADC_BASE + 0x400U)
+
+/* registers definitions */
+#define ADC_STAT(adcx) REG32((adcx) + 0x00U) /*!< ADC status register */
+#define ADC_CTL0(adcx) REG32((adcx) + 0x04U) /*!< ADC control register 0 */
+#define ADC_CTL1(adcx) REG32((adcx) + 0x08U) /*!< ADC control register 1 */
+#define ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU) /*!< ADC sampling time register 0 */
+#define ADC_SAMPT1(adcx) REG32((adcx) + 0x10U) /*!< ADC sampling time register 1 */
+#define ADC_IOFF0(adcx) REG32((adcx) + 0x14U) /*!< ADC inserted channel data offset register 0 */
+#define ADC_IOFF1(adcx) REG32((adcx) + 0x18U) /*!< ADC inserted channel data offset register 1 */
+#define ADC_IOFF2(adcx) REG32((adcx) + 0x1CU) /*!< ADC inserted channel data offset register 2 */
+#define ADC_IOFF3(adcx) REG32((adcx) + 0x20U) /*!< ADC inserted channel data offset register 3 */
+#define ADC_WDHT(adcx) REG32((adcx) + 0x24U) /*!< ADC watchdog high threshold register */
+#define ADC_WDLT(adcx) REG32((adcx) + 0x28U) /*!< ADC watchdog low threshold register */
+#define ADC_RSQ0(adcx) REG32((adcx) + 0x2CU) /*!< ADC regular sequence register 0 */
+#define ADC_RSQ1(adcx) REG32((adcx) + 0x30U) /*!< ADC regular sequence register 1 */
+#define ADC_RSQ2(adcx) REG32((adcx) + 0x34U) /*!< ADC regular sequence register 2 */
+#define ADC_ISQ(adcx) REG32((adcx) + 0x38U) /*!< ADC inserted sequence register */
+#define ADC_IDATA0(adcx) REG32((adcx) + 0x3CU) /*!< ADC inserted data register 0 */
+#define ADC_IDATA1(adcx) REG32((adcx) + 0x40U) /*!< ADC inserted data register 1 */
+#define ADC_IDATA2(adcx) REG32((adcx) + 0x44U) /*!< ADC inserted data register 2 */
+#define ADC_IDATA3(adcx) REG32((adcx) + 0x48U) /*!< ADC inserted data register 3 */
+#define ADC_RDATA(adcx) REG32((adcx) + 0x4CU) /*!< ADC regular data register */
+#define ADC_OVSCR(adcx) REG32((adcx) + 0x80U) /*!< ADC oversample control register */
+
+/* bits definitions */
+/* ADC_STAT */
+#define ADC_STAT_WDE BIT(0) /*!< analog watchdog event flag */
+#define ADC_STAT_EOC BIT(1) /*!< end of conversion */
+#define ADC_STAT_EOIC BIT(2) /*!< inserted channel end of conversion */
+#define ADC_STAT_STIC BIT(3) /*!< inserted channel start flag */
+#define ADC_STAT_STRC BIT(4) /*!< regular channel start flag */
+
+/* ADC_CTL0 */
+#define ADC_CTL0_WDCHSEL BITS(0,4) /*!< analog watchdog channel select bits */
+#define ADC_CTL0_EOCIE BIT(5) /*!< interrupt enable for EOC */
+#define ADC_CTL0_WDEIE BIT(6) /*!< analog watchdog interrupt enable */
+#define ADC_CTL0_EOICIE BIT(7) /*!< interrupt enable for inserted channels */
+#define ADC_CTL0_SM BIT(8) /*!< scan mode */
+#define ADC_CTL0_WDSC BIT(9) /*!< when in scan mode, analog watchdog is effective on a single channel */
+#define ADC_CTL0_ICA BIT(10) /*!< automatic inserted group conversion */
+#define ADC_CTL0_DISRC BIT(11) /*!< discontinuous mode on regular channels */
+#define ADC_CTL0_DISIC BIT(12) /*!< discontinuous mode on inserted channels */
+#define ADC_CTL0_DISNUM BITS(13,15) /*!< discontinuous mode channel count */
+#define ADC_CTL0_SYNCM BITS(16,19) /*!< sync mode selection */
+#define ADC_CTL0_IWDEN BIT(22) /*!< analog watchdog enable on inserted channels */
+#define ADC_CTL0_RWDEN BIT(23) /*!< analog watchdog enable on regular channels */
+
+/* ADC_CTL1 */
+#define ADC_CTL1_ADCON BIT(0) /*!< ADC converter on */
+#define ADC_CTL1_CTN BIT(1) /*!< continuous conversion */
+#define ADC_CTL1_CLB BIT(2) /*!< ADC calibration */
+#define ADC_CTL1_RSTCLB BIT(3) /*!< reset calibration */
+#define ADC_CTL1_DMA BIT(8) /*!< direct memory access mode */
+#define ADC_CTL1_DAL BIT(11) /*!< data alignment */
+#define ADC_CTL1_ETSIC BITS(12,14) /*!< external trigger select for inserted channel */
+#define ADC_CTL1_ETEIC BIT(15) /*!< external trigger enable for inserted channel */
+#define ADC_CTL1_ETSRC BITS(17,19) /*!< external trigger select for regular channel */
+#define ADC_CTL1_ETERC BIT(20) /*!< external trigger conversion mode for inserted channels */
+#define ADC_CTL1_SWICST BIT(21) /*!< start on inserted channel */
+#define ADC_CTL1_SWRCST BIT(22) /*!< start on regular channel */
+#define ADC_CTL1_TSVREN BIT(23) /*!< channel 16 and 17 enable of ADC0 */
+
+/* ADC_SAMPTx x=0..1 */
+#define ADC_SAMPTX_SPTN BITS(0,2) /*!< channel n sample time selection */
+
+/* ADC_IOFFx x=0..3 */
+#define ADC_IOFFX_IOFF BITS(0,11) /*!< data offset for inserted channel x */
+
+/* ADC_WDHT */
+#define ADC_WDHT_WDHT BITS(0,11) /*!< analog watchdog high threshold */
+
+/* ADC_WDLT */
+#define ADC_WDLT_WDLT BITS(0,11) /*!< analog watchdog low threshold */
+
+/* ADC_RSQx x=0..2 */
+#define ADC_RSQX_RSQN BITS(0,4) /*!< nth conversion in regular sequence */
+#define ADC_RSQ0_RL BITS(20,23) /*!< regular channel sequence length */
+
+/* ADC_ISQ */
+#define ADC_ISQ_ISQN BITS(0,4) /*!< nth conversion in inserted sequence */
+#define ADC_ISQ_IL BITS(20,21) /*!< inserted sequence length */
+
+/* ADC_IDATAx x=0..3*/
+#define ADC_IDATAX_IDATAN BITS(0,15) /*!< inserted data n */
+
+/* ADC_RDATA */
+#define ADC_RDATA_RDATA BITS(0,15) /*!< regular data */
+#define ADC_RDATA_ADC1RDTR BITS(16,31) /*!< ADC1 regular channel data */
+
+/* ADC_OVSCR */
+#define ADC_OVSCR_OVSEN BIT(0) /*!< oversampling enable */
+#define ADC_OVSCR_OVSR BITS(2,4) /*!< oversampling ratio */
+#define ADC_OVSCR_OVSS BITS(5,8) /*!< oversampling shift */
+#define ADC_OVSCR_TOVS BIT(9) /*!< triggered oversampling */
+#define ADC_OVSCR_DRES BITS(12,13) /*!< ADC data resolution */
+
+/* constants definitions */
+/* adc_stat register value */
+#define ADC_FLAG_WDE ADC_STAT_WDE /*!< analog watchdog event flag */
+#define ADC_FLAG_EOC ADC_STAT_EOC /*!< end of conversion */
+#define ADC_FLAG_EOIC ADC_STAT_EOIC /*!< inserted channel end of conversion */
+#define ADC_FLAG_STIC ADC_STAT_STIC /*!< inserted channel start flag */
+#define ADC_FLAG_STRC ADC_STAT_STRC /*!< regular channel start flag */
+
+/* adc_ctl0 register value */
+#define CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13)) /*!< write value to ADC_CTL0_DISNUM bit field */
+
+/* scan mode */
+#define ADC_SCAN_MODE ADC_CTL0_SM /*!< scan mode */
+
+/* inserted channel group convert automatically */
+#define ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA /*!< inserted channel group convert automatically */
+
+/* ADC sync mode */
+#define CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16)) /*!< write value to ADC_CTL0_SYNCM bit field */
+#define ADC_MODE_FREE CTL0_SYNCM(0) /*!< all the ADCs work independently */
+#define ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1) /*!< ADC0 and ADC1 work in combined regular parallel + inserted parallel mode */
+#define ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2) /*!< ADC0 and ADC1 work in combined regular parallel + trigger rotation mode */
+#define ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3) /*!< ADC0 and ADC1 work in combined inserted parallel + follow-up fast mode */
+#define ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4) /*!< ADC0 and ADC1 work in combined inserted parallel + follow-up slow mode */
+#define ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5) /*!< ADC0 and ADC1 work in inserted parallel mode only */
+#define ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6) /*!< ADC0 and ADC1 work in regular parallel mode only */
+#define ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7) /*!< ADC0 and ADC1 work in follow-up fast mode only */
+#define ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8) /*!< ADC0 and ADC1 work in follow-up slow mode only */
+#define ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9) /*!< ADC0 and ADC1 work in trigger rotation mode only */
+
+/* adc_ctl1 register value */
+#define ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U) /*!< LSB alignment */
+#define ADC_DATAALIGN_LEFT ADC_CTL1_DAL /*!< MSB alignment */
+
+/* continuous mode */
+#define ADC_CONTINUOUS_MODE ADC_CTL1_CTN /*!< continuous mode */
+
+/* external trigger select for regular channel */
+#define CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17)) /*!< write value to ADC_CTL1_ETSRC bit field */
+/* for ADC0 and ADC1 regular channel */
+#define ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0) /*!< TIMER0 CH0 event select */
+#define ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1) /*!< TIMER0 CH1 event select */
+#define ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2) /*!< TIMER0 CH2 event select */
+#define ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3) /*!< TIMER1 CH1 event select */
+#define ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4) /*!< TIMER2 TRGO event select */
+#define ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5) /*!< TIMER3 CH3 event select */
+#define ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6) /*!< external interrupt line 11 */
+#define ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7) /*!< software trigger */
+
+/* external trigger mode for inserted channel */
+#define CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12)) /*!< write value to ADC_CTL1_ETSIC bit field */
+/* for ADC0 and ADC1 inserted channel */
+#define ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0) /*!< TIMER0 TRGO event select */
+#define ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1) /*!< TIMER0 CH3 event select */
+#define ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2) /*!< TIMER1 TRGO event select */
+#define ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3) /*!< TIMER1 CH0 event select */
+#define ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4) /*!< TIMER2 CH3 event select */
+#define ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5) /*!< TIMER3 TRGO event select */
+#define ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6) /*!< external interrupt line 15 */
+#define ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7) /*!< software trigger */
+
+/* adc_samptx register value */
+#define SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_SAMPTX_SPT bit field */
+#define ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0) /*!< 1.5 sampling cycles */
+#define ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1) /*!< 7.5 sampling cycles */
+#define ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2) /*!< 13.5 sampling cycles */
+#define ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3) /*!< 28.5 sampling cycles */
+#define ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4) /*!< 41.5 sampling cycles */
+#define ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5) /*!< 55.5 sampling cycles */
+#define ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6) /*!< 71.5 sampling cycles */
+#define ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7) /*!< 239.5 sampling cycles */
+
+/* adc_ioffx register value */
+#define IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_IOFFX_IOFF bit field */
+
+/* adc_wdht register value */
+#define WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_WDHT_WDHT bit field */
+
+/* adc_wdlt register value */
+#define WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0)) /*!< write value to ADC_WDLT_WDLT bit field */
+
+/* adc_rsqx register value */
+#define RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20)) /*!< write value to ADC_RSQ0_RL bit field */
+
+/* adc_isq register value */
+#define ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20)) /*!< write value to ADC_ISQ_IL bit field */
+
+/* ADC channel group definitions */
+#define ADC_REGULAR_CHANNEL ((uint8_t)0x01U) /*!< adc regular channel group */
+#define ADC_INSERTED_CHANNEL ((uint8_t)0x02U) /*!< adc inserted channel group */
+#define ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U) /*!< both regular and inserted channel group */
+
+#define ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U) /*!< disable discontinuous mode of regular & inserted channel */
+
+/* ADC inserted channel definitions */
+#define ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U) /*!< adc inserted channel 0 */
+#define ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U) /*!< adc inserted channel 1 */
+#define ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U) /*!< adc inserted channel 2 */
+#define ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U) /*!< adc inserted channel 3 */
+
+/* ADC channel definitions */
+#define ADC_CHANNEL_0 ((uint8_t)0x00U) /*!< ADC channel 0 */
+#define ADC_CHANNEL_1 ((uint8_t)0x01U) /*!< ADC channel 1 */
+#define ADC_CHANNEL_2 ((uint8_t)0x02U) /*!< ADC channel 2 */
+#define ADC_CHANNEL_3 ((uint8_t)0x03U) /*!< ADC channel 3 */
+#define ADC_CHANNEL_4 ((uint8_t)0x04U) /*!< ADC channel 4 */
+#define ADC_CHANNEL_5 ((uint8_t)0x05U) /*!< ADC channel 5 */
+#define ADC_CHANNEL_6 ((uint8_t)0x06U) /*!< ADC channel 6 */
+#define ADC_CHANNEL_7 ((uint8_t)0x07U) /*!< ADC channel 7 */
+#define ADC_CHANNEL_8 ((uint8_t)0x08U) /*!< ADC channel 8 */
+#define ADC_CHANNEL_9 ((uint8_t)0x09U) /*!< ADC channel 9 */
+#define ADC_CHANNEL_10 ((uint8_t)0x0AU) /*!< ADC channel 10 */
+#define ADC_CHANNEL_11 ((uint8_t)0x0BU) /*!< ADC channel 11 */
+#define ADC_CHANNEL_12 ((uint8_t)0x0CU) /*!< ADC channel 12 */
+#define ADC_CHANNEL_13 ((uint8_t)0x0DU) /*!< ADC channel 13 */
+#define ADC_CHANNEL_14 ((uint8_t)0x0EU) /*!< ADC channel 14 */
+#define ADC_CHANNEL_15 ((uint8_t)0x0FU) /*!< ADC channel 15 */
+#define ADC_CHANNEL_16 ((uint8_t)0x10U) /*!< ADC channel 16 */
+#define ADC_CHANNEL_17 ((uint8_t)0x11U) /*!< ADC channel 17 */
+
+/* ADC interrupt */
+#define ADC_INT_WDE ADC_STAT_WDE /*!< analog watchdog event interrupt */
+#define ADC_INT_EOC ADC_STAT_EOC /*!< end of group conversion interrupt */
+#define ADC_INT_EOIC ADC_STAT_EOIC /*!< end of inserted group conversion interrupt */
+
+/* ADC interrupt flag */
+#define ADC_INT_FLAG_WDE ADC_STAT_WDE /*!< analog watchdog event interrupt flag */
+#define ADC_INT_FLAG_EOC ADC_STAT_EOC /*!< end of group conversion interrupt flag */
+#define ADC_INT_FLAG_EOIC ADC_STAT_EOIC /*!< end of inserted group conversion interrupt flag */
+
+/* ADC resolution definitions */
+#define OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))
+#define ADC_RESOLUTION_12B OVSCR_DRES(0) /*!< 12-bit ADC resolution */
+#define ADC_RESOLUTION_10B OVSCR_DRES(1) /*!< 10-bit ADC resolution */
+#define ADC_RESOLUTION_8B OVSCR_DRES(2) /*!< 8-bit ADC resolution */
+#define ADC_RESOLUTION_6B OVSCR_DRES(3) /*!< 6-bit ADC resolution */
+
+/* ADC oversampling mode */
+#define ADC_OVERSAMPLING_ALL_CONVERT 0 /*!< all oversampled conversions for a channel are done consecutively after a trigger */
+#define ADC_OVERSAMPLING_ONE_CONVERT 1 /*!< each oversampled conversion for a channel needs a trigger */
+
+/* ADC oversampling shift */
+#define OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))
+#define ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0) /*!< no oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1) /*!< 1-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2) /*!< 2-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3) /*!< 3-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4) /*!< 4-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5) /*!< 5-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6) /*!< 6-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7) /*!< 7-bit oversampling shift */
+#define ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8) /*!< 8-bit oversampling shift */
+
+/* ADC oversampling ratio */
+#define OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))
+#define ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0) /*!< oversampling ratio X2 */
+#define ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1) /*!< oversampling ratio X4 */
+#define ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2) /*!< oversampling ratio X8 */
+#define ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3) /*!< oversampling ratio X16 */
+#define ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4) /*!< oversampling ratio X32 */
+#define ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5) /*!< oversampling ratio X64 */
+#define ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6) /*!< oversampling ratio X128 */
+#define ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7) /*!< oversampling ratio X256 */
+
+/* function declarations */
+/* initialization config */
+/* reset ADC */
+void adc_deinit(uint32_t adc_periph);
+/* configure the ADC sync mode */
+void adc_mode_config(uint32_t mode);
+/* enable or disable ADC special function */
+void adc_special_function_config(uint32_t adc_periph, uint32_t function, ControlStatus newvalue);
+/* configure ADC data alignment */
+void adc_data_alignment_config(uint32_t adc_periph, uint32_t data_alignment);
+/* enable ADC interface */
+void adc_enable(uint32_t adc_periph);
+/* disable ADC interface */
+void adc_disable(uint32_t adc_periph);
+/* ADC calibration and reset calibration */
+void adc_calibration_enable(uint32_t adc_periph);
+/* enable the temperature sensor and Vrefint channel */
+void adc_tempsensor_vrefint_enable(void);
+/* disable the temperature sensor and Vrefint channel */
+void adc_tempsensor_vrefint_disable(void);
+
+/* DMA config */
+/* enable DMA request */
+void adc_dma_mode_enable(uint32_t adc_periph);
+/* disable DMA request */
+void adc_dma_mode_disable(uint32_t adc_periph);
+
+/* regular group and inserted group config */
+/* configure ADC discontinuous mode */
+void adc_discontinuous_mode_config(uint32_t adc_periph, uint8_t adc_channel_group, uint8_t length);
+
+/* configure the length of regular channel group or inserted channel group */
+void adc_channel_length_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t length);
+/* configure ADC regular channel */
+void adc_regular_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time);
+/* configure ADC inserted channel */
+void adc_inserted_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time);
+/* configure ADC inserted channel offset */
+void adc_inserted_channel_offset_config(uint32_t adc_periph, uint8_t inserted_channel, uint16_t offset);
+
+/* configure ADC external trigger source */
+void adc_external_trigger_source_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t external_trigger_source);
+/* configure ADC external trigger */
+void adc_external_trigger_config(uint32_t adc_periph, uint8_t adc_channel_group, ControlStatus newvalue);
+/* enable ADC software trigger */
+void adc_software_trigger_enable(uint32_t adc_periph, uint8_t adc_channel_group);
+
+/* get channel data */
+/* read ADC regular group data register */
+uint16_t adc_regular_data_read(uint32_t adc_periph);
+/* read ADC inserted group data register */
+uint16_t adc_inserted_data_read(uint32_t adc_periph, uint8_t inserted_channel);
+/* read the last ADC0 and ADC1 conversion result data in sync mode */
+uint32_t adc_sync_mode_convert_value_read(void);
+
+/* watchdog config */
+/* configure ADC analog watchdog single channel */
+void adc_watchdog_single_channel_enable(uint32_t adc_periph, uint8_t adc_channel);
+/* configure ADC analog watchdog group channel */
+void adc_watchdog_group_channel_enable(uint32_t adc_periph, uint8_t adc_channel_group);
+/* disable ADC analog watchdog */
+void adc_watchdog_disable(uint32_t adc_periph);
+/* configure ADC analog watchdog threshold */
+void adc_watchdog_threshold_config(uint32_t adc_periph, uint16_t low_threshold, uint16_t high_threshold);
+
+/* interrupt & flag functions */
+/* get the ADC flag bits */
+FlagStatus adc_flag_get(uint32_t adc_periph, uint32_t adc_flag);
+/* clear the ADC flag bits */
+void adc_flag_clear(uint32_t adc_periph, uint32_t adc_flag);
+/* get the bit state of ADCx software start conversion */
+FlagStatus adc_regular_software_startconv_flag_get(uint32_t adc_periph);
+/* get the bit state of ADCx software inserted channel start conversion */
+FlagStatus adc_inserted_software_startconv_flag_get(uint32_t adc_periph);
+/* get the ADC interrupt bits */
+FlagStatus adc_interrupt_flag_get(uint32_t adc_periph, uint32_t adc_interrupt);
+/* clear the ADC flag */
+void adc_interrupt_flag_clear(uint32_t adc_periph, uint32_t adc_interrupt);
+/* enable ADC interrupt */
+void adc_interrupt_enable(uint32_t adc_periph, uint32_t adc_interrupt);
+/* disable ADC interrupt */
+void adc_interrupt_disable(uint32_t adc_periph, uint32_t adc_interrupt);
+
+/* ADC resolution & oversample */
+/* ADC resolution config */
+void adc_resolution_config(uint32_t adc_periph, uint32_t resolution);
+/* ADC oversample mode config */
+void adc_oversample_mode_config(uint32_t adc_periph, uint8_t mode, uint16_t shift, uint8_t ratio);
+/* enable ADC oversample mode */
+void adc_oversample_mode_enable(uint32_t adc_periph);
+/* disable ADC oversample mode */
+void adc_oversample_mode_disable(uint32_t adc_periph);
+
+#endif /* GD32VF103_ADC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h
new file mode 100644
index 0000000000..f2dcff240b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h
@@ -0,0 +1,228 @@
+/*!
+ \file gd32vf103_bkp.h
+ \brief definitions for the BKP
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_BKP_H
+#define GD32VF103_BKP_H
+
+#include "gd32vf103.h"
+
+/* BKP definitions */
+#define BKP BKP_BASE /*!< BKP base address */
+
+/* registers definitions */
+#define BKP_DATA0 REG16((BKP) + 0x04U) /*!< BKP data register 0 */
+#define BKP_DATA1 REG16((BKP) + 0x08U) /*!< BKP data register 1 */
+#define BKP_DATA2 REG16((BKP) + 0x0CU) /*!< BKP data register 2 */
+#define BKP_DATA3 REG16((BKP) + 0x10U) /*!< BKP data register 3 */
+#define BKP_DATA4 REG16((BKP) + 0x14U) /*!< BKP data register 4 */
+#define BKP_DATA5 REG16((BKP) + 0x18U) /*!< BKP data register 5 */
+#define BKP_DATA6 REG16((BKP) + 0x1CU) /*!< BKP data register 6 */
+#define BKP_DATA7 REG16((BKP) + 0x20U) /*!< BKP data register 7 */
+#define BKP_DATA8 REG16((BKP) + 0x24U) /*!< BKP data register 8 */
+#define BKP_DATA9 REG16((BKP) + 0x28U) /*!< BKP data register 9 */
+#define BKP_DATA10 REG16((BKP) + 0x40U) /*!< BKP data register 10 */
+#define BKP_DATA11 REG16((BKP) + 0x44U) /*!< BKP data register 11 */
+#define BKP_DATA12 REG16((BKP) + 0x48U) /*!< BKP data register 12 */
+#define BKP_DATA13 REG16((BKP) + 0x4CU) /*!< BKP data register 13 */
+#define BKP_DATA14 REG16((BKP) + 0x50U) /*!< BKP data register 14 */
+#define BKP_DATA15 REG16((BKP) + 0x54U) /*!< BKP data register 15 */
+#define BKP_DATA16 REG16((BKP) + 0x58U) /*!< BKP data register 16 */
+#define BKP_DATA17 REG16((BKP) + 0x5CU) /*!< BKP data register 17 */
+#define BKP_DATA18 REG16((BKP) + 0x60U) /*!< BKP data register 18 */
+#define BKP_DATA19 REG16((BKP) + 0x64U) /*!< BKP data register 19 */
+#define BKP_DATA20 REG16((BKP) + 0x68U) /*!< BKP data register 20 */
+#define BKP_DATA21 REG16((BKP) + 0x6CU) /*!< BKP data register 21 */
+#define BKP_DATA22 REG16((BKP) + 0x70U) /*!< BKP data register 22 */
+#define BKP_DATA23 REG16((BKP) + 0x74U) /*!< BKP data register 23 */
+#define BKP_DATA24 REG16((BKP) + 0x78U) /*!< BKP data register 24 */
+#define BKP_DATA25 REG16((BKP) + 0x7CU) /*!< BKP data register 25 */
+#define BKP_DATA26 REG16((BKP) + 0x80U) /*!< BKP data register 26 */
+#define BKP_DATA27 REG16((BKP) + 0x84U) /*!< BKP data register 27 */
+#define BKP_DATA28 REG16((BKP) + 0x88U) /*!< BKP data register 28 */
+#define BKP_DATA29 REG16((BKP) + 0x8CU) /*!< BKP data register 29 */
+#define BKP_DATA30 REG16((BKP) + 0x90U) /*!< BKP data register 30 */
+#define BKP_DATA31 REG16((BKP) + 0x94U) /*!< BKP data register 31 */
+#define BKP_DATA32 REG16((BKP) + 0x98U) /*!< BKP data register 32 */
+#define BKP_DATA33 REG16((BKP) + 0x9CU) /*!< BKP data register 33 */
+#define BKP_DATA34 REG16((BKP) + 0xA0U) /*!< BKP data register 34 */
+#define BKP_DATA35 REG16((BKP) + 0xA4U) /*!< BKP data register 35 */
+#define BKP_DATA36 REG16((BKP) + 0xA8U) /*!< BKP data register 36 */
+#define BKP_DATA37 REG16((BKP) + 0xACU) /*!< BKP data register 37 */
+#define BKP_DATA38 REG16((BKP) + 0xB0U) /*!< BKP data register 38 */
+#define BKP_DATA39 REG16((BKP) + 0xB4U) /*!< BKP data register 39 */
+#define BKP_DATA40 REG16((BKP) + 0xB8U) /*!< BKP data register 40 */
+#define BKP_DATA41 REG16((BKP) + 0xBCU) /*!< BKP data register 41 */
+#define BKP_OCTL REG16((BKP) + 0x2CU) /*!< RTC signal output control register */
+#define BKP_TPCTL REG16((BKP) + 0x30U) /*!< tamper pin control register */
+#define BKP_TPCS REG16((BKP) + 0x34U) /*!< tamper control and status register */
+
+/* bits definitions */
+/* BKP_DATA */
+#define BKP_DATA BITS(0,15) /*!< backup data */
+
+/* BKP_OCTL */
+#define BKP_OCTL_RCCV BITS(0,6) /*!< RTC clock calibration value */
+#define BKP_OCTL_COEN BIT(7) /*!< RTC clock calibration output enable */
+#define BKP_OCTL_ASOEN BIT(8) /*!< RTC alarm or second signal output enable */
+#define BKP_OCTL_ROSEL BIT(9) /*!< RTC output selection */
+
+/* BKP_TPCTL */
+#define BKP_TPCTL_TPEN BIT(0) /*!< tamper detection enable */
+#define BKP_TPCTL_TPAL BIT(1) /*!< tamper pin active level */
+
+/* BKP_TPCS */
+#define BKP_TPCS_TER BIT(0) /*!< tamper event reset */
+#define BKP_TPCS_TIR BIT(1) /*!< tamper interrupt reset */
+#define BKP_TPCS_TPIE BIT(2) /*!< tamper interrupt enable */
+#define BKP_TPCS_TEF BIT(8) /*!< tamper event flag */
+#define BKP_TPCS_TIF BIT(9) /*!< tamper interrupt flag */
+
+/* constants definitions */
+/* BKP data register number */
+typedef enum
+{
+ BKP_DATA_0 = 1, /*!< BKP data register 0 */
+ BKP_DATA_1, /*!< BKP data register 1 */
+ BKP_DATA_2, /*!< BKP data register 2 */
+ BKP_DATA_3, /*!< BKP data register 3 */
+ BKP_DATA_4, /*!< BKP data register 4 */
+ BKP_DATA_5, /*!< BKP data register 5 */
+ BKP_DATA_6, /*!< BKP data register 6 */
+ BKP_DATA_7, /*!< BKP data register 7 */
+ BKP_DATA_8, /*!< BKP data register 8 */
+ BKP_DATA_9, /*!< BKP data register 9 */
+ BKP_DATA_10, /*!< BKP data register 10 */
+ BKP_DATA_11, /*!< BKP data register 11 */
+ BKP_DATA_12, /*!< BKP data register 12 */
+ BKP_DATA_13, /*!< BKP data register 13 */
+ BKP_DATA_14, /*!< BKP data register 14 */
+ BKP_DATA_15, /*!< BKP data register 15 */
+ BKP_DATA_16, /*!< BKP data register 16 */
+ BKP_DATA_17, /*!< BKP data register 17 */
+ BKP_DATA_18, /*!< BKP data register 18 */
+ BKP_DATA_19, /*!< BKP data register 19 */
+ BKP_DATA_20, /*!< BKP data register 20 */
+ BKP_DATA_21, /*!< BKP data register 21 */
+ BKP_DATA_22, /*!< BKP data register 22 */
+ BKP_DATA_23, /*!< BKP data register 23 */
+ BKP_DATA_24, /*!< BKP data register 24 */
+ BKP_DATA_25, /*!< BKP data register 25 */
+ BKP_DATA_26, /*!< BKP data register 26 */
+ BKP_DATA_27, /*!< BKP data register 27 */
+ BKP_DATA_28, /*!< BKP data register 28 */
+ BKP_DATA_29, /*!< BKP data register 29 */
+ BKP_DATA_30, /*!< BKP data register 30 */
+ BKP_DATA_31, /*!< BKP data register 31 */
+ BKP_DATA_32, /*!< BKP data register 32 */
+ BKP_DATA_33, /*!< BKP data register 33 */
+ BKP_DATA_34, /*!< BKP data register 34 */
+ BKP_DATA_35, /*!< BKP data register 35 */
+ BKP_DATA_36, /*!< BKP data register 36 */
+ BKP_DATA_37, /*!< BKP data register 37 */
+ BKP_DATA_38, /*!< BKP data register 38 */
+ BKP_DATA_39, /*!< BKP data register 39 */
+ BKP_DATA_40, /*!< BKP data register 40 */
+ BKP_DATA_41, /*!< BKP data register 41 */
+}bkp_data_register_enum;
+
+/* BKP register */
+#define BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)
+#define BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)
+
+/* get data of BKP data register */
+#define BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)
+
+/* RTC clock calibration value */
+#define OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))
+
+/* RTC output selection */
+#define RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U) /*!< RTC alarm pulse is selected as the RTC output */
+#define RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U) /*!< RTC second pulse is selected as the RTC output */
+
+/* tamper pin active level */
+#define TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U) /*!< the tamper pin is active high */
+#define TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U) /*!< the tamper pin is active low */
+
+/* tamper flag */
+#define BKP_FLAG_TAMPER BKP_TPCS_TEF /*!< tamper event flag */
+
+/* tamper interrupt flag */
+#define BKP_INT_FLAG_TAMPER BKP_TPCS_TIF /*!< tamper interrupt flag */
+
+/* function declarations */
+/* reset BKP registers */
+void bkp_deinit(void);
+/* write BKP data register */
+void bkp_data_write(bkp_data_register_enum register_number, uint16_t data);
+/* read BKP data register */
+uint16_t bkp_data_read(bkp_data_register_enum register_number);
+
+/* RTC related functions */
+/* enable RTC clock calibration output */
+void bkp_rtc_calibration_output_enable(void);
+/* disable RTC clock calibration output */
+void bkp_rtc_calibration_output_disable(void);
+/* enable RTC alarm or second signal output */
+void bkp_rtc_signal_output_enable(void);
+/* disable RTC alarm or second signal output */
+void bkp_rtc_signal_output_disable(void);
+/* select RTC output */
+void bkp_rtc_output_select(uint16_t outputsel);
+/* set RTC clock calibration value */
+void bkp_rtc_calibration_value_set(uint8_t value);
+
+/* tamper pin related functions */
+/* enable tamper pin detection */
+void bkp_tamper_detection_enable(void);
+/* disable tamper pin detection */
+void bkp_tamper_detection_disable(void);
+/* set tamper pin active level */
+void bkp_tamper_active_level_set(uint16_t level);
+
+/* interrupt & flag functions */
+/* enable tamper interrupt */
+void bkp_interrupt_enable(void);
+/* disable tamper interrupt */
+void bkp_interrupt_disable(void);
+/* get tamper flag state */
+FlagStatus bkp_flag_get(void);
+/* clear tamper flag state */
+void bkp_flag_clear(void);
+/* get tamper interrupt flag state */
+FlagStatus bkp_interrupt_flag_get(void);
+/* clear tamper interrupt flag state */
+void bkp_interrupt_flag_clear(void);
+
+#endif /* GD32VF103_BKP_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_can.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_can.h
new file mode 100644
index 0000000000..1700b532b0
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_can.h
@@ -0,0 +1,753 @@
+/*!
+ \file gd32vf103_can.h
+ \brief definitions for the CAN
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-11-27, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-14, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_CAN_H
+#define GD32VF103_CAN_H
+
+#include "gd32vf103.h"
+
+/* CAN definitions */
+#define CAN0 CAN_BASE /*!< CAN0 base address */
+#define CAN1 (CAN0 + 0x00000400U) /*!< CAN1 base address */
+
+/* registers definitions */
+#define CAN_CTL(canx) REG32((canx) + 0x00U) /*!< CAN control register */
+#define CAN_STAT(canx) REG32((canx) + 0x04U) /*!< CAN status register */
+#define CAN_TSTAT(canx) REG32((canx) + 0x08U) /*!< CAN transmit status register*/
+#define CAN_RFIFO0(canx) REG32((canx) + 0x0CU) /*!< CAN receive FIFO0 register */
+#define CAN_RFIFO1(canx) REG32((canx) + 0x10U) /*!< CAN receive FIFO1 register */
+#define CAN_INTEN(canx) REG32((canx) + 0x14U) /*!< CAN interrupt enable register */
+#define CAN_ERR(canx) REG32((canx) + 0x18U) /*!< CAN error register */
+#define CAN_BT(canx) REG32((canx) + 0x1CU) /*!< CAN bit timing register */
+#define CAN_TMI0(canx) REG32((canx) + 0x180U) /*!< CAN transmit mailbox0 identifier register */
+#define CAN_TMP0(canx) REG32((canx) + 0x184U) /*!< CAN transmit mailbox0 property register */
+#define CAN_TMDATA00(canx) REG32((canx) + 0x188U) /*!< CAN transmit mailbox0 data0 register */
+#define CAN_TMDATA10(canx) REG32((canx) + 0x18CU) /*!< CAN transmit mailbox0 data1 register */
+#define CAN_TMI1(canx) REG32((canx) + 0x190U) /*!< CAN transmit mailbox1 identifier register */
+#define CAN_TMP1(canx) REG32((canx) + 0x194U) /*!< CAN transmit mailbox1 property register */
+#define CAN_TMDATA01(canx) REG32((canx) + 0x198U) /*!< CAN transmit mailbox1 data0 register */
+#define CAN_TMDATA11(canx) REG32((canx) + 0x19CU) /*!< CAN transmit mailbox1 data1 register */
+#define CAN_TMI2(canx) REG32((canx) + 0x1A0U) /*!< CAN transmit mailbox2 identifier register */
+#define CAN_TMP2(canx) REG32((canx) + 0x1A4U) /*!< CAN transmit mailbox2 property register */
+#define CAN_TMDATA02(canx) REG32((canx) + 0x1A8U) /*!< CAN transmit mailbox2 data0 register */
+#define CAN_TMDATA12(canx) REG32((canx) + 0x1ACU) /*!< CAN transmit mailbox2 data1 register */
+#define CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U) /*!< CAN receive FIFO0 mailbox identifier register */
+#define CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U) /*!< CAN receive FIFO0 mailbox property register */
+#define CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U) /*!< CAN receive FIFO0 mailbox data0 register */
+#define CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU) /*!< CAN receive FIFO0 mailbox data1 register */
+#define CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U) /*!< CAN receive FIFO1 mailbox identifier register */
+#define CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U) /*!< CAN receive FIFO1 mailbox property register */
+#define CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U) /*!< CAN receive FIFO1 mailbox data0 register */
+#define CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU) /*!< CAN receive FIFO1 mailbox data1 register */
+#define CAN_FCTL(canx) REG32((canx) + 0x200U) /*!< CAN filter control register */
+#define CAN_FMCFG(canx) REG32((canx) + 0x204U) /*!< CAN filter mode register */
+#define CAN_FSCFG(canx) REG32((canx) + 0x20CU) /*!< CAN filter scale register */
+#define CAN_FAFIFO(canx) REG32((canx) + 0x214U) /*!< CAN filter associated FIFO register */
+#define CAN_FW(canx) REG32((canx) + 0x21CU) /*!< CAN filter working register */
+#define CAN_F0DATA0(canx) REG32((canx) + 0x240U) /*!< CAN filter 0 data 0 register */
+#define CAN_F1DATA0(canx) REG32((canx) + 0x248U) /*!< CAN filter 1 data 0 register */
+#define CAN_F2DATA0(canx) REG32((canx) + 0x250U) /*!< CAN filter 2 data 0 register */
+#define CAN_F3DATA0(canx) REG32((canx) + 0x258U) /*!< CAN filter 3 data 0 register */
+#define CAN_F4DATA0(canx) REG32((canx) + 0x260U) /*!< CAN filter 4 data 0 register */
+#define CAN_F5DATA0(canx) REG32((canx) + 0x268U) /*!< CAN filter 5 data 0 register */
+#define CAN_F6DATA0(canx) REG32((canx) + 0x270U) /*!< CAN filter 6 data 0 register */
+#define CAN_F7DATA0(canx) REG32((canx) + 0x278U) /*!< CAN filter 7 data 0 register */
+#define CAN_F8DATA0(canx) REG32((canx) + 0x280U) /*!< CAN filter 8 data 0 register */
+#define CAN_F9DATA0(canx) REG32((canx) + 0x288U) /*!< CAN filter 9 data 0 register */
+#define CAN_F10DATA0(canx) REG32((canx) + 0x290U) /*!< CAN filter 10 data 0 register */
+#define CAN_F11DATA0(canx) REG32((canx) + 0x298U) /*!< CAN filter 11 data 0 register */
+#define CAN_F12DATA0(canx) REG32((canx) + 0x2A0U) /*!< CAN filter 12 data 0 register */
+#define CAN_F13DATA0(canx) REG32((canx) + 0x2A8U) /*!< CAN filter 13 data 0 register */
+#define CAN_F14DATA0(canx) REG32((canx) + 0x2B0U) /*!< CAN filter 14 data 0 register */
+#define CAN_F15DATA0(canx) REG32((canx) + 0x2B8U) /*!< CAN filter 15 data 0 register */
+#define CAN_F16DATA0(canx) REG32((canx) + 0x2C0U) /*!< CAN filter 16 data 0 register */
+#define CAN_F17DATA0(canx) REG32((canx) + 0x2C8U) /*!< CAN filter 17 data 0 register */
+#define CAN_F18DATA0(canx) REG32((canx) + 0x2D0U) /*!< CAN filter 18 data 0 register */
+#define CAN_F19DATA0(canx) REG32((canx) + 0x2D8U) /*!< CAN filter 19 data 0 register */
+#define CAN_F20DATA0(canx) REG32((canx) + 0x2E0U) /*!< CAN filter 20 data 0 register */
+#define CAN_F21DATA0(canx) REG32((canx) + 0x2E8U) /*!< CAN filter 21 data 0 register */
+#define CAN_F22DATA0(canx) REG32((canx) + 0x2F0U) /*!< CAN filter 22 data 0 register */
+#define CAN_F23DATA0(canx) REG32((canx) + 0x3F8U) /*!< CAN filter 23 data 0 register */
+#define CAN_F24DATA0(canx) REG32((canx) + 0x300U) /*!< CAN filter 24 data 0 register */
+#define CAN_F25DATA0(canx) REG32((canx) + 0x308U) /*!< CAN filter 25 data 0 register */
+#define CAN_F26DATA0(canx) REG32((canx) + 0x310U) /*!< CAN filter 26 data 0 register */
+#define CAN_F27DATA0(canx) REG32((canx) + 0x318U) /*!< CAN filter 27 data 0 register */
+#define CAN_F0DATA1(canx) REG32((canx) + 0x244U) /*!< CAN filter 0 data 1 register */
+#define CAN_F1DATA1(canx) REG32((canx) + 0x24CU) /*!< CAN filter 1 data 1 register */
+#define CAN_F2DATA1(canx) REG32((canx) + 0x254U) /*!< CAN filter 2 data 1 register */
+#define CAN_F3DATA1(canx) REG32((canx) + 0x25CU) /*!< CAN filter 3 data 1 register */
+#define CAN_F4DATA1(canx) REG32((canx) + 0x264U) /*!< CAN filter 4 data 1 register */
+#define CAN_F5DATA1(canx) REG32((canx) + 0x26CU) /*!< CAN filter 5 data 1 register */
+#define CAN_F6DATA1(canx) REG32((canx) + 0x274U) /*!< CAN filter 6 data 1 register */
+#define CAN_F7DATA1(canx) REG32((canx) + 0x27CU) /*!< CAN filter 7 data 1 register */
+#define CAN_F8DATA1(canx) REG32((canx) + 0x284U) /*!< CAN filter 8 data 1 register */
+#define CAN_F9DATA1(canx) REG32((canx) + 0x28CU) /*!< CAN filter 9 data 1 register */
+#define CAN_F10DATA1(canx) REG32((canx) + 0x294U) /*!< CAN filter 10 data 1 register */
+#define CAN_F11DATA1(canx) REG32((canx) + 0x29CU) /*!< CAN filter 11 data 1 register */
+#define CAN_F12DATA1(canx) REG32((canx) + 0x2A4U) /*!< CAN filter 12 data 1 register */
+#define CAN_F13DATA1(canx) REG32((canx) + 0x2ACU) /*!< CAN filter 13 data 1 register */
+#define CAN_F14DATA1(canx) REG32((canx) + 0x2B4U) /*!< CAN filter 14 data 1 register */
+#define CAN_F15DATA1(canx) REG32((canx) + 0x2BCU) /*!< CAN filter 15 data 1 register */
+#define CAN_F16DATA1(canx) REG32((canx) + 0x2C4U) /*!< CAN filter 16 data 1 register */
+#define CAN_F17DATA1(canx) REG32((canx) + 0x24CU) /*!< CAN filter 17 data 1 register */
+#define CAN_F18DATA1(canx) REG32((canx) + 0x2D4U) /*!< CAN filter 18 data 1 register */
+#define CAN_F19DATA1(canx) REG32((canx) + 0x2DCU) /*!< CAN filter 19 data 1 register */
+#define CAN_F20DATA1(canx) REG32((canx) + 0x2E4U) /*!< CAN filter 20 data 1 register */
+#define CAN_F21DATA1(canx) REG32((canx) + 0x2ECU) /*!< CAN filter 21 data 1 register */
+#define CAN_F22DATA1(canx) REG32((canx) + 0x2F4U) /*!< CAN filter 22 data 1 register */
+#define CAN_F23DATA1(canx) REG32((canx) + 0x2FCU) /*!< CAN filter 23 data 1 register */
+#define CAN_F24DATA1(canx) REG32((canx) + 0x304U) /*!< CAN filter 24 data 1 register */
+#define CAN_F25DATA1(canx) REG32((canx) + 0x30CU) /*!< CAN filter 25 data 1 register */
+#define CAN_F26DATA1(canx) REG32((canx) + 0x314U) /*!< CAN filter 26 data 1 register */
+#define CAN_F27DATA1(canx) REG32((canx) + 0x31CU) /*!< CAN filter 27 data 1 register */
+
+/* CAN transmit mailbox bank */
+#define CAN_TMI(canx, bank) REG32((canx) + 0x180U + ((bank) * 0x10U)) /*!< CAN transmit mailbox identifier register */
+#define CAN_TMP(canx, bank) REG32((canx) + 0x184U + ((bank) * 0x10U)) /*!< CAN transmit mailbox property register */
+#define CAN_TMDATA0(canx, bank) REG32((canx) + 0x188U + ((bank) * 0x10U)) /*!< CAN transmit mailbox data0 register */
+#define CAN_TMDATA1(canx, bank) REG32((canx) + 0x18CU + ((bank) * 0x10U)) /*!< CAN transmit mailbox data1 register */
+
+/* CAN filter bank */
+#define CAN_FDATA0(canx, bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U) /*!< CAN filter data 0 register */
+#define CAN_FDATA1(canx, bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U) /*!< CAN filter data 1 register */
+
+/* CAN receive fifo mailbox bank */
+#define CAN_RFIFOMI(canx, bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U)) /*!< CAN receive FIFO mailbox identifier register */
+#define CAN_RFIFOMP(canx, bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U)) /*!< CAN receive FIFO mailbox property register */
+#define CAN_RFIFOMDATA0(canx, bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U)) /*!< CAN receive FIFO mailbox data0 register */
+#define CAN_RFIFOMDATA1(canx, bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U)) /*!< CAN receive FIFO mailbox data1 register */
+
+/* bits definitions */
+/* CAN_CTL */
+#define CAN_CTL_IWMOD BIT(0) /*!< initial working mode */
+#define CAN_CTL_SLPWMOD BIT(1) /*!< sleep working mode */
+#define CAN_CTL_TFO BIT(2) /*!< transmit FIFO order */
+#define CAN_CTL_RFOD BIT(3) /*!< receive FIFO overwrite disable */
+#define CAN_CTL_ARD BIT(4) /*!< automatic retransmission disable */
+#define CAN_CTL_AWU BIT(5) /*!< automatic wakeup */
+#define CAN_CTL_ABOR BIT(6) /*!< automatic bus-off recovery */
+#define CAN_CTL_TTC BIT(7) /*!< time triggered communication */
+#define CAN_CTL_SWRST BIT(15) /*!< CAN software reset */
+#define CAN_CTL_DFZ BIT(16) /*!< CAN debug freeze */
+
+/* CAN_STAT */
+#define CAN_STAT_IWS BIT(0) /*!< initial working state */
+#define CAN_STAT_SLPWS BIT(1) /*!< sleep working state */
+#define CAN_STAT_ERRIF BIT(2) /*!< error interrupt flag*/
+#define CAN_STAT_WUIF BIT(3) /*!< status change interrupt flag of wakeup from sleep working mode */
+#define CAN_STAT_SLPIF BIT(4) /*!< status change interrupt flag of sleep working mode entering */
+#define CAN_STAT_TS BIT(8) /*!< transmitting state */
+#define CAN_STAT_RS BIT(9) /*!< receiving state */
+#define CAN_STAT_LASTRX BIT(10) /*!< last sample value of rx pin */
+#define CAN_STAT_RXL BIT(11) /*!< CAN rx signal */
+
+/* CAN_TSTAT */
+#define CAN_TSTAT_MTF0 BIT(0) /*!< mailbox0 transmit finished */
+#define CAN_TSTAT_MTFNERR0 BIT(1) /*!< mailbox0 transmit finished and no error */
+#define CAN_TSTAT_MAL0 BIT(2) /*!< mailbox0 arbitration lost */
+#define CAN_TSTAT_MTE0 BIT(3) /*!< mailbox0 transmit error */
+#define CAN_TSTAT_MST0 BIT(7) /*!< mailbox0 stop transmitting */
+#define CAN_TSTAT_MTF1 BIT(8) /*!< mailbox1 transmit finished */
+#define CAN_TSTAT_MTFNERR1 BIT(9) /*!< mailbox1 transmit finished and no error */
+#define CAN_TSTAT_MAL1 BIT(10) /*!< mailbox1 arbitration lost */
+#define CAN_TSTAT_MTE1 BIT(11) /*!< mailbox1 transmit error */
+#define CAN_TSTAT_MST1 BIT(15) /*!< mailbox1 stop transmitting */
+#define CAN_TSTAT_MTF2 BIT(16) /*!< mailbox2 transmit finished */
+#define CAN_TSTAT_MTFNERR2 BIT(17) /*!< mailbox2 transmit finished and no error */
+#define CAN_TSTAT_MAL2 BIT(18) /*!< mailbox2 arbitration lost */
+#define CAN_TSTAT_MTE2 BIT(19) /*!< mailbox2 transmit error */
+#define CAN_TSTAT_MST2 BIT(23) /*!< mailbox2 stop transmitting */
+#define CAN_TSTAT_NUM BITS(24,25) /*!< mailbox number */
+#define CAN_TSTAT_TME0 BIT(26) /*!< transmit mailbox0 empty */
+#define CAN_TSTAT_TME1 BIT(27) /*!< transmit mailbox1 empty */
+#define CAN_TSTAT_TME2 BIT(28) /*!< transmit mailbox2 empty */
+#define CAN_TSTAT_TMLS0 BIT(29) /*!< last sending priority flag for mailbox0 */
+#define CAN_TSTAT_TMLS1 BIT(30) /*!< last sending priority flag for mailbox1 */
+#define CAN_TSTAT_TMLS2 BIT(31) /*!< last sending priority flag for mailbox2 */
+
+/* CAN_RFIFO0 */
+#define CAN_RFIFO0_RFL0 BITS(0,1) /*!< receive FIFO0 length */
+#define CAN_RFIFO0_RFF0 BIT(3) /*!< receive FIFO0 full */
+#define CAN_RFIFO0_RFO0 BIT(4) /*!< receive FIFO0 overfull */
+#define CAN_RFIFO0_RFD0 BIT(5) /*!< receive FIFO0 dequeue */
+
+/* CAN_RFIFO1 */
+#define CAN_RFIFO1_RFL1 BITS(0,1) /*!< receive FIFO1 length */
+#define CAN_RFIFO1_RFF1 BIT(3) /*!< receive FIFO1 full */
+#define CAN_RFIFO1_RFO1 BIT(4) /*!< receive FIFO1 overfull */
+#define CAN_RFIFO1_RFD1 BIT(5) /*!< receive FIFO1 dequeue */
+
+/* CAN_INTEN */
+#define CAN_INTEN_TMEIE BIT(0) /*!< transmit mailbox empty interrupt enable */
+#define CAN_INTEN_RFNEIE0 BIT(1) /*!< receive FIFO0 not empty interrupt enable */
+#define CAN_INTEN_RFFIE0 BIT(2) /*!< receive FIFO0 full interrupt enable */
+#define CAN_INTEN_RFOIE0 BIT(3) /*!< receive FIFO0 overfull interrupt enable */
+#define CAN_INTEN_RFNEIE1 BIT(4) /*!< receive FIFO1 not empty interrupt enable */
+#define CAN_INTEN_RFFIE1 BIT(5) /*!< receive FIFO1 full interrupt enable */
+#define CAN_INTEN_RFOIE1 BIT(6) /*!< receive FIFO1 overfull interrupt enable */
+#define CAN_INTEN_WERRIE BIT(8) /*!< warning error interrupt enable */
+#define CAN_INTEN_PERRIE BIT(9) /*!< passive error interrupt enable */
+#define CAN_INTEN_BOIE BIT(10) /*!< bus-off interrupt enable */
+#define CAN_INTEN_ERRNIE BIT(11) /*!< error number interrupt enable */
+#define CAN_INTEN_ERRIE BIT(15) /*!< error interrupt enable */
+#define CAN_INTEN_WIE BIT(16) /*!< wakeup interrupt enable */
+#define CAN_INTEN_SLPWIE BIT(17) /*!< sleep working interrupt enable */
+
+/* CAN_ERR */
+#define CAN_ERR_WERR BIT(0) /*!< warning error */
+#define CAN_ERR_PERR BIT(1) /*!< passive error */
+#define CAN_ERR_BOERR BIT(2) /*!< bus-off error */
+#define CAN_ERR_ERRN BITS(4,6) /*!< error number */
+#define CAN_ERR_TECNT BITS(16,23) /*!< transmit error count */
+#define CAN_ERR_RECNT BITS(24,31) /*!< receive error count */
+
+/* CAN_BT */
+#define CAN_BT_BAUDPSC BITS(0,9) /*!< baudrate prescaler */
+#define CAN_BT_BS1 BITS(16,19) /*!< bit segment 1 */
+#define CAN_BT_BS2 BITS(20,22) /*!< bit segment 2 */
+#define CAN_BT_SJW BITS(24,25) /*!< resynchronization jump width */
+#define CAN_BT_LCMOD BIT(30) /*!< loopback communication mode */
+#define CAN_BT_SCMOD BIT(31) /*!< silent communication mode */
+
+/* CAN_TMIx */
+#define CAN_TMI_TEN BIT(0) /*!< transmit enable */
+#define CAN_TMI_FT BIT(1) /*!< frame type */
+#define CAN_TMI_FF BIT(2) /*!< frame format */
+#define CAN_TMI_EFID BITS(3,31) /*!< the frame identifier */
+#define CAN_TMI_SFID BITS(21,31) /*!< the frame identifier */
+
+/* CAN_TMPx */
+#define CAN_TMP_DLENC BITS(0,3) /*!< data length code */
+#define CAN_TMP_TSEN BIT(8) /*!< time stamp enable */
+#define CAN_TMP_TS BITS(16,31) /*!< time stamp */
+
+/* CAN_TMDATA0x */
+#define CAN_TMDATA0_DB0 BITS(0,7) /*!< transmit data byte 0 */
+#define CAN_TMDATA0_DB1 BITS(8,15) /*!< transmit data byte 1 */
+#define CAN_TMDATA0_DB2 BITS(16,23) /*!< transmit data byte 2 */
+#define CAN_TMDATA0_DB3 BITS(24,31) /*!< transmit data byte 3 */
+
+/* CAN_TMDATA1x */
+#define CAN_TMDATA1_DB4 BITS(0,7) /*!< transmit data byte 4 */
+#define CAN_TMDATA1_DB5 BITS(8,15) /*!< transmit data byte 5 */
+#define CAN_TMDATA1_DB6 BITS(16,23) /*!< transmit data byte 6 */
+#define CAN_TMDATA1_DB7 BITS(24,31) /*!< transmit data byte 7 */
+
+/* CAN_RFIFOMIx */
+#define CAN_RFIFOMI_FT BIT(1) /*!< frame type */
+#define CAN_RFIFOMI_FF BIT(2) /*!< frame format */
+#define CAN_RFIFOMI_EFID BITS(3,31) /*!< the frame identifier */
+#define CAN_RFIFOMI_SFID BITS(21,31) /*!< the frame identifier */
+
+/* CAN_RFIFOMPx */
+#define CAN_RFIFOMP_DLENC BITS(0,3) /*!< receive data length code */
+#define CAN_RFIFOMP_FI BITS(8,15) /*!< filter index */
+#define CAN_RFIFOMP_TS BITS(16,31) /*!< time stamp */
+
+/* CAN_RFIFOMDATA0x */
+#define CAN_RFIFOMDATA0_DB0 BITS(0,7) /*!< receive data byte 0 */
+#define CAN_RFIFOMDATA0_DB1 BITS(8,15) /*!< receive data byte 1 */
+#define CAN_RFIFOMDATA0_DB2 BITS(16,23) /*!< receive data byte 2 */
+#define CAN_RFIFOMDATA0_DB3 BITS(24,31) /*!< receive data byte 3 */
+
+/* CAN_RFIFOMDATA1x */
+#define CAN_RFIFOMDATA1_DB4 BITS(0,7) /*!< receive data byte 4 */
+#define CAN_RFIFOMDATA1_DB5 BITS(8,15) /*!< receive data byte 5 */
+#define CAN_RFIFOMDATA1_DB6 BITS(16,23) /*!< receive data byte 6 */
+#define CAN_RFIFOMDATA1_DB7 BITS(24,31) /*!< receive data byte 7 */
+
+/* CAN_FCTL */
+#define CAN_FCTL_FLD BIT(0) /*!< filter lock disable */
+#define CAN_FCTL_HBC1F BITS(8,13) /*!< header bank of CAN1 filter */
+
+/* CAN_FMCFG */
+#define CAN_FMCFG_FMOD(regval) BIT(regval) /*!< filter mode, list or mask*/
+
+/* CAN_FSCFG */
+#define CAN_FSCFG_FS(regval) BIT(regval) /*!< filter scale, 32 bits or 16 bits*/
+
+/* CAN_FAFIFO */
+#define CAN_FAFIFOR_FAF(regval) BIT(regval) /*!< filter associated with FIFO */
+
+/* CAN_FW */
+#define CAN_FW_FW(regval) BIT(regval) /*!< filter working */
+
+/* CAN_FxDATAy */
+#define CAN_FDATA_FD(regval) BIT(regval) /*!< filter data */
+
+/* consts definitions */
+/* define the CAN bit position and its register index offset */
+#define CAN_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
+#define CAN_REG_VAL(canx, offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))
+#define CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)
+
+#define CAN_REGIDX_BITS(regidx, bitpos0, bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))
+#define CAN_REG_VALS(canx, offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))
+#define CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)
+#define CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)
+
+/* register offset */
+#define STAT_REG_OFFSET ((uint8_t)0x04U) /*!< STAT register offset */
+#define TSTAT_REG_OFFSET ((uint8_t)0x08U) /*!< TSTAT register offset */
+#define RFIFO0_REG_OFFSET ((uint8_t)0x0CU) /*!< RFIFO0 register offset */
+#define RFIFO1_REG_OFFSET ((uint8_t)0x10U) /*!< RFIFO1 register offset */
+#define ERR_REG_OFFSET ((uint8_t)0x18U) /*!< ERR register offset */
+
+/* CAN flags */
+typedef enum
+{
+ /* flags in STAT register */
+ CAN_FLAG_RXL = CAN_REGIDX_BIT(STAT_REG_OFFSET, 11U), /*!< RX level */
+ CAN_FLAG_LASTRX = CAN_REGIDX_BIT(STAT_REG_OFFSET, 10U), /*!< last sample value of RX pin */
+ CAN_FLAG_RS = CAN_REGIDX_BIT(STAT_REG_OFFSET, 9U), /*!< receiving state */
+ CAN_FLAG_TS = CAN_REGIDX_BIT(STAT_REG_OFFSET, 8U), /*!< transmitting state */
+ CAN_FLAG_SLPIF = CAN_REGIDX_BIT(STAT_REG_OFFSET, 4U), /*!< status change flag of entering sleep working mode */
+ CAN_FLAG_WUIF = CAN_REGIDX_BIT(STAT_REG_OFFSET, 3U), /*!< status change flag of wakeup from sleep working mode */
+ CAN_FLAG_ERRIF = CAN_REGIDX_BIT(STAT_REG_OFFSET, 2U), /*!< error flag */
+ CAN_FLAG_SLPWS = CAN_REGIDX_BIT(STAT_REG_OFFSET, 1U), /*!< sleep working state */
+ CAN_FLAG_IWS = CAN_REGIDX_BIT(STAT_REG_OFFSET, 0U), /*!< initial working state */
+ /* flags in TSTAT register */
+ CAN_FLAG_TMLS2 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 31U), /*!< transmit mailbox 2 last sending in Tx FIFO */
+ CAN_FLAG_TMLS1 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 30U), /*!< transmit mailbox 1 last sending in Tx FIFO */
+ CAN_FLAG_TMLS0 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 29U), /*!< transmit mailbox 0 last sending in Tx FIFO */
+ CAN_FLAG_TME2 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 28U), /*!< transmit mailbox 2 empty */
+ CAN_FLAG_TME1 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 27U), /*!< transmit mailbox 1 empty */
+ CAN_FLAG_TME0 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 26U), /*!< transmit mailbox 0 empty */
+ CAN_FLAG_MTE2 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 19U), /*!< mailbox 2 transmit error */
+ CAN_FLAG_MTE1 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 11U), /*!< mailbox 1 transmit error */
+ CAN_FLAG_MTE0 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 3U), /*!< mailbox 0 transmit error */
+ CAN_FLAG_MAL2 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 18U), /*!< mailbox 2 arbitration lost */
+ CAN_FLAG_MAL1 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 10U), /*!< mailbox 1 arbitration lost */
+ CAN_FLAG_MAL0 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 2U), /*!< mailbox 0 arbitration lost */
+ CAN_FLAG_MTFNERR2 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 17U), /*!< mailbox 2 transmit finished with no error */
+ CAN_FLAG_MTFNERR1 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 9U), /*!< mailbox 1 transmit finished with no error */
+ CAN_FLAG_MTFNERR0 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 1U), /*!< mailbox 0 transmit finished with no error */
+ CAN_FLAG_MTF2 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 16U), /*!< mailbox 2 transmit finished */
+ CAN_FLAG_MTF1 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 8U), /*!< mailbox 1 transmit finished */
+ CAN_FLAG_MTF0 = CAN_REGIDX_BIT(TSTAT_REG_OFFSET, 0U), /*!< mailbox 0 transmit finished */
+ /* flags in RFIFO0 register */
+ CAN_FLAG_RFO0 = CAN_REGIDX_BIT(RFIFO0_REG_OFFSET, 4U), /*!< receive FIFO0 overfull */
+ CAN_FLAG_RFF0 = CAN_REGIDX_BIT(RFIFO0_REG_OFFSET, 3U), /*!< receive FIFO0 full */
+ /* flags in RFIFO1 register */
+ CAN_FLAG_RFO1 = CAN_REGIDX_BIT(RFIFO1_REG_OFFSET, 4U), /*!< receive FIFO1 overfull */
+ CAN_FLAG_RFF1 = CAN_REGIDX_BIT(RFIFO1_REG_OFFSET, 3U), /*!< receive FIFO1 full */
+ /* flags in ERR register */
+ CAN_FLAG_BOERR = CAN_REGIDX_BIT(ERR_REG_OFFSET, 2U), /*!< bus-off error */
+ CAN_FLAG_PERR = CAN_REGIDX_BIT(ERR_REG_OFFSET, 1U), /*!< passive error */
+ CAN_FLAG_WERR = CAN_REGIDX_BIT(ERR_REG_OFFSET, 0U), /*!< warning error */
+}can_flag_enum;
+
+/* CAN interrupt flags */
+typedef enum
+{
+ /* interrupt flags in STAT register */
+ CAN_INT_FLAG_SLPIF = CAN_REGIDX_BITS(STAT_REG_OFFSET, 4U, 17U), /*!< status change interrupt flag of sleep working mode entering */
+ CAN_INT_FLAG_WUIF = CAN_REGIDX_BITS(STAT_REG_OFFSET, 3U, 16), /*!< status change interrupt flag of wakeup from sleep working mode */
+ CAN_INT_FLAG_ERRIF = CAN_REGIDX_BITS(STAT_REG_OFFSET, 2U, 15), /*!< error interrupt flag */
+ /* interrupt flags in TSTAT register */
+ CAN_INT_FLAG_MTF2 = CAN_REGIDX_BITS(TSTAT_REG_OFFSET, 16U, 0U), /*!< mailbox 2 transmit finished interrupt flag */
+ CAN_INT_FLAG_MTF1 = CAN_REGIDX_BITS(TSTAT_REG_OFFSET, 8U, 0U), /*!< mailbox 1 transmit finished interrupt flag */
+ CAN_INT_FLAG_MTF0 = CAN_REGIDX_BITS(TSTAT_REG_OFFSET, 0U, 0U), /*!< mailbox 0 transmit finished interrupt flag */
+ /* interrupt flags in RFIFO0 register */
+ CAN_INT_FLAG_RFO0 = CAN_REGIDX_BITS(RFIFO0_REG_OFFSET, 4U, 3U), /*!< receive FIFO0 overfull interrupt flag */
+ CAN_INT_FLAG_RFF0 = CAN_REGIDX_BITS(RFIFO0_REG_OFFSET, 3U, 2U), /*!< receive FIFO0 full interrupt flag */
+ CAN_INT_FLAG_RFL0 = CAN_REGIDX_BITS(RFIFO0_REG_OFFSET, 2U, 1U), /*!< receive FIFO0 not empty interrupt flag */
+ /* interrupt flags in RFIFO0 register */
+ CAN_INT_FLAG_RFO1 = CAN_REGIDX_BITS(RFIFO1_REG_OFFSET, 4U, 6U), /*!< receive FIFO1 overfull interrupt flag */
+ CAN_INT_FLAG_RFF1 = CAN_REGIDX_BITS(RFIFO1_REG_OFFSET, 3U, 5U), /*!< receive FIFO1 full interrupt flag */
+ CAN_INT_FLAG_RFL1 = CAN_REGIDX_BITS(RFIFO1_REG_OFFSET, 2U, 4U), /*!< receive FIFO1 not empty interrupt flag */
+ /* interrupt flags in ERR register */
+ CAN_INT_FLAG_ERRN = CAN_REGIDX_BITS(ERR_REG_OFFSET, 3U, 11U), /*!< error number interrupt flag */
+ CAN_INT_FLAG_BOERR = CAN_REGIDX_BITS(ERR_REG_OFFSET, 2U, 10U), /*!< bus-off error interrupt flag */
+ CAN_INT_FLAG_PERR = CAN_REGIDX_BITS(ERR_REG_OFFSET, 1U, 9U), /*!< passive error interrupt flag */
+ CAN_INT_FLAG_WERR = CAN_REGIDX_BITS(ERR_REG_OFFSET, 0U, 8U), /*!< warning error interrupt flag */
+}can_interrupt_flag_enum;
+
+/* CAN initiliaze parameters struct */
+typedef struct
+{
+ uint8_t working_mode; /*!< CAN working mode */
+ uint8_t resync_jump_width; /*!< CAN resynchronization jump width */
+ uint8_t time_segment_1; /*!< time segment 1 */
+ uint8_t time_segment_2; /*!< time segment 2 */
+ ControlStatus time_triggered; /*!< time triggered communication mode */
+ ControlStatus auto_bus_off_recovery; /*!< automatic bus-off recovery */
+ ControlStatus auto_wake_up; /*!< automatic wake-up mode */
+ ControlStatus no_auto_retrans; /*!< automatic retransmission mode disable */
+ ControlStatus rec_fifo_overwrite; /*!< receive FIFO overwrite mode */
+ ControlStatus trans_fifo_order; /*!< transmit FIFO order */
+ uint16_t prescaler; /*!< baudrate prescaler */
+}can_parameter_struct;
+
+/* CAN transmit message struct */
+typedef struct
+{
+ uint32_t tx_sfid; /*!< standard format frame identifier */
+ uint32_t tx_efid; /*!< extended format frame identifier */
+ uint8_t tx_ff; /*!< format of frame, standard or extended format */
+ uint8_t tx_ft; /*!< type of frame, data or remote */
+ uint8_t tx_dlen; /*!< data length */
+ uint8_t tx_data[8]; /*!< transmit data */
+}can_trasnmit_message_struct;
+
+/* CAN receive message struct */
+typedef struct
+{
+ uint32_t rx_sfid; /*!< standard format frame identifier */
+ uint32_t rx_efid; /*!< extended format frame identifier */
+ uint8_t rx_ff; /*!< format of frame, standard or extended format */
+ uint8_t rx_ft; /*!< type of frame, data or remote */
+ uint8_t rx_dlen; /*!< data length */
+ uint8_t rx_data[8]; /*!< receive data */
+ uint8_t rx_fi; /*!< filtering index */
+} can_receive_message_struct;
+
+/* CAN filter parameters struct */
+typedef struct
+{
+ uint16_t filter_list_high; /*!< filter list number high bits*/
+ uint16_t filter_list_low; /*!< filter list number low bits */
+ uint16_t filter_mask_high; /*!< filter mask number high bits */
+ uint16_t filter_mask_low; /*!< filter mask number low bits */
+ uint16_t filter_fifo_number; /*!< receive FIFO associated with the filter */
+ uint16_t filter_number; /*!< filter number */
+ uint16_t filter_mode; /*!< filter mode, list or mask */
+ uint16_t filter_bits; /*!< filter scale */
+ ControlStatus filter_enable; /*!< filter work or not */
+}can_filter_parameter_struct;
+
+/* CAN errors */
+typedef enum
+{
+ CAN_ERROR_NONE = 0, /*!< no error */
+ CAN_ERROR_FILL, /*!< fill error */
+ CAN_ERROR_FORMATE, /*!< format error */
+ CAN_ERROR_ACK, /*!< ACK error */
+ CAN_ERROR_BITRECESSIVE, /*!< bit recessive error */
+ CAN_ERROR_BITDOMINANTER, /*!< bit dominant error */
+ CAN_ERROR_CRC, /*!< CRC error */
+ CAN_ERROR_SOFTWARECFG, /*!< software configure */
+}can_error_enum;
+
+/* transmit states */
+typedef enum
+{
+ CAN_TRANSMIT_FAILED = 0U, /*!< CAN transmitted failure */
+ CAN_TRANSMIT_OK = 1U, /*!< CAN transmitted success */
+ CAN_TRANSMIT_PENDING = 2U, /*!< CAN transmitted pending */
+ CAN_TRANSMIT_NOMAILBOX = 4U, /*!< no empty mailbox to be used for CAN */
+}can_transmit_state_enum;
+
+typedef enum
+{
+ CAN_INIT_STRUCT = 0, /* CAN initiliaze parameters struct */
+ CAN_FILTER_STRUCT, /* CAN filter parameters struct */
+ CAN_TX_MESSAGE_STRUCT, /* CAN transmit message struct */
+ CAN_RX_MESSAGE_STRUCT, /* CAN receive message struct */
+}can_struct_type_enum;
+
+/* CAN baudrate prescaler*/
+#define BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))
+
+/* CAN bit segment 1*/
+#define BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))
+
+/* CAN bit segment 2*/
+#define BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))
+
+/* CAN resynchronization jump width*/
+#define BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))
+
+/* CAN communication mode*/
+#define BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))
+
+/* CAN FDATA high 16 bits */
+#define FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))
+
+/* CAN FDATA low 16 bits */
+#define FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))
+
+/* CAN1 filter start bank_number*/
+#define FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))
+
+/* CAN transmit mailbox extended identifier*/
+#define TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))
+
+/* CAN transmit mailbox standard identifier*/
+#define TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))
+
+/* transmit data byte 0 */
+#define TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))
+
+/* transmit data byte 1 */
+#define TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))
+
+/* transmit data byte 2 */
+#define TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))
+
+/* transmit data byte 3 */
+#define TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))
+
+/* transmit data byte 4 */
+#define TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))
+
+/* transmit data byte 5 */
+#define TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))
+
+/* transmit data byte 6 */
+#define TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))
+
+/* transmit data byte 7 */
+#define TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))
+
+/* receive mailbox extended identifier*/
+#define GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)
+
+/* receive mailbox standrad identifier*/
+#define GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)
+
+/* receive data length */
+#define GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)
+
+/* the index of the filter by which the frame is passed */
+#define GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)
+
+/* receive data byte 0 */
+#define GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)
+
+/* receive data byte 1 */
+#define GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)
+
+/* receive data byte 2 */
+#define GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)
+
+/* receive data byte 3 */
+#define GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)
+
+/* receive data byte 4 */
+#define GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)
+
+/* receive data byte 5 */
+#define GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)
+
+/* receive data byte 6 */
+#define GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)
+
+/* receive data byte 7 */
+#define GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)
+
+/* error number */
+#define GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)
+
+/* transmit error count */
+#define GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)
+
+/* receive error count */
+#define GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)
+
+/* CAN errors */
+#define ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))
+#define CAN_ERRN_0 ERR_ERRN(0U) /* no error */
+#define CAN_ERRN_1 ERR_ERRN(1U) /*!< fill error */
+#define CAN_ERRN_2 ERR_ERRN(2U) /*!< format error */
+#define CAN_ERRN_3 ERR_ERRN(3U) /*!< ACK error */
+#define CAN_ERRN_4 ERR_ERRN(4U) /*!< bit recessive error */
+#define CAN_ERRN_5 ERR_ERRN(5U) /*!< bit dominant error */
+#define CAN_ERRN_6 ERR_ERRN(6U) /*!< CRC error */
+#define CAN_ERRN_7 ERR_ERRN(7U) /*!< software error */
+
+#define CAN_STATE_PENDING ((uint32_t)0x00000000U) /*!< CAN pending */
+
+/* CAN communication mode */
+#define CAN_NORMAL_MODE ((uint8_t)0x00U) /*!< normal communication mode */
+#define CAN_LOOPBACK_MODE ((uint8_t)0x01U) /*!< loopback communication mode */
+#define CAN_SILENT_MODE ((uint8_t)0x02U) /*!< silent communication mode */
+#define CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U) /*!< loopback and silent communication mode */
+
+/* CAN resynchronisation jump width */
+#define CAN_BT_SJW_1TQ ((uint8_t)0x00U) /*!< 1 time quanta */
+#define CAN_BT_SJW_2TQ ((uint8_t)0x01U) /*!< 2 time quanta */
+#define CAN_BT_SJW_3TQ ((uint8_t)0x02U) /*!< 3 time quanta */
+#define CAN_BT_SJW_4TQ ((uint8_t)0x03U) /*!< 4 time quanta */
+
+/* CAN time segment 1 */
+#define CAN_BT_BS1_1TQ ((uint8_t)0x00U) /*!< 1 time quanta */
+#define CAN_BT_BS1_2TQ ((uint8_t)0x01U) /*!< 2 time quanta */
+#define CAN_BT_BS1_3TQ ((uint8_t)0x02U) /*!< 3 time quanta */
+#define CAN_BT_BS1_4TQ ((uint8_t)0x03U) /*!< 4 time quanta */
+#define CAN_BT_BS1_5TQ ((uint8_t)0x04U) /*!< 5 time quanta */
+#define CAN_BT_BS1_6TQ ((uint8_t)0x05U) /*!< 6 time quanta */
+#define CAN_BT_BS1_7TQ ((uint8_t)0x06U) /*!< 7 time quanta */
+#define CAN_BT_BS1_8TQ ((uint8_t)0x07U) /*!< 8 time quanta */
+#define CAN_BT_BS1_9TQ ((uint8_t)0x08U) /*!< 9 time quanta */
+#define CAN_BT_BS1_10TQ ((uint8_t)0x09U) /*!< 10 time quanta */
+#define CAN_BT_BS1_11TQ ((uint8_t)0x0AU) /*!< 11 time quanta */
+#define CAN_BT_BS1_12TQ ((uint8_t)0x0BU) /*!< 12 time quanta */
+#define CAN_BT_BS1_13TQ ((uint8_t)0x0CU) /*!< 13 time quanta */
+#define CAN_BT_BS1_14TQ ((uint8_t)0x0DU) /*!< 14 time quanta */
+#define CAN_BT_BS1_15TQ ((uint8_t)0x0EU) /*!< 15 time quanta */
+#define CAN_BT_BS1_16TQ ((uint8_t)0x0FU) /*!< 16 time quanta */
+
+/* CAN time segment 2 */
+#define CAN_BT_BS2_1TQ ((uint8_t)0x00U) /*!< 1 time quanta */
+#define CAN_BT_BS2_2TQ ((uint8_t)0x01U) /*!< 2 time quanta */
+#define CAN_BT_BS2_3TQ ((uint8_t)0x02U) /*!< 3 time quanta */
+#define CAN_BT_BS2_4TQ ((uint8_t)0x03U) /*!< 4 time quanta */
+#define CAN_BT_BS2_5TQ ((uint8_t)0x04U) /*!< 5 time quanta */
+#define CAN_BT_BS2_6TQ ((uint8_t)0x05U) /*!< 6 time quanta */
+#define CAN_BT_BS2_7TQ ((uint8_t)0x06U) /*!< 7 time quanta */
+#define CAN_BT_BS2_8TQ ((uint8_t)0x07U) /*!< 8 time quanta */
+
+/* CAN mailbox number */
+#define CAN_MAILBOX0 ((uint8_t)0x00U) /*!< mailbox0 */
+#define CAN_MAILBOX1 ((uint8_t)0x01U) /*!< mailbox1 */
+#define CAN_MAILBOX2 ((uint8_t)0x02U) /*!< mailbox2 */
+#define CAN_NOMAILBOX ((uint8_t)0x03U) /*!< no mailbox empty */
+
+/* CAN frame format */
+#define CAN_FF_STANDARD ((uint32_t)0x00000000U) /*!< standard frame */
+#define CAN_FF_EXTENDED ((uint32_t)0x00000004U) /*!< extended frame */
+
+/* CAN receive fifo */
+#define CAN_FIFO0 ((uint8_t)0x00U) /*!< receive FIFO0 */
+#define CAN_FIFO1 ((uint8_t)0x01U) /*!< receive FIFO1 */
+
+/* frame number of receive fifo */
+#define CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U) /*!< mask for frame number in receive FIFOx */
+
+#define CAN_SFID_MASK ((uint32_t)0x000007FFU) /*!< mask of standard identifier */
+#define CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU) /*!< mask of extended identifier */
+
+/* CAN working mode */
+#define CAN_MODE_INITIALIZE ((uint8_t)0x01U) /*!< CAN initialize mode */
+#define CAN_MODE_NORMAL ((uint8_t)0x02U) /*!< CAN normal mode */
+#define CAN_MODE_SLEEP ((uint8_t)0x04U) /*!< CAN sleep mode */
+
+/* filter bits */
+#define CAN_FILTERBITS_16BIT ((uint8_t)0x00U) /*!< CAN filter 16 bits */
+#define CAN_FILTERBITS_32BIT ((uint8_t)0x01U) /*!< CAN filter 32 bits */
+
+/* filter mode */
+#define CAN_FILTERMODE_MASK ((uint8_t)0x00U) /*!< mask mode */
+#define CAN_FILTERMODE_LIST ((uint8_t)0x01U) /*!< list mode */
+
+/* filter 16 bits mask */
+#define CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU) /*!< can filter 16 bits mask */
+
+/* frame type */
+#define CAN_FT_DATA ((uint32_t)0x00000000U) /*!< data frame */
+#define CAN_FT_REMOTE ((uint32_t)0x00000002U) /*!< remote frame */
+
+/* CAN timeout */
+#define CAN_TIMEOUT ((uint32_t)0x0000FFFFU) /*!< timeout value */
+
+/* interrupt enable bits */
+#define CAN_INT_TME CAN_INTEN_TMEIE /*!< transmit mailbox empty interrupt enable */
+#define CAN_INT_RFNE0 CAN_INTEN_RFNEIE0 /*!< receive FIFO0 not empty interrupt enable */
+#define CAN_INT_RFF0 CAN_INTEN_RFFIE0 /*!< receive FIFO0 full interrupt enable */
+#define CAN_INT_RFO0 CAN_INTEN_RFOIE0 /*!< receive FIFO0 overfull interrupt enable */
+#define CAN_INT_RFNE1 CAN_INTEN_RFNEIE1 /*!< receive FIFO1 not empty interrupt enable */
+#define CAN_INT_RFF1 CAN_INTEN_RFFIE1 /*!< receive FIFO1 full interrupt enable */
+#define CAN_INT_RFO1 CAN_INTEN_RFOIE1 /*!< receive FIFO1 overfull interrupt enable */
+#define CAN_INT_WERR CAN_INTEN_WERRIE /*!< warning error interrupt enable */
+#define CAN_INT_PERR CAN_INTEN_PERRIE /*!< passive error interrupt enable */
+#define CAN_INT_BO CAN_INTEN_BOIE /*!< bus-off interrupt enable */
+#define CAN_INT_ERRN CAN_INTEN_ERRNIE /*!< error number interrupt enable */
+#define CAN_INT_ERR CAN_INTEN_ERRIE /*!< error interrupt enable */
+#define CAN_INT_WAKEUP CAN_INTEN_WIE /*!< wakeup interrupt enable */
+#define CAN_INT_SLPW CAN_INTEN_SLPWIE /*!< sleep working interrupt enable */
+
+/* function declarations */
+/* deinitialize CAN */
+void can_deinit(uint32_t can_periph);
+/* initialize CAN struct */
+void can_struct_para_init(can_struct_type_enum type, void* p_struct);
+/* initialize CAN */
+ErrStatus can_init(uint32_t can_periph, can_parameter_struct* can_parameter_init);
+/* CAN filter init */
+void can_filter_init(can_filter_parameter_struct* can_filter_parameter_init);
+/* set can1 fliter start bank number */
+void can1_filter_start_bank(uint8_t start_bank);
+/* enable functions */
+/* CAN debug freeze enable */
+void can_debug_freeze_enable(uint32_t can_periph);
+/* CAN debug freeze disable */
+void can_debug_freeze_disable(uint32_t can_periph);
+/* CAN time trigger mode enable */
+void can_time_trigger_mode_enable(uint32_t can_periph);
+/* CAN time trigger mode disable */
+void can_time_trigger_mode_disable(uint32_t can_periph);
+
+/* transmit functions */
+/* transmit CAN message */
+uint8_t can_message_transmit(uint32_t can_periph, can_trasnmit_message_struct* transmit_message);
+/* get CAN transmit state */
+can_transmit_state_enum can_transmit_states(uint32_t can_periph, uint8_t mailbox_number);
+/* stop CAN transmission */
+void can_transmission_stop(uint32_t can_periph, uint8_t mailbox_number);
+/* CAN receive message */
+void can_message_receive(uint32_t can_periph, uint8_t fifo_number, can_receive_message_struct* receive_message);
+/* CAN release fifo */
+void can_fifo_release(uint32_t can_periph, uint8_t fifo_number);
+/* CAN receive message length */
+uint8_t can_receive_message_length_get(uint32_t can_periph, uint8_t fifo_number);
+/* CAN working mode */
+ErrStatus can_working_mode_set(uint32_t can_periph, uint8_t working_mode);
+/* CAN wakeup from sleep mode */
+ErrStatus can_wakeup(uint32_t can_periph);
+
+/* CAN get error */
+can_error_enum can_error_get(uint32_t can_periph);
+/* get CAN receive error number */
+uint8_t can_receive_error_number_get(uint32_t can_periph);
+/* get CAN transmit error number */
+uint8_t can_transmit_error_number_get(uint32_t can_periph);
+
+/* CAN interrupt enable */
+void can_interrupt_enable(uint32_t can_periph, uint32_t interrupt);
+/* CAN interrupt disable */
+void can_interrupt_disable(uint32_t can_periph, uint32_t interrupt);
+/* CAN get flag state */
+FlagStatus can_flag_get(uint32_t can_periph, can_flag_enum flag);
+/* CAN clear flag state */
+void can_flag_clear(uint32_t can_periph, can_flag_enum flag);
+/* CAN get interrupt flag state */
+FlagStatus can_interrupt_flag_get(uint32_t can_periph, can_interrupt_flag_enum flag);
+/* CAN clear interrupt flag state */
+void can_interrupt_flag_clear(uint32_t can_periph, can_interrupt_flag_enum flag);
+
+#endif /* GD32VF103_CAN_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h
new file mode 100644
index 0000000000..35683f869e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h
@@ -0,0 +1,78 @@
+/*!
+ \file gd32vf103_crc.h
+ \brief definitions for the CRC
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_CRC_H
+#define GD32VF103_CRC_H
+
+#include "gd32vf103.h"
+
+/* CRC definitions */
+#define CRC CRC_BASE
+
+/* registers definitions */
+#define CRC_DATA REG32(CRC + 0x00U) /*!< CRC data register */
+#define CRC_FDATA REG32(CRC + 0x04U) /*!< CRC free data register */
+#define CRC_CTL REG32(CRC + 0x08U) /*!< CRC control register */
+
+/* bits definitions */
+/* CRC_DATA */
+#define CRC_DATA_DATA BITS(0, 31) /*!< CRC calculation result bits */
+
+/* CRC_FDATA */
+#define CRC_FDATA_FDATA BITS(0, 7) /*!< CRC free data bits */
+
+/* CRC_CTL */
+#define CRC_CTL_RST BIT(0) /*!< CRC reset CRC_DATA register bit */
+
+/* function declarations */
+/* deinit CRC calculation unit */
+void crc_deinit(void);
+
+/* reset data register(CRC_DATA) to the value of 0xFFFFFFFF */
+void crc_data_register_reset(void);
+/* read the value of the data register */
+uint32_t crc_data_register_read(void);
+
+/* read the value of the free data register */
+uint8_t crc_free_data_register_read(void);
+/* write data to the free data register */
+void crc_free_data_register_write(uint8_t free_data);
+
+/* calculate the CRC value of a 32-bit data */
+uint32_t crc_single_data_calculate(uint32_t sdata);
+/* calculate the CRC value of an array of 32-bit values */
+uint32_t crc_block_data_calculate(uint32_t array[], uint32_t size);
+
+#endif /* GD32VF103_CRC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h
new file mode 100644
index 0000000000..e546b9725c
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h
@@ -0,0 +1,243 @@
+/*!
+ \file gd32vf103_dac.h
+ \brief definitions for the DAC
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_DAC_H
+#define GD32VF103_DAC_H
+
+#include "gd32vf103.h"
+
+/* DACx(x=0,1) definitions */
+#define DAC DAC_BASE
+#define DAC0 (0U)
+#define DAC1 (1U)
+
+/* registers definitions */
+#define DAC_CTL REG32(DAC + 0x00U) /*!< DAC control register */
+#define DAC_SWT REG32(DAC + 0x04U) /*!< DAC software trigger register */
+#define DAC0_R12DH REG32(DAC + 0x08U) /*!< DAC0 12-bit right-aligned data holding register */
+#define DAC0_L12DH REG32(DAC + 0x0CU) /*!< DAC0 12-bit left-aligned data holding register */
+#define DAC0_R8DH REG32(DAC + 0x10U) /*!< DAC0 8-bit right-aligned data holding register */
+#define DAC1_R12DH REG32(DAC + 0x14U) /*!< DAC1 12-bit right-aligned data holding register */
+#define DAC1_L12DH REG32(DAC + 0x18U) /*!< DAC1 12-bit left-aligned data holding register */
+#define DAC1_R8DH REG32(DAC + 0x1CU) /*!< DAC1 8-bit right-aligned data holding register */
+#define DACC_R12DH REG32(DAC + 0x20U) /*!< DAC concurrent mode 12-bit right-aligned data holding register */
+#define DACC_L12DH REG32(DAC + 0x24U) /*!< DAC concurrent mode 12-bit left-aligned data holding register */
+#define DACC_R8DH REG32(DAC + 0x28U) /*!< DAC concurrent mode 8-bit right-aligned data holding register */
+#define DAC0_DO REG32(DAC + 0x2CU) /*!< DAC0 data output register */
+#define DAC1_DO REG32(DAC + 0x30U) /*!< DAC1 data output register */
+
+/* bits definitions */
+/* DAC_CTL */
+#define DAC_CTL_DEN0 BIT(0) /*!< DAC0 enable/disable bit */
+#define DAC_CTL_DBOFF0 BIT(1) /*!< DAC0 output buffer turn on/turn off bit */
+#define DAC_CTL_DTEN0 BIT(2) /*!< DAC0 trigger enable/disable bit */
+#define DAC_CTL_DTSEL0 BITS(3,5) /*!< DAC0 trigger source selection enable/disable bits */
+#define DAC_CTL_DWM0 BITS(6,7) /*!< DAC0 noise wave mode */
+#define DAC_CTL_DWBW0 BITS(8,11) /*!< DAC0 noise wave bit width */
+#define DAC_CTL_DDMAEN0 BIT(12) /*!< DAC0 DMA enable/disable bit */
+#define DAC_CTL_DEN1 BIT(16) /*!< DAC1 enable/disable bit */
+#define DAC_CTL_DBOFF1 BIT(17) /*!< DAC1 output buffer turn on/turn off bit */
+#define DAC_CTL_DTEN1 BIT(18) /*!< DAC1 trigger enable/disable bit */
+#define DAC_CTL_DTSEL1 BITS(19,21) /*!< DAC1 trigger source selection enable/disable bits */
+#define DAC_CTL_DWM1 BITS(22,23) /*!< DAC1 noise wave mode */
+#define DAC_CTL_DWBW1 BITS(24,27) /*!< DAC1 noise wave bit width */
+#define DAC_CTL_DDMAEN1 BIT(28) /*!< DAC1 DMA enable/disable bit */
+
+/* DAC_SWT */
+#define DAC_SWT_SWTR0 BIT(0) /*!< DAC0 software trigger bit, cleared by hardware */
+#define DAC_SWT_SWTR1 BIT(1) /*!< DAC1 software trigger bit, cleared by hardware */
+
+/* DAC0_R12DH */
+#define DAC0_R12DH_DAC0_DH BITS(0,11) /*!< DAC0 12-bit right-aligned data bits */
+
+/* DAC0_L12DH */
+#define DAC0_L12DH_DAC0_DH BITS(4,15) /*!< DAC0 12-bit left-aligned data bits */
+
+/* DAC0_R8DH */
+#define DAC0_R8DH_DAC0_DH BITS(0,7) /*!< DAC0 8-bit right-aligned data bits */
+
+/* DAC1_R12DH */
+#define DAC1_R12DH_DAC1_DH BITS(0,11) /*!< DAC1 12-bit right-aligned data bits */
+
+/* DAC1_L12DH */
+#define DAC1_L12DH_DAC1_DH BITS(4,15) /*!< DAC1 12-bit left-aligned data bits */
+
+/* DAC1_R8DH */
+#define DAC1_R8DH_DAC1_DH BITS(0,7) /*!< DAC1 8-bit right-aligned data bits */
+
+/* DACC_R12DH */
+#define DACC_R12DH_DAC0_DH BITS(0,11) /*!< DAC concurrent mode DAC0 12-bit right-aligned data bits */
+#define DACC_R12DH_DAC1_DH BITS(16,27) /*!< DAC concurrent mode DAC1 12-bit right-aligned data bits */
+
+/* DACC_L12DH */
+#define DACC_L12DH_DAC0_DH BITS(4,15) /*!< DAC concurrent mode DAC0 12-bit left-aligned data bits */
+#define DACC_L12DH_DAC1_DH BITS(20,31) /*!< DAC concurrent mode DAC1 12-bit left-aligned data bits */
+
+/* DACC_R8DH */
+#define DACC_R8DH_DAC0_DH BITS(0,7) /*!< DAC concurrent mode DAC0 8-bit right-aligned data bits */
+#define DACC_R8DH_DAC1_DH BITS(8,15) /*!< DAC concurrent mode DAC1 8-bit right-aligned data bits */
+
+/* DAC0_DO */
+#define DAC0_DO_DAC0_DO BITS(0,11) /*!< DAC0 12-bit output data bits */
+
+/* DAC1_DO */
+#define DAC1_DO_DAC1_DO BITS(0,11) /*!< DAC1 12-bit output data bits */
+
+/* constants definitions */
+/* DAC trigger source */
+#define CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))
+#define DAC_TRIGGER_T5_TRGO CTL_DTSEL(0) /*!< TIMER5 TRGO */
+#define DAC_TRIGGER_T2_TRGO CTL_DTSEL(1) /*!< TIMER2 TRGO */
+#define DAC_TRIGGER_T6_TRGO CTL_DTSEL(2) /*!< TIMER6 TRGO */
+#define DAC_TRIGGER_T4_TRGO CTL_DTSEL(3) /*!< TIMER4 TRGO */
+#define DAC_TRIGGER_T1_TRGO CTL_DTSEL(4) /*!< TIMER1 TRGO */
+#define DAC_TRIGGER_T3_TRGO CTL_DTSEL(5) /*!< TIMER3 TRGO */
+#define DAC_TRIGGER_EXTI_9 CTL_DTSEL(6) /*!< EXTI interrupt line9 event */
+#define DAC_TRIGGER_SOFTWARE CTL_DTSEL(7) /*!< software trigger */
+
+/* DAC noise wave mode */
+#define CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))
+#define DAC_WAVE_DISABLE CTL_DWM(0) /*!< wave disable */
+#define DAC_WAVE_MODE_LFSR CTL_DWM(1) /*!< LFSR noise mode */
+#define DAC_WAVE_MODE_TRIANGLE CTL_DWM(2) /*!< triangle noise mode */
+
+/* DAC noise wave bit width */
+#define DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))
+#define DAC_WAVE_BIT_WIDTH_1 DWBW(0) /*!< bit width of the wave signal is 1 */
+#define DAC_WAVE_BIT_WIDTH_2 DWBW(1) /*!< bit width of the wave signal is 2 */
+#define DAC_WAVE_BIT_WIDTH_3 DWBW(2) /*!< bit width of the wave signal is 3 */
+#define DAC_WAVE_BIT_WIDTH_4 DWBW(3) /*!< bit width of the wave signal is 4 */
+#define DAC_WAVE_BIT_WIDTH_5 DWBW(4) /*!< bit width of the wave signal is 5 */
+#define DAC_WAVE_BIT_WIDTH_6 DWBW(5) /*!< bit width of the wave signal is 6 */
+#define DAC_WAVE_BIT_WIDTH_7 DWBW(6) /*!< bit width of the wave signal is 7 */
+#define DAC_WAVE_BIT_WIDTH_8 DWBW(7) /*!< bit width of the wave signal is 8 */
+#define DAC_WAVE_BIT_WIDTH_9 DWBW(8) /*!< bit width of the wave signal is 9 */
+#define DAC_WAVE_BIT_WIDTH_10 DWBW(9) /*!< bit width of the wave signal is 10 */
+#define DAC_WAVE_BIT_WIDTH_11 DWBW(10) /*!< bit width of the wave signal is 11 */
+#define DAC_WAVE_BIT_WIDTH_12 DWBW(11) /*!< bit width of the wave signal is 12 */
+
+/* unmask LFSR bits in DAC LFSR noise mode */
+#define DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1 /*!< unmask the LFSR bit0 */
+#define DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2 /*!< unmask the LFSR bits[1:0] */
+#define DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3 /*!< unmask the LFSR bits[2:0] */
+#define DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4 /*!< unmask the LFSR bits[3:0] */
+#define DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5 /*!< unmask the LFSR bits[4:0] */
+#define DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6 /*!< unmask the LFSR bits[5:0] */
+#define DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7 /*!< unmask the LFSR bits[6:0] */
+#define DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8 /*!< unmask the LFSR bits[7:0] */
+#define DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9 /*!< unmask the LFSR bits[8:0] */
+#define DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10 /*!< unmask the LFSR bits[9:0] */
+#define DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11 /*!< unmask the LFSR bits[10:0] */
+#define DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12 /*!< unmask the LFSR bits[11:0] */
+
+/* DAC data alignment */
+#define DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))
+#define DAC_ALIGN_12B_R DATA_ALIGN(0) /*!< data right 12b alignment */
+#define DAC_ALIGN_12B_L DATA_ALIGN(1) /*!< data left 12b alignment */
+#define DAC_ALIGN_8B_R DATA_ALIGN(2) /*!< data right 8b alignment */
+/* triangle amplitude in DAC triangle noise mode */
+#define DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1 /*!< triangle amplitude is 1 */
+#define DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2 /*!< triangle amplitude is 3 */
+#define DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3 /*!< triangle amplitude is 7 */
+#define DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4 /*!< triangle amplitude is 15 */
+#define DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5 /*!< triangle amplitude is 31 */
+#define DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6 /*!< triangle amplitude is 63 */
+#define DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7 /*!< triangle amplitude is 127 */
+#define DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8 /*!< triangle amplitude is 255 */
+#define DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9 /*!< triangle amplitude is 511 */
+#define DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10 /*!< triangle amplitude is 1023 */
+#define DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11 /*!< triangle amplitude is 2047 */
+#define DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12 /*!< triangle amplitude is 4095 */
+
+/* function declarations */
+/* initialization functions */
+/* deinitialize DAC */
+void dac_deinit(void);
+/* enable DAC */
+void dac_enable(uint32_t dac_periph);
+/* disable DAC */
+void dac_disable(uint32_t dac_periph);
+/* enable DAC DMA */
+void dac_dma_enable(uint32_t dac_periph);
+/* disable DAC DMA */
+void dac_dma_disable(uint32_t dac_periph);
+/* enable DAC output buffer */
+void dac_output_buffer_enable(uint32_t dac_periph);
+/* disable DAC output buffer */
+void dac_output_buffer_disable(uint32_t dac_periph);
+/* get the last data output value */
+uint16_t dac_output_value_get(uint32_t dac_periph);
+/* set DAC data holding register value */
+void dac_data_set(uint32_t dac_periph, uint32_t dac_align, uint16_t data);
+
+/* DAC trigger configuration */
+/* enable DAC trigger */
+void dac_trigger_enable(uint32_t dac_periph);
+/* disable DAC trigger */
+void dac_trigger_disable(uint32_t dac_periph);
+/* configure DAC trigger source */
+void dac_trigger_source_config(uint32_t dac_periph, uint32_t triggersource);
+/* enable DAC software trigger */
+void dac_software_trigger_enable(uint32_t dac_periph);
+/* disable DAC software trigger */
+void dac_software_trigger_disable(uint32_t dac_periph);
+
+/* DAC wave mode configuration */
+/* configure DAC wave mode */
+void dac_wave_mode_config(uint32_t dac_periph, uint32_t wave_mode);
+/* configure DAC wave bit width */
+void dac_wave_bit_width_config(uint32_t dac_periph, uint32_t bit_width);
+/* configure DAC LFSR noise mode */
+void dac_lfsr_noise_config(uint32_t dac_periph, uint32_t unmask_bits);
+/* configure DAC triangle noise mode */
+void dac_triangle_noise_config(uint32_t dac_periph, uint32_t amplitude);
+
+/* DAC concurrent mode configuration */
+/* enable DAC concurrent mode */
+void dac_concurrent_enable(void);
+/* disable DAC concurrent mode */
+void dac_concurrent_disable(void);
+/* enable DAC concurrent software trigger */
+void dac_concurrent_software_trigger_enable(void);
+/* disable DAC concurrent software trigger */
+void dac_concurrent_software_trigger_disable(void);
+/* enable DAC concurrent buffer function */
+void dac_concurrent_output_buffer_enable(void);
+/* disable DAC concurrent buffer function */
+void dac_concurrent_output_buffer_disable(void);
+/* set DAC concurrent mode data holding register value */
+void dac_concurrent_data_set(uint32_t dac_align, uint16_t data0, uint16_t data1);
+
+#endif /* GD32VF103_DAC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h
new file mode 100644
index 0000000000..d9e65d87cb
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h
@@ -0,0 +1,110 @@
+/*!
+ \file gd32vf103_dbg.h
+ \brief definitions for the DBG
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_DBG_H
+#define GD32VF103_DBG_H
+
+#include "gd32vf103.h"
+
+/* DBG definitions */
+#define DBG DBG_BASE
+
+/* registers definitions */
+#define DBG_ID REG32(DBG + 0x00U) /*!< DBG_ID code register */
+#define DBG_CTL REG32(DBG + 0x04U) /*!< DBG control register */
+
+/* bits definitions */
+/* DBG_ID */
+#define DBG_ID_ID_CODE BITS(0,31) /*!< DBG ID code values */
+
+/* DBG_CTL */
+#define DBG_CTL_SLP_HOLD BIT(0) /*!< keep debugger connection during sleep mode */
+#define DBG_CTL_DSLP_HOLD BIT(1) /*!< keep debugger connection during deepsleep mode */
+#define DBG_CTL_STB_HOLD BIT(2) /*!< keep debugger connection during standby mode */
+#define DBG_CTL_FWDGT_HOLD BIT(8) /*!< debug FWDGT kept when core is halted */
+#define DBG_CTL_WWDGT_HOLD BIT(9) /*!< debug WWDGT kept when core is halted */
+#define DBG_CTL_TIMER0_HOLD BIT(10) /*!< hold TIMER0 counter when core is halted */
+#define DBG_CTL_TIMER1_HOLD BIT(11) /*!< hold TIMER1 counter when core is halted */
+#define DBG_CTL_TIMER2_HOLD BIT(12) /*!< hold TIMER2 counter when core is halted */
+#define DBG_CTL_TIMER3_HOLD BIT(13) /*!< hold TIMER3 counter when core is halted */
+#define DBG_CTL_CAN0_HOLD BIT(14) /*!< debug CAN0 kept when core is halted */
+#define DBG_CTL_I2C0_HOLD BIT(15) /*!< hold I2C0 smbus when core is halted */
+#define DBG_CTL_I2C1_HOLD BIT(16) /*!< hold I2C1 smbus when core is halted */
+#define DBG_CTL_TIMER4_HOLD BIT(18) /*!< hold TIMER4 counter when core is halted */
+#define DBG_CTL_TIMER5_HOLD BIT(19) /*!< hold TIMER5 counter when core is halted */
+#define DBG_CTL_TIMER6_HOLD BIT(20) /*!< hold TIMER6 counter when core is halted */
+#define DBG_CTL_CAN1_HOLD BIT(21) /*!< debug CAN1 kept when core is halted */
+
+/* constants definitions */
+/* debug hold when core is halted */
+typedef enum
+{
+ DBG_FWDGT_HOLD = BIT(8), /*!< debug FWDGT kept when core is halted */
+ DBG_WWDGT_HOLD = BIT(9), /*!< debug WWDGT kept when core is halted */
+ DBG_TIMER0_HOLD = BIT(10), /*!< hold TIMER0 counter when core is halted */
+ DBG_TIMER1_HOLD = BIT(11), /*!< hold TIMER1 counter when core is halted */
+ DBG_TIMER2_HOLD = BIT(12), /*!< hold TIMER2 counter when core is halted */
+ DBG_TIMER3_HOLD = BIT(13), /*!< hold TIMER3 counter when core is halted */
+ DBG_CAN0_HOLD = BIT(14), /*!< debug CAN0 kept when core is halted */
+ DBG_I2C0_HOLD = BIT(15), /*!< hold I2C0 smbus when core is halted */
+ DBG_I2C1_HOLD = BIT(16), /*!< hold I2C1 smbus when core is halted */
+ DBG_TIMER4_HOLD = BIT(17), /*!< hold TIMER4 counter when core is halted */
+ DBG_TIMER5_HOLD = BIT(18), /*!< hold TIMER5 counter when core is halted */
+ DBG_TIMER6_HOLD = BIT(19), /*!< hold TIMER6 counter when core is halted */
+ DBG_CAN1_HOLD = BIT(21), /*!< debug CAN1 kept when core is halted */
+}dbg_periph_enum;
+
+/* DBG low power mode configurations */
+#define DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD /*!< keep debugger connection during sleep mode */
+#define DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD /*!< keep debugger connection during deepsleep mode */
+#define DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD /*!< keep debugger connection during standby mode */
+
+/* function declarations */
+/* read DBG_ID code register */
+uint32_t dbg_id_get(void);
+
+/* low power behavior configuration */
+/* enable low power behavior when the MCU is in debug mode */
+void dbg_low_power_enable(uint32_t dbg_low_power);
+/* disable low power behavior when the MCU is in debug mode */
+void dbg_low_power_disable(uint32_t dbg_low_power);
+
+/* peripheral behavior configuration */
+/* enable peripheral behavior when the MCU is in debug mode */
+void dbg_periph_enable(dbg_periph_enum dbg_periph);
+/* disable peripheral behavior when the MCU is in debug mode */
+void dbg_periph_disable(dbg_periph_enum dbg_periph);
+
+#endif /* GD32VF103_DBG_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h
new file mode 100644
index 0000000000..2d3842ca05
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h
@@ -0,0 +1,284 @@
+/*!
+ \file gd32vf103_dma.h
+ \brief definitions for the DMA
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-10-30, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_DMA_H
+#define GD32VF103_DMA_H
+
+#include "gd32vf103.h"
+
+/* DMA definitions */
+#define DMA0 (DMA_BASE) /*!< DMA0 base address */
+#define DMA1 (DMA_BASE + 0x0400U) /*!< DMA1 base address */
+
+/* registers definitions */
+#define DMA_INTF(dmax) REG32((dmax) + 0x00U) /*!< DMA interrupt flag register */
+#define DMA_INTC(dmax) REG32((dmax) + 0x04U) /*!< DMA interrupt flag clear register */
+
+#define DMA_CH0CTL(dmax) REG32((dmax) + 0x08U) /*!< DMA channel 0 control register */
+#define DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU) /*!< DMA channel 0 counter register */
+#define DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U) /*!< DMA channel 0 peripheral base address register */
+#define DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U) /*!< DMA channel 0 memory base address register */
+
+#define DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU) /*!< DMA channel 1 control register */
+#define DMA_CH1CNT(dmax) REG32((dmax) + 0x20U) /*!< DMA channel 1 counter register */
+#define DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U) /*!< DMA channel 1 peripheral base address register */
+#define DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U) /*!< DMA channel 1 memory base address register */
+
+#define DMA_CH2CTL(dmax) REG32((dmax) + 0x30U) /*!< DMA channel 2 control register */
+#define DMA_CH2CNT(dmax) REG32((dmax) + 0x34U) /*!< DMA channel 2 counter register */
+#define DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U) /*!< DMA channel 2 peripheral base address register */
+#define DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU) /*!< DMA channel 2 memory base address register */
+
+#define DMA_CH3CTL(dmax) REG32((dmax) + 0x44U) /*!< DMA channel 3 control register */
+#define DMA_CH3CNT(dmax) REG32((dmax) + 0x48U) /*!< DMA channel 3 counter register */
+#define DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU) /*!< DMA channel 3 peripheral base address register */
+#define DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U) /*!< DMA channel 3 memory base address register */
+
+#define DMA_CH4CTL(dmax) REG32((dmax) + 0x58U) /*!< DMA channel 4 control register */
+#define DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU) /*!< DMA channel 4 counter register */
+#define DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U) /*!< DMA channel 4 peripheral base address register */
+#define DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U) /*!< DMA channel 4 memory base address register */
+
+#define DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU) /*!< DMA channel 5 control register */
+#define DMA_CH5CNT(dmax) REG32((dmax) + 0x70U) /*!< DMA channel 5 counter register */
+#define DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U) /*!< DMA channel 5 peripheral base address register */
+#define DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U) /*!< DMA channel 5 memory base address register */
+
+#define DMA_CH6CTL(dmax) REG32((dmax) + 0x80U) /*!< DMA channel 6 control register */
+#define DMA_CH6CNT(dmax) REG32((dmax) + 0x84U) /*!< DMA channel 6 counter register */
+#define DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U) /*!< DMA channel 6 peripheral base address register */
+#define DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU) /*!< DMA channel 6 memory base address register */
+
+/* bits definitions */
+/* DMA_INTF */
+#define DMA_INTF_GIF BIT(0) /*!< global interrupt flag of channel */
+#define DMA_INTF_FTFIF BIT(1) /*!< full transfer finish flag of channel */
+#define DMA_INTF_HTFIF BIT(2) /*!< half transfer finish flag of channel */
+#define DMA_INTF_ERRIF BIT(3) /*!< error flag of channel */
+
+/* DMA_INTC */
+#define DMA_INTC_GIFC BIT(0) /*!< clear global interrupt flag of channel */
+#define DMA_INTC_FTFIFC BIT(1) /*!< clear transfer finish flag of channel */
+#define DMA_INTC_HTFIFC BIT(2) /*!< clear half transfer finish flag of channel */
+#define DMA_INTC_ERRIFC BIT(3) /*!< clear error flag of channel */
+
+/* DMA_CHxCTL, x=0..6 */
+#define DMA_CHXCTL_CHEN BIT(0) /*!< channel enable */
+#define DMA_CHXCTL_FTFIE BIT(1) /*!< enable bit for channel full transfer finish interrupt */
+#define DMA_CHXCTL_HTFIE BIT(2) /*!< enable bit for channel half transfer finish interrupt */
+#define DMA_CHXCTL_ERRIE BIT(3) /*!< enable bit for channel error interrupt */
+#define DMA_CHXCTL_DIR BIT(4) /*!< transfer direction */
+#define DMA_CHXCTL_CMEN BIT(5) /*!< circular mode enable */
+#define DMA_CHXCTL_PNAGA BIT(6) /*!< next address generation algorithm of peripheral */
+#define DMA_CHXCTL_MNAGA BIT(7) /*!< next address generation algorithm of memory */
+#define DMA_CHXCTL_PWIDTH BITS(8,9) /*!< transfer data width of peripheral */
+#define DMA_CHXCTL_MWIDTH BITS(10,11) /*!< transfer data width of memory */
+#define DMA_CHXCTL_PRIO BITS(12,13) /*!< priority level */
+#define DMA_CHXCTL_M2M BIT(14) /*!< memory to memory mode */
+
+/* DMA_CHxCNT, x=0..6 */
+#define DMA_CHXCNT_CNT BITS(0,15) /*!< transfer counter */
+
+/* DMA_CHxPADDR, x=0..6 */
+#define DMA_CHXPADDR_PADDR BITS(0,31) /*!< peripheral base address */
+
+/* DMA_CHxMADDR, x=0..6 */
+#define DMA_CHXMADDR_MADDR BITS(0,31) /*!< memory base address */
+
+/* constants definitions */
+/* DMA channel select */
+typedef enum
+{
+ DMA_CH0 = 0, /*!< DMA Channel0 */
+ DMA_CH1, /*!< DMA Channel1 */
+ DMA_CH2, /*!< DMA Channel2 */
+ DMA_CH3, /*!< DMA Channel3 */
+ DMA_CH4, /*!< DMA Channel4 */
+ DMA_CH5, /*!< DMA Channel5 */
+ DMA_CH6 /*!< DMA Channel6 */
+} dma_channel_enum;
+
+/* DMA initialize struct */
+typedef struct
+{
+ uint32_t periph_addr; /*!< peripheral base address */
+ uint32_t periph_width; /*!< transfer data size of peripheral */
+ uint32_t memory_addr; /*!< memory base address */
+ uint32_t memory_width; /*!< transfer data size of memory */
+ uint32_t number; /*!< channel transfer number */
+ uint32_t priority; /*!< channel priority level */
+ uint8_t periph_inc; /*!< peripheral increasing mode */
+ uint8_t memory_inc; /*!< memory increasing mode */
+ uint8_t direction; /*!< channel data transfer direction */
+
+} dma_parameter_struct;
+
+#define DMA_FLAG_ADD(flag, shift) ((flag) << ((shift) * 4U)) /*!< DMA channel flag shift */
+
+/* DMA_register address */
+#define DMA_CHCTL(dma, channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel)) /*!< the address of DMA channel CHXCTL register */
+#define DMA_CHCNT(dma, channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel)) /*!< the address of DMA channel CHXCNT register */
+#define DMA_CHPADDR(dma, channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel)) /*!< the address of DMA channel CHXPADDR register */
+#define DMA_CHMADDR(dma, channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel)) /*!< the address of DMA channel CHXMADDR register */
+
+/* DMA reset value */
+#define DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U) /*!< the reset value of DMA channel CHXCTL register */
+#define DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U) /*!< the reset value of DMA channel CHXCNT register */
+#define DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U) /*!< the reset value of DMA channel CHXPADDR register */
+#define DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U) /*!< the reset value of DMA channel CHXMADDR register */
+#define DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | \
+ DMA_INTF_HTFIF | DMA_INTF_ERRIF) /*!< clear DMA channel DMA_INTF register */
+
+/* DMA_INTF register */
+/* interrupt flag bits */
+#define DMA_INT_FLAG_G DMA_INTF_GIF /*!< global interrupt flag of channel */
+#define DMA_INT_FLAG_FTF DMA_INTF_FTFIF /*!< full transfer finish interrupt flag of channel */
+#define DMA_INT_FLAG_HTF DMA_INTF_HTFIF /*!< half transfer finish interrupt flag of channel */
+#define DMA_INT_FLAG_ERR DMA_INTF_ERRIF /*!< error interrupt flag of channel */
+
+/* flag bits */
+#define DMA_FLAG_G DMA_INTF_GIF /*!< global interrupt flag of channel */
+#define DMA_FLAG_FTF DMA_INTF_FTFIF /*!< full transfer finish flag of channel */
+#define DMA_FLAG_HTF DMA_INTF_HTFIF /*!< half transfer finish flag of channel */
+#define DMA_FLAG_ERR DMA_INTF_ERRIF /*!< error flag of channel */
+
+/* DMA_CHxCTL register */
+/* interrupt enable bits */
+#define DMA_INT_FTF DMA_CHXCTL_FTFIE /*!< enable bit for channel full transfer finish interrupt */
+#define DMA_INT_HTF DMA_CHXCTL_HTFIE /*!< enable bit for channel half transfer finish interrupt */
+#define DMA_INT_ERR DMA_CHXCTL_ERRIE /*!< enable bit for channel error interrupt */
+
+/* transfer direction */
+#define DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U) /*!< read from peripheral and write to memory */
+#define DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U) /*!< read from memory and write to peripheral */
+
+/* peripheral increasing mode */
+#define DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U) /*!< next address of peripheral is fixed address mode */
+#define DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U) /*!< next address of peripheral is increasing address mode */
+
+/* memory increasing mode */
+#define DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U) /*!< next address of memory is fixed address mode */
+#define DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U) /*!< next address of memory is increasing address mode */
+
+/* transfer data size of peripheral */
+#define CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8)) /*!< transfer data size of peripheral */
+#define DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U) /*!< transfer data size of peripheral is 8-bit */
+#define DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U) /*!< transfer data size of peripheral is 16-bit */
+#define DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U) /*!< transfer data size of peripheral is 32-bit */
+
+/* transfer data size of memory */
+#define CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10)) /*!< transfer data size of memory */
+#define DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U) /*!< transfer data size of memory is 8-bit */
+#define DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U) /*!< transfer data size of memory is 16-bit */
+#define DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U) /*!< transfer data size of memory is 32-bit */
+
+/* channel priority level */
+#define CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12)) /*!< DMA channel priority level */
+#define DMA_PRIORITY_LOW CHCTL_PRIO(0U) /*!< low priority */
+#define DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U) /*!< medium priority */
+#define DMA_PRIORITY_HIGH CHCTL_PRIO(2U) /*!< high priority */
+#define DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U) /*!< ultra high priority */
+
+/* memory to memory mode */
+#define DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U) /*!< disable memory to memory mode */
+#define DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U) /*!< enable memory to memory mode */
+
+/* DMA_CHxCNT register */
+/* transfer counter */
+#define DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT /*!< transfer counter mask */
+
+/* function declarations */
+/* DMA deinitialization and initialization functions */
+/* deinitialize DMA a channel registers */
+void dma_deinit(uint32_t dma_periph, dma_channel_enum channelx);
+/* initialize the parameters of DMA struct with the default values */
+void dma_struct_para_init(dma_parameter_struct* init_struct);
+/* initialize DMA channel */
+void dma_init(uint32_t dma_periph, dma_channel_enum channelx, dma_parameter_struct *init_struct);
+/* enable DMA circulation mode */
+void dma_circulation_enable(uint32_t dma_periph, dma_channel_enum channelx);
+/* disable DMA circulation mode */
+void dma_circulation_disable(uint32_t dma_periph, dma_channel_enum channelx);
+/* enable memory to memory mode */
+void dma_memory_to_memory_enable(uint32_t dma_periph, dma_channel_enum channelx);
+/* disable memory to memory mode */
+void dma_memory_to_memory_disable(uint32_t dma_periph, dma_channel_enum channelx);
+/* enable DMA channel */
+void dma_channel_enable(uint32_t dma_periph, dma_channel_enum channelx);
+/* disable DMA channel */
+void dma_channel_disable(uint32_t dma_periph, dma_channel_enum channelx);
+
+/* DMA configuration functions */
+/* set DMA peripheral base address */
+void dma_periph_address_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t address);
+/* set DMA memory base address */
+void dma_memory_address_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t address);
+/* set the number of remaining data to be transferred by the DMA */
+void dma_transfer_number_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t number);
+/* get the number of remaining data to be transferred by the DMA */
+uint32_t dma_transfer_number_get(uint32_t dma_periph, dma_channel_enum channelx);
+/* configure priority level of DMA channel */
+void dma_priority_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t priority);
+/* configure transfer data size of memory */
+void dma_memory_width_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t mwidth);
+/* configure transfer data size of peripheral */
+void dma_periph_width_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t pwidth);
+/* enable next address increasement algorithm of memory */
+void dma_memory_increase_enable(uint32_t dma_periph, dma_channel_enum channelx);
+/* disable next address increasement algorithm of memory */
+void dma_memory_increase_disable(uint32_t dma_periph, dma_channel_enum channelx);
+/* enable next address increasement algorithm of peripheral */
+void dma_periph_increase_enable(uint32_t dma_periph, dma_channel_enum channelx);
+/* disable next address increasement algorithm of peripheral */
+void dma_periph_increase_disable(uint32_t dma_periph, dma_channel_enum channelx);
+/* configure the direction of data transfer on the channel */
+void dma_transfer_direction_config(uint32_t dma_periph, dma_channel_enum channelx, uint8_t direction);
+
+/* flag and interrupt functions */
+/* check DMA flag is set or not */
+FlagStatus dma_flag_get(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag);
+/* clear the flag of a DMA channel */
+void dma_flag_clear(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag);
+/* check DMA flag and interrupt enable bit is set or not */
+FlagStatus dma_interrupt_flag_get(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag);
+/* clear the interrupt flag of a DMA channel */
+void dma_interrupt_flag_clear(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag);
+/* enable DMA interrupt */
+void dma_interrupt_enable(uint32_t dma_periph, dma_channel_enum channelx, uint32_t source);
+/* disable DMA interrupt */
+void dma_interrupt_disable(uint32_t dma_periph, dma_channel_enum channelx, uint32_t source);
+
+#endif /* GD32VF103_DMA_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h
new file mode 100644
index 0000000000..b201996c8f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h
@@ -0,0 +1,67 @@
+/*!
+ \file gd32vf103_eclic.h
+ \brief definitions for the ECLIC(Enhancement Core-Local Interrupt Controller)
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_ECLIC_H
+#define GD32VF103_ECLIC_H
+
+#include "gd32vf103.h"
+
+/* constants definitions */
+#define ECLIC_PRIGROUP_LEVEL0_PRIO4 0 /*!< 0 bits for level 4 bits for priority */
+#define ECLIC_PRIGROUP_LEVEL1_PRIO3 1 /*!< 1 bits for level 3 bits for priority */
+#define ECLIC_PRIGROUP_LEVEL2_PRIO2 2 /*!< 2 bits for level 2 bits for priority */
+#define ECLIC_PRIGROUP_LEVEL3_PRIO1 3 /*!< 3 bits for level 1 bits for priority */
+#define ECLIC_PRIGROUP_LEVEL4_PRIO0 4 /*!< 4 bits for level 0 bits for priority */
+
+#define __SEV eclic_send_event
+
+/* function declarations */
+/* enable the global interrupt */
+void eclic_global_interrupt_enable(void);
+/* disable the global interrupt */
+void eclic_global_interrupt_disable(void);
+/* set the priority group */
+void eclic_priority_group_set(uint8_t prigroup);
+/* enable the interrupt request */
+void eclic_irq_enable(uint32_t source, uint8_t level, uint8_t priority);
+/* disable the interrupt request */
+void eclic_irq_disable(uint32_t source);
+
+/* reset system */
+void eclic_system_reset(void);
+/* send event(SEV) */
+void eclic_send_event(void);
+
+#endif /* GD32VF103_ECLIC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h
new file mode 100644
index 0000000000..b6605f3c40
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h
@@ -0,0 +1,127 @@
+/*!
+ \file gd32vf103_exmc.h
+ \brief definitions for the EXMC
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_EXMC_H
+#define GD32VF103_EXMC_H
+
+#include "gd32vf103.h"
+
+/* EXMC definitions */
+#define EXMC (EXMC_BASE) /*!< EXMC register base address */
+
+/* registers definitions */
+/* NOR/PSRAM */
+#define EXMC_SNCTL0 REG32(EXMC + 0x00U) /*!< EXMC SRAM/NOR flash control register 0 */
+#define EXMC_SNTCFG0 REG32(EXMC + 0x04U) /*!< EXMC SRAM/NOR flash timing configuration register 0 */
+#define EXMC_SNWTCFG0 REG32(EXMC + 0x104U) /*!< EXMC SRAM/NOR flash write timing configuration register 0 */
+
+/* bits definitions */
+/* NOR/PSRAM */
+/* EXMC_SNCTLx, x=0 */
+#define EXMC_SNCTL_NRBKEN BIT(0) /*!< NOR bank enable */
+#define EXMC_SNCTL_NRMUX BIT(1) /*!< NOR bank memory address/data multiplexing */
+#define EXMC_SNCTL_NRTP BITS(2,3) /*!< NOR bank memory type */
+#define EXMC_SNCTL_NRW BITS(4,5) /*!< NOR bank memory data bus width */
+#define EXMC_SNCTL_NREN BIT(6) /*!< NOR flash access enable */
+#define EXMC_SNCTL_NRWTPOL BIT(9) /*!< NWAIT signal polarity */
+#define EXMC_SNCTL_WREN BIT(12) /*!< write enable */
+#define EXMC_SNCTL_NRWTEN BIT(13) /*!< NWAIT signal enable */
+#define EXMC_SNCTL_ASYNCWAIT BIT(15) /*!< asynchronous wait */
+
+/* EXMC_SNTCFGx, x=0 */
+#define EXMC_SNTCFG_ASET BITS(0,3) /*!< address setup time */
+#define EXMC_SNTCFG_AHLD BITS(4,7) /*!< address hold time */
+#define EXMC_SNTCFG_DSET BITS(8,15) /*!< data setup time */
+#define EXMC_SNTCFG_BUSLAT BITS(16,19) /*!< bus latency */
+
+/* constants definitions */
+/* EXMC NOR/SRAM timing initialize struct */
+typedef struct
+{
+ uint32_t bus_latency; /*!< configure the bus latency */
+ uint32_t asyn_data_setuptime; /*!< configure the data setup time,asynchronous access mode valid */
+ uint32_t asyn_address_holdtime; /*!< configure the address hold time,asynchronous access mode valid */
+ uint32_t asyn_address_setuptime; /*!< configure the data setup time,asynchronous access mode valid */
+}exmc_norsram_timing_parameter_struct;
+
+/* EXMC NOR/SRAM initialize struct */
+typedef struct
+{
+ uint32_t norsram_region; /*!< select the region of EXMC NOR/SRAM bank */
+ ControlStatus asyn_wait; /*!< enable or disable the asynchronous wait function */
+ ControlStatus nwait_signal; /*!< enable or disable the NWAIT signal */
+ ControlStatus memory_write; /*!< enable or disable the write operation */
+ uint32_t nwait_polarity; /*!< specifies the polarity of NWAIT signal from memory */
+ uint32_t databus_width; /*!< specifies the databus width of external memory */
+ uint32_t memory_type; /*!< specifies the type of external memory */
+ ControlStatus address_data_mux; /*!< specifies whether the data bus and address bus are multiplexed */
+ exmc_norsram_timing_parameter_struct* read_write_timing; /*!< timing parameters for read and write */
+}exmc_norsram_parameter_struct;
+
+/* EXMC register address */
+#define EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region)) /*!< EXMC SRAM/NOR flash control register */
+#define EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region)) /*!< EXMC SRAM/NOR flash timing configuration register */
+
+/* NOR bank memory data bus width */
+#define SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))
+#define EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0) /*!< NOR data width 8 bits */
+#define EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1) /*!< NOR data width 16 bits */
+
+/* NOR bank memory type */
+#define SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))
+#define EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0) /*!< SRAM,ROM */
+#define EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1) /*!< PSRAM,CRAM */
+#define EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2) /*!< NOR flash */
+
+/* EXMC NOR/SRAM bank region definition */
+#define EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U) /*!< bank0 NOR/SRAM region0 */
+
+/* EXMC NWAIT signal polarity configuration */
+#define EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U) /*!< low level is active of NWAIT */
+#define EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U) /*!< high level is active of NWAIT */
+
+/* function declarations */
+/* deinitialize EXMC NOR/SRAM region */
+void exmc_norsram_deinit(uint32_t norsram_region);
+/* exmc_norsram_parameter_struct parameter initialize */
+void exmc_norsram_struct_para_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct);
+/* initialize EXMC NOR/SRAM region */
+void exmc_norsram_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct);
+/* EXMC NOR/SRAM bank enable */
+void exmc_norsram_enable(uint32_t norsram_region);
+/* EXMC NOR/SRAM bank disable */
+void exmc_norsram_disable(uint32_t norsram_region);
+
+#endif /* GD32VF103_EXMC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h
new file mode 100644
index 0000000000..92072bb79b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h
@@ -0,0 +1,246 @@
+/*!
+ \file gd32vf103_exti.h
+ \brief definitions for the EXTI
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_EXTI_H
+#define GD32VF103_EXTI_H
+
+#include "gd32vf103.h"
+
+/* EXTI definitions */
+#define EXTI EXTI_BASE
+
+/* registers definitions */
+#define EXTI_INTEN REG32(EXTI + 0x00U) /*!< interrupt enable register */
+#define EXTI_EVEN REG32(EXTI + 0x04U) /*!< event enable register */
+#define EXTI_RTEN REG32(EXTI + 0x08U) /*!< rising edge trigger enable register */
+#define EXTI_FTEN REG32(EXTI + 0x0CU) /*!< falling trigger enable register */
+#define EXTI_SWIEV REG32(EXTI + 0x10U) /*!< software interrupt event register */
+#define EXTI_PD REG32(EXTI + 0x14U) /*!< pending register */
+
+/* bits definitions */
+/* EXTI_INTEN */
+#define EXTI_INTEN_INTEN0 BIT(0) /*!< interrupt from line 0 */
+#define EXTI_INTEN_INTEN1 BIT(1) /*!< interrupt from line 1 */
+#define EXTI_INTEN_INTEN2 BIT(2) /*!< interrupt from line 2 */
+#define EXTI_INTEN_INTEN3 BIT(3) /*!< interrupt from line 3 */
+#define EXTI_INTEN_INTEN4 BIT(4) /*!< interrupt from line 4 */
+#define EXTI_INTEN_INTEN5 BIT(5) /*!< interrupt from line 5 */
+#define EXTI_INTEN_INTEN6 BIT(6) /*!< interrupt from line 6 */
+#define EXTI_INTEN_INTEN7 BIT(7) /*!< interrupt from line 7 */
+#define EXTI_INTEN_INTEN8 BIT(8) /*!< interrupt from line 8 */
+#define EXTI_INTEN_INTEN9 BIT(9) /*!< interrupt from line 9 */
+#define EXTI_INTEN_INTEN10 BIT(10) /*!< interrupt from line 10 */
+#define EXTI_INTEN_INTEN11 BIT(11) /*!< interrupt from line 11 */
+#define EXTI_INTEN_INTEN12 BIT(12) /*!< interrupt from line 12 */
+#define EXTI_INTEN_INTEN13 BIT(13) /*!< interrupt from line 13 */
+#define EXTI_INTEN_INTEN14 BIT(14) /*!< interrupt from line 14 */
+#define EXTI_INTEN_INTEN15 BIT(15) /*!< interrupt from line 15 */
+#define EXTI_INTEN_INTEN16 BIT(16) /*!< interrupt from line 16 */
+#define EXTI_INTEN_INTEN17 BIT(17) /*!< interrupt from line 17 */
+#define EXTI_INTEN_INTEN18 BIT(18) /*!< interrupt from line 18 */
+
+/* EXTI_EVEN */
+#define EXTI_EVEN_EVEN0 BIT(0) /*!< event from line 0 */
+#define EXTI_EVEN_EVEN1 BIT(1) /*!< event from line 1 */
+#define EXTI_EVEN_EVEN2 BIT(2) /*!< event from line 2 */
+#define EXTI_EVEN_EVEN3 BIT(3) /*!< event from line 3 */
+#define EXTI_EVEN_EVEN4 BIT(4) /*!< event from line 4 */
+#define EXTI_EVEN_EVEN5 BIT(5) /*!< event from line 5 */
+#define EXTI_EVEN_EVEN6 BIT(6) /*!< event from line 6 */
+#define EXTI_EVEN_EVEN7 BIT(7) /*!< event from line 7 */
+#define EXTI_EVEN_EVEN8 BIT(8) /*!< event from line 8 */
+#define EXTI_EVEN_EVEN9 BIT(9) /*!< event from line 9 */
+#define EXTI_EVEN_EVEN10 BIT(10) /*!< event from line 10 */
+#define EXTI_EVEN_EVEN11 BIT(11) /*!< event from line 11 */
+#define EXTI_EVEN_EVEN12 BIT(12) /*!< event from line 12 */
+#define EXTI_EVEN_EVEN13 BIT(13) /*!< event from line 13 */
+#define EXTI_EVEN_EVEN14 BIT(14) /*!< event from line 14 */
+#define EXTI_EVEN_EVEN15 BIT(15) /*!< event from line 15 */
+#define EXTI_EVEN_EVEN16 BIT(16) /*!< event from line 16 */
+#define EXTI_EVEN_EVEN17 BIT(17) /*!< event from line 17 */
+#define EXTI_EVEN_EVEN18 BIT(18) /*!< event from line 18 */
+
+/* EXTI_RTEN */
+#define EXTI_RTEN_RTEN0 BIT(0) /*!< rising edge from line 0 */
+#define EXTI_RTEN_RTEN1 BIT(1) /*!< rising edge from line 1 */
+#define EXTI_RTEN_RTEN2 BIT(2) /*!< rising edge from line 2 */
+#define EXTI_RTEN_RTEN3 BIT(3) /*!< rising edge from line 3 */
+#define EXTI_RTEN_RTEN4 BIT(4) /*!< rising edge from line 4 */
+#define EXTI_RTEN_RTEN5 BIT(5) /*!< rising edge from line 5 */
+#define EXTI_RTEN_RTEN6 BIT(6) /*!< rising edge from line 6 */
+#define EXTI_RTEN_RTEN7 BIT(7) /*!< rising edge from line 7 */
+#define EXTI_RTEN_RTEN8 BIT(8) /*!< rising edge from line 8 */
+#define EXTI_RTEN_RTEN9 BIT(9) /*!< rising edge from line 9 */
+#define EXTI_RTEN_RTEN10 BIT(10) /*!< rising edge from line 10 */
+#define EXTI_RTEN_RTEN11 BIT(11) /*!< rising edge from line 11 */
+#define EXTI_RTEN_RTEN12 BIT(12) /*!< rising edge from line 12 */
+#define EXTI_RTEN_RTEN13 BIT(13) /*!< rising edge from line 13 */
+#define EXTI_RTEN_RTEN14 BIT(14) /*!< rising edge from line 14 */
+#define EXTI_RTEN_RTEN15 BIT(15) /*!< rising edge from line 15 */
+#define EXTI_RTEN_RTEN16 BIT(16) /*!< rising edge from line 16 */
+#define EXTI_RTEN_RTEN17 BIT(17) /*!< rising edge from line 17 */
+#define EXTI_RTEN_RTEN18 BIT(18) /*!< rising edge from line 18 */
+
+/* EXTI_FTEN */
+#define EXTI_FTEN_FTEN0 BIT(0) /*!< falling edge from line 0 */
+#define EXTI_FTEN_FTEN1 BIT(1) /*!< falling edge from line 1 */
+#define EXTI_FTEN_FTEN2 BIT(2) /*!< falling edge from line 2 */
+#define EXTI_FTEN_FTEN3 BIT(3) /*!< falling edge from line 3 */
+#define EXTI_FTEN_FTEN4 BIT(4) /*!< falling edge from line 4 */
+#define EXTI_FTEN_FTEN5 BIT(5) /*!< falling edge from line 5 */
+#define EXTI_FTEN_FTEN6 BIT(6) /*!< falling edge from line 6 */
+#define EXTI_FTEN_FTEN7 BIT(7) /*!< falling edge from line 7 */
+#define EXTI_FTEN_FTEN8 BIT(8) /*!< falling edge from line 8 */
+#define EXTI_FTEN_FTEN9 BIT(9) /*!< falling edge from line 9 */
+#define EXTI_FTEN_FTEN10 BIT(10) /*!< falling edge from line 10 */
+#define EXTI_FTEN_FTEN11 BIT(11) /*!< falling edge from line 11 */
+#define EXTI_FTEN_FTEN12 BIT(12) /*!< falling edge from line 12 */
+#define EXTI_FTEN_FTEN13 BIT(13) /*!< falling edge from line 13 */
+#define EXTI_FTEN_FTEN14 BIT(14) /*!< falling edge from line 14 */
+#define EXTI_FTEN_FTEN15 BIT(15) /*!< falling edge from line 15 */
+#define EXTI_FTEN_FTEN16 BIT(16) /*!< falling edge from line 16 */
+#define EXTI_FTEN_FTEN17 BIT(17) /*!< falling edge from line 17 */
+#define EXTI_FTEN_FTEN18 BIT(18) /*!< falling edge from line 18 */
+
+/* EXTI_SWIEV */
+#define EXTI_SWIEV_SWIEV0 BIT(0) /*!< software interrupt/event request from line 0 */
+#define EXTI_SWIEV_SWIEV1 BIT(1) /*!< software interrupt/event request from line 1 */
+#define EXTI_SWIEV_SWIEV2 BIT(2) /*!< software interrupt/event request from line 2 */
+#define EXTI_SWIEV_SWIEV3 BIT(3) /*!< software interrupt/event request from line 3 */
+#define EXTI_SWIEV_SWIEV4 BIT(4) /*!< software interrupt/event request from line 4 */
+#define EXTI_SWIEV_SWIEV5 BIT(5) /*!< software interrupt/event request from line 5 */
+#define EXTI_SWIEV_SWIEV6 BIT(6) /*!< software interrupt/event request from line 6 */
+#define EXTI_SWIEV_SWIEV7 BIT(7) /*!< software interrupt/event request from line 7 */
+#define EXTI_SWIEV_SWIEV8 BIT(8) /*!< software interrupt/event request from line 8 */
+#define EXTI_SWIEV_SWIEV9 BIT(9) /*!< software interrupt/event request from line 9 */
+#define EXTI_SWIEV_SWIEV10 BIT(10) /*!< software interrupt/event request from line 10 */
+#define EXTI_SWIEV_SWIEV11 BIT(11) /*!< software interrupt/event request from line 11 */
+#define EXTI_SWIEV_SWIEV12 BIT(12) /*!< software interrupt/event request from line 12 */
+#define EXTI_SWIEV_SWIEV13 BIT(13) /*!< software interrupt/event request from line 13 */
+#define EXTI_SWIEV_SWIEV14 BIT(14) /*!< software interrupt/event request from line 14 */
+#define EXTI_SWIEV_SWIEV15 BIT(15) /*!< software interrupt/event request from line 15 */
+#define EXTI_SWIEV_SWIEV16 BIT(16) /*!< software interrupt/event request from line 16 */
+#define EXTI_SWIEV_SWIEV17 BIT(17) /*!< software interrupt/event request from line 17 */
+#define EXTI_SWIEV_SWIEV18 BIT(18) /*!< software interrupt/event request from line 18 */
+
+/* EXTI_PD */
+#define EXTI_PD_PD0 BIT(0) /*!< interrupt/event pending status from line 0 */
+#define EXTI_PD_PD1 BIT(1) /*!< interrupt/event pending status from line 1 */
+#define EXTI_PD_PD2 BIT(2) /*!< interrupt/event pending status from line 2 */
+#define EXTI_PD_PD3 BIT(3) /*!< interrupt/event pending status from line 3 */
+#define EXTI_PD_PD4 BIT(4) /*!< interrupt/event pending status from line 4 */
+#define EXTI_PD_PD5 BIT(5) /*!< interrupt/event pending status from line 5 */
+#define EXTI_PD_PD6 BIT(6) /*!< interrupt/event pending status from line 6 */
+#define EXTI_PD_PD7 BIT(7) /*!< interrupt/event pending status from line 7 */
+#define EXTI_PD_PD8 BIT(8) /*!< interrupt/event pending status from line 8 */
+#define EXTI_PD_PD9 BIT(9) /*!< interrupt/event pending status from line 9 */
+#define EXTI_PD_PD10 BIT(10) /*!< interrupt/event pending status from line 10 */
+#define EXTI_PD_PD11 BIT(11) /*!< interrupt/event pending status from line 11 */
+#define EXTI_PD_PD12 BIT(12) /*!< interrupt/event pending status from line 12 */
+#define EXTI_PD_PD13 BIT(13) /*!< interrupt/event pending status from line 13 */
+#define EXTI_PD_PD14 BIT(14) /*!< interrupt/event pending status from line 14 */
+#define EXTI_PD_PD15 BIT(15) /*!< interrupt/event pending status from line 15 */
+#define EXTI_PD_PD16 BIT(16) /*!< interrupt/event pending status from line 16 */
+#define EXTI_PD_PD17 BIT(17) /*!< interrupt/event pending status from line 17 */
+#define EXTI_PD_PD18 BIT(18) /*!< interrupt/event pending status from line 18 */
+
+/* constants definitions */
+/* EXTI line number */
+typedef enum {
+ EXTI_0 = BIT(0), /*!< EXTI line 0 */
+ EXTI_1 = BIT(1), /*!< EXTI line 1 */
+ EXTI_2 = BIT(2), /*!< EXTI line 2 */
+ EXTI_3 = BIT(3), /*!< EXTI line 3 */
+ EXTI_4 = BIT(4), /*!< EXTI line 4 */
+ EXTI_5 = BIT(5), /*!< EXTI line 5 */
+ EXTI_6 = BIT(6), /*!< EXTI line 6 */
+ EXTI_7 = BIT(7), /*!< EXTI line 7 */
+ EXTI_8 = BIT(8), /*!< EXTI line 8 */
+ EXTI_9 = BIT(9), /*!< EXTI line 9 */
+ EXTI_10 = BIT(10), /*!< EXTI line 10 */
+ EXTI_11 = BIT(11), /*!< EXTI line 11 */
+ EXTI_12 = BIT(12), /*!< EXTI line 12 */
+ EXTI_13 = BIT(13), /*!< EXTI line 13 */
+ EXTI_14 = BIT(14), /*!< EXTI line 14 */
+ EXTI_15 = BIT(15), /*!< EXTI line 15 */
+ EXTI_16 = BIT(16), /*!< EXTI line 16 */
+ EXTI_17 = BIT(17), /*!< EXTI line 17 */
+ EXTI_18 = BIT(18), /*!< EXTI line 18 */
+} exti_line_enum;
+
+/* external interrupt and event */
+typedef enum {
+ EXTI_INTERRUPT = 0, /*!< EXTI interrupt mode */
+ EXTI_EVENT /*!< EXTI event mode */
+} exti_mode_enum;
+
+/* interrupt trigger mode */
+typedef enum {
+ EXTI_TRIG_RISING = 0, /*!< EXTI rising edge trigger */
+ EXTI_TRIG_FALLING, /*!< EXTI falling edge trigger */
+ EXTI_TRIG_BOTH, /*!< EXTI rising edge and falling edge trigger */
+ EXTI_TRIG_NONE /*!< without rising edge or falling edge trigger */
+} exti_trig_type_enum;
+
+/* function declarations */
+/* initialization, EXTI lines configuration functions */
+/* deinitialize the EXTI */
+void exti_deinit(void);
+/* enable the configuration of EXTI initialize */
+void exti_init(exti_line_enum linex, exti_mode_enum mode, exti_trig_type_enum trig_type);
+/* enable the interrupts from EXTI line x */
+void exti_interrupt_enable(exti_line_enum linex);
+/* enable the events from EXTI line x */
+void exti_event_enable(exti_line_enum linex);
+/* disable the interrupts from EXTI line x */
+void exti_interrupt_disable(exti_line_enum linex);
+/* disable the events from EXTI line x */
+void exti_event_disable(exti_line_enum linex);
+
+/* interrupt & flag functions */
+/* get EXTI lines pending flag */
+FlagStatus exti_flag_get(exti_line_enum linex);
+/* clear EXTI lines pending flag */
+void exti_flag_clear(exti_line_enum linex);
+/* get EXTI lines flag when the interrupt flag is set */
+FlagStatus exti_interrupt_flag_get(exti_line_enum linex);
+/* clear EXTI lines pending flag */
+void exti_interrupt_flag_clear(exti_line_enum linex);
+/* enable the EXTI software interrupt event */
+void exti_software_interrupt_enable(exti_line_enum linex);
+/* disable the EXTI software interrupt event */
+void exti_software_interrupt_disable(exti_line_enum linex);
+
+#endif /* GD32VF103_EXTI_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h
new file mode 100644
index 0000000000..6a4e7c859f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h
@@ -0,0 +1,313 @@
+/*!
+ \file gd32vf103_fmc.h
+ \brief definitions for the FMC
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-09-18, V1.0.1, firmware for GD32VF103
+ \version 2020-02-20, V1.0.2, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_FMC_H
+#define GD32VF103_FMC_H
+
+#include "gd32vf103.h"
+
+/* FMC and option byte definition */
+#define FMC FMC_BASE /*!< FMC register base address */
+#define OB OB_BASE /*!< option bytes base address */
+
+/* registers definitions */
+#define FMC_WS REG32((FMC) + 0x00U) /*!< FMC wait state register */
+#define FMC_KEY REG32((FMC) + 0x04U) /*!< FMC unlock key register */
+#define FMC_OBKEY REG32((FMC) + 0x08U) /*!< FMC option bytes unlock key register */
+#define FMC_STAT REG32((FMC) + 0x0CU) /*!< FMC status register */
+#define FMC_CTL REG32((FMC) + 0x10U) /*!< FMC control register */
+#define FMC_ADDR REG32((FMC) + 0x14U) /*!< FMC address register */
+#define FMC_OBSTAT REG32((FMC) + 0x1CU) /*!< FMC option bytes status register */
+#define FMC_WP REG32((FMC) + 0x20U) /*!< FMC erase/program protection register */
+#define FMC_PID REG32((FMC) + 0x100U) /*!< FMC product ID register */
+
+#define OB_SPC REG16((OB) + 0x00U) /*!< option byte security protection value */
+#define OB_USER REG16((OB) + 0x02U) /*!< option byte user value*/
+#define OB_WP0 REG16((OB) + 0x08U) /*!< option byte write protection 0 */
+#define OB_WP1 REG16((OB) + 0x0AU) /*!< option byte write protection 1 */
+#define OB_WP2 REG16((OB) + 0x0CU) /*!< option byte write protection 2 */
+#define OB_WP3 REG16((OB) + 0x0EU) /*!< option byte write protection 3 */
+
+/* bits definitions */
+/* FMC_WS */
+#define FMC_WS_WSCNT BITS(0,2) /*!< wait state counter */
+
+/* FMC_KEY */
+#define FMC_KEY_KEY BITS(0,31) /*!< FMC_CTL unlock key bits */
+
+/* FMC_OBKEY */
+#define FMC_OBKEY_OBKEY BITS(0,31) /*!< option bytes unlock key bits */
+
+/* FMC_STAT */
+#define FMC_STAT_BUSY BIT(0) /*!< flash busy flag bit */
+#define FMC_STAT_PGERR BIT(2) /*!< flash program error flag bit */
+#define FMC_STAT_WPERR BIT(4) /*!< erase/program protection error flag bit */
+#define FMC_STAT_ENDF BIT(5) /*!< end of operation flag bit */
+
+/* FMC_CTL */
+#define FMC_CTL_PG BIT(0) /*!< main flash program command bit */
+#define FMC_CTL_PER BIT(1) /*!< main flash page erase command bit */
+#define FMC_CTL_MER BIT(2) /*!< main flash mass erase command bit */
+#define FMC_CTL_OBPG BIT(4) /*!< option bytes program command bit */
+#define FMC_CTL_OBER BIT(5) /*!< option bytes erase command bit */
+#define FMC_CTL_START BIT(6) /*!< send erase command to FMC bit */
+#define FMC_CTL_LK BIT(7) /*!< FMC_CTL lock bit */
+#define FMC_CTL_OBWEN BIT(9) /*!< option bytes erase/program enable bit */
+#define FMC_CTL_ERRIE BIT(10) /*!< error interrupt enable bit */
+#define FMC_CTL_ENDIE BIT(12) /*!< end of operation interrupt enable bit */
+
+/* FMC_ADDR */
+#define FMC_ADDR0_ADDR BITS(0,31) /*!< Flash erase/program command address bits */
+
+/* FMC_OBSTAT */
+#define FMC_OBSTAT_OBERR BIT(0) /*!< option bytes read error bit. */
+#define FMC_OBSTAT_SPC BIT(1) /*!< option bytes security protection code */
+#define FMC_OBSTAT_USER BITS(2,9) /*!< store USER of option bytes block after system reset */
+#define FMC_OBSTAT_DATA BITS(10,25) /*!< store DATA of option bytes block after system reset. */
+
+/* FMC_WP */
+#define FMC_WP_WP BITS(0,31) /*!< store WP of option bytes block after system reset */
+
+/* FMC_WSEN */
+#define FMC_WSEN_WSEN BIT(0) /*!< FMC wait state enable bit */
+
+/* FMC_PID */
+#define FMC_PID_PID BITS(0,31) /*!< product ID bits */
+
+/* constants definitions */
+/* define the FMC bit position and its register index offset */
+#define FMC_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
+#define FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))
+#define FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)
+#define FMC_REGIDX_BITS(regidx, bitpos0, bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))
+#define FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))
+#define FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)
+#define FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)
+#define FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)
+
+/* configuration register */
+#define FMC_STAT_REG_OFFSET 0x0CU /*!< status register offset */
+#define FMC_CTL_REG_OFFSET 0x10U /*!< control register offset */
+#define FMC_OBSTAT_REG_OFFSET 0x1CU /*!< option byte status register offset */
+
+/* fmc state */
+typedef enum
+{
+ FMC_READY, /*!< the operation has been completed */
+ FMC_BUSY, /*!< the operation is in progress */
+ FMC_PGERR, /*!< program error */
+ FMC_WPERR, /*!< erase/program protection error */
+ FMC_TOERR, /*!< timeout error */
+}fmc_state_enum;
+
+/* FMC interrupt enable */
+typedef enum
+{
+ FMC_INT_END = FMC_CTL_ENDIE, /*!< enable FMC end of program interrupt */
+ FMC_INT_ERR = FMC_CTL_ERRIE, /*!< enable FMC error interrupt */
+}fmc_int_enum;
+
+/* FMC flags */
+typedef enum
+{
+ FMC_FLAG_BUSY = FMC_STAT_BUSY, /*!< FMC busy flag */
+ FMC_FLAG_PGERR = FMC_STAT_PGERR, /*!< FMC operation error flag */
+ FMC_FLAG_WPERR = FMC_STAT_WPERR, /*!< FMC erase/program protection error flag */
+ FMC_FLAG_END = FMC_STAT_ENDF, /*!< FMC end of operation flag */
+}fmc_flag_enum;
+
+/* FMC interrupt flags */
+typedef enum
+{
+ FMC_INT_FLAG_PGERR = FMC_STAT_PGERR, /*!< FMC operation error interrupt flag */
+ FMC_INT_FLAG_WPERR = FMC_STAT_WPERR, /*!< FMC erase/program protection error interrupt flag */
+ FMC_INT_FLAG_END = FMC_STAT_ENDF, /*!< FMC end of operation interrupt flag */
+}fmc_interrupt_flag_enum;
+
+/* unlock key */
+#define UNLOCK_KEY0 ((uint32_t)0x45670123U) /*!< unlock key 0 */
+#define UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU) /*!< unlock key 1 */
+
+/* FMC wait state counter */
+#define WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))
+#define WS_WSCNT_0 WS_WSCNT(0) /*!< FMC 0 wait */
+#define WS_WSCNT_1 WS_WSCNT(1) /*!< FMC 1 wait */
+#define WS_WSCNT_2 WS_WSCNT(2) /*!< FMC 2 wait */
+
+/* option bytes software/hardware free watch dog timer */
+#define OB_FWDGT_SW ((uint8_t)0x01U) /*!< software free watchdog */
+#define OB_FWDGT_HW ((uint8_t)0x00U) /*!< hardware free watchdog */
+
+/* option bytes reset or not entering deep sleep mode */
+#define OB_DEEPSLEEP_NRST ((uint8_t)0x02U) /*!< no reset when entering deepsleep mode */
+#define OB_DEEPSLEEP_RST ((uint8_t)0x00U) /*!< generate a reset instead of entering deepsleep mode */
+
+/* option bytes reset or not entering standby mode */
+#define OB_STDBY_NRST ((uint8_t)0x04U) /*!< no reset when entering deepsleep mode */
+#define OB_STDBY_RST ((uint8_t)0x00U) /*!< generate a reset instead of entering standby mode */
+
+/* option bytes boot bank value */
+#define OB_BOOT_B0 ((uint8_t)0x08U) /*!< boot from bank0 */
+
+#define OB_USER_MASK ((uint8_t)0xF0U) /*!< MASK value */
+
+/* read protect configure */
+#define FMC_NSPC ((uint8_t)0xA5U) /*!< no security protection */
+#define FMC_USPC ((uint8_t)0xBBU) /*!< under security protection */
+
+/* OB_SPC */
+#define OB_SPC_SPC ((uint32_t)0x000000FFU) /*!< option byte security protection value */
+#define OB_SPC_SPC_N ((uint32_t)0x0000FF00U) /*!< option byte security protection complement value */
+
+/* OB_USER */
+#define OB_USER_USER ((uint32_t)0x00FF0000U) /*!< user option value */
+#define OB_USER_USER_N ((uint32_t)0xFF000000U) /*!< user option complement value */
+
+/* OB_WP0 */
+#define OB_WP0_WP0 ((uint32_t)0x000000FFU) /*!< FMC write protection option value */
+
+/* OB_WP1 */
+#define OB_WP1_WP1 ((uint32_t)0x0000FF00U) /*!< FMC write protection option complement value */
+
+/* OB_WP2 */
+#define OB_WP2_WP2 ((uint32_t)0x00FF0000U) /*!< FMC write protection option value */
+
+/* OB_WP3 */
+#define OB_WP3_WP3 ((uint32_t)0xFF000000U) /*!< FMC write protection option complement value */
+
+/* option bytes write protection */
+#define OB_WP_0 ((uint32_t)0x00000001U) /*!< erase/program protection of sector 0 */
+#define OB_WP_1 ((uint32_t)0x00000002U) /*!< erase/program protection of sector 1 */
+#define OB_WP_2 ((uint32_t)0x00000004U) /*!< erase/program protection of sector 2 */
+#define OB_WP_3 ((uint32_t)0x00000008U) /*!< erase/program protection of sector 3 */
+#define OB_WP_4 ((uint32_t)0x00000010U) /*!< erase/program protection of sector 4 */
+#define OB_WP_5 ((uint32_t)0x00000020U) /*!< erase/program protection of sector 5 */
+#define OB_WP_6 ((uint32_t)0x00000040U) /*!< erase/program protection of sector 6 */
+#define OB_WP_7 ((uint32_t)0x00000080U) /*!< erase/program protection of sector 7 */
+#define OB_WP_8 ((uint32_t)0x00000100U) /*!< erase/program protection of sector 8 */
+#define OB_WP_9 ((uint32_t)0x00000200U) /*!< erase/program protection of sector 9 */
+#define OB_WP_10 ((uint32_t)0x00000400U) /*!< erase/program protection of sector 10 */
+#define OB_WP_11 ((uint32_t)0x00000800U) /*!< erase/program protection of sector 11 */
+#define OB_WP_12 ((uint32_t)0x00001000U) /*!< erase/program protection of sector 12 */
+#define OB_WP_13 ((uint32_t)0x00002000U) /*!< erase/program protection of sector 13 */
+#define OB_WP_14 ((uint32_t)0x00004000U) /*!< erase/program protection of sector 14 */
+#define OB_WP_15 ((uint32_t)0x00008000U) /*!< erase/program protection of sector 15 */
+#define OB_WP_16 ((uint32_t)0x00010000U) /*!< erase/program protection of sector 16 */
+#define OB_WP_17 ((uint32_t)0x00020000U) /*!< erase/program protection of sector 17 */
+#define OB_WP_18 ((uint32_t)0x00040000U) /*!< erase/program protection of sector 18 */
+#define OB_WP_19 ((uint32_t)0x00080000U) /*!< erase/program protection of sector 19 */
+#define OB_WP_20 ((uint32_t)0x00100000U) /*!< erase/program protection of sector 20 */
+#define OB_WP_21 ((uint32_t)0x00200000U) /*!< erase/program protection of sector 21 */
+#define OB_WP_22 ((uint32_t)0x00400000U) /*!< erase/program protection of sector 22 */
+#define OB_WP_23 ((uint32_t)0x00800000U) /*!< erase/program protection of sector 23 */
+#define OB_WP_24 ((uint32_t)0x01000000U) /*!< erase/program protection of sector 24 */
+#define OB_WP_25 ((uint32_t)0x02000000U) /*!< erase/program protection of sector 25 */
+#define OB_WP_26 ((uint32_t)0x04000000U) /*!< erase/program protection of sector 26 */
+#define OB_WP_27 ((uint32_t)0x08000000U) /*!< erase/program protection of sector 27 */
+#define OB_WP_28 ((uint32_t)0x10000000U) /*!< erase/program protection of sector 28 */
+#define OB_WP_29 ((uint32_t)0x20000000U) /*!< erase/program protection of sector 29 */
+#define OB_WP_30 ((uint32_t)0x40000000U) /*!< erase/program protection of sector 30 */
+#define OB_WP_31 ((uint32_t)0x80000000U) /*!< erase/program protection of sector 31 */
+#define OB_WP_ALL ((uint32_t)0xFFFFFFFFU) /*!< erase/program protection of all sectors */
+
+/* FMC timeout */
+#define FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U) /*!< FMC timeout count value */
+
+/* FMC BANK address */
+#define FMC_SIZE (*(uint16_t *)0x1FFFF7E0U) /*!< FMC size */
+#define SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U) /*!< SRAM size*/
+
+/* function declarations */
+/* FMC main memory programming functions */
+/* set the FMC wait state counter */
+void fmc_wscnt_set(uint32_t wscnt);
+/* unlock the main FMC operation */
+void fmc_unlock(void);
+/* lock the main FMC operation */
+void fmc_lock(void);
+/* FMC erase page */
+fmc_state_enum fmc_page_erase(uint32_t page_address);
+/* FMC erase whole chip */
+fmc_state_enum fmc_mass_erase(void);
+/* FMC program a word at the corresponding address */
+fmc_state_enum fmc_word_program(uint32_t address, uint32_t data);
+/* FMC program a half word at the corresponding address */
+fmc_state_enum fmc_halfword_program(uint32_t address, uint16_t data);
+
+/* FMC option bytes programming functions */
+/* unlock the option byte operation */
+void ob_unlock(void);
+/* lock the option byte operation */
+void ob_lock(void);
+/* erase the FMC option byte */
+fmc_state_enum ob_erase(void);
+/* enable write protection */
+fmc_state_enum ob_write_protection_enable(uint32_t ob_wp);
+/* configure security protection */
+fmc_state_enum ob_security_protection_config(uint8_t ob_spc);
+/* program the FMC user option byte */
+fmc_state_enum ob_user_write(uint8_t ob_fwdgt, uint8_t ob_deepsleep, uint8_t ob_stdby, uint8_t ob_boot);
+/* program the FMC data option byte */
+fmc_state_enum ob_data_program(uint32_t address, uint8_t data);
+/* get OB_USER in register FMC_OBSTAT */
+uint8_t ob_user_get(void);
+/* get OB_DATA in register FMC_OBSTAT */
+uint16_t ob_data_get(void);
+/* get the FMC option byte write protection */
+uint32_t ob_write_protection_get(void);
+/* get FMC option byte security protection state */
+FlagStatus ob_spc_get(void);
+
+/* FMC interrupts and flags management functions */
+/* enable FMC interrupt */
+void fmc_interrupt_enable(fmc_int_enum interrupt);
+/* disable FMC interrupt */
+void fmc_interrupt_disable(fmc_int_enum interrupt);
+/* check flag is set or not */
+FlagStatus fmc_flag_get(fmc_flag_enum flag);
+/* clear the FMC flag */
+void fmc_flag_clear(fmc_flag_enum flag);
+/* get FMC interrupt flag state */
+FlagStatus fmc_interrupt_flag_get(fmc_interrupt_flag_enum flag);
+/* clear FMC interrupt flag state */
+void fmc_interrupt_flag_clear(fmc_interrupt_flag_enum flag);
+/* return the FMC state */
+fmc_state_enum fmc_state_get(void);
+/* check FMC ready or not */
+fmc_state_enum fmc_ready_wait(uint32_t timeout);
+
+#endif /* GD32VF103_FMC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h
new file mode 100644
index 0000000000..50a0873ec1
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h
@@ -0,0 +1,105 @@
+/*!
+ \file gd32vf103_fwdgt.h
+ \brief definitions for the FWDGT
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_FWDGT_H
+#define GD32VF103_FWDGT_H
+
+#include "gd32vf103.h"
+
+/* FWDGT definitions */
+#define FWDGT FWDGT_BASE /*!< FWDGT base address */
+
+/* registers definitions */
+#define FWDGT_CTL REG32((FWDGT) + 0x00000000U) /*!< FWDGT control register */
+#define FWDGT_PSC REG32((FWDGT) + 0x00000004U) /*!< FWDGT prescaler register */
+#define FWDGT_RLD REG32((FWDGT) + 0x00000008U) /*!< FWDGT reload register */
+#define FWDGT_STAT REG32((FWDGT) + 0x0000000CU) /*!< FWDGT status register */
+
+/* bits definitions */
+/* FWDGT_CTL */
+#define FWDGT_CTL_CMD BITS(0,15) /*!< FWDGT command value */
+
+/* FWDGT_PSC */
+#define FWDGT_PSC_PSC BITS(0,2) /*!< FWDGT prescaler divider value */
+
+/* FWDGT_RLD */
+#define FWDGT_RLD_RLD BITS(0,11) /*!< FWDGT counter reload value */
+
+/* FWDGT_STAT */
+#define FWDGT_STAT_PUD BIT(0) /*!< FWDGT prescaler divider value update */
+#define FWDGT_STAT_RUD BIT(1) /*!< FWDGT counter reload value update */
+
+/* constants definitions */
+/* psc register value */
+#define PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))
+#define FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0)) /*!< FWDGT prescaler set to 4 */
+#define FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1)) /*!< FWDGT prescaler set to 8 */
+#define FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2)) /*!< FWDGT prescaler set to 16 */
+#define FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3)) /*!< FWDGT prescaler set to 32 */
+#define FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4)) /*!< FWDGT prescaler set to 64 */
+#define FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5)) /*!< FWDGT prescaler set to 128 */
+#define FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6)) /*!< FWDGT prescaler set to 256 */
+
+/* control value */
+#define FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U) /*!< FWDGT_CTL bits write access enable value */
+#define FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U) /*!< FWDGT_CTL bits write access disable value */
+#define FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU) /*!< FWDGT_CTL bits fwdgt counter reload value */
+#define FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU) /*!< FWDGT_CTL bits fwdgt counter enable value */
+
+/* FWDGT timeout value */
+#define FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU) /*!< FWDGT_PSC register write operation state flag timeout */
+#define FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU) /*!< FWDGT_RLD register write operation state flag timeout */
+
+/* FWDGT flag definitions */
+#define FWDGT_FLAG_PUD FWDGT_STAT_PUD /*!< FWDGT prescaler divider value update flag */
+#define FWDGT_FLAG_RUD FWDGT_STAT_RUD /*!< FWDGT counter reload value update flag */
+
+/* function declarations */
+/* enable write access to FWDGT_PSC and FWDGT_RLD */
+void fwdgt_write_enable(void);
+/* disable write access to FWDGT_PSC and FWDGT_RLD */
+void fwdgt_write_disable(void);
+/* start the free watchdog timer counter */
+void fwdgt_enable(void);
+
+/* reload the counter of FWDGT */
+void fwdgt_counter_reload(void);
+/* configure counter reload value, and prescaler divider value */
+ErrStatus fwdgt_config(uint16_t reload_value, uint8_t prescaler_div);
+
+/* get flag state of FWDGT */
+FlagStatus fwdgt_flag_get(uint16_t flag);
+
+#endif /* GD32VF103_FWDGT_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h
new file mode 100644
index 0000000000..7c457ac39b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h
@@ -0,0 +1,422 @@
+/*!
+ \file gd32vf103_gpio.h
+ \brief definitions for the GPIO
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_GPIO_H
+#define GD32VF103_GPIO_H
+
+#include "gd32vf103.h"
+
+/* GPIOx(x=A,B,C,D,E) definitions */
+#define GPIOA (GPIO_BASE + 0x00000000U)
+#define GPIOB (GPIO_BASE + 0x00000400U)
+#define GPIOC (GPIO_BASE + 0x00000800U)
+#define GPIOD (GPIO_BASE + 0x00000C00U)
+#define GPIOE (GPIO_BASE + 0x00001000U)
+
+/* AFIO definitions */
+#define AFIO AFIO_BASE
+
+/* registers definitions */
+
+/* GPIO registers definitions */
+#define GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U) /*!< GPIO port control register 0 */
+#define GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U) /*!< GPIO port control register 1 */
+#define GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U) /*!< GPIO port input status register */
+#define GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU) /*!< GPIO port output control register */
+#define GPIO_BOP(gpiox) REG32((gpiox) + 0x10U) /*!< GPIO port bit operation register */
+#define GPIO_BC(gpiox) REG32((gpiox) + 0x14U) /*!< GPIO bit clear register */
+#define GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U) /*!< GPIO port configuration lock register */
+
+/* AFIO registers definitions */
+#define AFIO_EC REG32(AFIO + 0x00U) /*!< AFIO event control register */
+#define AFIO_PCF0 REG32(AFIO + 0x04U) /*!< AFIO port configuration register 0 */
+#define AFIO_EXTISS0 REG32(AFIO + 0x08U) /*!< AFIO port EXTI sources selection register 0 */
+#define AFIO_EXTISS1 REG32(AFIO + 0x0CU) /*!< AFIO port EXTI sources selection register 1 */
+#define AFIO_EXTISS2 REG32(AFIO + 0x10U) /*!< AFIO port EXTI sources selection register 2 */
+#define AFIO_EXTISS3 REG32(AFIO + 0x14U) /*!< AFIO port EXTI sources selection register 3 */
+#define AFIO_PCF1 REG32(AFIO + 0x1CU) /*!< AFIO port configuration register 1 */
+
+/* bits definitions */
+/* GPIO_CTL0 */
+#define GPIO_CTL0_MD0 BITS(0, 1) /*!< port 0 mode bits */
+#define GPIO_CTL0_CTL0 BITS(2, 3) /*!< pin 0 configuration bits */
+#define GPIO_CTL0_MD1 BITS(4, 5) /*!< port 1 mode bits */
+#define GPIO_CTL0_CTL1 BITS(6, 7) /*!< pin 1 configuration bits */
+#define GPIO_CTL0_MD2 BITS(8, 9) /*!< port 2 mode bits */
+#define GPIO_CTL0_CTL2 BITS(10, 11) /*!< pin 2 configuration bits */
+#define GPIO_CTL0_MD3 BITS(12, 13) /*!< port 3 mode bits */
+#define GPIO_CTL0_CTL3 BITS(14, 15) /*!< pin 3 configuration bits */
+#define GPIO_CTL0_MD4 BITS(16, 17) /*!< port 4 mode bits */
+#define GPIO_CTL0_CTL4 BITS(18, 19) /*!< pin 4 configuration bits */
+#define GPIO_CTL0_MD5 BITS(20, 21) /*!< port 5 mode bits */
+#define GPIO_CTL0_CTL5 BITS(22, 23) /*!< pin 5 configuration bits */
+#define GPIO_CTL0_MD6 BITS(24, 25) /*!< port 6 mode bits */
+#define GPIO_CTL0_CTL6 BITS(26, 27) /*!< pin 6 configuration bits */
+#define GPIO_CTL0_MD7 BITS(28, 29) /*!< port 7 mode bits */
+#define GPIO_CTL0_CTL7 BITS(30, 31) /*!< pin 7 configuration bits */
+
+/* GPIO_CTL1 */
+#define GPIO_CTL1_MD8 BITS(0, 1) /*!< port 8 mode bits */
+#define GPIO_CTL1_CTL8 BITS(2, 3) /*!< pin 8 configuration bits */
+#define GPIO_CTL1_MD9 BITS(4, 5) /*!< port 9 mode bits */
+#define GPIO_CTL1_CTL9 BITS(6, 7) /*!< pin 9 configuration bits */
+#define GPIO_CTL1_MD10 BITS(8, 9) /*!< port 10 mode bits */
+#define GPIO_CTL1_CTL10 BITS(10, 11) /*!< pin 10 configuration bits */
+#define GPIO_CTL1_MD11 BITS(12, 13) /*!< port 11 mode bits */
+#define GPIO_CTL1_CTL11 BITS(14, 15) /*!< pin 11 configuration bits */
+#define GPIO_CTL1_MD12 BITS(16, 17) /*!< port 12 mode bits */
+#define GPIO_CTL1_CTL12 BITS(18, 19) /*!< pin 12 configuration bits */
+#define GPIO_CTL1_MD13 BITS(20, 21) /*!< port 13 mode bits */
+#define GPIO_CTL1_CTL13 BITS(22, 23) /*!< pin 13 configuration bits */
+#define GPIO_CTL1_MD14 BITS(24, 25) /*!< port 14 mode bits */
+#define GPIO_CTL1_CTL14 BITS(26, 27) /*!< pin 14 configuration bits */
+#define GPIO_CTL1_MD15 BITS(28, 29) /*!< port 15 mode bits */
+#define GPIO_CTL1_CTL15 BITS(30, 31) /*!< pin 15 configuration bits */
+
+/* GPIO_ISTAT */
+#define GPIO_ISTAT_ISTAT0 BIT(0) /*!< pin 0 input status */
+#define GPIO_ISTAT_ISTAT1 BIT(1) /*!< pin 1 input status */
+#define GPIO_ISTAT_ISTAT2 BIT(2) /*!< pin 2 input status */
+#define GPIO_ISTAT_ISTAT3 BIT(3) /*!< pin 3 input status */
+#define GPIO_ISTAT_ISTAT4 BIT(4) /*!< pin 4 input status */
+#define GPIO_ISTAT_ISTAT5 BIT(5) /*!< pin 5 input status */
+#define GPIO_ISTAT_ISTAT6 BIT(6) /*!< pin 6 input status */
+#define GPIO_ISTAT_ISTAT7 BIT(7) /*!< pin 7 input status */
+#define GPIO_ISTAT_ISTAT8 BIT(8) /*!< pin 8 input status */
+#define GPIO_ISTAT_ISTAT9 BIT(9) /*!< pin 9 input status */
+#define GPIO_ISTAT_ISTAT10 BIT(10) /*!< pin 10 input status */
+#define GPIO_ISTAT_ISTAT11 BIT(11) /*!< pin 11 input status */
+#define GPIO_ISTAT_ISTAT12 BIT(12) /*!< pin 12 input status */
+#define GPIO_ISTAT_ISTAT13 BIT(13) /*!< pin 13 input status */
+#define GPIO_ISTAT_ISTAT14 BIT(14) /*!< pin 14 input status */
+#define GPIO_ISTAT_ISTAT15 BIT(15) /*!< pin 15 input status */
+
+/* GPIO_OCTL */
+#define GPIO_OCTL_OCTL0 BIT(0) /*!< pin 0 output bit */
+#define GPIO_OCTL_OCTL1 BIT(1) /*!< pin 1 output bit */
+#define GPIO_OCTL_OCTL2 BIT(2) /*!< pin 2 output bit */
+#define GPIO_OCTL_OCTL3 BIT(3) /*!< pin 3 output bit */
+#define GPIO_OCTL_OCTL4 BIT(4) /*!< pin 4 output bit */
+#define GPIO_OCTL_OCTL5 BIT(5) /*!< pin 5 output bit */
+#define GPIO_OCTL_OCTL6 BIT(6) /*!< pin 6 output bit */
+#define GPIO_OCTL_OCTL7 BIT(7) /*!< pin 7 output bit */
+#define GPIO_OCTL_OCTL8 BIT(8) /*!< pin 8 output bit */
+#define GPIO_OCTL_OCTL9 BIT(9) /*!< pin 9 output bit */
+#define GPIO_OCTL_OCTL10 BIT(10) /*!< pin 10 output bit */
+#define GPIO_OCTL_OCTL11 BIT(11) /*!< pin 11 output bit */
+#define GPIO_OCTL_OCTL12 BIT(12) /*!< pin 12 output bit */
+#define GPIO_OCTL_OCTL13 BIT(13) /*!< pin 13 output bit */
+#define GPIO_OCTL_OCTL14 BIT(14) /*!< pin 14 output bit */
+#define GPIO_OCTL_OCTL15 BIT(15) /*!< pin 15 output bit */
+
+/* GPIO_BOP */
+#define GPIO_BOP_BOP0 BIT(0) /*!< pin 0 set bit */
+#define GPIO_BOP_BOP1 BIT(1) /*!< pin 1 set bit */
+#define GPIO_BOP_BOP2 BIT(2) /*!< pin 2 set bit */
+#define GPIO_BOP_BOP3 BIT(3) /*!< pin 3 set bit */
+#define GPIO_BOP_BOP4 BIT(4) /*!< pin 4 set bit */
+#define GPIO_BOP_BOP5 BIT(5) /*!< pin 5 set bit */
+#define GPIO_BOP_BOP6 BIT(6) /*!< pin 6 set bit */
+#define GPIO_BOP_BOP7 BIT(7) /*!< pin 7 set bit */
+#define GPIO_BOP_BOP8 BIT(8) /*!< pin 8 set bit */
+#define GPIO_BOP_BOP9 BIT(9) /*!< pin 9 set bit */
+#define GPIO_BOP_BOP10 BIT(10) /*!< pin 10 set bit */
+#define GPIO_BOP_BOP11 BIT(11) /*!< pin 11 set bit */
+#define GPIO_BOP_BOP12 BIT(12) /*!< pin 12 set bit */
+#define GPIO_BOP_BOP13 BIT(13) /*!< pin 13 set bit */
+#define GPIO_BOP_BOP14 BIT(14) /*!< pin 14 set bit */
+#define GPIO_BOP_BOP15 BIT(15) /*!< pin 15 set bit */
+#define GPIO_BOP_CR0 BIT(16) /*!< pin 0 clear bit */
+#define GPIO_BOP_CR1 BIT(17) /*!< pin 1 clear bit */
+#define GPIO_BOP_CR2 BIT(18) /*!< pin 2 clear bit */
+#define GPIO_BOP_CR3 BIT(19) /*!< pin 3 clear bit */
+#define GPIO_BOP_CR4 BIT(20) /*!< pin 4 clear bit */
+#define GPIO_BOP_CR5 BIT(21) /*!< pin 5 clear bit */
+#define GPIO_BOP_CR6 BIT(22) /*!< pin 6 clear bit */
+#define GPIO_BOP_CR7 BIT(23) /*!< pin 7 clear bit */
+#define GPIO_BOP_CR8 BIT(24) /*!< pin 8 clear bit */
+#define GPIO_BOP_CR9 BIT(25) /*!< pin 9 clear bit */
+#define GPIO_BOP_CR10 BIT(26) /*!< pin 10 clear bit */
+#define GPIO_BOP_CR11 BIT(27) /*!< pin 11 clear bit */
+#define GPIO_BOP_CR12 BIT(28) /*!< pin 12 clear bit */
+#define GPIO_BOP_CR13 BIT(29) /*!< pin 13 clear bit */
+#define GPIO_BOP_CR14 BIT(30) /*!< pin 14 clear bit */
+#define GPIO_BOP_CR15 BIT(31) /*!< pin 15 clear bit */
+
+/* GPIO_BC */
+#define GPIO_BC_CR0 BIT(0) /*!< pin 0 clear bit */
+#define GPIO_BC_CR1 BIT(1) /*!< pin 1 clear bit */
+#define GPIO_BC_CR2 BIT(2) /*!< pin 2 clear bit */
+#define GPIO_BC_CR3 BIT(3) /*!< pin 3 clear bit */
+#define GPIO_BC_CR4 BIT(4) /*!< pin 4 clear bit */
+#define GPIO_BC_CR5 BIT(5) /*!< pin 5 clear bit */
+#define GPIO_BC_CR6 BIT(6) /*!< pin 6 clear bit */
+#define GPIO_BC_CR7 BIT(7) /*!< pin 7 clear bit */
+#define GPIO_BC_CR8 BIT(8) /*!< pin 8 clear bit */
+#define GPIO_BC_CR9 BIT(9) /*!< pin 9 clear bit */
+#define GPIO_BC_CR10 BIT(10) /*!< pin 10 clear bit */
+#define GPIO_BC_CR11 BIT(11) /*!< pin 11 clear bit */
+#define GPIO_BC_CR12 BIT(12) /*!< pin 12 clear bit */
+#define GPIO_BC_CR13 BIT(13) /*!< pin 13 clear bit */
+#define GPIO_BC_CR14 BIT(14) /*!< pin 14 clear bit */
+#define GPIO_BC_CR15 BIT(15) /*!< pin 15 clear bit */
+
+/* GPIO_LOCK */
+#define GPIO_LOCK_LK0 BIT(0) /*!< pin 0 lock bit */
+#define GPIO_LOCK_LK1 BIT(1) /*!< pin 1 lock bit */
+#define GPIO_LOCK_LK2 BIT(2) /*!< pin 2 lock bit */
+#define GPIO_LOCK_LK3 BIT(3) /*!< pin 3 lock bit */
+#define GPIO_LOCK_LK4 BIT(4) /*!< pin 4 lock bit */
+#define GPIO_LOCK_LK5 BIT(5) /*!< pin 5 lock bit */
+#define GPIO_LOCK_LK6 BIT(6) /*!< pin 6 lock bit */
+#define GPIO_LOCK_LK7 BIT(7) /*!< pin 7 lock bit */
+#define GPIO_LOCK_LK8 BIT(8) /*!< pin 8 lock bit */
+#define GPIO_LOCK_LK9 BIT(9) /*!< pin 9 lock bit */
+#define GPIO_LOCK_LK10 BIT(10) /*!< pin 10 lock bit */
+#define GPIO_LOCK_LK11 BIT(11) /*!< pin 11 lock bit */
+#define GPIO_LOCK_LK12 BIT(12) /*!< pin 12 lock bit */
+#define GPIO_LOCK_LK13 BIT(13) /*!< pin 13 lock bit */
+#define GPIO_LOCK_LK14 BIT(14) /*!< pin 14 lock bit */
+#define GPIO_LOCK_LK15 BIT(15) /*!< pin 15 lock bit */
+#define GPIO_LOCK_LKK BIT(16) /*!< pin sequence lock key */
+
+/* AFIO_EC */
+#define AFIO_EC_PIN BITS(0, 3) /*!< event output pin selection */
+#define AFIO_EC_PORT BITS(4, 6) /*!< event output port selection */
+#define AFIO_EC_EOE BIT(7) /*!< event output enable */
+
+/* AFIO_PCF0 */
+#define AFIO_PCF0_SPI0_REMAP BIT(0) /*!< SPI0 remapping */
+#define AFIO_PCF0_I2C0_REMAP BIT(1) /*!< I2C0 remapping */
+#define AFIO_PCF0_USART0_REMAP BIT(2) /*!< USART0 remapping */
+#define AFIO_PCF0_USART1_REMAP BIT(3) /*!< USART1 remapping */
+#define AFIO_PCF0_USART2_REMAP BITS(4, 5) /*!< USART2 remapping */
+#define AFIO_PCF0_TIMER0_REMAP BITS(6, 7) /*!< TIMER0 remapping */
+#define AFIO_PCF0_TIMER1_REMAP BITS(8, 9) /*!< TIMER1 remapping */
+#define AFIO_PCF0_TIMER2_REMAP BITS(10, 11) /*!< TIMER2 remapping */
+#define AFIO_PCF0_TIMER3_REMAP BIT(12) /*!< TIMER3 remapping */
+#define AFIO_PCF0_CAN_REMAP BITS(13, 14) /*!< CAN remapping */
+#define AFIO_PCF0_PD01_REMAP BIT(15) /*!< port D0/port D1 mapping on OSC_IN/OSC_OUT */
+#define AFIO_PCF0_TIMER4CH3_IREMAP BIT(16) /*!< TIMER3 channel3 internal remapping */
+#define AFIO_PCF0_SWJ_CFG BITS(24, 26) /*!< serial wire JTAG configuration */
+#define AFIO_PCF0_SPI2_REMAP BIT(28) /*!< SPI2/I2S2 remapping */
+#define AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29) /*!< TIMER1 internal trigger 1 remapping */
+
+/* AFIO_EXTISS0 */
+#define AFIO_EXTI0_SS BITS(0, 3) /*!< EXTI 0 sources selection */
+#define AFIO_EXTI1_SS BITS(4, 7) /*!< EXTI 1 sources selection */
+#define AFIO_EXTI2_SS BITS(8, 11) /*!< EXTI 2 sources selection */
+#define AFIO_EXTI3_SS BITS(12, 15) /*!< EXTI 3 sources selection */
+
+/* AFIO_EXTISS1 */
+#define AFIO_EXTI4_SS BITS(0, 3) /*!< EXTI 4 sources selection */
+#define AFIO_EXTI5_SS BITS(4, 7) /*!< EXTI 5 sources selection */
+#define AFIO_EXTI6_SS BITS(8, 11) /*!< EXTI 6 sources selection */
+#define AFIO_EXTI7_SS BITS(12, 15) /*!< EXTI 7 sources selection */
+
+/* AFIO_EXTISS2 */
+#define AFIO_EXTI8_SS BITS(0, 3) /*!< EXTI 8 sources selection */
+#define AFIO_EXTI9_SS BITS(4, 7) /*!< EXTI 9 sources selection */
+#define AFIO_EXTI10_SS BITS(8, 11) /*!< EXTI 10 sources selection */
+#define AFIO_EXTI11_SS BITS(12, 15) /*!< EXTI 11 sources selection */
+
+/* AFIO_EXTISS3 */
+#define AFIO_EXTI12_SS BITS(0, 3) /*!< EXTI 12 sources selection */
+#define AFIO_EXTI13_SS BITS(4, 7) /*!< EXTI 13 sources selection */
+#define AFIO_EXTI14_SS BITS(8, 11) /*!< EXTI 14 sources selection */
+#define AFIO_EXTI15_SS BITS(12, 15) /*!< EXTI 15 sources selection */
+
+/* AFIO_PCF1 */
+#define AFIO_PCF1_EXMC_NADV BIT(10) /*!< EXMC_NADV connect/disconnect */
+
+/* constants definitions */
+typedef FlagStatus bit_status;
+
+/* GPIO mode values set */
+#define GPIO_MODE_SET(n, mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))
+#define GPIO_MODE_MASK(n) (0xFU << (4U * (n)))
+
+/* GPIO mode definitions */
+#define GPIO_MODE_AIN ((uint8_t)0x00U) /*!< analog input mode */
+#define GPIO_MODE_IN_FLOATING ((uint8_t)0x04U) /*!< floating input mode */
+#define GPIO_MODE_IPD ((uint8_t)0x28U) /*!< pull-down input mode */
+#define GPIO_MODE_IPU ((uint8_t)0x48U) /*!< pull-up input mode */
+#define GPIO_MODE_OUT_OD ((uint8_t)0x14U) /*!< GPIO output with open-drain */
+#define GPIO_MODE_OUT_PP ((uint8_t)0x10U) /*!< GPIO output with push-pull */
+#define GPIO_MODE_AF_OD ((uint8_t)0x1CU) /*!< AFIO output with open-drain */
+#define GPIO_MODE_AF_PP ((uint8_t)0x18U) /*!< AFIO output with push-pull */
+
+/* GPIO output max speed value */
+#define GPIO_OSPEED_10MHZ ((uint8_t)0x01U) /*!< output max speed 10MHz */
+#define GPIO_OSPEED_2MHZ ((uint8_t)0x02U) /*!< output max speed 2MHz */
+#define GPIO_OSPEED_50MHZ ((uint8_t)0x03U) /*!< output max speed 50MHz */
+
+/* GPIO event output port definitions */
+#define GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U) /*!< event output port A */
+#define GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U) /*!< event output port B */
+#define GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U) /*!< event output port C */
+#define GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U) /*!< event output port D */
+#define GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U) /*!< event output port E */
+
+/* GPIO output port source definitions */
+#define GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U) /*!< output port source A */
+#define GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U) /*!< output port source B */
+#define GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U) /*!< output port source C */
+#define GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U) /*!< output port source D */
+#define GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U) /*!< output port source E */
+
+/* GPIO event output pin definitions */
+#define GPIO_EVENT_PIN_0 ((uint8_t)0x00U) /*!< GPIO event pin 0 */
+#define GPIO_EVENT_PIN_1 ((uint8_t)0x01U) /*!< GPIO event pin 1 */
+#define GPIO_EVENT_PIN_2 ((uint8_t)0x02U) /*!< GPIO event pin 2 */
+#define GPIO_EVENT_PIN_3 ((uint8_t)0x03U) /*!< GPIO event pin 3 */
+#define GPIO_EVENT_PIN_4 ((uint8_t)0x04U) /*!< GPIO event pin 4 */
+#define GPIO_EVENT_PIN_5 ((uint8_t)0x05U) /*!< GPIO event pin 5 */
+#define GPIO_EVENT_PIN_6 ((uint8_t)0x06U) /*!< GPIO event pin 6 */
+#define GPIO_EVENT_PIN_7 ((uint8_t)0x07U) /*!< GPIO event pin 7 */
+#define GPIO_EVENT_PIN_8 ((uint8_t)0x08U) /*!< GPIO event pin 8 */
+#define GPIO_EVENT_PIN_9 ((uint8_t)0x09U) /*!< GPIO event pin 9 */
+#define GPIO_EVENT_PIN_10 ((uint8_t)0x0AU) /*!< GPIO event pin 10 */
+#define GPIO_EVENT_PIN_11 ((uint8_t)0x0BU) /*!< GPIO event pin 11 */
+#define GPIO_EVENT_PIN_12 ((uint8_t)0x0CU) /*!< GPIO event pin 12 */
+#define GPIO_EVENT_PIN_13 ((uint8_t)0x0DU) /*!< GPIO event pin 13 */
+#define GPIO_EVENT_PIN_14 ((uint8_t)0x0EU) /*!< GPIO event pin 14 */
+#define GPIO_EVENT_PIN_15 ((uint8_t)0x0FU) /*!< GPIO event pin 15 */
+
+/* GPIO output pin source definitions */
+#define GPIO_PIN_SOURCE_0 ((uint8_t)0x00U) /*!< GPIO pin source 0 */
+#define GPIO_PIN_SOURCE_1 ((uint8_t)0x01U) /*!< GPIO pin source 1 */
+#define GPIO_PIN_SOURCE_2 ((uint8_t)0x02U) /*!< GPIO pin source 2 */
+#define GPIO_PIN_SOURCE_3 ((uint8_t)0x03U) /*!< GPIO pin source 3 */
+#define GPIO_PIN_SOURCE_4 ((uint8_t)0x04U) /*!< GPIO pin source 4 */
+#define GPIO_PIN_SOURCE_5 ((uint8_t)0x05U) /*!< GPIO pin source 5 */
+#define GPIO_PIN_SOURCE_6 ((uint8_t)0x06U) /*!< GPIO pin source 6 */
+#define GPIO_PIN_SOURCE_7 ((uint8_t)0x07U) /*!< GPIO pin source 7 */
+#define GPIO_PIN_SOURCE_8 ((uint8_t)0x08U) /*!< GPIO pin source 8 */
+#define GPIO_PIN_SOURCE_9 ((uint8_t)0x09U) /*!< GPIO pin source 9 */
+#define GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU) /*!< GPIO pin source 10 */
+#define GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU) /*!< GPIO pin source 11 */
+#define GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU) /*!< GPIO pin source 12 */
+#define GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU) /*!< GPIO pin source 13 */
+#define GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU) /*!< GPIO pin source 14 */
+#define GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU) /*!< GPIO pin source 15 */
+
+/* GPIO pin definitions */
+#define GPIO_PIN_0 BIT(0) /*!< GPIO pin 0 */
+#define GPIO_PIN_1 BIT(1) /*!< GPIO pin 1 */
+#define GPIO_PIN_2 BIT(2) /*!< GPIO pin 2 */
+#define GPIO_PIN_3 BIT(3) /*!< GPIO pin 3 */
+#define GPIO_PIN_4 BIT(4) /*!< GPIO pin 4 */
+#define GPIO_PIN_5 BIT(5) /*!< GPIO pin 5 */
+#define GPIO_PIN_6 BIT(6) /*!< GPIO pin 6 */
+#define GPIO_PIN_7 BIT(7) /*!< GPIO pin 7 */
+#define GPIO_PIN_8 BIT(8) /*!< GPIO pin 8 */
+#define GPIO_PIN_9 BIT(9) /*!< GPIO pin 9 */
+#define GPIO_PIN_10 BIT(10) /*!< GPIO pin 10 */
+#define GPIO_PIN_11 BIT(11) /*!< GPIO pin 11 */
+#define GPIO_PIN_12 BIT(12) /*!< GPIO pin 12 */
+#define GPIO_PIN_13 BIT(13) /*!< GPIO pin 13 */
+#define GPIO_PIN_14 BIT(14) /*!< GPIO pin 14 */
+#define GPIO_PIN_15 BIT(15) /*!< GPIO pin 15 */
+#define GPIO_PIN_ALL BITS(0, 15) /*!< GPIO pin all */
+
+/* GPIO remap definitions */
+#define GPIO_SPI0_REMAP ((uint32_t)0x00000001U) /*!< SPI0 remapping */
+#define GPIO_I2C0_REMAP ((uint32_t)0x00000002U) /*!< I2C0 remapping */
+#define GPIO_USART0_REMAP ((uint32_t)0x00000004U) /*!< USART0 remapping */
+#define GPIO_USART1_REMAP ((uint32_t)0x00000008U) /*!< USART1 remapping */
+#define GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U) /*!< USART2 partial remapping */
+#define GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U) /*!< USART2 full remapping */
+#define GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U) /*!< TIMER0 partial remapping */
+#define GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U) /*!< TIMER0 full remapping */
+#define GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U) /*!< TIMER1 partial remapping */
+#define GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U) /*!< TIMER1 partial remapping */
+#define GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U) /*!< TIMER1 full remapping */
+#define GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U) /*!< TIMER2 partial remapping */
+#define GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U) /*!< TIMER2 full remapping */
+#define GPIO_TIMER3_REMAP ((uint32_t)0x00001000U) /*!< TIMER3 remapping */
+#define GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U) /*!< CAN0 partial remapping */
+#define GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U) /*!< CAN0 full remapping */
+#define GPIO_PD01_REMAP ((uint32_t)0x00008000U) /*!< PD01 remapping */
+#define GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U) /*!< TIMER4 channel3 internal remapping */
+#define GPIO_CAN1_REMAP ((uint32_t)0x00200040U) /*!< CAN1 remapping */
+#define GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U) /*!< JTAG-DP,but without NJTRST */
+#define GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U) /*!< JTAG-DP disabled */
+#define GPIO_SPI2_REMAP ((uint32_t)0x00201100U) /*!< SPI2 remapping */
+#define GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U) /*!< TIMER1 internal trigger 1 remapping */
+#define GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U) /*!< EXMC_NADV connect/disconnect */
+
+/* function declarations */
+/* reset GPIO port */
+void gpio_deinit(uint32_t gpio_periph);
+/* reset alternate function I/O(AFIO) */
+void gpio_afio_deinit(void);
+/* GPIO parameter initialization */
+void gpio_init(uint32_t gpio_periph,uint32_t mode,uint32_t speed,uint32_t pin);
+
+/* set GPIO pin bit */
+void gpio_bit_set(uint32_t gpio_periph, uint32_t pin);
+/* reset GPIO pin bit */
+void gpio_bit_reset(uint32_t gpio_periph, uint32_t pin);
+/* write data to the specified GPIO pin */
+void gpio_bit_write(uint32_t gpio_periph, uint32_t pin, bit_status bit_value);
+/* write data to the specified GPIO port */
+void gpio_port_write(uint32_t gpio_periph, uint16_t data);
+
+/* get GPIO pin input status */
+FlagStatus gpio_input_bit_get(uint32_t gpio_periph, uint32_t pin);
+/* get GPIO port input status */
+uint16_t gpio_input_port_get(uint32_t gpio_periph);
+/* get GPIO pin output status */
+FlagStatus gpio_output_bit_get(uint32_t gpio_periph, uint32_t pin);
+/* get GPIO port output status */
+uint16_t gpio_output_port_get(uint32_t gpio_periph);
+
+/* configure GPIO pin remap */
+void gpio_pin_remap_config(uint32_t remap, ControlStatus newvalue);
+
+/* select GPIO pin exti sources */
+void gpio_exti_source_select(uint8_t output_port, uint8_t output_pin);
+/* configure GPIO pin event output */
+void gpio_event_output_config(uint8_t output_port, uint8_t output_pin);
+/* enable GPIO pin event output */
+void gpio_event_output_enable(void);
+/* disable GPIO pin event output */
+void gpio_event_output_disable(void);
+
+/* lock GPIO pin bit */
+void gpio_pin_lock(uint32_t gpio_periph, uint32_t pin);
+
+#endif /* GD32VF103_GPIO_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h
new file mode 100644
index 0000000000..c14b539c65
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h
@@ -0,0 +1,344 @@
+/*!
+ \file gd32vf103_i2c.h
+ \brief definitions for the I2C
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_I2C_H
+#define GD32VF103_I2C_H
+
+#include "gd32vf103.h"
+
+/* I2Cx(x=0,1) definitions */
+#define I2C0 I2C_BASE /*!< I2C0 base address */
+#define I2C1 (I2C_BASE + 0x00000400U) /*!< I2C1 base address */
+
+/* registers definitions */
+#define I2C_CTL0(i2cx) REG32((i2cx) + 0x00U) /*!< I2C control register 0 */
+#define I2C_CTL1(i2cx) REG32((i2cx) + 0x04U) /*!< I2C control register 1 */
+#define I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U) /*!< I2C slave address register 0*/
+#define I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU) /*!< I2C slave address register */
+#define I2C_DATA(i2cx) REG32((i2cx) + 0x10U) /*!< I2C transfer buffer register */
+#define I2C_STAT0(i2cx) REG32((i2cx) + 0x14U) /*!< I2C transfer status register 0 */
+#define I2C_STAT1(i2cx) REG32((i2cx) + 0x18U) /*!< I2C transfer status register */
+#define I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU) /*!< I2C clock configure register */
+#define I2C_RT(i2cx) REG32((i2cx) + 0x20U) /*!< I2C rise time register */
+#define I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U) /*!< I2C fast-mode-plus configure register */
+/* bits definitions */
+/* I2Cx_CTL0 */
+#define I2C_CTL0_I2CEN BIT(0) /*!< peripheral enable */
+#define I2C_CTL0_SMBEN BIT(1) /*!< SMBus mode */
+#define I2C_CTL0_SMBSEL BIT(3) /*!< SMBus type */
+#define I2C_CTL0_ARPEN BIT(4) /*!< ARP enable */
+#define I2C_CTL0_PECEN BIT(5) /*!< PEC enable */
+#define I2C_CTL0_GCEN BIT(6) /*!< general call enable */
+#define I2C_CTL0_SS BIT(7) /*!< clock stretching disable (slave mode) */
+#define I2C_CTL0_START BIT(8) /*!< start generation */
+#define I2C_CTL0_STOP BIT(9) /*!< stop generation */
+#define I2C_CTL0_ACKEN BIT(10) /*!< acknowledge enable */
+#define I2C_CTL0_POAP BIT(11) /*!< acknowledge/PEC position (for data reception) */
+#define I2C_CTL0_PECTRANS BIT(12) /*!< packet error checking */
+#define I2C_CTL0_SALT BIT(13) /*!< SMBus alert */
+#define I2C_CTL0_SRESET BIT(15) /*!< software reset */
+
+/* I2Cx_CTL1 */
+#define I2C_CTL1_I2CCLK BITS(0,5) /*!< I2CCLK[5:0] bits (peripheral clock frequency) */
+#define I2C_CTL1_ERRIE BIT(8) /*!< error interrupt enable */
+#define I2C_CTL1_EVIE BIT(9) /*!< event interrupt enable */
+#define I2C_CTL1_BUFIE BIT(10) /*!< buffer interrupt enable */
+#define I2C_CTL1_DMAON BIT(11) /*!< DMA requests enable */
+#define I2C_CTL1_DMALST BIT(12) /*!< DMA last transfer */
+
+/* I2Cx_SADDR0 */
+#define I2C_SADDR0_ADDRESS0 BIT(0) /*!< bit 0 of a 10-bit address */
+#define I2C_SADDR0_ADDRESS BITS(1,7) /*!< 7-bit address or bits 7:1 of a 10-bit address */
+#define I2C_SADDR0_ADDRESS_H BITS(8,9) /*!< highest two bits of a 10-bit address */
+#define I2C_SADDR0_ADDFORMAT BIT(15) /*!< address mode for the I2C slave */
+
+/* I2Cx_SADDR1 */
+#define I2C_SADDR1_DUADEN BIT(0) /*!< aual-address mode switch */
+#define I2C_SADDR1_ADDRESS2 BITS(1,7) /*!< second I2C address for the slave in dual-address mode */
+
+/* I2Cx_DATA */
+#define I2C_DATA_TRB BITS(0,7) /*!< 8-bit data register */
+
+/* I2Cx_STAT0 */
+#define I2C_STAT0_SBSEND BIT(0) /*!< start bit (master mode) */
+#define I2C_STAT0_ADDSEND BIT(1) /*!< address sent (master mode)/matched (slave mode) */
+#define I2C_STAT0_BTC BIT(2) /*!< byte transfer finished */
+#define I2C_STAT0_ADD10SEND BIT(3) /*!< 10-bit header sent (master mode) */
+#define I2C_STAT0_STPDET BIT(4) /*!< stop detection (slave mode) */
+#define I2C_STAT0_RBNE BIT(6) /*!< data register not empty (receivers) */
+#define I2C_STAT0_TBE BIT(7) /*!< data register empty (transmitters) */
+#define I2C_STAT0_BERR BIT(8) /*!< bus error */
+#define I2C_STAT0_LOSTARB BIT(9) /*!< arbitration lost (master mode) */
+#define I2C_STAT0_AERR BIT(10) /*!< acknowledge failure */
+#define I2C_STAT0_OUERR BIT(11) /*!< overrun/underrun */
+#define I2C_STAT0_PECERR BIT(12) /*!< PEC error in reception */
+#define I2C_STAT0_SMBTO BIT(14) /*!< timeout signal in SMBus mode */
+#define I2C_STAT0_SMBALT BIT(15) /*!< SMBus alert status */
+
+/* I2Cx_STAT1 */
+#define I2C_STAT1_MASTER BIT(0) /*!< master/slave */
+#define I2C_STAT1_I2CBSY BIT(1) /*!< bus busy */
+#define I2C_STAT1_TR BIT(2) /*!< transmitter/receiver */
+#define I2C_STAT1_RXGC BIT(4) /*!< general call address (slave mode) */
+#define I2C_STAT1_DEFSMB BIT(5) /*!< SMBus device default address (slave mode) */
+#define I2C_STAT1_HSTSMB BIT(6) /*!< SMBus host header (slave mode) */
+#define I2C_STAT1_DUMODF BIT(7) /*!< dual flag (slave mode) */
+#define I2C_STAT1_PECV BITS(8,15) /*!< packet error checking value */
+
+/* I2Cx_CKCFG */
+#define I2C_CKCFG_CLKC BITS(0,11) /*!< clock control register in fast/standard mode (master mode) */
+#define I2C_CKCFG_DTCY BIT(14) /*!< fast mode duty cycle */
+#define I2C_CKCFG_FAST BIT(15) /*!< I2C speed selection in master mode */
+
+/* I2Cx_RT */
+#define I2C_RT_RISETIME BITS(0,5) /*!< maximum rise time in fast/standard mode (Master mode) */
+
+/* I2Cx_FMPCFG */
+#define I2C_FMPCFG_FMPEN BIT(0) /*!< fast mode plus enable bit */
+
+/* constants definitions */
+/* define the I2C bit position and its register index offset */
+#define I2C_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
+#define I2C_REG_VAL(i2cx, offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))
+#define I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)
+#define I2C_REGIDX_BIT2(regidx, bitpos, regidx2, bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16)\
+ | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))
+#define I2C_REG_VAL2(i2cx, offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))
+#define I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)
+
+/* register offset */
+#define I2C_CTL1_REG_OFFSET 0x04U /*!< CTL1 register offset */
+#define I2C_STAT0_REG_OFFSET 0x14U /*!< STAT0 register offset */
+#define I2C_STAT1_REG_OFFSET 0x18U /*!< STAT1 register offset */
+
+/* I2C flags */
+typedef enum {
+ /* flags in STAT0 register */
+ I2C_FLAG_SBSEND = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 0U), /*!< start condition sent out in master mode */
+ I2C_FLAG_ADDSEND = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 1U), /*!< address is sent in master mode or received and matches in slave mode */
+ I2C_FLAG_BTC = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 2U), /*!< byte transmission finishes */
+ I2C_FLAG_ADD10SEND = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 3U), /*!< header of 10-bit address is sent in master mode */
+ I2C_FLAG_STPDET = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 4U), /*!< stop condition detected in slave mode */
+ I2C_FLAG_RBNE = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 6U), /*!< I2C_DATA is not Empty during receiving */
+ I2C_FLAG_TBE = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 7U), /*!< I2C_DATA is empty during transmitting */
+ I2C_FLAG_BERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 8U), /*!< a bus error occurs indication a unexpected start or stop condition on I2C bus */
+ I2C_FLAG_LOSTARB = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 9U), /*!< arbitration lost in master mode */
+ I2C_FLAG_AERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 10U), /*!< acknowledge error */
+ I2C_FLAG_OUERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 11U), /*!< over-run or under-run situation occurs in slave mode */
+ I2C_FLAG_PECERR = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 12U), /*!< PEC error when receiving data */
+ I2C_FLAG_SMBTO = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 14U), /*!< timeout signal in SMBus mode */
+ I2C_FLAG_SMBALT = I2C_REGIDX_BIT(I2C_STAT0_REG_OFFSET, 15U), /*!< SMBus alert status */
+ /* flags in STAT1 register */
+ I2C_FLAG_MASTER = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 0U), /*!< a flag indicating whether I2C block is in master or slave mode */
+ I2C_FLAG_I2CBSY = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 1U), /*!< busy flag */
+ I2C_FLAG_TR = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 2U), /*!< whether the I2C is a transmitter or a receiver */
+ I2C_FLAG_RXGC = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 4U), /*!< general call address (00h) received */
+ I2C_FLAG_DEFSMB = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 5U), /*!< default address of SMBus device */
+ I2C_FLAG_HSTSMB = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 6U), /*!< SMBus host header detected in slave mode */
+ I2C_FLAG_DUMODF = I2C_REGIDX_BIT(I2C_STAT1_REG_OFFSET, 7U), /*!< dual flag in slave mode indicating which address is matched in dual-address mode */
+} i2c_flag_enum;
+
+/* I2C interrupt flags */
+typedef enum {
+ /* interrupt flags in CTL1 register */
+ I2C_INT_FLAG_SBSEND = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 0U), /*!< start condition sent out in master mode interrupt flag */
+ I2C_INT_FLAG_ADDSEND = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 1U), /*!< address is sent in master mode or received and matches in slave mode interrupt flag */
+ I2C_INT_FLAG_BTC = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 2U), /*!< byte transmission finishes */
+ I2C_INT_FLAG_ADD10SEND = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 3U), /*!< header of 10-bit address is sent in master mode interrupt flag */
+ I2C_INT_FLAG_STPDET = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 4U), /*!< stop condition detected in slave mode interrupt flag */
+ I2C_INT_FLAG_RBNE = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 6U), /*!< I2C_DATA is not Empty during receiving interrupt flag */
+ I2C_INT_FLAG_TBE = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 9U,I2C_STAT0_REG_OFFSET, 7U), /*!< I2C_DATA is empty during transmitting interrupt flag */
+ I2C_INT_FLAG_BERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 8U), /*!< a bus error occurs indication a unexpected start or stop condition on I2C bus interrupt flag */
+ I2C_INT_FLAG_LOSTARB = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 9U), /*!< arbitration lost in master mode interrupt flag */
+ I2C_INT_FLAG_AERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 10U), /*!< acknowledge error interrupt flag */
+ I2C_INT_FLAG_OUERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 11U), /*!< over-run or under-run situation occurs in slave mode interrupt flag */
+ I2C_INT_FLAG_PECERR = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 12U), /*!< PEC error when receiving data interrupt flag */
+ I2C_INT_FLAG_SMBTO = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 14U), /*!< timeout signal in SMBus mode interrupt flag */
+ I2C_INT_FLAG_SMBALT = I2C_REGIDX_BIT2(I2C_CTL1_REG_OFFSET, 8U,I2C_STAT0_REG_OFFSET, 15U), /*!< SMBus Alert status interrupt flag */
+} i2c_interrupt_flag_enum;
+
+/* I2C interrupt enable or disable */
+typedef enum {
+ /* interrupt in CTL1 register */
+ I2C_INT_ERR = I2C_REGIDX_BIT(I2C_CTL1_REG_OFFSET, 8U), /*!< error interrupt enable */
+ I2C_INT_EV = I2C_REGIDX_BIT(I2C_CTL1_REG_OFFSET, 9U), /*!< event interrupt enable */
+ I2C_INT_BUF = I2C_REGIDX_BIT(I2C_CTL1_REG_OFFSET, 10U), /*!< buffer interrupt enable */
+} i2c_interrupt_enum;
+
+/* SMBus/I2C mode switch and SMBus type selection */
+#define I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U) /*!< I2C mode */
+#define I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN /*!< SMBus mode */
+
+/* SMBus/I2C mode switch and SMBus type selection */
+#define I2C_SMBUS_DEVICE ((uint32_t)0x00000000U) /*!< SMBus mode device type */
+#define I2C_SMBUS_HOST I2C_CTL0_SMBSEL /*!< SMBus mode host type */
+
+/* I2C transfer direction */
+#define I2C_RECEIVER ((uint32_t)0x00000001U) /*!< receiver */
+#define I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU) /*!< transmitter */
+
+/* whether or not to send an ACK */
+#define I2C_ACK_DISABLE ((uint32_t)0x00000000U) /*!< ACK will be not sent */
+#define I2C_ACK_ENABLE ((uint32_t)0x00000001U) /*!< ACK will be sent */
+
+/* I2C POAP position*/
+#define I2C_ACKPOS_NEXT ((uint32_t)0x00000000U) /*!< ACKEN bit decides whether or not to send ACK for the next byte */
+#define I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U) /*!< ACKEN bit decides whether or not to send ACK or not for the current byte */
+
+/* I2C dual-address mode switch */
+#define I2C_DUADEN_DISABLE ((uint32_t)0x00000000U) /*!< dual-address mode disabled */
+#define I2C_DUADEN_ENABLE ((uint32_t)0x00000001U) /*!< dual-address mode enabled */
+
+/* whether or not to stretch SCL low */
+#define I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U) /*!< SCL stretching is enabled */
+#define I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS /*!< SCL stretching is disabled */
+
+/* whether or not to response to a general call */
+#define I2C_GCEN_ENABLE I2C_CTL0_GCEN /*!< slave will response to a general call */
+#define I2C_GCEN_DISABLE ((uint32_t)0x00000000U) /*!< slave will not response to a general call */
+
+/* software reset I2C */
+#define I2C_SRESET_SET I2C_CTL0_SRESET /*!< I2C is under reset */
+#define I2C_SRESET_RESET ((uint32_t)0x00000000U) /*!< I2C is not under reset */
+
+/* I2C DMA mode configure */
+/* DMA mode switch */
+#define I2C_DMA_ON I2C_CTL1_DMAON /*!< DMA mode enabled */
+#define I2C_DMA_OFF ((uint32_t)0x00000000U) /*!< DMA mode disabled */
+
+/* flag indicating DMA last transfer */
+#define I2C_DMALST_ON I2C_CTL1_DMALST /*!< next DMA EOT is the last transfer */
+#define I2C_DMALST_OFF ((uint32_t)0x00000000U) /*!< next DMA EOT is not the last transfer */
+
+/* I2C PEC configure */
+/* PEC enable */
+#define I2C_PEC_ENABLE I2C_CTL0_PECEN /*!< PEC calculation on */
+#define I2C_PEC_DISABLE ((uint32_t)0x00000000U) /*!< PEC calculation off */
+
+/* PEC transfer */
+#define I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS /*!< transfer PEC */
+#define I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U) /*!< not transfer PEC value */
+
+/* I2C SMBus configure */
+/* issue or not alert through SMBA pin */
+#define I2C_SALTSEND_ENABLE I2C_CTL0_SALT /*!< issue alert through SMBA pin */
+#define I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U) /*!< not issue alert through SMBA */
+
+/* ARP protocol in SMBus switch */
+#define I2C_ARP_ENABLE I2C_CTL0_ARPEN /*!< ARP enable */
+#define I2C_ARP_DISABLE ((uint32_t)0x00000000U) /*!< ARP disable */
+
+/* transmit I2C data */
+#define DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))
+
+/* receive I2C data */
+#define DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)
+
+/* I2C duty cycle in fast mode */
+#define I2C_DTCY_2 ((uint32_t)0x00000000U) /*!< I2C fast mode Tlow/Thigh = 2 */
+#define I2C_DTCY_16_9 I2C_CKCFG_DTCY /*!< I2C fast mode Tlow/Thigh = 16/9 */
+
+/* address mode for the I2C slave */
+#define I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U) /*!< address:7 bits */
+#define I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT /*!< address:10 bits */
+
+/* function declarations */
+/* reset I2C */
+void i2c_deinit(uint32_t i2c_periph);
+/* configure I2C clock */
+void i2c_clock_config(uint32_t i2c_periph, uint32_t clkspeed, uint32_t dutycyc);
+/* configure I2C address */
+void i2c_mode_addr_config(uint32_t i2c_periph, uint32_t mode,uint32_t addformat, uint32_t addr);
+/* SMBus type selection */
+void i2c_smbus_type_config(uint32_t i2c_periph, uint32_t type);
+/* whether or not to send an ACK */
+void i2c_ack_config(uint32_t i2c_periph, uint32_t ack);
+/* configure I2C POAP position */
+void i2c_ackpos_config(uint32_t i2c_periph, uint32_t pos);
+/* master sends slave address */
+void i2c_master_addressing(uint32_t i2c_periph, uint32_t addr,uint32_t trandirection);
+/* enable dual-address mode */
+void i2c_dualaddr_enable(uint32_t i2c_periph, uint32_t dualaddr);
+/* disable dual-address mode */
+void i2c_dualaddr_disable(uint32_t i2c_periph);
+/* enable I2C */
+void i2c_enable(uint32_t i2c_periph);
+/* disable I2C */
+void i2c_disable(uint32_t i2c_periph);
+
+/* generate a START condition on I2C bus */
+void i2c_start_on_bus(uint32_t i2c_periph);
+/* generate a STOP condition on I2C bus */
+void i2c_stop_on_bus(uint32_t i2c_periph);
+/* I2C transmit data function */
+void i2c_data_transmit(uint32_t i2c_periph, uint8_t data);
+/* I2C receive data function */
+uint8_t i2c_data_receive(uint32_t i2c_periph);
+/* enable I2C DMA mode */
+void i2c_dma_enable(uint32_t i2c_periph, uint32_t dmastate);
+/* configure whether next DMA EOT is DMA last transfer or not */
+void i2c_dma_last_transfer_config(uint32_t i2c_periph, uint32_t dmalast);
+/* whether to stretch SCL low when data is not ready in slave mode */
+void i2c_stretch_scl_low_config(uint32_t i2c_periph, uint32_t stretchpara);
+/* whether or not to response to a general call */
+void i2c_slave_response_to_gcall_config(uint32_t i2c_periph, uint32_t gcallpara);
+/* software reset I2C */
+void i2c_software_reset_config(uint32_t i2c_periph, uint32_t sreset);
+
+/* I2C PEC calculation on or off */
+void i2c_pec_enable(uint32_t i2c_periph, uint32_t pecstate);
+/* I2C whether to transfer PEC value */
+void i2c_pec_transfer_enable(uint32_t i2c_periph, uint32_t pecpara);
+/* packet error checking value */
+uint8_t i2c_pec_value_get(uint32_t i2c_periph);
+/* I2C issue alert through SMBA pin */
+void i2c_smbus_issue_alert(uint32_t i2c_periph, uint32_t smbuspara);
+/* I2C ARP protocol in SMBus switch */
+void i2c_smbus_arp_enable(uint32_t i2c_periph, uint32_t arpstate);
+
+/* check I2C flag is set or not */
+FlagStatus i2c_flag_get(uint32_t i2c_periph, i2c_flag_enum flag);
+/* clear I2C flag */
+void i2c_flag_clear(uint32_t i2c_periph, i2c_flag_enum flag);
+/* enable I2C interrupt */
+void i2c_interrupt_enable(uint32_t i2c_periph, i2c_interrupt_enum interrupt);
+/* disable I2C interrupt */
+void i2c_interrupt_disable(uint32_t i2c_periph, i2c_interrupt_enum interrupt);
+/* check I2C interrupt flag */
+FlagStatus i2c_interrupt_flag_get(uint32_t i2c_periph,i2c_interrupt_flag_enum int_flag);
+/* clear I2C interrupt flag */
+void i2c_interrupt_flag_clear(uint32_t i2c_periph,i2c_interrupt_flag_enum int_flag);
+
+#endif /* GD32VF103_I2C_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h
new file mode 100644
index 0000000000..c1833f3b44
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h
@@ -0,0 +1,126 @@
+/*!
+ \file gd32vf103_pmu.h
+ \brief definitions for the PMU
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_PMU_H
+#define GD32VF103_PMU_H
+
+#include "gd32vf103.h"
+
+/* PMU definitions */
+#define PMU PMU_BASE /*!< PMU base address */
+
+/* registers definitions */
+#define PMU_CTL REG32((PMU) + 0x00U) /*!< PMU control register */
+#define PMU_CS REG32((PMU) + 0x04U) /*!< PMU control and status register */
+
+/* bits definitions */
+/* PMU_CTL */
+#define PMU_CTL_LDOLP BIT(0) /*!< LDO low power mode */
+#define PMU_CTL_STBMOD BIT(1) /*!< standby mode */
+#define PMU_CTL_WURST BIT(2) /*!< wakeup flag reset */
+#define PMU_CTL_STBRST BIT(3) /*!< standby flag reset */
+#define PMU_CTL_LVDEN BIT(4) /*!< low voltage detector enable */
+#define PMU_CTL_LVDT BITS(5,7) /*!< low voltage detector threshold */
+#define PMU_CTL_BKPWEN BIT(8) /*!< backup domain write enable */
+
+/* PMU_CS */
+#define PMU_CS_WUF BIT(0) /*!< wakeup flag */
+#define PMU_CS_STBF BIT(1) /*!< standby flag */
+#define PMU_CS_LVDF BIT(2) /*!< low voltage detector status flag */
+#define PMU_CS_WUPEN BIT(8) /*!< wakeup pin enable */
+
+/* constants definitions */
+/* PMU low voltage detector threshold definitions */
+#define CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))
+#define PMU_LVDT_0 CTL_LVDT(0) /*!< voltage threshold is 2.2V */
+#define PMU_LVDT_1 CTL_LVDT(1) /*!< voltage threshold is 2.3V */
+#define PMU_LVDT_2 CTL_LVDT(2) /*!< voltage threshold is 2.4V */
+#define PMU_LVDT_3 CTL_LVDT(3) /*!< voltage threshold is 2.5V */
+#define PMU_LVDT_4 CTL_LVDT(4) /*!< voltage threshold is 2.6V */
+#define PMU_LVDT_5 CTL_LVDT(5) /*!< voltage threshold is 2.7V */
+#define PMU_LVDT_6 CTL_LVDT(6) /*!< voltage threshold is 2.8V */
+#define PMU_LVDT_7 CTL_LVDT(7) /*!< voltage threshold is 2.9V */
+
+/* PMU flag definitions */
+#define PMU_FLAG_WAKEUP PMU_CS_WUF /*!< wakeup flag status */
+#define PMU_FLAG_STANDBY PMU_CS_STBF /*!< standby flag status */
+#define PMU_FLAG_LVD PMU_CS_LVDF /*!< lvd flag status */
+
+/* PMU ldo definitions */
+#define PMU_LDO_NORMAL ((uint32_t)0x00000000U) /*!< LDO normal work when PMU enter deepsleep mode */
+#define PMU_LDO_LOWPOWER PMU_CTL_LDOLP /*!< LDO work at low power status when PMU enter deepsleep mode */
+
+/* PMU flag reset definitions */
+#define PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U) /*!< wakeup flag reset */
+#define PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U) /*!< standby flag reset */
+
+/* PMU command constants definitions */
+#define WFI_CMD ((uint8_t)0x00U) /*!< use WFI command */
+#define WFE_CMD ((uint8_t)0x01U) /*!< use WFE command */
+
+/* function declarations */
+/* reset PMU registers */
+void pmu_deinit(void);
+
+/* select low voltage detector threshold */
+void pmu_lvd_select(uint32_t lvdt_n);
+/* disable PMU lvd */
+void pmu_lvd_disable(void);
+
+/* set PMU mode */
+/* PMU work at sleep mode */
+void pmu_to_sleepmode(uint8_t sleepmodecmd);
+/* PMU work at deepsleep mode */
+void pmu_to_deepsleepmode(uint32_t ldo, uint8_t deepsleepmodecmd);
+/* PMU work at standby mode */
+void pmu_to_standbymode(uint8_t standbymodecmd);
+/* enable PMU wakeup pin */
+void pmu_wakeup_pin_enable(void);
+/* disable PMU wakeup pin */
+void pmu_wakeup_pin_disable(void);
+
+/* backup related functions */
+/* enable write access to the registers in backup domain */
+void pmu_backup_write_enable(void);
+/* disable write access to the registers in backup domain */
+void pmu_backup_write_disable(void);
+
+/* flag functions */
+/* get flag state */
+FlagStatus pmu_flag_get(uint32_t flag);
+/* clear flag bit */
+void pmu_flag_clear(uint32_t flag_reset);
+
+#endif /* GD32VF103_PMU_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h
new file mode 100644
index 0000000000..b14806c477
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h
@@ -0,0 +1,721 @@
+/*!
+ \file gd32vf103_rcu.h
+ \brief definitions for the RCU
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_RCU_H
+#define GD32VF103_RCU_H
+
+#include "gd32vf103.h"
+
+/* RCU definitions */
+#define RCU RCU_BASE
+
+/* registers definitions */
+
+#define RCU_CTL REG32(RCU + 0x00U) /*!< control register */
+#define RCU_CFG0 REG32(RCU + 0x04U) /*!< clock configuration register 0 */
+#define RCU_INT REG32(RCU + 0x08U) /*!< clock interrupt register */
+#define RCU_APB2RST REG32(RCU + 0x0CU) /*!< APB2 reset register */
+#define RCU_APB1RST REG32(RCU + 0x10U) /*!< APB1 reset register */
+#define RCU_AHBEN REG32(RCU + 0x14U) /*!< AHB1 enable register */
+#define RCU_APB2EN REG32(RCU + 0x18U) /*!< APB2 enable register */
+#define RCU_APB1EN REG32(RCU + 0x1CU) /*!< APB1 enable register */
+#define RCU_BDCTL REG32(RCU + 0x20U) /*!< backup domain control register */
+#define RCU_RSTSCK REG32(RCU + 0x24U) /*!< reset source / clock register */
+#define RCU_AHBRST REG32(RCU + 0x28U) /*!< AHB reset register */
+#define RCU_CFG1 REG32(RCU + 0x2CU) /*!< clock configuration register 1 */
+#define RCU_DSV REG32(RCU + 0x34U) /*!< deep-sleep mode voltage register */
+
+
+/* bits definitions */
+/* RCU_CTL */
+#define RCU_CTL_IRC8MEN BIT(0) /*!< internal high speed oscillator enable */
+#define RCU_CTL_IRC8MSTB BIT(1) /*!< IRC8M high speed internal oscillator stabilization flag */
+#define RCU_CTL_IRC8MADJ BITS(3,7) /*!< high speed internal oscillator clock trim adjust value */
+#define RCU_CTL_IRC8MCALIB BITS(8,15) /*!< high speed internal oscillator calibration value register */
+#define RCU_CTL_HXTALEN BIT(16) /*!< external high speed oscillator enable */
+#define RCU_CTL_HXTALSTB BIT(17) /*!< external crystal oscillator clock stabilization flag */
+#define RCU_CTL_HXTALBPS BIT(18) /*!< external crystal oscillator clock bypass mode enable */
+#define RCU_CTL_CKMEN BIT(19) /*!< HXTAL clock monitor enable */
+#define RCU_CTL_PLLEN BIT(24) /*!< PLL enable */
+#define RCU_CTL_PLLSTB BIT(25) /*!< PLL clock stabilization flag */
+#define RCU_CTL_PLL1EN BIT(26) /*!< PLL1 enable */
+#define RCU_CTL_PLL1STB BIT(27) /*!< PLL1 clock stabilization flag */
+#define RCU_CTL_PLL2EN BIT(28) /*!< PLL2 enable */
+#define RCU_CTL_PLL2STB BIT(29) /*!< PLL2 clock stabilization flag */
+
+
+#define RCU_CFG0_SCS BITS(0,1) /*!< system clock switch */
+#define RCU_CFG0_SCSS BITS(2,3) /*!< system clock switch status */
+#define RCU_CFG0_AHBPSC BITS(4,7) /*!< AHB prescaler selection */
+#define RCU_CFG0_APB1PSC BITS(8,10) /*!< APB1 prescaler selection */
+#define RCU_CFG0_APB2PSC BITS(11,13) /*!< APB2 prescaler selection */
+#define RCU_CFG0_ADCPSC BITS(14,15) /*!< ADC prescaler selection */
+#define RCU_CFG0_PLLSEL BIT(16) /*!< PLL clock source selection */
+#define RCU_CFG0_PREDV0_LSB BIT(17) /*!< the LSB of PREDV0 division factor */
+#define RCU_CFG0_PLLMF BITS(18,21) /*!< PLL clock multiplication factor */
+#define RCU_CFG0_USBFSPSC BITS(22,23) /*!< USBFS clock prescaler selection */
+#define RCU_CFG0_CKOUT0SEL BITS(24,27) /*!< CKOUT0 clock source selection */
+#define RCU_CFG0_ADCPSC_2 BIT(28) /*!< bit 2 of ADCPSC */
+#define RCU_CFG0_PLLMF_4 BIT(29) /*!< bit 4 of PLLMF */
+
+/* RCU_INT */
+#define RCU_INT_IRC40KSTBIF BIT(0) /*!< IRC40K stabilization interrupt flag */
+#define RCU_INT_LXTALSTBIF BIT(1) /*!< LXTAL stabilization interrupt flag */
+#define RCU_INT_IRC8MSTBIF BIT(2) /*!< IRC8M stabilization interrupt flag */
+#define RCU_INT_HXTALSTBIF BIT(3) /*!< HXTAL stabilization interrupt flag */
+#define RCU_INT_PLLSTBIF BIT(4) /*!< PLL stabilization interrupt flag */
+#define RCU_INT_PLL1STBIF BIT(5) /*!< PLL1 stabilization interrupt flag */
+#define RCU_INT_PLL2STBIF BIT(6) /*!< PLL2 stabilization interrupt flag */
+#define RCU_INT_CKMIF BIT(7) /*!< HXTAL clock stuck interrupt flag */
+#define RCU_INT_IRC40KSTBIE BIT(8) /*!< IRC40K stabilization interrupt enable */
+#define RCU_INT_LXTALSTBIE BIT(9) /*!< LXTAL stabilization interrupt enable */
+#define RCU_INT_IRC8MSTBIE BIT(10) /*!< IRC8M stabilization interrupt enable */
+#define RCU_INT_HXTALSTBIE BIT(11) /*!< HXTAL stabilization interrupt enable */
+#define RCU_INT_PLLSTBIE BIT(12) /*!< PLL stabilization interrupt enable */
+#define RCU_INT_PLL1STBIE BIT(13) /*!< PLL1 stabilization interrupt enable */
+#define RCU_INT_PLL2STBIE BIT(14) /*!< PLL2 stabilization interrupt enable */
+#define RCU_INT_IRC40KSTBIC BIT(16) /*!< IRC40K stabilization interrupt clear */
+#define RCU_INT_LXTALSTBIC BIT(17) /*!< LXTAL stabilization interrupt clear */
+#define RCU_INT_IRC8MSTBIC BIT(18) /*!< IRC8M stabilization interrupt clear */
+#define RCU_INT_HXTALSTBIC BIT(19) /*!< HXTAL stabilization interrupt clear */
+#define RCU_INT_PLLSTBIC BIT(20) /*!< PLL stabilization interrupt clear */
+#define RCU_INT_PLL1STBIC BIT(21) /*!< PLL1 stabilization interrupt clear */
+#define RCU_INT_PLL2STBIC BIT(22) /*!< PLL2 stabilization interrupt clear */
+#define RCU_INT_CKMIC BIT(23) /*!< HXTAL clock stuck interrupt clear */
+
+/* RCU_APB2RST */
+#define RCU_APB2RST_AFRST BIT(0) /*!< alternate function I/O reset */
+#define RCU_APB2RST_PARST BIT(2) /*!< GPIO port A reset */
+#define RCU_APB2RST_PBRST BIT(3) /*!< GPIO port B reset */
+#define RCU_APB2RST_PCRST BIT(4) /*!< GPIO port C reset */
+#define RCU_APB2RST_PDRST BIT(5) /*!< GPIO port D reset */
+#define RCU_APB2RST_PERST BIT(6) /*!< GPIO port E reset */
+#define RCU_APB2RST_ADC0RST BIT(9) /*!< ADC0 reset */
+#define RCU_APB2RST_ADC1RST BIT(10) /*!< ADC1 reset */
+#define RCU_APB2RST_TIMER0RST BIT(11) /*!< TIMER0 reset */
+#define RCU_APB2RST_SPI0RST BIT(12) /*!< SPI0 reset */
+#define RCU_APB2RST_USART0RST BIT(14) /*!< USART0 reset */
+
+/* RCU_APB1RST */
+#define RCU_APB1RST_TIMER1RST BIT(0) /*!< TIMER1 reset */
+#define RCU_APB1RST_TIMER2RST BIT(1) /*!< TIMER2 reset */
+#define RCU_APB1RST_TIMER3RST BIT(2) /*!< TIMER3 reset */
+#define RCU_APB1RST_TIMER4RST BIT(3) /*!< TIMER4 reset */
+#define RCU_APB1RST_TIMER5RST BIT(4) /*!< TIMER5 reset */
+#define RCU_APB1RST_TIMER6RST BIT(5) /*!< TIMER6 reset */
+
+#define RCU_APB1RST_WWDGTRST BIT(11) /*!< WWDGT reset */
+#define RCU_APB1RST_SPI1RST BIT(14) /*!< SPI1 reset */
+#define RCU_APB1RST_SPI2RST BIT(15) /*!< SPI2 reset */
+#define RCU_APB1RST_USART1RST BIT(17) /*!< USART1 reset */
+#define RCU_APB1RST_USART2RST BIT(18) /*!< USART2 reset */
+#define RCU_APB1RST_UART3RST BIT(19) /*!< UART3 reset */
+#define RCU_APB1RST_UART4RST BIT(20) /*!< UART4 reset */
+#define RCU_APB1RST_I2C0RST BIT(21) /*!< I2C0 reset */
+#define RCU_APB1RST_I2C1RST BIT(22) /*!< I2C1 reset */
+#define RCU_APB1RST_CAN0RST BIT(25) /*!< CAN0 reset */
+#define RCU_APB1RST_CAN1RST BIT(26) /*!< CAN1 reset */
+#define RCU_APB1RST_BKPIRST BIT(27) /*!< backup interface reset */
+#define RCU_APB1RST_PMURST BIT(28) /*!< PMU reset */
+#define RCU_APB1RST_DACRST BIT(29) /*!< DAC reset */
+
+/* RCU_AHBEN */
+#define RCU_AHBEN_DMA0EN BIT(0) /*!< DMA0 clock enable */
+#define RCU_AHBEN_DMA1EN BIT(1) /*!< DMA1 clock enable */
+#define RCU_AHBEN_SRAMSPEN BIT(2) /*!< SRAM clock enable when sleep mode */
+#define RCU_AHBEN_FMCSPEN BIT(4) /*!< FMC clock enable when sleep mode */
+#define RCU_AHBEN_CRCEN BIT(6) /*!< CRC clock enable */
+#define RCU_AHBEN_EXMCEN BIT(8) /*!< EXMC clock enable */
+#define RCU_AHBEN_USBFSEN BIT(12) /*!< USBFS clock enable */
+
+/* RCU_APB2EN */
+#define RCU_APB2EN_AFEN BIT(0) /*!< alternate function IO clock enable */
+#define RCU_APB2EN_PAEN BIT(2) /*!< GPIO port A clock enable */
+#define RCU_APB2EN_PBEN BIT(3) /*!< GPIO port B clock enable */
+#define RCU_APB2EN_PCEN BIT(4) /*!< GPIO port C clock enable */
+#define RCU_APB2EN_PDEN BIT(5) /*!< GPIO port D clock enable */
+#define RCU_APB2EN_PEEN BIT(6) /*!< GPIO port E clock enable */
+#define RCU_APB2EN_ADC0EN BIT(9) /*!< ADC0 clock enable */
+#define RCU_APB2EN_ADC1EN BIT(10) /*!< ADC1 clock enable */
+#define RCU_APB2EN_TIMER0EN BIT(11) /*!< TIMER0 clock enable */
+#define RCU_APB2EN_SPI0EN BIT(12) /*!< SPI0 clock enable */
+#define RCU_APB2EN_USART0EN BIT(14) /*!< USART0 clock enable */
+
+/* RCU_APB1EN */
+#define RCU_APB1EN_TIMER1EN BIT(0) /*!< TIMER1 clock enable */
+#define RCU_APB1EN_TIMER2EN BIT(1) /*!< TIMER2 clock enable */
+#define RCU_APB1EN_TIMER3EN BIT(2) /*!< TIMER3 clock enable */
+#define RCU_APB1EN_TIMER4EN BIT(3) /*!< TIMER4 clock enable */
+#define RCU_APB1EN_TIMER5EN BIT(4) /*!< TIMER5 clock enable */
+#define RCU_APB1EN_TIMER6EN BIT(5) /*!< TIMER6 clock enable */
+#define RCU_APB1EN_WWDGTEN BIT(11) /*!< WWDGT clock enable */
+#define RCU_APB1EN_SPI1EN BIT(14) /*!< SPI1 clock enable */
+#define RCU_APB1EN_SPI2EN BIT(15) /*!< SPI2 clock enable */
+#define RCU_APB1EN_USART1EN BIT(17) /*!< USART1 clock enable */
+#define RCU_APB1EN_USART2EN BIT(18) /*!< USART2 clock enable */
+#define RCU_APB1EN_UART3EN BIT(19) /*!< UART3 clock enable */
+#define RCU_APB1EN_UART4EN BIT(20) /*!< UART4 clock enable */
+#define RCU_APB1EN_I2C0EN BIT(21) /*!< I2C0 clock enable */
+#define RCU_APB1EN_I2C1EN BIT(22) /*!< I2C1 clock enable */
+#define RCU_APB1EN_CAN0EN BIT(25) /*!< CAN0 clock enable */
+#define RCU_APB1EN_CAN1EN BIT(26) /*!< CAN1 clock enable */
+#define RCU_APB1EN_BKPIEN BIT(27) /*!< backup interface clock enable */
+#define RCU_APB1EN_PMUEN BIT(28) /*!< PMU clock enable */
+#define RCU_APB1EN_DACEN BIT(29) /*!< DAC clock enable */
+
+/* RCU_BDCTL */
+#define RCU_BDCTL_LXTALEN BIT(0) /*!< LXTAL enable */
+#define RCU_BDCTL_LXTALSTB BIT(1) /*!< low speed crystal oscillator stabilization flag */
+#define RCU_BDCTL_LXTALBPS BIT(2) /*!< LXTAL bypass mode enable */
+#define RCU_BDCTL_RTCSRC BITS(8,9) /*!< RTC clock entry selection */
+#define RCU_BDCTL_RTCEN BIT(15) /*!< RTC clock enable */
+#define RCU_BDCTL_BKPRST BIT(16) /*!< backup domain reset */
+
+/* RCU_RSTSCK */
+#define RCU_RSTSCK_IRC40KEN BIT(0) /*!< IRC40K enable */
+#define RCU_RSTSCK_IRC40KSTB BIT(1) /*!< IRC40K stabilization flag */
+#define RCU_RSTSCK_RSTFC BIT(24) /*!< reset flag clear */
+#define RCU_RSTSCK_EPRSTF BIT(26) /*!< external pin reset flag */
+#define RCU_RSTSCK_PORRSTF BIT(27) /*!< power reset flag */
+#define RCU_RSTSCK_SWRSTF BIT(28) /*!< software reset flag */
+#define RCU_RSTSCK_FWDGTRSTF BIT(29) /*!< free watchdog timer reset flag */
+#define RCU_RSTSCK_WWDGTRSTF BIT(30) /*!< window watchdog timer reset flag */
+#define RCU_RSTSCK_LPRSTF BIT(31) /*!< low-power reset flag */
+
+/* RCU_AHBRST */
+#define RCU_AHBRST_USBFSRST BIT(12) /*!< USBFS reset */
+
+/* RCU_CFG1 */
+#define RCU_CFG1_PREDV0 BITS(0,3) /*!< PREDV0 division factor */
+#define RCU_CFG1_PREDV1 BITS(4,7) /*!< PREDV1 division factor */
+#define RCU_CFG1_PLL1MF BITS(8,11) /*!< PLL1 clock multiplication factor */
+#define RCU_CFG1_PLL2MF BITS(12,15) /*!< PLL2 clock multiplication factor */
+#define RCU_CFG1_PREDV0SEL BIT(16) /*!< PREDV0 input clock source selection */
+#define RCU_CFG1_I2S1SEL BIT(17) /*!< I2S1 clock source selection */
+#define RCU_CFG1_I2S2SEL BIT(18) /*!< I2S2 clock source selection */
+
+/* RCU_DSV */
+#define RCU_DSV_DSLPVS BITS(0,1) /*!< deep-sleep mode voltage select */
+
+/* constants definitions */
+/* define the peripheral clock enable bit position and its register index offset */
+#define RCU_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
+#define RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))
+#define RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)
+
+/* register offset */
+/* peripherals enable */
+#define AHBEN_REG_OFFSET 0x14U /*!< AHB enable register offset */
+#define APB1EN_REG_OFFSET 0x1CU /*!< APB1 enable register offset */
+#define APB2EN_REG_OFFSET 0x18U /*!< APB2 enable register offset */
+
+/* peripherals reset */
+#define AHBRST_REG_OFFSET 0x28U /*!< AHB reset register offset */
+#define APB1RST_REG_OFFSET 0x10U /*!< APB1 reset register offset */
+#define APB2RST_REG_OFFSET 0x0CU /*!< APB2 reset register offset */
+#define RSTSCK_REG_OFFSET 0x24U /*!< reset source/clock register offset */
+
+/* clock control */
+#define CTL_REG_OFFSET 0x00U /*!< control register offset */
+#define BDCTL_REG_OFFSET 0x20U /*!< backup domain control register offset */
+
+/* clock stabilization and stuck interrupt */
+#define INT_REG_OFFSET 0x08U /*!< clock interrupt register offset */
+
+/* configuration register */
+#define CFG0_REG_OFFSET 0x04U /*!< clock configuration register 0 offset */
+#define CFG1_REG_OFFSET 0x2CU /*!< clock configuration register 1 offset */
+
+/* peripheral clock enable */
+typedef enum {
+ /* AHB peripherals */
+ RCU_DMA0 = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 0U), /*!< DMA0 clock */
+ RCU_DMA1 = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 1U), /*!< DMA1 clock */
+ RCU_CRC = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 6U), /*!< CRC clock */
+ RCU_EXMC = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 8U), /*!< EXMC clock */
+ RCU_USBFS = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 12U), /*!< USBFS clock */
+ /* APB1 peripherals */
+ RCU_TIMER1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 0U), /*!< TIMER1 clock */
+ RCU_TIMER2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 1U), /*!< TIMER2 clock */
+ RCU_TIMER3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 2U), /*!< TIMER3 clock */
+ RCU_TIMER4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 3U), /*!< TIMER4 clock */
+ RCU_TIMER5 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 4U), /*!< TIMER5 clock */
+ RCU_TIMER6 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 5U), /*!< TIMER6 clock */
+ RCU_WWDGT = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 11U), /*!< WWDGT clock */
+ RCU_SPI1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 14U), /*!< SPI1 clock */
+ RCU_SPI2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 15U), /*!< SPI2 clock */
+ RCU_USART1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 17U), /*!< USART1 clock */
+ RCU_USART2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 18U), /*!< USART2 clock */
+ RCU_UART3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 19U), /*!< UART3 clock */
+ RCU_UART4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 20U), /*!< UART4 clock */
+ RCU_I2C0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 21U), /*!< I2C0 clock */
+ RCU_I2C1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 22U), /*!< I2C1 clock */
+ RCU_CAN0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 25U), /*!< CAN0 clock */
+ RCU_CAN1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 26U), /*!< CAN1 clock */
+ RCU_BKPI = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 27U), /*!< BKPI clock */
+ RCU_PMU = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 28U), /*!< PMU clock */
+ RCU_DAC = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 29U), /*!< DAC clock */
+ RCU_RTC = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 15U), /*!< RTC clock */
+ /* APB2 peripherals */
+ RCU_AF = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 0U), /*!< alternate function clock */
+ RCU_GPIOA = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 2U), /*!< GPIOA clock */
+ RCU_GPIOB = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 3U), /*!< GPIOB clock */
+ RCU_GPIOC = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 4U), /*!< GPIOC clock */
+ RCU_GPIOD = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 5U), /*!< GPIOD clock */
+ RCU_GPIOE = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 6U), /*!< GPIOE clock */
+ RCU_ADC0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 9U), /*!< ADC0 clock */
+ RCU_ADC1 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 10U), /*!< ADC1 clock */
+ RCU_TIMER0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 11U), /*!< TIMER0 clock */
+ RCU_SPI0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 12U), /*!< SPI0 clock */
+ RCU_USART0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 14U), /*!< USART0 clock */
+} rcu_periph_enum;
+
+/* peripheral clock enable when sleep mode*/
+typedef enum {
+/* AHB peripherals */
+ RCU_SRAM_SLP = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 2U), /*!< SRAM clock */
+ RCU_FMC_SLP = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 4U), /*!< FMC clock */
+} rcu_periph_sleep_enum;
+
+/* peripherals reset */
+typedef enum {
+ /* AHB peripherals */
+ RCU_USBFSRST = RCU_REGIDX_BIT(AHBRST_REG_OFFSET, 12U), /*!< USBFS clock reset */
+ /* APB1 peripherals */
+ RCU_TIMER1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 0U), /*!< TIMER1 clock reset */
+ RCU_TIMER2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 1U), /*!< TIMER2 clock reset */
+ RCU_TIMER3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 2U), /*!< TIMER3 clock reset */
+ RCU_TIMER4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 3U), /*!< TIMER4 clock reset */
+ RCU_TIMER5RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 4U), /*!< TIMER5 clock reset */
+ RCU_TIMER6RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 5U), /*!< TIMER6 clock reset */
+ RCU_WWDGTRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 11U), /*!< WWDGT clock reset */
+ RCU_SPI1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 14U), /*!< SPI1 clock reset */
+ RCU_SPI2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 15U), /*!< SPI2 clock reset */
+ RCU_USART1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 17U), /*!< USART1 clock reset */
+ RCU_USART2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 18U), /*!< USART2 clock reset */
+ RCU_UART3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 19U), /*!< UART3 clock reset */
+ RCU_UART4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 20U), /*!< UART4 clock reset */
+ RCU_I2C0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 21U), /*!< I2C0 clock reset */
+ RCU_I2C1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 22U), /*!< I2C1 clock reset */
+ RCU_CAN0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 25U), /*!< CAN0 clock reset */
+ RCU_CAN1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 26U), /*!< CAN1 clock reset */
+ RCU_BKPIRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 27U), /*!< BKPI clock reset */
+ RCU_PMURST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 28U), /*!< PMU clock reset */
+ RCU_DACRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 29U), /*!< DAC clock reset */
+ /* APB2 peripherals */
+ RCU_AFRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 0U), /*!< alternate function clock reset */
+ RCU_GPIOARST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 2U), /*!< GPIOA clock reset */
+ RCU_GPIOBRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 3U), /*!< GPIOB clock reset */
+ RCU_GPIOCRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 4U), /*!< GPIOC clock reset */
+ RCU_GPIODRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 5U), /*!< GPIOD clock reset */
+ RCU_GPIOERST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 6U), /*!< GPIOE clock reset */
+ RCU_ADC0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 9U), /*!< ADC0 clock reset */
+ RCU_ADC1RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 10U), /*!< ADC1 clock reset */
+ RCU_TIMER0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 11U), /*!< TIMER0 clock reset */
+ RCU_SPI0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 12U), /*!< SPI0 clock reset */
+ RCU_USART0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 14U), /*!< USART0 clock reset */
+} rcu_periph_reset_enum;
+
+/* clock stabilization and peripheral reset flags */
+typedef enum {
+ /* clock stabilization flags */
+ RCU_FLAG_IRC8MSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 1U), /*!< IRC8M stabilization flags */
+ RCU_FLAG_HXTALSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 17U), /*!< HXTAL stabilization flags */
+ RCU_FLAG_PLLSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 25U), /*!< PLL stabilization flags */
+ RCU_FLAG_PLL1STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 27U), /*!< PLL1 stabilization flags */
+ RCU_FLAG_PLL2STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 29U), /*!< PLL2 stabilization flags */
+ RCU_FLAG_LXTALSTB = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 1U), /*!< LXTAL stabilization flags */
+ RCU_FLAG_IRC40KSTB = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 1U), /*!< IRC40K stabilization flags */
+ /* reset source flags */
+ RCU_FLAG_EPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 26U), /*!< external PIN reset flags */
+ RCU_FLAG_PORRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 27U), /*!< power reset flags */
+ RCU_FLAG_SWRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 28U), /*!< software reset flags */
+ RCU_FLAG_FWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 29U), /*!< FWDGT reset flags */
+ RCU_FLAG_WWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 30U), /*!< WWDGT reset flags */
+ RCU_FLAG_LPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 31U), /*!< low-power reset flags */
+} rcu_flag_enum;
+
+/* clock stabilization and ckm interrupt flags */
+typedef enum {
+ RCU_INT_FLAG_IRC40KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 0U), /*!< IRC40K stabilization interrupt flag */
+ RCU_INT_FLAG_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 1U), /*!< LXTAL stabilization interrupt flag */
+ RCU_INT_FLAG_IRC8MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 2U), /*!< IRC8M stabilization interrupt flag */
+ RCU_INT_FLAG_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 3U), /*!< HXTAL stabilization interrupt flag */
+ RCU_INT_FLAG_PLLSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 4U), /*!< PLL stabilization interrupt flag */
+ RCU_INT_FLAG_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 5U), /*!< PLL1 stabilization interrupt flag */
+ RCU_INT_FLAG_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 6U), /*!< PLL2 stabilization interrupt flag */
+ RCU_INT_FLAG_CKM = RCU_REGIDX_BIT(INT_REG_OFFSET, 7U), /*!< HXTAL clock stuck interrupt flag */
+} rcu_int_flag_enum;
+
+/* clock stabilization and stuck interrupt flags clear */
+typedef enum {
+ RCU_INT_FLAG_IRC40KSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 16U), /*!< IRC40K stabilization interrupt flags clear */
+ RCU_INT_FLAG_LXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 17U), /*!< LXTAL stabilization interrupt flags clear */
+ RCU_INT_FLAG_IRC8MSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 18U), /*!< IRC8M stabilization interrupt flags clear */
+ RCU_INT_FLAG_HXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 19U), /*!< HXTAL stabilization interrupt flags clear */
+ RCU_INT_FLAG_PLLSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 20U), /*!< PLL stabilization interrupt flags clear */
+ RCU_INT_FLAG_PLL1STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 21U), /*!< PLL1 stabilization interrupt flags clear */
+ RCU_INT_FLAG_PLL2STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 22U), /*!< PLL2 stabilization interrupt flags clear */
+ RCU_INT_FLAG_CKM_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 23U), /*!< CKM interrupt flags clear */
+} rcu_int_flag_clear_enum;
+
+/* clock stabilization interrupt enable or disable */
+typedef enum {
+ RCU_INT_IRC40KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 8U), /*!< IRC40K stabilization interrupt */
+ RCU_INT_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 9U), /*!< LXTAL stabilization interrupt */
+ RCU_INT_IRC8MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 10U), /*!< IRC8M stabilization interrupt */
+ RCU_INT_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 11U), /*!< HXTAL stabilization interrupt */
+ RCU_INT_PLLSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 12U), /*!< PLL stabilization interrupt */
+ RCU_INT_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 13U), /*!< PLL1 stabilization interrupt */
+ RCU_INT_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 14U), /*!< PLL2 stabilization interrupt */
+} rcu_int_enum;
+
+/* oscillator types */
+typedef enum {
+ RCU_HXTAL = RCU_REGIDX_BIT(CTL_REG_OFFSET, 16U), /*!< HXTAL */
+ RCU_LXTAL = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 0U), /*!< LXTAL */
+ RCU_IRC8M = RCU_REGIDX_BIT(CTL_REG_OFFSET, 0U), /*!< IRC8M */
+ RCU_IRC40K = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 0U), /*!< IRC40K */
+ RCU_PLL_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 24U), /*!< PLL */
+ RCU_PLL1_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 26U), /*!< PLL1 */
+ RCU_PLL2_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 28U), /*!< PLL2 */
+} rcu_osci_type_enum;
+
+/* rcu clock frequency */
+typedef enum {
+ CK_SYS = 0, /*!< system clock */
+ CK_AHB, /*!< AHB clock */
+ CK_APB1, /*!< APB1 clock */
+ CK_APB2, /*!< APB2 clock */
+} rcu_clock_freq_enum;
+
+/* RCU_CFG0 register bit define */
+/* system clock source select */
+#define CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))
+#define RCU_CKSYSSRC_IRC8M CFG0_SCS(0) /*!< system clock source select IRC8M */
+#define RCU_CKSYSSRC_HXTAL CFG0_SCS(1) /*!< system clock source select HXTAL */
+#define RCU_CKSYSSRC_PLL CFG0_SCS(2) /*!< system clock source select PLL */
+
+/* system clock source select status */
+#define CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))
+#define RCU_SCSS_IRC8M CFG0_SCSS(0) /*!< system clock source select IRC8M */
+#define RCU_SCSS_HXTAL CFG0_SCSS(1) /*!< system clock source select HXTAL */
+#define RCU_SCSS_PLL CFG0_SCSS(2) /*!< system clock source select PLLP */
+
+/* AHB prescaler selection */
+#define CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))
+#define RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0) /*!< AHB prescaler select CK_SYS */
+#define RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8) /*!< AHB prescaler select CK_SYS/2 */
+#define RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9) /*!< AHB prescaler select CK_SYS/4 */
+#define RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10) /*!< AHB prescaler select CK_SYS/8 */
+#define RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11) /*!< AHB prescaler select CK_SYS/16 */
+#define RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12) /*!< AHB prescaler select CK_SYS/64 */
+#define RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13) /*!< AHB prescaler select CK_SYS/128 */
+#define RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14) /*!< AHB prescaler select CK_SYS/256 */
+#define RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15) /*!< AHB prescaler select CK_SYS/512 */
+
+/* APB1 prescaler selection */
+#define CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))
+#define RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0) /*!< APB1 prescaler select CK_AHB */
+#define RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4) /*!< APB1 prescaler select CK_AHB/2 */
+#define RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5) /*!< APB1 prescaler select CK_AHB/4 */
+#define RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6) /*!< APB1 prescaler select CK_AHB/8 */
+#define RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7) /*!< APB1 prescaler select CK_AHB/16 */
+
+/* APB2 prescaler selection */
+#define CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))
+#define RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0) /*!< APB2 prescaler select CK_AHB */
+#define RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4) /*!< APB2 prescaler select CK_AHB/2 */
+#define RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5) /*!< APB2 prescaler select CK_AHB/4 */
+#define RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6) /*!< APB2 prescaler select CK_AHB/8 */
+#define RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7) /*!< APB2 prescaler select CK_AHB/16 */
+
+/* ADC prescaler select */
+#define RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U) /*!< ADC prescaler select CK_APB2/2 */
+#define RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U) /*!< ADC prescaler select CK_APB2/4 */
+#define RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U) /*!< ADC prescaler select CK_APB2/6 */
+#define RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U) /*!< ADC prescaler select CK_APB2/8 */
+#define RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U) /*!< ADC prescaler select CK_APB2/12 */
+#define RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U) /*!< ADC prescaler select CK_APB2/16 */
+
+/* PLL clock source selection */
+#define RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U) /*!< IRC8M/2 clock selected as source clock of PLL */
+#define RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL /*!< HXTAL clock selected as source clock of PLL */
+
+/* PLL clock multiplication factor */
+#define PLLMF_4 RCU_CFG0_PLLMF_4 /* bit 4 of PLLMF */
+
+#define CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))
+#define RCU_PLL_MUL2 CFG0_PLLMF(0) /*!< PLL source clock multiply by 2 */
+#define RCU_PLL_MUL3 CFG0_PLLMF(1) /*!< PLL source clock multiply by 3 */
+#define RCU_PLL_MUL4 CFG0_PLLMF(2) /*!< PLL source clock multiply by 4 */
+#define RCU_PLL_MUL5 CFG0_PLLMF(3) /*!< PLL source clock multiply by 5 */
+#define RCU_PLL_MUL6 CFG0_PLLMF(4) /*!< PLL source clock multiply by 6 */
+#define RCU_PLL_MUL7 CFG0_PLLMF(5) /*!< PLL source clock multiply by 7 */
+#define RCU_PLL_MUL8 CFG0_PLLMF(6) /*!< PLL source clock multiply by 8 */
+#define RCU_PLL_MUL9 CFG0_PLLMF(7) /*!< PLL source clock multiply by 9 */
+#define RCU_PLL_MUL10 CFG0_PLLMF(8) /*!< PLL source clock multiply by 10 */
+#define RCU_PLL_MUL11 CFG0_PLLMF(9) /*!< PLL source clock multiply by 11 */
+#define RCU_PLL_MUL12 CFG0_PLLMF(10) /*!< PLL source clock multiply by 12 */
+#define RCU_PLL_MUL13 CFG0_PLLMF(11) /*!< PLL source clock multiply by 13 */
+#define RCU_PLL_MUL14 CFG0_PLLMF(12) /*!< PLL source clock multiply by 14 */
+#define RCU_PLL_MUL6_5 CFG0_PLLMF(13) /*!< PLL source clock multiply by 6.5 */
+#define RCU_PLL_MUL16 CFG0_PLLMF(14) /*!< PLL source clock multiply by 16 */
+#define RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0)) /*!< PLL source clock multiply by 17 */
+#define RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1)) /*!< PLL source clock multiply by 18 */
+#define RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2)) /*!< PLL source clock multiply by 19 */
+#define RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3)) /*!< PLL source clock multiply by 20 */
+#define RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4)) /*!< PLL source clock multiply by 21 */
+#define RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5)) /*!< PLL source clock multiply by 22 */
+#define RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6)) /*!< PLL source clock multiply by 23 */
+#define RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7)) /*!< PLL source clock multiply by 24 */
+#define RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8)) /*!< PLL source clock multiply by 25 */
+#define RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9)) /*!< PLL source clock multiply by 26 */
+#define RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10)) /*!< PLL source clock multiply by 27 */
+#define RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11)) /*!< PLL source clock multiply by 28 */
+#define RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12)) /*!< PLL source clock multiply by 29 */
+#define RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13)) /*!< PLL source clock multiply by 30 */
+#define RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14)) /*!< PLL source clock multiply by 31 */
+#define RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15)) /*!< PLL source clock multiply by 32 */
+
+/* USBFS prescaler select */
+#define CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))
+#define RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0) /*!< USBFS prescaler select CK_PLL/1.5 */
+#define RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1) /*!< USBFS prescaler select CK_PLL/1 */
+#define RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2) /*!< USBFS prescaler select CK_PLL/2.5 */
+#define RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3) /*!< USBFS prescaler select CK_PLL/2 */
+
+/* CKOUT0 clock source selection */
+#define CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))
+#define RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0) /*!< no clock selected */
+#define RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4) /*!< system clock selected */
+#define RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5) /*!< internal 8M RC oscillator clock selected */
+#define RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6) /*!< high speed crystal oscillator clock (HXTAL) selected */
+#define RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7) /*!< CK_PLL/2 clock selected */
+#define RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8) /*!< CK_PLL1 clock selected */
+#define RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9) /*!< CK_PLL2/2 clock selected */
+#define RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10) /*!< EXT1 selected */
+#define RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11) /*!< CK_PLL2 clock selected */
+
+/* RTC clock entry selection */
+#define BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))
+#define RCU_RTCSRC_NONE BDCTL_RTCSRC(0) /*!< no clock selected */
+#define RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1) /*!< RTC source clock select LXTAL */
+#define RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2) /*!< RTC source clock select IRC40K */
+#define RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3) /*!< RTC source clock select HXTAL/128 */
+
+/* PREDV0 division factor */
+#define CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))
+#define RCU_PREDV0_DIV1 CFG1_PREDV0(0) /*!< PREDV0 input source clock not divided */
+#define RCU_PREDV0_DIV2 CFG1_PREDV0(1) /*!< PREDV0 input source clock divided by 2 */
+#define RCU_PREDV0_DIV3 CFG1_PREDV0(2) /*!< PREDV0 input source clock divided by 3 */
+#define RCU_PREDV0_DIV4 CFG1_PREDV0(3) /*!< PREDV0 input source clock divided by 4 */
+#define RCU_PREDV0_DIV5 CFG1_PREDV0(4) /*!< PREDV0 input source clock divided by 5 */
+#define RCU_PREDV0_DIV6 CFG1_PREDV0(5) /*!< PREDV0 input source clock divided by 6 */
+#define RCU_PREDV0_DIV7 CFG1_PREDV0(6) /*!< PREDV0 input source clock divided by 7 */
+#define RCU_PREDV0_DIV8 CFG1_PREDV0(7) /*!< PREDV0 input source clock divided by 8 */
+#define RCU_PREDV0_DIV9 CFG1_PREDV0(8) /*!< PREDV0 input source clock divided by 9 */
+#define RCU_PREDV0_DIV10 CFG1_PREDV0(9) /*!< PREDV0 input source clock divided by 10 */
+#define RCU_PREDV0_DIV11 CFG1_PREDV0(10) /*!< PREDV0 input source clock divided by 11 */
+#define RCU_PREDV0_DIV12 CFG1_PREDV0(11) /*!< PREDV0 input source clock divided by 12 */
+#define RCU_PREDV0_DIV13 CFG1_PREDV0(12) /*!< PREDV0 input source clock divided by 13 */
+#define RCU_PREDV0_DIV14 CFG1_PREDV0(13) /*!< PREDV0 input source clock divided by 14 */
+#define RCU_PREDV0_DIV15 CFG1_PREDV0(14) /*!< PREDV0 input source clock divided by 15 */
+#define RCU_PREDV0_DIV16 CFG1_PREDV0(15) /*!< PREDV0 input source clock divided by 16 */
+
+/* PREDV1 division factor */
+#define CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))
+#define RCU_PREDV1_DIV1 CFG1_PREDV1(0) /*!< PREDV1 input source clock not divided */
+#define RCU_PREDV1_DIV2 CFG1_PREDV1(1) /*!< PREDV1 input source clock divided by 2 */
+#define RCU_PREDV1_DIV3 CFG1_PREDV1(2) /*!< PREDV1 input source clock divided by 3 */
+#define RCU_PREDV1_DIV4 CFG1_PREDV1(3) /*!< PREDV1 input source clock divided by 4 */
+#define RCU_PREDV1_DIV5 CFG1_PREDV1(4) /*!< PREDV1 input source clock divided by 5 */
+#define RCU_PREDV1_DIV6 CFG1_PREDV1(5) /*!< PREDV1 input source clock divided by 6 */
+#define RCU_PREDV1_DIV7 CFG1_PREDV1(6) /*!< PREDV1 input source clock divided by 7 */
+#define RCU_PREDV1_DIV8 CFG1_PREDV1(7) /*!< PREDV1 input source clock divided by 8 */
+#define RCU_PREDV1_DIV9 CFG1_PREDV1(8) /*!< PREDV1 input source clock divided by 9 */
+#define RCU_PREDV1_DIV10 CFG1_PREDV1(9) /*!< PREDV1 input source clock divided by 10 */
+#define RCU_PREDV1_DIV11 CFG1_PREDV1(10) /*!< PREDV1 input source clock divided by 11 */
+#define RCU_PREDV1_DIV12 CFG1_PREDV1(11) /*!< PREDV1 input source clock divided by 12 */
+#define RCU_PREDV1_DIV13 CFG1_PREDV1(12) /*!< PREDV1 input source clock divided by 13 */
+#define RCU_PREDV1_DIV14 CFG1_PREDV1(13) /*!< PREDV1 input source clock divided by 14 */
+#define RCU_PREDV1_DIV15 CFG1_PREDV1(14) /*!< PREDV1 input source clock divided by 15 */
+#define RCU_PREDV1_DIV16 CFG1_PREDV1(15) /*!< PREDV1 input source clock divided by 16 */
+
+/* PLL1 clock multiplication factor */
+#define CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))
+#define RCU_PLL1_MUL8 CFG1_PLL1MF(6) /*!< PLL1 source clock multiply by 8 */
+#define RCU_PLL1_MUL9 CFG1_PLL1MF(7) /*!< PLL1 source clock multiply by 9 */
+#define RCU_PLL1_MUL10 CFG1_PLL1MF(8) /*!< PLL1 source clock multiply by 10 */
+#define RCU_PLL1_MUL11 CFG1_PLL1MF(9) /*!< PLL1 source clock multiply by 11 */
+#define RCU_PLL1_MUL12 CFG1_PLL1MF(10) /*!< PLL1 source clock multiply by 12 */
+#define RCU_PLL1_MUL13 CFG1_PLL1MF(11) /*!< PLL1 source clock multiply by 13 */
+#define RCU_PLL1_MUL14 CFG1_PLL1MF(12) /*!< PLL1 source clock multiply by 14 */
+#define RCU_PLL1_MUL15 CFG1_PLL1MF(13) /*!< PLL1 source clock multiply by 15 */
+#define RCU_PLL1_MUL16 CFG1_PLL1MF(14) /*!< PLL1 source clock multiply by 16 */
+#define RCU_PLL1_MUL20 CFG1_PLL1MF(15) /*!< PLL1 source clock multiply by 20 */
+
+/* PLL2 clock multiplication factor */
+#define CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))
+#define RCU_PLL2_MUL8 CFG1_PLL2MF(6) /*!< PLL2 source clock multiply by 8 */
+#define RCU_PLL2_MUL9 CFG1_PLL2MF(7) /*!< PLL2 source clock multiply by 9 */
+#define RCU_PLL2_MUL10 CFG1_PLL2MF(8) /*!< PLL2 source clock multiply by 10 */
+#define RCU_PLL2_MUL11 CFG1_PLL2MF(9) /*!< PLL2 source clock multiply by 11 */
+#define RCU_PLL2_MUL12 CFG1_PLL2MF(10) /*!< PLL2 source clock multiply by 12 */
+#define RCU_PLL2_MUL13 CFG1_PLL2MF(11) /*!< PLL2 source clock multiply by 13 */
+#define RCU_PLL2_MUL14 CFG1_PLL2MF(12) /*!< PLL2 source clock multiply by 14 */
+#define RCU_PLL2_MUL15 CFG1_PLL2MF(13) /*!< PLL2 source clock multiply by 15 */
+#define RCU_PLL2_MUL16 CFG1_PLL2MF(14) /*!< PLL2 source clock multiply by 16 */
+#define RCU_PLL2_MUL20 CFG1_PLL2MF(15) /*!< PLL2 source clock multiply by 20 */
+
+
+/* PREDV0 input clock source selection */
+#define RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U) /*!< HXTAL selected as PREDV0 input source clock */
+#define RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL /*!< CK_PLL1 selected as PREDV0 input source clock */
+
+/* I2S1 clock source selection */
+#define RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U) /*!< system clock selected as I2S1 source clock */
+#define RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL /*!< (CK_PLL2 x 2) selected as I2S1 source clock */
+
+/* I2S2 clock source selection */
+#define RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U) /*!< system clock selected as I2S2 source clock */
+#define RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL /*!< (CK_PLL2 x 2) selected as I2S2 source clock */
+
+
+/* deep-sleep mode voltage */
+#define DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))
+#define RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0) /*!< core voltage is 1.2V in deep-sleep mode */
+#define RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1) /*!< core voltage is 1.1V in deep-sleep mode */
+#define RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2) /*!< core voltage is 1.0V in deep-sleep mode */
+#define RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3) /*!< core voltage is 0.9V in deep-sleep mode */
+
+/* function declarations */
+/* initialization, peripheral clock enable/disable functions */
+/* deinitialize the RCU */
+void rcu_deinit(void);
+/* enable the peripherals clock */
+void rcu_periph_clock_enable(rcu_periph_enum periph);
+/* disable the peripherals clock */
+void rcu_periph_clock_disable(rcu_periph_enum periph);
+/* enable the peripherals clock when sleep mode */
+void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph);
+/* disable the peripherals clock when sleep mode */
+void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph);
+/* reset the peripherals */
+void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset);
+/* disable reset the peripheral */
+void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset);
+/* reset the BKP domain */
+void rcu_bkp_reset_enable(void);
+/* disable the BKP domain reset */
+void rcu_bkp_reset_disable(void);
+
+/* clock configuration functions */
+/* configure the system clock source */
+void rcu_system_clock_source_config(uint32_t ck_sys);
+/* get the system clock source */
+uint32_t rcu_system_clock_source_get(void);
+/* configure the AHB prescaler selection */
+void rcu_ahb_clock_config(uint32_t ck_ahb);
+/* configure the APB1 prescaler selection */
+void rcu_apb1_clock_config(uint32_t ck_apb1);
+/* configure the APB2 prescaler selection */
+void rcu_apb2_clock_config(uint32_t ck_apb2);
+/* configure the CK_OUT0 clock source and divider */
+void rcu_ckout0_config(uint32_t ckout0_src);
+/* configure the PLL clock source selection and PLL multiply factor */
+void rcu_pll_config(uint32_t pll_src, uint32_t pll_mul);
+
+/* configure the PREDV0 division factor and clock source */
+void rcu_predv0_config(uint32_t predv0_source, uint32_t predv0_div);
+/* configure the PREDV1 division factor */
+void rcu_predv1_config(uint32_t predv1_div);
+/* configure the PLL1 clock */
+void rcu_pll1_config(uint32_t pll_mul);
+/* configure the PLL2 clock */
+void rcu_pll2_config(uint32_t pll_mul);
+
+/* peripheral clock configuration functions */
+/* configure the ADC division factor */
+void rcu_adc_clock_config(uint32_t adc_psc);
+/* configure the USBD/USBFS prescaler factor */
+void rcu_usb_clock_config(uint32_t usb_psc);
+/* configure the RTC clock source selection */
+void rcu_rtc_clock_config(uint32_t rtc_clock_source);
+
+/* configure the I2S1 clock source selection */
+void rcu_i2s1_clock_config(uint32_t i2s_clock_source);
+/* configure the I2S2 clock source selection */
+void rcu_i2s2_clock_config(uint32_t i2s_clock_source);
+
+/* interrupt & flag functions */
+/* get the clock stabilization and periphral reset flags */
+FlagStatus rcu_flag_get(rcu_flag_enum flag);
+/* clear the reset flag */
+void rcu_all_reset_flag_clear(void);
+/* get the clock stabilization interrupt and ckm flags */
+FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag);
+/* clear the interrupt flags */
+void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag_clear);
+/* enable the stabilization interrupt */
+void rcu_interrupt_enable(rcu_int_enum stab_int);
+/* disable the stabilization interrupt */
+void rcu_interrupt_disable(rcu_int_enum stab_int);
+
+/* oscillator configuration functions */
+/* wait for oscillator stabilization flags is SET or oscillator startup is timeout */
+ErrStatus rcu_osci_stab_wait(rcu_osci_type_enum osci);
+/* turn on the oscillator */
+void rcu_osci_on(rcu_osci_type_enum osci);
+/* turn off the oscillator */
+void rcu_osci_off(rcu_osci_type_enum osci);
+/* enable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it */
+void rcu_osci_bypass_mode_enable(rcu_osci_type_enum osci);
+/* disable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it */
+void rcu_osci_bypass_mode_disable(rcu_osci_type_enum osci);
+/* enable the HXTAL clock monitor */
+void rcu_hxtal_clock_monitor_enable(void);
+/* disable the HXTAL clock monitor */
+void rcu_hxtal_clock_monitor_disable(void);
+
+/* set the IRC8M adjust value */
+void rcu_irc8m_adjust_value_set(uint32_t irc8m_adjval);
+/* set the deep sleep mode voltage */
+void rcu_deepsleep_voltage_set(uint32_t dsvol);
+
+/* get the system clock, bus and peripheral clock frequency */
+uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock);
+
+#endif /* GD32VF103_RCU_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h
new file mode 100644
index 0000000000..b3e58c1723
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h
@@ -0,0 +1,149 @@
+/*!
+ \file gd32vf103_rtc.h
+ \brief definitions for the RTC
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_RTC_H
+#define GD32VF103_RTC_H
+
+#include "gd32vf103.h"
+
+/* RTC definitions */
+#define RTC RTC_BASE
+
+/* registers definitions */
+#define RTC_INTEN REG32(RTC + 0x00U) /*!< interrupt enable register */
+#define RTC_CTL REG32(RTC + 0x04U) /*!< control register */
+#define RTC_PSCH REG32(RTC + 0x08U) /*!< prescaler high register */
+#define RTC_PSCL REG32(RTC + 0x0CU) /*!< prescaler low register */
+#define RTC_DIVH REG32(RTC + 0x10U) /*!< divider high register */
+#define RTC_DIVL REG32(RTC + 0x14U) /*!< divider low register */
+#define RTC_CNTH REG32(RTC + 0x18U) /*!< counter high register */
+#define RTC_CNTL REG32(RTC + 0x1CU) /*!< counter low register */
+#define RTC_ALRMH REG32(RTC + 0x20U) /*!< alarm high register */
+#define RTC_ALRML REG32(RTC + 0x24U) /*!< alarm low register */
+
+/* bits definitions */
+/* RTC_INTEN */
+#define RTC_INTEN_SCIE BIT(0) /*!< second interrupt enable */
+#define RTC_INTEN_ALRMIE BIT(1) /*!< alarm interrupt enable */
+#define RTC_INTEN_OVIE BIT(2) /*!< overflow interrupt enable */
+
+/* RTC_CTL */
+#define RTC_CTL_SCIF BIT(0) /*!< second interrupt flag */
+#define RTC_CTL_ALRMIF BIT(1) /*!< alarm interrupt flag */
+#define RTC_CTL_OVIF BIT(2) /*!< overflow interrupt flag */
+#define RTC_CTL_RSYNF BIT(3) /*!< registers synchronized flag */
+#define RTC_CTL_CMF BIT(4) /*!< configuration mode flag */
+#define RTC_CTL_LWOFF BIT(5) /*!< last write operation finished flag */
+
+/* RTC_PSCH */
+#define RTC_PSCH_PSC BITS(0,3) /*!< prescaler high value */
+
+/* RTC_PSCL */
+#define RTC_PSCL_PSC BITS(0,15) /*!< prescaler low value */
+
+/* RTC_DIVH */
+#define RTC_DIVH_DIV BITS(0,3) /*!< divider high value */
+
+/* RTC_DIVL */
+#define RTC_DIVL_DIV BITS(0,15) /*!< divider low value */
+
+/* RTC_CNTH */
+#define RTC_CNTH_CNT BITS(0,15) /*!< counter high value */
+
+/* RTC_CNTL */
+#define RTC_CNTL_CNT BITS(0,15) /*!< counter low value */
+
+/* RTC_ALRMH */
+#define RTC_ALRMH_ALRM BITS(0,15) /*!< alarm high value */
+
+/* RTC_ALRML */
+#define RTC_ALRML_ALRM BITS(0,15) /*!< alarm low value */
+
+/* constants definitions */
+/* RTC interrupt enable or disable definitions */
+#define RTC_INT_SECOND RTC_INTEN_SCIE /*!< second interrupt enable */
+#define RTC_INT_ALARM RTC_INTEN_ALRMIE /*!< alarm interrupt enable */
+#define RTC_INT_OVERFLOW RTC_INTEN_OVIE /*!< overflow interrupt enable */
+
+/* RTC interrupt flag definitions */
+#define RTC_INT_FLAG_SECOND RTC_CTL_SCIF /*!< second interrupt flag */
+#define RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF /*!< alarm interrupt flag */
+#define RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF /*!< overflow interrupt flag */
+
+/* RTC flag definitions */
+#define RTC_FLAG_SECOND RTC_CTL_SCIF /*!< second interrupt flag */
+#define RTC_FLAG_ALARM RTC_CTL_ALRMIF /*!< alarm interrupt flag */
+#define RTC_FLAG_OVERFLOW RTC_CTL_OVIF /*!< overflow interrupt flag */
+#define RTC_FLAG_RSYN RTC_CTL_RSYNF /*!< registers synchronized flag */
+#define RTC_FLAG_LWOF RTC_CTL_LWOFF /*!< last write operation finished flag */
+
+/* function declarations */
+/* initialization functions */
+/* enter RTC configuration mode */
+void rtc_configuration_mode_enter(void);
+/* exit RTC configuration mode */
+void rtc_configuration_mode_exit(void);
+/* set RTC counter value */
+void rtc_counter_set(uint32_t cnt);
+/* set RTC prescaler value */
+void rtc_prescaler_set(uint32_t psc);
+
+/* operation functions */
+/* wait RTC last write operation finished flag set */
+void rtc_lwoff_wait(void);
+/* wait RTC registers synchronized flag set */
+void rtc_register_sync_wait(void);
+/* set RTC alarm value */
+void rtc_alarm_config(uint32_t alarm);
+/* get RTC counter value */
+uint32_t rtc_counter_get(void);
+/* get RTC divider value */
+uint32_t rtc_divider_get(void);
+
+/* flag & interrupt functions */
+/* get RTC flag status */
+FlagStatus rtc_flag_get(uint32_t flag);
+/* clear RTC flag status */
+void rtc_flag_clear(uint32_t flag);
+/* get RTC interrupt flag status */
+FlagStatus rtc_interrupt_flag_get(uint32_t flag);
+/* clear RTC interrupt flag status */
+void rtc_interrupt_flag_clear(uint32_t flag);
+/* enable RTC interrupt */
+void rtc_interrupt_enable(uint32_t interrupt);
+/* disable RTC interrupt */
+void rtc_interrupt_disable(uint32_t interrupt);
+
+#endif /* GD32VF103_RTC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h
new file mode 100644
index 0000000000..7c7efd2c58
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h
@@ -0,0 +1,342 @@
+/*!
+ \file gd32vf103_spi.h
+ \brief definitions for the SPI
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_SPI_H
+#define GD32VF103_SPI_H
+
+#include "gd32vf103.h"
+
+/* SPIx(x=0,1,2) definitions */
+#define SPI0 (SPI_BASE + 0x0000F800U)
+#define SPI1 SPI_BASE
+#define SPI2 (SPI_BASE + 0x00000400U)
+
+/* SPI registers definitions */
+#define SPI_CTL0(spix) REG32((spix) + 0x00U) /*!< SPI control register 0 */
+#define SPI_CTL1(spix) REG32((spix) + 0x04U) /*!< SPI control register 1*/
+#define SPI_STAT(spix) REG32((spix) + 0x08U) /*!< SPI status register */
+#define SPI_DATA(spix) REG32((spix) + 0x0CU) /*!< SPI data register */
+#define SPI_CRCPOLY(spix) REG32((spix) + 0x10U) /*!< SPI CRC polynomial register */
+#define SPI_RCRC(spix) REG32((spix) + 0x14U) /*!< SPI receive CRC register */
+#define SPI_TCRC(spix) REG32((spix) + 0x18U) /*!< SPI transmit CRC register */
+#define SPI_I2SCTL(spix) REG32((spix) + 0x1CU) /*!< SPI I2S control register */
+#define SPI_I2SPSC(spix) REG32((spix) + 0x20U) /*!< SPI I2S clock prescaler register */
+
+/* bits definitions */
+/* SPI_CTL0 */
+#define SPI_CTL0_CKPH BIT(0) /*!< clock phase selection*/
+#define SPI_CTL0_CKPL BIT(1) /*!< clock polarity selection */
+#define SPI_CTL0_MSTMOD BIT(2) /*!< master mode enable */
+#define SPI_CTL0_PSC BITS(3,5) /*!< master clock prescaler selection */
+#define SPI_CTL0_SPIEN BIT(6) /*!< SPI enable*/
+#define SPI_CTL0_LF BIT(7) /*!< LSB first mode */
+#define SPI_CTL0_SWNSS BIT(8) /*!< NSS pin selection in NSS software mode */
+#define SPI_CTL0_SWNSSEN BIT(9) /*!< NSS software mode selection */
+#define SPI_CTL0_RO BIT(10) /*!< receive only */
+#define SPI_CTL0_FF16 BIT(11) /*!< data frame size */
+#define SPI_CTL0_CRCNT BIT(12) /*!< CRC next transfer */
+#define SPI_CTL0_CRCEN BIT(13) /*!< CRC calculation enable */
+#define SPI_CTL0_BDOEN BIT(14) /*!< bidirectional transmit output enable*/
+#define SPI_CTL0_BDEN BIT(15) /*!< bidirectional enable */
+
+/* SPI_CTL1 */
+#define SPI_CTL1_DMAREN BIT(0) /*!< receive buffer dma enable */
+#define SPI_CTL1_DMATEN BIT(1) /*!< transmit buffer dma enable */
+#define SPI_CTL1_NSSDRV BIT(2) /*!< drive NSS output */
+#define SPI_CTL1_NSSP BIT(3) /*!< SPI NSS pulse mode enable */
+#define SPI_CTL1_TMOD BIT(4) /*!< SPI TI mode enable */
+#define SPI_CTL1_ERRIE BIT(5) /*!< errors interrupt enable */
+#define SPI_CTL1_RBNEIE BIT(6) /*!< receive buffer not empty interrupt enable */
+#define SPI_CTL1_TBEIE BIT(7) /*!< transmit buffer empty interrupt enable */
+
+/* SPI_STAT */
+#define SPI_STAT_RBNE BIT(0) /*!< receive buffer not empty */
+#define SPI_STAT_TBE BIT(1) /*!< transmit buffer empty */
+#define SPI_STAT_I2SCH BIT(2) /*!< I2S channel side */
+#define SPI_STAT_TXURERR BIT(3) /*!< I2S transmission underrun error bit */
+#define SPI_STAT_CRCERR BIT(4) /*!< SPI CRC error bit */
+#define SPI_STAT_CONFERR BIT(5) /*!< SPI configuration error bit */
+#define SPI_STAT_RXORERR BIT(6) /*!< SPI reception overrun error bit */
+#define SPI_STAT_TRANS BIT(7) /*!< transmitting on-going bit */
+#define SPI_STAT_FERR BIT(8) /*!< format error bit */
+
+/* SPI_DATA */
+#define SPI_DATA_DATA BITS(0,15) /*!< data transfer register */
+
+/* SPI_CRCPOLY */
+#define SPI_CRCPOLY_CRCPOLY BITS(0,15) /*!< CRC polynomial value */
+
+/* SPI_RCRC */
+#define SPI_RCRC_RCRC BITS(0,15) /*!< RX CRC value */
+
+/* SPI_TCRC */
+#define SPI_TCRC_TCRC BITS(0,15) /*!< TX CRC value */
+
+/* SPI_I2SCTL */
+#define SPI_I2SCTL_CHLEN BIT(0) /*!< channel length */
+#define SPI_I2SCTL_DTLEN BITS(1,2) /*!< data length */
+#define SPI_I2SCTL_CKPL BIT(3) /*!< idle state clock polarity */
+#define SPI_I2SCTL_I2SSTD BITS(4,5) /*!< I2S standard selection */
+#define SPI_I2SCTL_PCMSMOD BIT(7) /*!< PCM frame synchronization mode */
+#define SPI_I2SCTL_I2SOPMOD BITS(8,9) /*!< I2S operation mode */
+#define SPI_I2SCTL_I2SEN BIT(10) /*!< I2S enable */
+#define SPI_I2SCTL_I2SSEL BIT(11) /*!< I2S mode selection */
+
+/* SPI_I2SPSC */
+#define SPI_I2SPSC_DIV BITS(0,7) /*!< dividing factor for the prescaler */
+#define SPI_I2SPSC_OF BIT(8) /*!< odd factor for the prescaler */
+#define SPI_I2SPSC_MCKOEN BIT(9) /*!< I2S MCK output enable */
+
+/* constants definitions */
+/* SPI and I2S parameter struct definitions */
+typedef struct
+{
+ uint32_t device_mode; /*!< SPI master or slave */
+ uint32_t trans_mode; /*!< SPI transtype */
+ uint32_t frame_size; /*!< SPI frame size */
+ uint32_t nss; /*!< SPI NSS control by handware or software */
+ uint32_t endian; /*!< SPI big endian or little endian */
+ uint32_t clock_polarity_phase; /*!< SPI clock phase and polarity */
+ uint32_t prescale; /*!< SPI prescale factor */
+}spi_parameter_struct;
+
+/* SPI mode definitions */
+#define SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS) /*!< SPI as master */
+#define SPI_SLAVE ((uint32_t)0x00000000U) /*!< SPI as slave */
+
+/* SPI bidirectional transfer direction */
+#define SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN /*!< SPI work in transmit-only mode */
+#define SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN) /*!< SPI work in receive-only mode */
+
+/* SPI transmit type */
+#define SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U) /*!< SPI receive and send data at fullduplex communication */
+#define SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO /*!< SPI only receive data */
+#define SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN /*!< bidirectional receive data */
+#define SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN) /*!< bidirectional transmit data*/
+
+/* SPI frame size */
+#define SPI_FRAMESIZE_16BIT SPI_CTL0_FF16 /*!< SPI frame size is 16 bits */
+#define SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U) /*!< SPI frame size is 8 bits */
+
+/* SPI NSS control mode */
+#define SPI_NSS_SOFT SPI_CTL0_SWNSSEN /*!< SPI NSS control by software */
+#define SPI_NSS_HARD ((uint32_t)0x00000000U) /*!< SPI NSS control by hardware */
+
+/* SPI transmit way */
+#define SPI_ENDIAN_MSB ((uint32_t)0x00000000U) /*!< SPI transmit way is big endian: transmit MSB first */
+#define SPI_ENDIAN_LSB SPI_CTL0_LF /*!< SPI transmit way is little endian: transmit LSB first */
+
+/* SPI clock phase and polarity */
+#define SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U) /*!< SPI clock polarity is low level and phase is first edge */
+#define SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL /*!< SPI clock polarity is high level and phase is first edge */
+#define SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH /*!< SPI clock polarity is low level and phase is second edge */
+#define SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH) /*!< SPI clock polarity is high level and phase is second edge */
+
+/* SPI clock prescale factor */
+#define CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))
+#define SPI_PSC_2 CTL0_PSC(0) /*!< SPI clock prescale factor is 2 */
+#define SPI_PSC_4 CTL0_PSC(1) /*!< SPI clock prescale factor is 4 */
+#define SPI_PSC_8 CTL0_PSC(2) /*!< SPI clock prescale factor is 8 */
+#define SPI_PSC_16 CTL0_PSC(3) /*!< SPI clock prescale factor is 16 */
+#define SPI_PSC_32 CTL0_PSC(4) /*!< SPI clock prescale factor is 32 */
+#define SPI_PSC_64 CTL0_PSC(5) /*!< SPI clock prescale factor is 64 */
+#define SPI_PSC_128 CTL0_PSC(6) /*!< SPI clock prescale factor is 128 */
+#define SPI_PSC_256 CTL0_PSC(7) /*!< SPI clock prescale factor is 256 */
+
+/* I2S audio sample rate */
+#define I2S_AUDIOSAMPLE_8K ((uint32_t)8000U) /*!< I2S audio sample rate is 8KHz */
+#define I2S_AUDIOSAMPLE_11K ((uint32_t)11025U) /*!< I2S audio sample rate is 11KHz */
+#define I2S_AUDIOSAMPLE_16K ((uint32_t)16000U) /*!< I2S audio sample rate is 16KHz */
+#define I2S_AUDIOSAMPLE_22K ((uint32_t)22050U) /*!< I2S audio sample rate is 22KHz */
+#define I2S_AUDIOSAMPLE_32K ((uint32_t)32000U) /*!< I2S audio sample rate is 32KHz */
+#define I2S_AUDIOSAMPLE_44K ((uint32_t)44100U) /*!< I2S audio sample rate is 44KHz */
+#define I2S_AUDIOSAMPLE_48K ((uint32_t)48000U) /*!< I2S audio sample rate is 48KHz */
+#define I2S_AUDIOSAMPLE_96K ((uint32_t)96000U) /*!< I2S audio sample rate is 96KHz */
+#define I2S_AUDIOSAMPLE_192K ((uint32_t)192000U) /*!< I2S audio sample rate is 192KHz */
+
+/* I2S frame format */
+#define I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))
+#define I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0) /*!< I2S data length is 16 bit and channel length is 16 bit */
+#define I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN) /*!< I2S data length is 16 bit and channel length is 32 bit */
+#define I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN) /*!< I2S data length is 24 bit and channel length is 32 bit */
+#define I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN) /*!< I2S data length is 32 bit and channel length is 32 bit */
+
+/* I2S master clock output */
+#define I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U) /*!< I2S master clock output disable */
+#define I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN /*!< I2S master clock output enable */
+
+/* I2S operation mode */
+#define I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))
+#define I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0) /*!< I2S slave transmit mode */
+#define I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1) /*!< I2S slave receive mode */
+#define I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2) /*!< I2S master transmit mode */
+#define I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3) /*!< I2S master receive mode */
+
+/* I2S standard */
+#define I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))
+#define I2S_STD_PHILLIPS I2SCTL_I2SSTD(0) /*!< I2S phillips standard */
+#define I2S_STD_MSB I2SCTL_I2SSTD(1) /*!< I2S MSB standard */
+#define I2S_STD_LSB I2SCTL_I2SSTD(2) /*!< I2S LSB standard */
+#define I2S_STD_PCMSHORT I2SCTL_I2SSTD(3) /*!< I2S PCM short standard */
+#define I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD) /*!< I2S PCM long standard */
+
+/* I2S clock polarity */
+#define I2S_CKPL_LOW ((uint32_t)0x00000000U) /*!< I2S clock polarity low level */
+#define I2S_CKPL_HIGH SPI_I2SCTL_CKPL /*!< I2S clock polarity high level */
+
+/* SPI DMA constants definitions */
+#define SPI_DMA_TRANSMIT ((uint8_t)0x00U) /*!< SPI transmit data use DMA */
+#define SPI_DMA_RECEIVE ((uint8_t)0x01U) /*!< SPI receive data use DMA */
+
+/* SPI CRC constants definitions */
+#define SPI_CRC_TX ((uint8_t)0x00U) /*!< SPI transmit CRC value */
+#define SPI_CRC_RX ((uint8_t)0x01U) /*!< SPI receive CRC value */
+
+/* SPI/I2S interrupt enable/disable constants definitions */
+#define SPI_I2S_INT_TBE ((uint8_t)0x00U) /*!< transmit buffer empty interrupt */
+#define SPI_I2S_INT_RBNE ((uint8_t)0x01U) /*!< receive buffer not empty interrupt */
+#define SPI_I2S_INT_ERR ((uint8_t)0x02U) /*!< error interrupt */
+
+/* SPI/I2S interrupt flag constants definitions */
+#define SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U) /*!< transmit buffer empty interrupt flag */
+#define SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U) /*!< receive buffer not empty interrupt flag */
+#define SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U) /*!< overrun interrupt flag */
+#define SPI_INT_FLAG_CONFERR ((uint8_t)0x03U) /*!< config error interrupt flag */
+#define SPI_INT_FLAG_CRCERR ((uint8_t)0x04U) /*!< CRC error interrupt flag */
+#define I2S_INT_FLAG_TXURERR ((uint8_t)0x05U) /*!< underrun error interrupt flag */
+#define SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U) /*!< format error interrupt flag */
+
+/* SPI/I2S flag definitions */
+#define SPI_FLAG_RBNE SPI_STAT_RBNE /*!< receive buffer not empty flag */
+#define SPI_FLAG_TBE SPI_STAT_TBE /*!< transmit buffer empty flag */
+#define SPI_FLAG_CRCERR SPI_STAT_CRCERR /*!< CRC error flag */
+#define SPI_FLAG_CONFERR SPI_STAT_CONFERR /*!< mode config error flag */
+#define SPI_FLAG_RXORERR SPI_STAT_RXORERR /*!< receive overrun error flag */
+#define SPI_FLAG_TRANS SPI_STAT_TRANS /*!< transmit on-going flag */
+#define SPI_FLAG_FERR SPI_STAT_FERR /*!< format error interrupt flag */
+#define I2S_FLAG_RBNE SPI_STAT_RBNE /*!< receive buffer not empty flag */
+#define I2S_FLAG_TBE SPI_STAT_TBE /*!< transmit buffer empty flag */
+#define I2S_FLAG_CH SPI_STAT_I2SCH /*!< channel side flag */
+#define I2S_FLAG_TXURERR SPI_STAT_TXURERR /*!< underrun error flag */
+#define I2S_FLAG_RXORERR SPI_STAT_RXORERR /*!< overrun error flag */
+#define I2S_FLAG_TRANS SPI_STAT_TRANS /*!< transmit on-going flag */
+#define I2S_FLAG_FERR SPI_STAT_FERR /*!< format error interrupt flag */
+
+/* function declarations */
+/* SPI/I2S deinitialization and initialization functions */
+/* reset SPI and I2S */
+void spi_i2s_deinit(uint32_t spi_periph);
+/* initialize the parameters of SPI struct with the default values */
+void spi_struct_para_init(spi_parameter_struct* spi_struct);
+/* initialize SPI parameter */
+void spi_init(uint32_t spi_periph, spi_parameter_struct* spi_struct);
+/* enable SPI */
+void spi_enable(uint32_t spi_periph);
+/* disable SPI */
+void spi_disable(uint32_t spi_periph);
+
+/* initialize I2S parameter */
+void i2s_init(uint32_t spi_periph, uint32_t mode, uint32_t standard, uint32_t ckpl);
+/* configure I2S prescaler */
+void i2s_psc_config(uint32_t spi_periph, uint32_t audiosample, uint32_t frameformat, uint32_t mckout);
+/* enable I2S */
+void i2s_enable(uint32_t spi_periph);
+/* disable I2S */
+void i2s_disable(uint32_t spi_periph);
+
+/* NSS functions */
+/* enable SPI NSS output */
+void spi_nss_output_enable(uint32_t spi_periph);
+/* disable SPI NSS output */
+void spi_nss_output_disable(uint32_t spi_periph);
+/* SPI NSS pin high level in software mode */
+void spi_nss_internal_high(uint32_t spi_periph);
+/* SPI NSS pin low level in software mode */
+void spi_nss_internal_low(uint32_t spi_periph);
+
+/* DMA communication */
+/* enable SPI DMA */
+void spi_dma_enable(uint32_t spi_periph, uint8_t dma);
+/* disable SPI DMA */
+void spi_dma_disable(uint32_t spi_periph, uint8_t dma);
+
+/* normal mode communication */
+/* configure SPI/I2S data frame format */
+void spi_i2s_data_frame_format_config(uint32_t spi_periph, uint16_t frame_format);
+/* SPI transmit data */
+void spi_i2s_data_transmit(uint32_t spi_periph, uint16_t data);
+/* SPI receive data */
+uint16_t spi_i2s_data_receive(uint32_t spi_periph);
+/* configure SPI bidirectional transfer direction */
+void spi_bidirectional_transfer_config(uint32_t spi_periph, uint32_t transfer_direction);
+
+/* SPI CRC functions */
+/* set SPI CRC polynomial */
+void spi_crc_polynomial_set(uint32_t spi_periph, uint16_t crc_poly);
+/* get SPI CRC polynomial */
+uint16_t spi_crc_polynomial_get(uint32_t spi_periph);
+/* turn on SPI CRC function */
+void spi_crc_on(uint32_t spi_periph);
+/* turn off SPI CRC function */
+void spi_crc_off(uint32_t spi_periph);
+/* SPI next data is CRC value */
+void spi_crc_next(uint32_t spi_periph);
+/* get SPI CRC send value or receive value */
+uint16_t spi_crc_get(uint32_t spi_periph, uint8_t crc);
+
+/* SPI TI mode functions */
+/* enable SPI TI mode */
+void spi_ti_mode_enable(uint32_t spi_periph);
+/* disable SPI TI mode */
+void spi_ti_mode_disable(uint32_t spi_periph);
+
+/* SPI NSS pulse mode functions */
+/* enable SPI NSS pulse mode */
+void spi_nssp_mode_enable(uint32_t spi_periph);
+/* disable SPI NSS pulse mode */
+void spi_nssp_mode_disable(uint32_t spi_periph);
+/* flag and interrupt functions */
+/* enable SPI and I2S interrupt */
+void spi_i2s_interrupt_enable(uint32_t spi_periph, uint8_t interrupt);
+/* disable SPI and I2S interrupt */
+void spi_i2s_interrupt_disable(uint32_t spi_periph, uint8_t interrupt);
+/* get SPI and I2S interrupt status */
+FlagStatus spi_i2s_interrupt_flag_get(uint32_t spi_periph, uint8_t interrupt);
+/* get SPI and I2S flag status */
+FlagStatus spi_i2s_flag_get(uint32_t spi_periph, uint32_t flag);
+/* clear SPI CRC error flag status */
+void spi_crc_error_clear(uint32_t spi_periph);
+
+#endif /* GD32VF103_SPI_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h
new file mode 100644
index 0000000000..cd52873fed
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h
@@ -0,0 +1,723 @@
+/*!
+ \file gd32vf103_timer.h
+ \brief definitions for the TIMER
+
+ \version 2019-06-05, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_TIMER_H
+#define GD32VF103_TIMER_H
+
+#include "gd32vf103.h"
+
+/* TIMERx(x=0..13) definitions */
+#define TIMER0 (TIMER_BASE + 0x00012C00U)
+#define TIMER1 (TIMER_BASE + 0x00000000U)
+#define TIMER2 (TIMER_BASE + 0x00000400U)
+#define TIMER3 (TIMER_BASE + 0x00000800U)
+#define TIMER4 (TIMER_BASE + 0x00000C00U)
+#define TIMER5 (TIMER_BASE + 0x00001000U)
+#define TIMER6 (TIMER_BASE + 0x00001400U)
+
+/* registers definitions */
+#define TIMER_CTL0(timerx) REG32((timerx) + 0x00U) /*!< TIMER control register 0 */
+#define TIMER_CTL1(timerx) REG32((timerx) + 0x04U) /*!< TIMER control register 1 */
+#define TIMER_SMCFG(timerx) REG32((timerx) + 0x08U) /*!< TIMER slave mode configuration register */
+#define TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU) /*!< TIMER DMA and interrupt enable register */
+#define TIMER_INTF(timerx) REG32((timerx) + 0x10U) /*!< TIMER interrupt flag register */
+#define TIMER_SWEVG(timerx) REG32((timerx) + 0x14U) /*!< TIMER software event generation register */
+#define TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U) /*!< TIMER channel control register 0 */
+#define TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU) /*!< TIMER channel control register 1 */
+#define TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U) /*!< TIMER channel control register 2 */
+#define TIMER_CNT(timerx) REG32((timerx) + 0x24U) /*!< TIMER counter register */
+#define TIMER_PSC(timerx) REG32((timerx) + 0x28U) /*!< TIMER prescaler register */
+#define TIMER_CAR(timerx) REG32((timerx) + 0x2CU) /*!< TIMER counter auto reload register */
+#define TIMER_CREP(timerx) REG32((timerx) + 0x30U) /*!< TIMER counter repetition register */
+#define TIMER_CH0CV(timerx) REG32((timerx) + 0x34U) /*!< TIMER channel 0 capture/compare value register */
+#define TIMER_CH1CV(timerx) REG32((timerx) + 0x38U) /*!< TIMER channel 1 capture/compare value register */
+#define TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU) /*!< TIMER channel 2 capture/compare value register */
+#define TIMER_CH3CV(timerx) REG32((timerx) + 0x40U) /*!< TIMER channel 3 capture/compare value register */
+#define TIMER_CCHP(timerx) REG32((timerx) + 0x44U) /*!< TIMER channel complementary protection register */
+#define TIMER_DMACFG(timerx) REG32((timerx) + 0x48U) /*!< TIMER DMA configuration register */
+#define TIMER_DMATB(timerx) REG32((timerx) + 0x4CU) /*!< TIMER DMA transfer buffer register */
+
+/* bits definitions */
+/* TIMER_CTL0 */
+#define TIMER_CTL0_CEN BIT(0) /*!< TIMER counter enable */
+#define TIMER_CTL0_UPDIS BIT(1) /*!< update disable */
+#define TIMER_CTL0_UPS BIT(2) /*!< update source */
+#define TIMER_CTL0_SPM BIT(3) /*!< single pulse mode */
+#define TIMER_CTL0_DIR BIT(4) /*!< timer counter direction */
+#define TIMER_CTL0_CAM BITS(5,6) /*!< center-aligned mode selection */
+#define TIMER_CTL0_ARSE BIT(7) /*!< auto-reload shadow enable */
+#define TIMER_CTL0_CKDIV BITS(8,9) /*!< clock division */
+
+/* TIMER_CTL1 */
+#define TIMER_CTL1_CCSE BIT(0) /*!< commutation control shadow enable */
+#define TIMER_CTL1_CCUC BIT(2) /*!< commutation control shadow register update control */
+#define TIMER_CTL1_DMAS BIT(3) /*!< DMA request source selection */
+#define TIMER_CTL1_MMC BITS(4,6) /*!< master mode control */
+#define TIMER_CTL1_TI0S BIT(7) /*!< channel 0 trigger input selection(hall mode selection) */
+#define TIMER_CTL1_ISO0 BIT(8) /*!< idle state of channel 0 output */
+#define TIMER_CTL1_ISO0N BIT(9) /*!< idle state of channel 0 complementary output */
+#define TIMER_CTL1_ISO1 BIT(10) /*!< idle state of channel 1 output */
+#define TIMER_CTL1_ISO1N BIT(11) /*!< idle state of channel 1 complementary output */
+#define TIMER_CTL1_ISO2 BIT(12) /*!< idle state of channel 2 output */
+#define TIMER_CTL1_ISO2N BIT(13) /*!< idle state of channel 2 complementary output */
+#define TIMER_CTL1_ISO3 BIT(14) /*!< idle state of channel 3 output */
+
+/* TIMER_SMCFG */
+#define TIMER_SMCFG_SMC BITS(0,2) /*!< slave mode control */
+#define TIMER_SMCFG_TRGS BITS(4,6) /*!< trigger selection */
+#define TIMER_SMCFG_MSM BIT(7) /*!< master-slave mode */
+#define TIMER_SMCFG_ETFC BITS(8,11) /*!< external trigger filter control */
+#define TIMER_SMCFG_ETPSC BITS(12,13) /*!< external trigger prescaler */
+#define TIMER_SMCFG_SMC1 BIT(14) /*!< part of SMC for enable external clock mode 1 */
+#define TIMER_SMCFG_ETP BIT(15) /*!< external trigger polarity */
+
+/* TIMER_DMAINTEN */
+#define TIMER_DMAINTEN_UPIE BIT(0) /*!< update interrupt enable */
+#define TIMER_DMAINTEN_CH0IE BIT(1) /*!< channel 0 capture/compare interrupt enable */
+#define TIMER_DMAINTEN_CH1IE BIT(2) /*!< channel 1 capture/compare interrupt enable */
+#define TIMER_DMAINTEN_CH2IE BIT(3) /*!< channel 2 capture/compare interrupt enable */
+#define TIMER_DMAINTEN_CH3IE BIT(4) /*!< channel 3 capture/compare interrupt enable */
+#define TIMER_DMAINTEN_CMTIE BIT(5) /*!< commutation interrupt request enable */
+#define TIMER_DMAINTEN_TRGIE BIT(6) /*!< trigger interrupt enable */
+#define TIMER_DMAINTEN_BRKIE BIT(7) /*!< break interrupt enable */
+#define TIMER_DMAINTEN_UPDEN BIT(8) /*!< update DMA request enable */
+#define TIMER_DMAINTEN_CH0DEN BIT(9) /*!< channel 0 capture/compare DMA request enable */
+#define TIMER_DMAINTEN_CH1DEN BIT(10) /*!< channel 1 capture/compare DMA request enable */
+#define TIMER_DMAINTEN_CH2DEN BIT(11) /*!< channel 2 capture/compare DMA request enable */
+#define TIMER_DMAINTEN_CH3DEN BIT(12) /*!< channel 3 capture/compare DMA request enable */
+#define TIMER_DMAINTEN_CMTDEN BIT(13) /*!< commutation DMA request enable */
+#define TIMER_DMAINTEN_TRGDEN BIT(14) /*!< trigger DMA request enable */
+
+/* TIMER_INTF */
+#define TIMER_INTF_UPIF BIT(0) /*!< update interrupt flag */
+#define TIMER_INTF_CH0IF BIT(1) /*!< channel 0 capture/compare interrupt flag */
+#define TIMER_INTF_CH1IF BIT(2) /*!< channel 1 capture/compare interrupt flag */
+#define TIMER_INTF_CH2IF BIT(3) /*!< channel 2 capture/compare interrupt flag */
+#define TIMER_INTF_CH3IF BIT(4) /*!< channel 3 capture/compare interrupt flag */
+#define TIMER_INTF_CMTIF BIT(5) /*!< channel commutation interrupt flag */
+#define TIMER_INTF_TRGIF BIT(6) /*!< trigger interrupt flag */
+#define TIMER_INTF_BRKIF BIT(7) /*!< break interrupt flag */
+#define TIMER_INTF_CH0OF BIT(9) /*!< channel 0 over capture flag */
+#define TIMER_INTF_CH1OF BIT(10) /*!< channel 1 over capture flag */
+#define TIMER_INTF_CH2OF BIT(11) /*!< channel 2 over capture flag */
+#define TIMER_INTF_CH3OF BIT(12) /*!< channel 3 over capture flag */
+
+/* TIMER_SWEVG */
+#define TIMER_SWEVG_UPG BIT(0) /*!< update event generate */
+#define TIMER_SWEVG_CH0G BIT(1) /*!< channel 0 capture or compare event generation */
+#define TIMER_SWEVG_CH1G BIT(2) /*!< channel 1 capture or compare event generation */
+#define TIMER_SWEVG_CH2G BIT(3) /*!< channel 2 capture or compare event generation */
+#define TIMER_SWEVG_CH3G BIT(4) /*!< channel 3 capture or compare event generation */
+#define TIMER_SWEVG_CMTG BIT(5) /*!< channel commutation event generation */
+#define TIMER_SWEVG_TRGG BIT(6) /*!< trigger event generation */
+#define TIMER_SWEVG_BRKG BIT(7) /*!< break event generation */
+
+/* TIMER_CHCTL0 */
+/* output compare mode */
+#define TIMER_CHCTL0_CH0MS BITS(0,1) /*!< channel 0 mode selection */
+#define TIMER_CHCTL0_CH0COMFEN BIT(2) /*!< channel 0 output compare fast enable */
+#define TIMER_CHCTL0_CH0COMSEN BIT(3) /*!< channel 0 output compare shadow enable */
+#define TIMER_CHCTL0_CH0COMCTL BITS(4,6) /*!< channel 0 output compare control */
+#define TIMER_CHCTL0_CH0COMCEN BIT(7) /*!< channel 0 output compare clear enable */
+#define TIMER_CHCTL0_CH1MS BITS(8,9) /*!< channel 1 mode selection */
+#define TIMER_CHCTL0_CH1COMFEN BIT(10) /*!< channel 1 output compare fast enable */
+#define TIMER_CHCTL0_CH1COMSEN BIT(11) /*!< channel 1 output compare shadow enable */
+#define TIMER_CHCTL0_CH1COMCTL BITS(12,14) /*!< channel 1 output compare control */
+#define TIMER_CHCTL0_CH1COMCEN BIT(15) /*!< channel 1 output compare clear enable */
+/* input capture mode */
+#define TIMER_CHCTL0_CH0CAPPSC BITS(2,3) /*!< channel 0 input capture prescaler */
+#define TIMER_CHCTL0_CH0CAPFLT BITS(4,7) /*!< channel 0 input capture filter control */
+#define TIMER_CHCTL0_CH1CAPPSC BITS(10,11) /*!< channel 1 input capture prescaler */
+#define TIMER_CHCTL0_CH1CAPFLT BITS(12,15) /*!< channel 1 input capture filter control */
+
+/* TIMER_CHCTL1 */
+/* output compare mode */
+#define TIMER_CHCTL1_CH2MS BITS(0,1) /*!< channel 2 mode selection */
+#define TIMER_CHCTL1_CH2COMFEN BIT(2) /*!< channel 2 output compare fast enable */
+#define TIMER_CHCTL1_CH2COMSEN BIT(3) /*!< channel 2 output compare shadow enable */
+#define TIMER_CHCTL1_CH2COMCTL BITS(4,6) /*!< channel 2 output compare control */
+#define TIMER_CHCTL1_CH2COMCEN BIT(7) /*!< channel 2 output compare clear enable */
+#define TIMER_CHCTL1_CH3MS BITS(8,9) /*!< channel 3 mode selection */
+#define TIMER_CHCTL1_CH3COMFEN BIT(10) /*!< channel 3 output compare fast enable */
+#define TIMER_CHCTL1_CH3COMSEN BIT(11) /*!< channel 3 output compare shadow enable */
+#define TIMER_CHCTL1_CH3COMCTL BITS(12,14) /*!< channel 3 output compare control */
+#define TIMER_CHCTL1_CH3COMCEN BIT(15) /*!< channel 3 output compare clear enable */
+/* input capture mode */
+#define TIMER_CHCTL1_CH2CAPPSC BITS(2,3) /*!< channel 2 input capture prescaler */
+#define TIMER_CHCTL1_CH2CAPFLT BITS(4,7) /*!< channel 2 input capture filter control */
+#define TIMER_CHCTL1_CH3CAPPSC BITS(10,11) /*!< channel 3 input capture prescaler */
+#define TIMER_CHCTL1_CH3CAPFLT BITS(12,15) /*!< channel 3 input capture filter control */
+
+/* TIMER_CHCTL2 */
+#define TIMER_CHCTL2_CH0EN BIT(0) /*!< channel 0 capture/compare function enable */
+#define TIMER_CHCTL2_CH0P BIT(1) /*!< channel 0 capture/compare function polarity */
+#define TIMER_CHCTL2_CH0NEN BIT(2) /*!< channel 0 complementary output enable */
+#define TIMER_CHCTL2_CH0NP BIT(3) /*!< channel 0 complementary output polarity */
+#define TIMER_CHCTL2_CH1EN BIT(4) /*!< channel 1 capture/compare function enable */
+#define TIMER_CHCTL2_CH1P BIT(5) /*!< channel 1 capture/compare function polarity */
+#define TIMER_CHCTL2_CH1NEN BIT(6) /*!< channel 1 complementary output enable */
+#define TIMER_CHCTL2_CH1NP BIT(7) /*!< channel 1 complementary output polarity */
+#define TIMER_CHCTL2_CH2EN BIT(8) /*!< channel 2 capture/compare function enable */
+#define TIMER_CHCTL2_CH2P BIT(9) /*!< channel 2 capture/compare function polarity */
+#define TIMER_CHCTL2_CH2NEN BIT(10) /*!< channel 2 complementary output enable */
+#define TIMER_CHCTL2_CH2NP BIT(11) /*!< channel 2 complementary output polarity */
+#define TIMER_CHCTL2_CH3EN BIT(12) /*!< channel 3 capture/compare function enable */
+#define TIMER_CHCTL2_CH3P BIT(13) /*!< channel 3 capture/compare function polarity */
+
+/* TIMER_CNT */
+#define TIMER_CNT_CNT BITS(0,15) /*!< 16 bit timer counter */
+
+/* TIMER_PSC */
+#define TIMER_PSC_PSC BITS(0,15) /*!< prescaler value of the counter clock */
+
+/* TIMER_CAR */
+#define TIMER_CAR_CARL BITS(0,15) /*!< 16 bit counter auto reload value */
+
+/* TIMER_CREP */
+#define TIMER_CREP_CREP BITS(0,7) /*!< counter repetition value */
+
+/* TIMER_CH0CV */
+#define TIMER_CH0CV_CH0VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 0 */
+
+/* TIMER_CH1CV */
+#define TIMER_CH1CV_CH1VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 1 */
+
+/* TIMER_CH2CV */
+#define TIMER_CH2CV_CH2VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 2 */
+
+/* TIMER_CH3CV */
+#define TIMER_CH3CV_CH3VAL BITS(0,15) /*!< 16 bit capture/compare value of channel 3 */
+
+/* TIMER_CCHP */
+#define TIMER_CCHP_DTCFG BITS(0,7) /*!< dead time configure */
+#define TIMER_CCHP_PROT BITS(8,9) /*!< complementary register protect control */
+#define TIMER_CCHP_IOS BIT(10) /*!< idle mode off-state configure */
+#define TIMER_CCHP_ROS BIT(11) /*!< run mode off-state configure */
+#define TIMER_CCHP_BRKEN BIT(12) /*!< break enable */
+#define TIMER_CCHP_BRKP BIT(13) /*!< break polarity */
+#define TIMER_CCHP_OAEN BIT(14) /*!< output automatic enable */
+#define TIMER_CCHP_POEN BIT(15) /*!< primary output enable */
+
+/* TIMER_DMACFG */
+#define TIMER_DMACFG_DMATA BITS(0,4) /*!< DMA transfer access start address */
+#define TIMER_DMACFG_DMATC BITS(8,12) /*!< DMA transfer count */
+
+/* TIMER_DMATB */
+#define TIMER_DMATB_DMATB BITS(0,15) /*!< DMA transfer buffer address */
+
+/* constants definitions */
+/* TIMER init parameter struct definitions */
+typedef struct
+{
+ uint16_t prescaler; /*!< prescaler value */
+ uint16_t alignedmode; /*!< aligned mode */
+ uint16_t counterdirection; /*!< counter direction */
+ uint32_t period; /*!< period value */
+ uint16_t clockdivision; /*!< clock division value */
+ uint8_t repetitioncounter; /*!< the counter repetition value */
+}timer_parameter_struct;
+
+/* break parameter struct definitions */
+typedef struct
+{
+ uint16_t runoffstate; /*!< run mode off-state */
+ uint16_t ideloffstate; /*!< idle mode off-state */
+ uint16_t deadtime; /*!< dead time */
+ uint16_t breakpolarity; /*!< break polarity */
+ uint16_t outputautostate; /*!< output automatic enable */
+ uint16_t protectmode; /*!< complementary register protect control */
+ uint16_t breakstate; /*!< break enable */
+}timer_break_parameter_struct;
+
+/* channel output parameter struct definitions */
+typedef struct
+{
+ uint16_t outputstate; /*!< channel output state */
+ uint16_t outputnstate; /*!< channel complementary output state */
+ uint16_t ocpolarity; /*!< channel output polarity */
+ uint16_t ocnpolarity; /*!< channel complementary output polarity */
+ uint16_t ocidlestate; /*!< idle state of channel output */
+ uint16_t ocnidlestate; /*!< idle state of channel complementary output */
+}timer_oc_parameter_struct;
+
+/* channel input parameter struct definitions */
+typedef struct
+{
+ uint16_t icpolarity; /*!< channel input polarity */
+ uint16_t icselection; /*!< channel input mode selection */
+ uint16_t icprescaler; /*!< channel input capture prescaler */
+ uint16_t icfilter; /*!< channel input capture filter control */
+}timer_ic_parameter_struct;
+
+/* TIMER interrupt enable or disable */
+#define TIMER_INT_UP TIMER_DMAINTEN_UPIE /*!< update interrupt */
+#define TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE /*!< channel 0 interrupt */
+#define TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE /*!< channel 1 interrupt */
+#define TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE /*!< channel 2 interrupt */
+#define TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE /*!< channel 3 interrupt */
+#define TIMER_INT_CMT TIMER_DMAINTEN_CMTIE /*!< channel commutation interrupt flag */
+#define TIMER_INT_TRG TIMER_DMAINTEN_TRGIE /*!< trigger interrupt */
+#define TIMER_INT_BRK TIMER_DMAINTEN_BRKIE /*!< break interrupt */
+
+/* TIMER interrupt flag */
+#define TIMER_INT_FLAG_UP TIMER_INT_UP /*!< update interrupt */
+#define TIMER_INT_FLAG_CH0 TIMER_INT_CH0 /*!< channel 0 interrupt */
+#define TIMER_INT_FLAG_CH1 TIMER_INT_CH1 /*!< channel 1 interrupt */
+#define TIMER_INT_FLAG_CH2 TIMER_INT_CH2 /*!< channel 2 interrupt */
+#define TIMER_INT_FLAG_CH3 TIMER_INT_CH3 /*!< channel 3 interrupt */
+#define TIMER_INT_FLAG_CMT TIMER_INT_CMT /*!< channel commutation interrupt flag */
+#define TIMER_INT_FLAG_TRG TIMER_INT_TRG /*!< trigger interrupt */
+#define TIMER_INT_FLAG_BRK TIMER_INT_BRK
+
+/* TIMER flag */
+#define TIMER_FLAG_UP TIMER_INTF_UPIF /*!< update flag */
+#define TIMER_FLAG_CH0 TIMER_INTF_CH0IF /*!< channel 0 flag */
+#define TIMER_FLAG_CH1 TIMER_INTF_CH1IF /*!< channel 1 flag */
+#define TIMER_FLAG_CH2 TIMER_INTF_CH2IF /*!< channel 2 flag */
+#define TIMER_FLAG_CH3 TIMER_INTF_CH3IF /*!< channel 3 flag */
+#define TIMER_FLAG_CMT TIMER_INTF_CMTIF /*!< channel control update flag */
+#define TIMER_FLAG_TRG TIMER_INTF_TRGIF /*!< trigger flag */
+#define TIMER_FLAG_BRK TIMER_INTF_BRKIF /*!< break flag */
+#define TIMER_FLAG_CH0O TIMER_INTF_CH0OF /*!< channel 0 overcapture flag */
+#define TIMER_FLAG_CH1O TIMER_INTF_CH1OF /*!< channel 1 overcapture flag */
+#define TIMER_FLAG_CH2O TIMER_INTF_CH2OF /*!< channel 2 overcapture flag */
+#define TIMER_FLAG_CH3O TIMER_INTF_CH3OF /*!< channel 3 overcapture flag */
+
+/* TIMER DMA source enable */
+#define TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN) /*!< update DMA enable */
+#define TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN) /*!< channel 0 DMA enable */
+#define TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN) /*!< channel 1 DMA enable */
+#define TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN) /*!< channel 2 DMA enable */
+#define TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN) /*!< channel 3 DMA enable */
+#define TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN) /*!< commutation DMA request enable */
+#define TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN) /*!< trigger DMA enable */
+
+/* channel DMA request source selection */
+#define TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS /*!< DMA request of channel n is sent when update event occurs */
+#define TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U) /*!< DMA request of channel n is sent when channel n event occurs */
+
+/* DMA access base address */
+#define DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))
+#define TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0) /*!< DMA transfer address is TIMER_CTL0 */
+#define TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1) /*!< DMA transfer address is TIMER_CTL1 */
+#define TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2) /*!< DMA transfer address is TIMER_SMCFG */
+#define TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3) /*!< DMA transfer address is TIMER_DMAINTEN */
+#define TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4) /*!< DMA transfer address is TIMER_INTF */
+#define TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5) /*!< DMA transfer address is TIMER_SWEVG */
+#define TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6) /*!< DMA transfer address is TIMER_CHCTL0 */
+#define TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7) /*!< DMA transfer address is TIMER_CHCTL1 */
+#define TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8) /*!< DMA transfer address is TIMER_CHCTL2 */
+#define TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9) /*!< DMA transfer address is TIMER_CNT */
+#define TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10) /*!< DMA transfer address is TIMER_PSC */
+#define TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11) /*!< DMA transfer address is TIMER_CAR */
+#define TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12) /*!< DMA transfer address is TIMER_CREP */
+#define TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13) /*!< DMA transfer address is TIMER_CH0CV */
+#define TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14) /*!< DMA transfer address is TIMER_CH1CV */
+#define TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15) /*!< DMA transfer address is TIMER_CH2CV */
+#define TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16) /*!< DMA transfer address is TIMER_CH3CV */
+#define TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17) /*!< DMA transfer address is TIMER_CCHP */
+#define TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18) /*!< DMA transfer address is TIMER_DMACFG */
+
+/* DMA access burst length */
+#define DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))
+#define TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0) /*!< DMA transfer 1 time */
+#define TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1) /*!< DMA transfer 2 times */
+#define TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2) /*!< DMA transfer 3 times */
+#define TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3) /*!< DMA transfer 4 times */
+#define TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4) /*!< DMA transfer 5 times */
+#define TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5) /*!< DMA transfer 6 times */
+#define TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6) /*!< DMA transfer 7 times */
+#define TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7) /*!< DMA transfer 8 times */
+#define TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8) /*!< DMA transfer 9 times */
+#define TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9) /*!< DMA transfer 10 times */
+#define TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10) /*!< DMA transfer 11 times */
+#define TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11) /*!< DMA transfer 12 times */
+#define TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12) /*!< DMA transfer 13 times */
+#define TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13) /*!< DMA transfer 14 times */
+#define TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14) /*!< DMA transfer 15 times */
+#define TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15) /*!< DMA transfer 16 times */
+#define TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16) /*!< DMA transfer 17 times */
+#define TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17) /*!< DMA transfer 18 times */
+
+/* TIMER software event generation source */
+#define TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U) /*!< update event generation */
+#define TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U) /*!< channel 0 capture or compare event generation */
+#define TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U) /*!< channel 1 capture or compare event generation */
+#define TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U) /*!< channel 2 capture or compare event generation */
+#define TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U) /*!< channel 3 capture or compare event generation */
+#define TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U) /*!< channel commutation event generation */
+#define TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U) /*!< trigger event generation */
+#define TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U) /*!< break event generation */
+
+/* center-aligned mode selection */
+#define CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))
+#define TIMER_COUNTER_EDGE CTL0_CAM(0) /*!< edge-aligned mode */
+#define TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1) /*!< center-aligned and counting down assert mode */
+#define TIMER_COUNTER_CENTER_UP CTL0_CAM(2) /*!< center-aligned and counting up assert mode */
+#define TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3) /*!< center-aligned and counting up/down assert mode */
+
+/* TIMER prescaler reload mode */
+#define TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG /*!< the prescaler is loaded right now */
+#define TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U) /*!< the prescaler is loaded at the next update event */
+
+/* count direction */
+#define TIMER_COUNTER_UP ((uint16_t)0x0000U) /*!< counter up direction */
+#define TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR) /*!< counter down direction */
+
+/* specify division ratio between TIMER clock and dead-time and sampling clock */
+#define CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))
+#define TIMER_CKDIV_DIV1 CTL0_CKDIV(0) /*!< clock division value is 1,fDTS=fTIMER_CK */
+#define TIMER_CKDIV_DIV2 CTL0_CKDIV(1) /*!< clock division value is 2,fDTS= fTIMER_CK/2 */
+#define TIMER_CKDIV_DIV4 CTL0_CKDIV(2) /*!< clock division value is 4, fDTS= fTIMER_CK/4 */
+
+/* single pulse mode */
+#define TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM /*!< single pulse mode */
+#define TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U) /*!< repetitive pulse mode */
+
+/* update source */
+#define TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS /*!< update generate only by counter overflow/underflow */
+#define TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U) /*!< update generate by setting of UPG bit or the counter overflow/underflow,or the slave mode controller trigger */
+
+/* run mode off-state configure */
+#define TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS) /*!< when POEN bit is set, the channel output signals(CHx_O/CHx_ON) are enabled, with relationship to CHxEN/CHxNEN bits */
+#define TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U) /*!< when POEN bit is set, the channel output signals(CHx_O/CHx_ON) are disabled */
+
+
+/* idle mode off-state configure */
+#define TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS) /*!< when POEN bit is reset, he channel output signals(CHx_O/CHx_ON) are enabled, with relationship to CHxEN/CHxNEN bits */
+#define TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U) /*!< when POEN bit is reset, the channel output signals(CHx_O/CHx_ON) are disabled */
+
+/* break input polarity */
+#define TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U) /*!< break input polarity is low */
+#define TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP) /*!< break input polarity is high */
+
+/* output automatic enable */
+#define TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN) /*!< output automatic enable */
+#define TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U) /*!< output automatic disable */
+
+/* complementary register protect control */
+#define CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))
+#define TIMER_CCHP_PROT_OFF CCHP_PROT(0) /*!< protect disable */
+#define TIMER_CCHP_PROT_0 CCHP_PROT(1) /*!< PROT mode 0 */
+#define TIMER_CCHP_PROT_1 CCHP_PROT(2) /*!< PROT mode 1 */
+#define TIMER_CCHP_PROT_2 CCHP_PROT(3) /*!< PROT mode 2 */
+
+/* break input enable */
+#define TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN) /*!< break input enable */
+#define TIMER_BREAK_DISABLE ((uint16_t)0x0000U) /*!< break input disable */
+
+/* TIMER channel n(n=0,1,2,3) */
+#define TIMER_CH_0 ((uint16_t)0x0000U) /*!< TIMER channel 0(TIMERx(x=0..4)) */
+#define TIMER_CH_1 ((uint16_t)0x0001U) /*!< TIMER channel 1(TIMERx(x=0..4)) */
+#define TIMER_CH_2 ((uint16_t)0x0002U) /*!< TIMER channel 2(TIMERx(x=0..4)) */
+#define TIMER_CH_3 ((uint16_t)0x0003U) /*!< TIMER channel 3(TIMERx(x=0..4)) */
+
+/* channel enable state */
+#define TIMER_CCX_ENABLE ((uint16_t)0x0001U) /*!< channel enable */
+#define TIMER_CCX_DISABLE ((uint16_t)0x0000U) /*!< channel disable */
+
+/* channel complementary output enable state */
+#define TIMER_CCXN_ENABLE ((uint16_t)0x0004U) /*!< channel complementary enable */
+#define TIMER_CCXN_DISABLE ((uint16_t)0x0000U) /*!< channel complementary disable */
+
+/* channel output polarity */
+#define TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U) /*!< channel output polarity is high */
+#define TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U) /*!< channel output polarity is low */
+
+/* channel complementary output polarity */
+#define TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U) /*!< channel complementary output polarity is high */
+#define TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U) /*!< channel complementary output polarity is low */
+
+/* idle state of channel output */
+#define TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100) /*!< idle state of channel output is high */
+#define TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000) /*!< idle state of channel output is low */
+
+/* idle state of channel complementary output */
+#define TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U) /*!< idle state of channel complementary output is high */
+#define TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U) /*!< idle state of channel complementary output is low */
+
+/* channel output compare mode */
+#define TIMER_OC_MODE_TIMING ((uint16_t)0x0000U) /*!< timing mode */
+#define TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U) /*!< active mode */
+#define TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U) /*!< inactive mode */
+#define TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U) /*!< toggle mode */
+#define TIMER_OC_MODE_LOW ((uint16_t)0x0040U) /*!< force low mode */
+#define TIMER_OC_MODE_HIGH ((uint16_t)0x0050U) /*!< force high mode */
+#define TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U) /*!< PWM0 mode */
+#define TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U) /*!< PWM1 mode */
+
+/* channel output compare shadow enable */
+#define TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U) /*!< channel output shadow state enable */
+#define TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U) /*!< channel output shadow state disable */
+
+/* channel output compare fast enable */
+#define TIMER_OC_FAST_ENABLE ((uint16_t)0x0004) /*!< channel output fast function enable */
+#define TIMER_OC_FAST_DISABLE ((uint16_t)0x0000) /*!< channel output fast function disable */
+
+/* channel output compare clear enable */
+#define TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U) /*!< channel output clear function enable */
+#define TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U) /*!< channel output clear function disable */
+
+/* channel control shadow register update control */
+#define TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U) /*!< the shadow registers update by when CMTG bit is set */
+#define TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC /*!< the shadow registers update by when CMTG bit is set or an rising edge of TRGI occurs */
+
+/* channel input capture polarity */
+#define TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U) /*!< input capture rising edge */
+#define TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U) /*!< input capture falling edge */
+#define TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU) /*!< input capture both edge */
+
+/* TIMER input capture selection */
+#define TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U) /*!< channel n is configured as input and icy is mapped on CIy */
+#define TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U) /*!< channel n is configured as input and icy is mapped on opposite input */
+#define TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U) /*!< channel n is configured as input and icy is mapped on ITS */
+
+/* channel input capture prescaler */
+#define TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U) /*!< no prescaler */
+#define TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U) /*!< divided by 2 */
+#define TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U) /*!< divided by 4 */
+#define TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU) /*!< divided by 8 */
+
+/* trigger selection */
+#define SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))
+#define TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0) /*!< internal trigger 0 */
+#define TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1) /*!< internal trigger 1 */
+#define TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2) /*!< internal trigger 2 */
+#define TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3) /*!< internal trigger 3 */
+#define TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4) /*!< TI0 Edge Detector */
+#define TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5) /*!< filtered TIMER input 0 */
+#define TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6) /*!< filtered TIMER input 1 */
+#define TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7) /*!< filtered external trigger input */
+
+/* master mode control */
+#define CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))
+#define TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0) /*!< the UPG bit as trigger output */
+#define TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1) /*!< the counter enable signal TIMER_CTL0_CEN as trigger output */
+#define TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2) /*!< update event as trigger output */
+#define TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3) /*!< a capture or a compare match occurred in channel 0 as trigger output TRGO */
+#define TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4) /*!< O0CPRE as trigger output */
+#define TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5) /*!< O1CPRE as trigger output */
+#define TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6) /*!< O2CPRE as trigger output */
+#define TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7) /*!< O3CPRE as trigger output */
+
+/* slave mode control */
+#define SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))
+#define TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0) /*!< slave mode disable */
+#define TIMER_ENCODER_MODE0 SMCFG_SMC(1) /*!< encoder mode 0 */
+#define TIMER_ENCODER_MODE1 SMCFG_SMC(2) /*!< encoder mode 1 */
+#define TIMER_ENCODER_MODE2 SMCFG_SMC(3) /*!< encoder mode 2 */
+#define TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4) /*!< restart mode */
+#define TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5) /*!< pause mode */
+#define TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6) /*!< event mode */
+#define TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7) /*!< external clock mode 0 */
+
+/* master slave mode selection */
+#define TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM /*!< master slave mode enable */
+#define TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U) /*!< master slave mode disable */
+
+/* external trigger prescaler */
+#define SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))
+#define TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0) /*!< no divided */
+#define TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1) /*!< divided by 2 */
+#define TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2) /*!< divided by 4 */
+#define TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3) /*!< divided by 8 */
+
+/* external trigger polarity */
+#define TIMER_ETP_FALLING TIMER_SMCFG_ETP /*!< active low or falling edge active */
+#define TIMER_ETP_RISING ((uint32_t)0x00000000U) /*!< active high or rising edge active */
+
+/* channel 0 trigger input selection */
+#define TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S /*!< TIMER hall sensor mode enable */
+#define TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U) /*!< TIMER hall sensor mode disable */
+
+/* TIMERx(x=0..4) write CHxVAL register selection */
+#define TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL) /*!< write CHxVAL register selection enable */
+#define TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U) /*!< write CHxVAL register selection disable */
+
+/* function declarations */
+/* TIMER timebase */
+/* deinit a timer */
+void timer_deinit(uint32_t timer_periph);
+/* initialize TIMER init parameter struct */
+void timer_struct_para_init(timer_parameter_struct* initpara);
+/* initialize TIMER counter */
+void timer_init(uint32_t timer_periph, timer_parameter_struct* initpara);
+/* enable a timer */
+void timer_enable(uint32_t timer_periph);
+/* disable a timer */
+void timer_disable(uint32_t timer_periph);
+/* enable the auto reload shadow function */
+void timer_auto_reload_shadow_enable(uint32_t timer_periph);
+/* disable the auto reload shadow function */
+void timer_auto_reload_shadow_disable(uint32_t timer_periph);
+/* enable the update event */
+void timer_update_event_enable(uint32_t timer_periph);
+/* disable the update event */
+void timer_update_event_disable(uint32_t timer_periph);
+/* set TIMER counter alignment mode */
+void timer_counter_alignment(uint32_t timer_periph, uint16_t aligned);
+/* set TIMER counter up direction */
+void timer_counter_up_direction(uint32_t timer_periph);
+/* set TIMER counter down direction */
+void timer_counter_down_direction(uint32_t timer_periph);
+
+/* configure TIMER prescaler */
+void timer_prescaler_config(uint32_t timer_periph, uint16_t prescaler, uint32_t pscreload);
+/* configure TIMER repetition register value */
+void timer_repetition_value_config(uint32_t timer_periph, uint16_t repetition);
+/* configure TIMER autoreload register value */
+void timer_autoreload_value_config(uint32_t timer_periph, uint16_t autoreload);
+/* configure TIMER counter register value */
+void timer_counter_value_config(uint32_t timer_periph, uint16_t counter);
+/* read TIMER counter value */
+uint32_t timer_counter_read(uint32_t timer_periph);
+/* read TIMER prescaler value */
+uint16_t timer_prescaler_read(uint32_t timer_periph);
+/* configure TIMER single pulse mode */
+void timer_single_pulse_mode_config(uint32_t timer_periph, uint32_t spmode);
+/* configure TIMER update source */
+void timer_update_source_config(uint32_t timer_periph, uint32_t update);
+
+/* TIMER DMA and event */
+/* enable the TIMER DMA */
+void timer_dma_enable(uint32_t timer_periph, uint16_t dma);
+/* disable the TIMER DMA */
+void timer_dma_disable(uint32_t timer_periph, uint16_t dma);
+/* channel DMA request source selection */
+void timer_channel_dma_request_source_select(uint32_t timer_periph, uint32_t dma_request);
+/* configure the TIMER DMA transfer */
+void timer_dma_transfer_config(uint32_t timer_periph, uint32_t dma_baseaddr, uint32_t dma_lenth);
+/* software generate events */
+void timer_event_software_generate(uint32_t timer_periph, uint16_t event);
+
+/* TIMER channel complementary protection */
+/* initialize TIMER break parameter struct */
+void timer_break_struct_para_init(timer_break_parameter_struct* breakpara);
+/* configure TIMER break function */
+void timer_break_config(uint32_t timer_periph, timer_break_parameter_struct* breakpara);
+/* enable TIMER break function */
+void timer_break_enable(uint32_t timer_periph);
+/* disable TIMER break function */
+void timer_break_disable(uint32_t timer_periph);
+/* enable TIMER output automatic function */
+void timer_automatic_output_enable(uint32_t timer_periph);
+/* disable TIMER output automatic function */
+void timer_automatic_output_disable(uint32_t timer_periph);
+/* enable or disable TIMER primary output function */
+void timer_primary_output_config(uint32_t timer_periph, ControlStatus newvalue);
+/* enable or disable channel capture/compare control shadow register */
+void timer_channel_control_shadow_config(uint32_t timer_periph, ControlStatus newvalue);
+/* configure TIMER channel control shadow register update control */
+void timer_channel_control_shadow_update_config(uint32_t timer_periph, uint32_t ccuctl);
+
+/* TIMER channel output */
+/* initialize TIMER channel output parameter struct */
+void timer_channel_output_struct_para_init(timer_oc_parameter_struct* ocpara);
+/* configure TIMER channel output function */
+void timer_channel_output_config(uint32_t timer_periph, uint16_t channel, timer_oc_parameter_struct* ocpara);
+/* configure TIMER channel output compare mode */
+void timer_channel_output_mode_config(uint32_t timer_periph, uint16_t channel, uint16_t ocmode);
+/* configure TIMER channel output pulse value */
+void timer_channel_output_pulse_value_config(uint32_t timer_periph, uint16_t channel, uint32_t pulse);
+/* configure TIMER channel output shadow function */
+void timer_channel_output_shadow_config(uint32_t timer_periph, uint16_t channel, uint16_t ocshadow);
+/* configure TIMER channel output fast function */
+void timer_channel_output_fast_config(uint32_t timer_periph, uint16_t channel, uint16_t ocfast);
+/* configure TIMER channel output clear function */
+void timer_channel_output_clear_config(uint32_t timer_periph, uint16_t channel, uint16_t occlear);
+/* configure TIMER channel output polarity */
+void timer_channel_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocpolarity);
+/* configure TIMER channel complementary output polarity */
+void timer_channel_complementary_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnpolarity);
+/* configure TIMER channel enable state */
+void timer_channel_output_state_config(uint32_t timer_periph, uint16_t channel, uint32_t state);
+/* configure TIMER channel complementary output enable state */
+void timer_channel_complementary_output_state_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnstate);
+
+/* TIMER channel input */
+/* initialize TIMER channel input parameter struct */
+void timer_channel_input_struct_para_init(timer_ic_parameter_struct* icpara);
+/* configure TIMER input capture parameter */
+void timer_input_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpara);
+/* configure TIMER channel input capture prescaler value */
+void timer_channel_input_capture_prescaler_config(uint32_t timer_periph, uint16_t channel, uint16_t prescaler);
+/* read TIMER channel capture compare register value */
+uint32_t timer_channel_capture_value_register_read(uint32_t timer_periph, uint16_t channel);
+/* configure TIMER input pwm capture function */
+void timer_input_pwm_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpwm);
+/* configure TIMER hall sensor mode */
+void timer_hall_mode_config(uint32_t timer_periph, uint32_t hallmode);
+
+/* TIMER master and slave mode */
+/* select TIMER input trigger source */
+void timer_input_trigger_source_select(uint32_t timer_periph, uint32_t intrigger);
+/* select TIMER master mode output trigger source */
+void timer_master_output_trigger_source_select(uint32_t timer_periph, uint32_t outrigger);
+/* select TIMER slave mode */
+void timer_slave_mode_select(uint32_t timer_periph, uint32_t slavemode);
+/* configure TIMER master slave mode */
+void timer_master_slave_mode_config(uint32_t timer_periph, uint32_t masterslave);
+/* configure TIMER external trigger input */
+void timer_external_trigger_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter);
+/* configure TIMER quadrature decoder mode */
+void timer_quadrature_decoder_mode_config(uint32_t timer_periph, uint32_t decomode, uint16_t ic0polarity, uint16_t ic1polarity);
+/* configure TIMER internal clock mode */
+void timer_internal_clock_config(uint32_t timer_periph);
+/* configure TIMER the internal trigger as external clock input */
+void timer_internal_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t intrigger);
+/* configure TIMER the external trigger as external clock input */
+void timer_external_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t extrigger, uint16_t extpolarity, uint32_t extfilter);
+/* configure TIMER the external clock mode 0 */
+void timer_external_clock_mode0_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter);
+/* configure TIMER the external clock mode 1 */
+void timer_external_clock_mode1_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter);
+/* disable TIMER the external clock mode 1 */
+void timer_external_clock_mode1_disable(uint32_t timer_periph);
+
+/* TIMER interrupt and flag */
+/* enable the TIMER interrupt */
+void timer_interrupt_enable(uint32_t timer_periph, uint32_t interrupt);
+/* disable the TIMER interrupt */
+void timer_interrupt_disable(uint32_t timer_periph, uint32_t interrupt);
+/* get TIMER interrupt flag */
+FlagStatus timer_interrupt_flag_get(uint32_t timer_periph, uint32_t interrupt);
+/* clear TIMER interrupt flag */
+void timer_interrupt_flag_clear(uint32_t timer_periph, uint32_t interrupt);
+/* get TIMER flag */
+FlagStatus timer_flag_get(uint32_t timer_periph, uint32_t flag);
+/* clear TIMER flag */
+void timer_flag_clear(uint32_t timer_periph, uint32_t flag);
+
+#endif /* GD32VF103_TIMER_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h
new file mode 100644
index 0000000000..74a4955f6b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h
@@ -0,0 +1,376 @@
+/*!
+ \file gd32vf103_usart.h
+ \brief definitions for the USART
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-09-18, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_USART_H
+#define GD32VF103_USART_H
+
+#include "gd32vf103.h"
+
+/* USARTx(x=0,1,2)/UARTx(x=3,4) definitions */
+#define USART1 USART_BASE /*!< USART1 base address */
+#define USART2 (USART_BASE+(0x00000400U)) /*!< USART2 base address */
+#define UART3 (USART_BASE+(0x00000800U)) /*!< UART3 base address */
+#define UART4 (USART_BASE+(0x00000C00U)) /*!< UART4 base address */
+#define USART0 (USART_BASE+(0x0000F400U)) /*!< USART0 base address */
+
+/* registers definitions */
+#define USART_STAT(usartx) REG32((usartx) + (0x00000000U)) /*!< USART status register */
+#define USART_DATA(usartx) REG32((usartx) + (0x00000004U)) /*!< USART data register */
+#define USART_BAUD(usartx) REG32((usartx) + (0x00000008U)) /*!< USART baud rate register */
+#define USART_CTL0(usartx) REG32((usartx) + (0x0000000CU)) /*!< USART control register 0 */
+#define USART_CTL1(usartx) REG32((usartx) + (0x00000010U)) /*!< USART control register 1 */
+#define USART_CTL2(usartx) REG32((usartx) + (0x00000014U)) /*!< USART control register 2 */
+#define USART_GP(usartx) REG32((usartx) + (0x00000018U)) /*!< USART guard time and prescaler register */
+
+/* bits definitions */
+/* USARTx_STAT */
+#define USART_STAT_PERR BIT(0) /*!< parity error flag */
+#define USART_STAT_FERR BIT(1) /*!< frame error flag */
+#define USART_STAT_NERR BIT(2) /*!< noise error flag */
+#define USART_STAT_ORERR BIT(3) /*!< overrun error */
+#define USART_STAT_IDLEF BIT(4) /*!< IDLE frame detected flag */
+#define USART_STAT_RBNE BIT(5) /*!< read data buffer not empty */
+#define USART_STAT_TC BIT(6) /*!< transmission complete */
+#define USART_STAT_TBE BIT(7) /*!< transmit data buffer empty */
+#define USART_STAT_LBDF BIT(8) /*!< LIN break detected flag */
+#define USART_STAT_CTSF BIT(9) /*!< CTS change flag */
+
+/* USARTx_DATA */
+#define USART_DATA_DATA BITS(0,8) /*!< transmit or read data value */
+
+/* USARTx_BAUD */
+#define USART_BAUD_FRADIV BITS(0,3) /*!< fraction part of baud-rate divider */
+#define USART_BAUD_INTDIV BITS(4,15) /*!< integer part of baud-rate divider */
+
+/* USARTx_CTL0 */
+#define USART_CTL0_SBKCMD BIT(0) /*!< send break command */
+#define USART_CTL0_RWU BIT(1) /*!< receiver wakeup from mute mode */
+#define USART_CTL0_REN BIT(2) /*!< receiver enable */
+#define USART_CTL0_TEN BIT(3) /*!< transmitter enable */
+#define USART_CTL0_IDLEIE BIT(4) /*!< idle line detected interrupt enable */
+#define USART_CTL0_RBNEIE BIT(5) /*!< read data buffer not empty interrupt and overrun error interrupt enable */
+#define USART_CTL0_TCIE BIT(6) /*!< transmission complete interrupt enable */
+#define USART_CTL0_TBEIE BIT(7) /*!< transmitter buffer empty interrupt enable */
+#define USART_CTL0_PERRIE BIT(8) /*!< parity error interrupt enable */
+#define USART_CTL0_PM BIT(9) /*!< parity mode */
+#define USART_CTL0_PCEN BIT(10) /*!< parity check function enable */
+#define USART_CTL0_WM BIT(11) /*!< wakeup method in mute mode */
+#define USART_CTL0_WL BIT(12) /*!< word length */
+#define USART_CTL0_UEN BIT(13) /*!< USART enable */
+
+/* USARTx_CTL1 */
+#define USART_CTL1_ADDR BITS(0,3) /*!< address of USART */
+#define USART_CTL1_LBLEN BIT(5) /*!< LIN break frame length */
+#define USART_CTL1_LBDIE BIT(6) /*!< LIN break detected interrupt eanble */
+#define USART_CTL1_CLEN BIT(8) /*!< CK length */
+#define USART_CTL1_CPH BIT(9) /*!< CK phase */
+#define USART_CTL1_CPL BIT(10) /*!< CK polarity */
+#define USART_CTL1_CKEN BIT(11) /*!< CK pin enable */
+#define USART_CTL1_STB BITS(12,13) /*!< STOP bits length */
+#define USART_CTL1_LMEN BIT(14) /*!< LIN mode enable */
+
+/* USARTx_CTL2 */
+#define USART_CTL2_ERRIE BIT(0) /*!< error interrupt enable */
+#define USART_CTL2_IREN BIT(1) /*!< IrDA mode enable */
+#define USART_CTL2_IRLP BIT(2) /*!< IrDA low-power */
+#define USART_CTL2_HDEN BIT(3) /*!< half-duplex enable */
+#define USART_CTL2_NKEN BIT(4) /*!< NACK enable in smartcard mode */
+#define USART_CTL2_SCEN BIT(5) /*!< smartcard mode enable */
+#define USART_CTL2_DENR BIT(6) /*!< DMA request enable for reception */
+#define USART_CTL2_DENT BIT(7) /*!< DMA request enable for transmission */
+#define USART_CTL2_RTSEN BIT(8) /*!< RTS enable */
+#define USART_CTL2_CTSEN BIT(9) /*!< CTS enable */
+#define USART_CTL2_CTSIE BIT(10) /*!< CTS interrupt enable */
+
+/* USARTx_GP */
+#define USART_GP_PSC BITS(0,7) /*!< prescaler value for dividing the system clock */
+#define USART_GP_GUAT BITS(8,15) /*!< guard time value in smartcard mode */
+
+/* constants definitions */
+/* define the USART bit position and its register index offset */
+#define USART_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
+#define USART_REG_VAL(usartx, offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))
+#define USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))
+#define USART_REGIDX_BIT2(regidx, bitpos, regidx2, bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16)\
+ | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))
+#define USART_REG_VAL2(usartx, offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))
+#define USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)
+
+/* register offset */
+#define USART_STAT_REG_OFFSET (0x00000000U) /*!< STAT register offset */
+#define USART_CTL0_REG_OFFSET (0x0000000CU) /*!< CTL0 register offset */
+#define USART_CTL1_REG_OFFSET (0x00000010U) /*!< CTL1 register offset */
+#define USART_CTL2_REG_OFFSET (0x00000014U) /*!< CTL2 register offset */
+
+/* USART flags */
+typedef enum
+{
+ /* flags in STAT register */
+ USART_FLAG_CTS = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 9U), /*!< CTS change flag */
+ USART_FLAG_LBD = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 8U), /*!< LIN break detected flag */
+ USART_FLAG_TBE = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 7U), /*!< transmit data buffer empty */
+ USART_FLAG_TC = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 6U), /*!< transmission complete */
+ USART_FLAG_RBNE = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 5U), /*!< read data buffer not empty */
+ USART_FLAG_IDLE = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 4U), /*!< IDLE frame detected flag */
+ USART_FLAG_ORERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 3U), /*!< overrun error */
+ USART_FLAG_NERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 2U), /*!< noise error flag */
+ USART_FLAG_FERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 1U), /*!< frame error flag */
+ USART_FLAG_PERR = USART_REGIDX_BIT(USART_STAT_REG_OFFSET, 0U), /*!< parity error flag */
+}usart_flag_enum;
+
+/* USART interrupt flags */
+typedef enum
+{
+ /* interrupt flags in CTL0 register */
+ USART_INT_FLAG_PERR = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 8U, USART_STAT_REG_OFFSET, 0U), /*!< parity error interrupt and flag */
+ USART_INT_FLAG_TBE = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 7U, USART_STAT_REG_OFFSET, 7U), /*!< transmitter buffer empty interrupt and flag */
+ USART_INT_FLAG_TC = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 6U, USART_STAT_REG_OFFSET, 6U), /*!< transmission complete interrupt and flag */
+ USART_INT_FLAG_RBNE = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 5U, USART_STAT_REG_OFFSET, 5U), /*!< read data buffer not empty interrupt and flag */
+ USART_INT_FLAG_RBNE_ORERR = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 5U, USART_STAT_REG_OFFSET, 3U), /*!< read data buffer not empty interrupt and overrun error flag */
+ USART_INT_FLAG_IDLE = USART_REGIDX_BIT2(USART_CTL0_REG_OFFSET, 4U, USART_STAT_REG_OFFSET, 4U), /*!< IDLE line detected interrupt and flag */
+ /* interrupt flags in CTL1 register */
+ USART_INT_FLAG_LBD = USART_REGIDX_BIT2(USART_CTL1_REG_OFFSET, 6U, USART_STAT_REG_OFFSET, 8U), /*!< LIN break detected interrupt and flag */
+ /* interrupt flags in CTL2 register */
+ USART_INT_FLAG_CTS = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 10U, USART_STAT_REG_OFFSET, 9U), /*!< CTS interrupt and flag */
+ USART_INT_FLAG_ERR_ORERR = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 0U, USART_STAT_REG_OFFSET, 3U), /*!< error interrupt and overrun error */
+ USART_INT_FLAG_ERR_NERR = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 0U, USART_STAT_REG_OFFSET, 2U), /*!< error interrupt and noise error flag */
+ USART_INT_FLAG_ERR_FERR = USART_REGIDX_BIT2(USART_CTL2_REG_OFFSET, 0U, USART_STAT_REG_OFFSET, 1U), /*!< error interrupt and frame error flag */
+}usart_interrupt_flag_enum;
+
+/* USART interrupt enable or disable */
+typedef enum
+{
+ /* interrupt in CTL0 register */
+ USART_INT_PERR = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 8U), /*!< parity error interrupt */
+ USART_INT_TBE = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 7U), /*!< transmitter buffer empty interrupt */
+ USART_INT_TC = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 6U), /*!< transmission complete interrupt */
+ USART_INT_RBNE = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 5U), /*!< read data buffer not empty interrupt and overrun error interrupt */
+ USART_INT_IDLE = USART_REGIDX_BIT(USART_CTL0_REG_OFFSET, 4U), /*!< IDLE line detected interrupt */
+ /* interrupt in CTL1 register */
+ USART_INT_LBD = USART_REGIDX_BIT(USART_CTL1_REG_OFFSET, 6U), /*!< LIN break detected interrupt */
+ /* interrupt in CTL2 register */
+ USART_INT_CTS = USART_REGIDX_BIT(USART_CTL2_REG_OFFSET, 10U), /*!< CTS interrupt */
+ USART_INT_ERR = USART_REGIDX_BIT(USART_CTL2_REG_OFFSET, 0U), /*!< error interrupt */
+}usart_interrupt_enum;
+
+/* USART receiver configure */
+#define CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))
+#define USART_RECEIVE_ENABLE CTL0_REN(1) /*!< enable receiver */
+#define USART_RECEIVE_DISABLE CTL0_REN(0) /*!< disable receiver */
+
+/* USART transmitter configure */
+#define CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))
+#define USART_TRANSMIT_ENABLE CTL0_TEN(1) /*!< enable transmitter */
+#define USART_TRANSMIT_DISABLE CTL0_TEN(0) /*!< disable transmitter */
+
+/* USART parity bits definitions */
+#define CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))
+#define USART_PM_NONE CTL0_PM(0) /*!< no parity */
+#define USART_PM_EVEN CTL0_PM(2) /*!< even parity */
+#define USART_PM_ODD CTL0_PM(3) /*!< odd parity */
+
+/* USART wakeup method in mute mode */
+#define CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))
+#define USART_WM_IDLE CTL0_WM(0) /*!< idle line */
+#define USART_WM_ADDR CTL0_WM(1) /*!< address match */
+
+/* USART word length definitions */
+#define CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))
+#define USART_WL_8BIT CTL0_WL(0) /*!< 8 bits */
+#define USART_WL_9BIT CTL0_WL(1) /*!< 9 bits */
+
+/* USART stop bits definitions */
+#define CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))
+#define USART_STB_1BIT CTL1_STB(0) /*!< 1 bit */
+#define USART_STB_0_5BIT CTL1_STB(1) /*!< 0.5 bit */
+#define USART_STB_2BIT CTL1_STB(2) /*!< 2 bits */
+#define USART_STB_1_5BIT CTL1_STB(3) /*!< 1.5 bits */
+
+/* USART LIN break frame length */
+#define CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))
+#define USART_LBLEN_10B CTL1_LBLEN(0) /*!< 10 bits */
+#define USART_LBLEN_11B CTL1_LBLEN(1) /*!< 11 bits */
+
+/* USART CK length */
+#define CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))
+#define USART_CLEN_NONE CTL1_CLEN(0) /*!< there are 7 CK pulses for an 8 bit frame and 8 CK pulses for a 9 bit frame */
+#define USART_CLEN_EN CTL1_CLEN(1) /*!< there are 8 CK pulses for an 8 bit frame and 9 CK pulses for a 9 bit frame */
+
+/* USART clock phase */
+#define CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))
+#define USART_CPH_1CK CTL1_CPH(0) /*!< first clock transition is the first data capture edge */
+#define USART_CPH_2CK CTL1_CPH(1) /*!< second clock transition is the first data capture edge */
+
+/* USART clock polarity */
+#define CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))
+#define USART_CPL_LOW CTL1_CPL(0) /*!< steady low value on CK pin */
+#define USART_CPL_HIGH CTL1_CPL(1) /*!< steady high value on CK pin */
+
+/* USART DMA request for receive configure */
+#define CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))
+#define USART_DENR_ENABLE CLT2_DENR(1) /*!< DMA request enable for reception */
+#define USART_DENR_DISABLE CLT2_DENR(0) /*!< DMA request disable for reception */
+
+/* USART DMA request for transmission configure */
+#define CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))
+#define USART_DENT_ENABLE CLT2_DENT(1) /*!< DMA request enable for transmission */
+#define USART_DENT_DISABLE CLT2_DENT(0) /*!< DMA request disable for transmission */
+
+/* USART RTS configure */
+#define CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))
+#define USART_RTS_ENABLE CLT2_RTSEN(1) /*!< RTS enable */
+#define USART_RTS_DISABLE CLT2_RTSEN(0) /*!< RTS disable */
+
+/* USART CTS configure */
+#define CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))
+#define USART_CTS_ENABLE CLT2_CTSEN(1) /*!< CTS enable */
+#define USART_CTS_DISABLE CLT2_CTSEN(0) /*!< CTS disable */
+
+/* USART IrDA low-power enable */
+#define CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))
+#define USART_IRLP_LOW CTL2_IRLP(1) /*!< low-power */
+#define USART_IRLP_NORMAL CTL2_IRLP(0) /*!< normal */
+
+/* function declarations */
+/* initialization functions */
+/* reset USART */
+void usart_deinit(uint32_t usart_periph);
+/* configure USART baud rate value */
+void usart_baudrate_set(uint32_t usart_periph, uint32_t baudval);
+/* configure USART parity function */
+void usart_parity_config(uint32_t usart_periph, uint32_t paritycfg);
+/* configure USART word length */
+void usart_word_length_set(uint32_t usart_periph, uint32_t wlen);
+/* configure USART stop bit length */
+void usart_stop_bit_set(uint32_t usart_periph, uint32_t stblen);
+
+/* USART normal mode communication */
+/* enable USART */
+void usart_enable(uint32_t usart_periph);
+/* disable USART */
+void usart_disable(uint32_t usart_periph);
+/* configure USART transmitter */
+void usart_transmit_config(uint32_t usart_periph, uint32_t txconfig);
+/* configure USART receiver */
+void usart_receive_config(uint32_t usart_periph, uint32_t rxconfig);
+/* USART transmit data function */
+void usart_data_transmit(uint32_t usart_periph, uint32_t data);
+/* USART receive data function */
+uint16_t usart_data_receive(uint32_t usart_periph);
+
+/* multi-processor communication */
+/* configure address of the USART */
+void usart_address_config(uint32_t usart_periph, uint8_t addr);
+/* enable mute mode */
+void usart_mute_mode_enable(uint32_t usart_periph);
+/* disable mute mode */
+void usart_mute_mode_disable(uint32_t usart_periph);
+/* configure wakeup method in mute mode */
+void usart_mute_mode_wakeup_config(uint32_t usart_periph, uint32_t wmethod);
+
+/* LIN mode communication */
+/* LIN mode enable */
+void usart_lin_mode_enable(uint32_t usart_periph);
+/* LIN mode disable */
+void usart_lin_mode_disable(uint32_t usart_periph);
+/* LIN break detection length */
+void usart_lin_break_detection_length_config(uint32_t usart_periph, uint32_t lblen);
+/* send break frame */
+void usart_send_break(uint32_t usart_periph);
+
+/* half-duplex communication */
+/* half-duplex enable */
+void usart_halfduplex_enable(uint32_t usart_periph);
+/* half-duplex disable */
+void usart_halfduplex_disable(uint32_t usart_periph);
+
+/* synchronous communication */
+/* clock enable */
+void usart_synchronous_clock_enable(uint32_t usart_periph);
+/* clock disable */
+void usart_synchronous_clock_disable(uint32_t usart_periph);
+/* configure usart synchronous mode parameters */
+void usart_synchronous_clock_config(uint32_t usart_periph, uint32_t clen, uint32_t cph, uint32_t cpl);
+
+/* smartcard communication */
+/* guard time value configure in smartcard mode */
+void usart_guard_time_config(uint32_t usart_periph, uint32_t gaut);
+/* smartcard mode enable */
+void usart_smartcard_mode_enable(uint32_t usart_periph);
+/* smartcard mode disable */
+void usart_smartcard_mode_disable(uint32_t usart_periph);
+/* NACK enable in smartcard mode */
+void usart_smartcard_mode_nack_enable(uint32_t usart_periph);
+/* NACK disable in smartcard mode */
+void usart_smartcard_mode_nack_disable(uint32_t usart_periph);
+
+/* IrDA communication */
+/* enable IrDA mode */
+void usart_irda_mode_enable(uint32_t usart_periph);
+/* disable IrDA mode */
+void usart_irda_mode_disable(uint32_t usart_periph);
+/* configure the peripheral clock prescaler */
+void usart_prescaler_config(uint32_t usart_periph, uint8_t psc);
+/* configure IrDA low-power */
+void usart_irda_lowpower_config(uint32_t usart_periph, uint32_t irlp);
+
+/* hardware flow communication */
+/* configure hardware flow control RTS */
+void usart_hardware_flow_rts_config(uint32_t usart_periph, uint32_t rtsconfig);
+/* configure hardware flow control CTS */
+void usart_hardware_flow_cts_config(uint32_t usart_periph, uint32_t ctsconfig);
+
+/* configure USART DMA for reception */
+void usart_dma_receive_config(uint32_t usart_periph, uint32_t dmacmd);
+/* configure USART DMA for transmission */
+void usart_dma_transmit_config(uint32_t usart_periph, uint32_t dmacmd);
+
+/* flag functions */
+/* get flag in STAT register */
+FlagStatus usart_flag_get(uint32_t usart_periph, usart_flag_enum flag);
+/* clear flag in STAT register */
+void usart_flag_clear(uint32_t usart_periph, usart_flag_enum flag);
+
+/* interrupt functions */
+/* enable USART interrupt */
+void usart_interrupt_enable(uint32_t usart_periph, uint32_t interrupt);
+/* disable USART interrupt */
+void usart_interrupt_disable(uint32_t usart_periph, uint32_t interrupt);
+/* get USART interrupt and flag status */
+FlagStatus usart_interrupt_flag_get(uint32_t usart_periph, uint32_t int_flag);
+/* clear interrupt flag in STAT register */
+void usart_interrupt_flag_clear(uint32_t usart_periph, uint32_t int_flag);
+#endif /* GD32VF103_USART_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h
new file mode 100644
index 0000000000..4588793f3f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h
@@ -0,0 +1,87 @@
+/*!
+ \file gd32vf103_wwdgt.h
+ \brief definitions for the WWDGT
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_WWDGT_H
+#define GD32VF103_WWDGT_H
+
+#include "gd32vf103.h"
+
+/* WWDGT definitions */
+#define WWDGT WWDGT_BASE /*!< WWDGT base address */
+
+/* registers definitions */
+#define WWDGT_CTL REG32((WWDGT) + 0x00000000U) /*!< WWDGT control register */
+#define WWDGT_CFG REG32((WWDGT) + 0x00000004U) /*!< WWDGT configuration register */
+#define WWDGT_STAT REG32((WWDGT) + 0x00000008U) /*!< WWDGT status register */
+
+/* bits definitions */
+/* WWDGT_CTL */
+#define WWDGT_CTL_CNT BITS(0,6) /*!< WWDGT counter value */
+#define WWDGT_CTL_WDGTEN BIT(7) /*!< WWDGT counter enable */
+
+/* WWDGT_CFG */
+#define WWDGT_CFG_WIN BITS(0,6) /*!< WWDGT counter window value */
+#define WWDGT_CFG_PSC BITS(7,8) /*!< WWDGT prescaler divider value */
+#define WWDGT_CFG_EWIE BIT(9) /*!< early wakeup interrupt enable */
+
+/* WWDGT_STAT */
+#define WWDGT_STAT_EWIF BIT(0) /*!< early wakeup interrupt flag */
+
+/* constants definitions */
+#define CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7)) /*!< write value to WWDGT_CFG_PSC bit field */
+#define WWDGT_CFG_PSC_DIV1 CFG_PSC(0) /*!< the time base of WWDGT = (PCLK1/4096)/1 */
+#define WWDGT_CFG_PSC_DIV2 CFG_PSC(1) /*!< the time base of WWDGT = (PCLK1/4096)/2 */
+#define WWDGT_CFG_PSC_DIV4 CFG_PSC(2) /*!< the time base of WWDGT = (PCLK1/4096)/4 */
+#define WWDGT_CFG_PSC_DIV8 CFG_PSC(3) /*!< the time base of WWDGT = (PCLK1/4096)/8 */
+
+/* function declarations */
+/* reset the window watchdog timer configuration */
+void wwdgt_deinit(void);
+/* start the window watchdog timer counter */
+void wwdgt_enable(void);
+
+/* configure the window watchdog timer counter value */
+void wwdgt_counter_update(uint16_t counter_value);
+/* configure counter value, window value, and prescaler divider value */
+void wwdgt_config(uint16_t counter, uint16_t window, uint32_t prescaler);
+
+/* enable early wakeup interrupt of WWDGT */
+void wwdgt_interrupt_enable(void);
+/* check early wakeup interrupt state of WWDGT */
+FlagStatus wwdgt_flag_get(void);
+/* clear early wakeup interrupt state of WWDGT */
+void wwdgt_flag_clear(void);
+
+#endif /* GD32VF103_WWDGT_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c
new file mode 100644
index 0000000000..39597e4d3d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c
@@ -0,0 +1,993 @@
+/*!
+ \file gd32vf103_adc.c
+ \brief ADC driver
+
+ \version 2020-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_adc.h"
+
+/* discontinuous mode macro*/
+#define ADC_CHANNEL_LENGTH_SUBTRACT_ONE ((uint8_t)1U)
+
+/* ADC regular channel macro */
+#define ADC_REGULAR_CHANNEL_RANK_SIX ((uint8_t)6U)
+#define ADC_REGULAR_CHANNEL_RANK_TWELVE ((uint8_t)12U)
+#define ADC_REGULAR_CHANNEL_RANK_SIXTEEN ((uint8_t)16U)
+#define ADC_REGULAR_CHANNEL_RANK_LENGTH ((uint8_t)5U)
+
+/* ADC sampling time macro */
+#define ADC_CHANNEL_SAMPLE_TEN ((uint8_t)10U)
+#define ADC_CHANNEL_SAMPLE_EIGHTEEN ((uint8_t)18U)
+#define ADC_CHANNEL_SAMPLE_LENGTH ((uint8_t)3U)
+
+/* ADC inserted channel macro */
+#define ADC_INSERTED_CHANNEL_RANK_LENGTH ((uint8_t)5U)
+#define ADC_INSERTED_CHANNEL_SHIFT_LENGTH ((uint8_t)15U)
+
+/* ADC inserted channel offset macro */
+#define ADC_OFFSET_LENGTH ((uint8_t)3U)
+#define ADC_OFFSET_SHIFT_LENGTH ((uint8_t)4U)
+
+/*!
+ \brief reset ADC
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_deinit(uint32_t adc_periph)
+{
+ switch(adc_periph){
+ case ADC0:
+ /* reset ADC0 */
+ rcu_periph_reset_enable(RCU_ADC0RST);
+ rcu_periph_reset_disable(RCU_ADC0RST);
+ break;
+ case ADC1:
+ /* reset ADC1 */
+ rcu_periph_reset_enable(RCU_ADC1RST);
+ rcu_periph_reset_disable(RCU_ADC1RST);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure the ADC sync mode
+ \param[in] mode: ADC mode
+ only one parameter can be selected which is shown as below:
+ \arg ADC_MODE_FREE: all the ADCs work independently
+ \arg ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL: ADC0 and ADC1 work in combined regular parallel + inserted parallel mode
+ \arg ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION: ADC0 and ADC1 work in combined regular parallel + trigger rotation mode
+ \arg ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST: ADC0 and ADC1 work in combined inserted parallel + follow-up fast mode
+ \arg ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW: ADC0 and ADC1 work in combined inserted parallel + follow-up slow mode
+ \arg ADC_DAUL_INSERTED_PARALLEL: ADC0 and ADC1 work in inserted parallel mode only
+ \arg ADC_DAUL_REGULAL_PARALLEL: ADC0 and ADC1 work in regular parallel mode only
+ \arg ADC_DAUL_REGULAL_FOLLOWUP_FAST: ADC0 and ADC1 work in follow-up fast mode only
+ \arg ADC_DAUL_REGULAL_FOLLOWUP_SLOW: ADC0 and ADC1 work in follow-up slow mode only
+ \arg ADC_DAUL_INSERTED_TRIGGER_ROTATION: ADC0 and ADC1 work in trigger rotation mode only
+ \param[out] none
+ \retval none
+*/
+void adc_mode_config(uint32_t mode)
+{
+ ADC_CTL0(ADC0) &= ~(ADC_CTL0_SYNCM);
+ ADC_CTL0(ADC0) |= mode;
+}
+
+/*!
+ \brief enable or disable ADC special function
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] function: the function to config
+ only one parameter can be selected which is shown as below:
+ \arg ADC_SCAN_MODE: scan mode select
+ \arg ADC_INSERTED_CHANNEL_AUTO: inserted channel group convert automatically
+ \arg ADC_CONTINUOUS_MODE: continuous mode select
+ \param[in] newvalue: ENABLE or DISABLE
+ \param[out] none
+ \retval none
+*/
+void adc_special_function_config(uint32_t adc_periph, uint32_t function, ControlStatus newvalue)
+{
+ if(newvalue){
+ if(0U != (function & ADC_SCAN_MODE)){
+ /* enable scan mode */
+ ADC_CTL0(adc_periph) |= ADC_SCAN_MODE;
+ }
+ if(0U != (function & ADC_INSERTED_CHANNEL_AUTO)){
+ /* enable inserted channel group convert automatically */
+ ADC_CTL0(adc_periph) |= ADC_INSERTED_CHANNEL_AUTO;
+ }
+ if(0U != (function & ADC_CONTINUOUS_MODE)){
+ /* enable continuous mode */
+ ADC_CTL1(adc_periph) |= ADC_CONTINUOUS_MODE;
+ }
+ }else{
+ if(0U != (function & ADC_SCAN_MODE)){
+ /* disable scan mode */
+ ADC_CTL0(adc_periph) &= ~ADC_SCAN_MODE;
+ }
+ if(0U != (function & ADC_INSERTED_CHANNEL_AUTO)){
+ /* disable inserted channel group convert automatically */
+ ADC_CTL0(adc_periph) &= ~ADC_INSERTED_CHANNEL_AUTO;
+ }
+ if(0U != (function & ADC_CONTINUOUS_MODE)){
+ /* disable continuous mode */
+ ADC_CTL1(adc_periph) &= ~ADC_CONTINUOUS_MODE;
+ }
+ }
+}
+
+/*!
+ \brief configure ADC data alignment
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] data_alignment: data alignment select
+ only one parameter can be selected which is shown as below:
+ \arg ADC_DATAALIGN_RIGHT: LSB alignment
+ \arg ADC_DATAALIGN_LEFT: MSB alignment
+ \param[out] none
+ \retval none
+*/
+void adc_data_alignment_config(uint32_t adc_periph, uint32_t data_alignment)
+{
+ if(ADC_DATAALIGN_RIGHT != data_alignment){
+ /* MSB alignment */
+ ADC_CTL1(adc_periph) |= ADC_CTL1_DAL;
+ }else{
+ /* LSB alignment */
+ ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_DAL);
+ }
+}
+
+/*!
+ \brief enable ADC interface
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_enable(uint32_t adc_periph)
+{
+ if((uint32_t)RESET == (ADC_CTL1(adc_periph) & ADC_CTL1_ADCON)){
+ /* enable ADC */
+ ADC_CTL1(adc_periph) |= (uint32_t)ADC_CTL1_ADCON;
+ }
+}
+
+/*!
+ \brief disable ADC interface
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_disable(uint32_t adc_periph)
+{
+ /* disable ADC */
+ ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ADCON);
+}
+
+/*!
+ \brief ADC calibration and reset calibration
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_calibration_enable(uint32_t adc_periph)
+{
+ /* reset the selected ADC1 calibration registers */
+ ADC_CTL1(adc_periph) |= (uint32_t) ADC_CTL1_RSTCLB;
+ /* check the RSTCLB bit state */
+ while((uint32_t)RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_RSTCLB)){
+ }
+ /* enable ADC calibration process */
+ ADC_CTL1(adc_periph) |= ADC_CTL1_CLB;
+ /* check the CLB bit state */
+ while((uint32_t)RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_CLB)){
+ }
+}
+
+/*!
+ \brief enable the temperature sensor and Vrefint channel
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void adc_tempsensor_vrefint_enable(void)
+{
+ /* enable the temperature sensor and Vrefint channel */
+ ADC_CTL1(ADC0) |= ADC_CTL1_TSVREN;
+}
+
+/*!
+ \brief disable the temperature sensor and Vrefint channel
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void adc_tempsensor_vrefint_disable(void)
+{
+ /* disable the temperature sensor and Vrefint channel */
+ ADC_CTL1(ADC0) &= ~ADC_CTL1_TSVREN;
+}
+
+/*!
+ \brief enable DMA request
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_dma_mode_enable(uint32_t adc_periph)
+{
+ /* enable DMA request */
+ ADC_CTL1(adc_periph) |= (uint32_t)(ADC_CTL1_DMA);
+}
+
+/*!
+ \brief disable DMA request
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_dma_mode_disable(uint32_t adc_periph)
+{
+ /* disable DMA request */
+ ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_DMA);
+}
+
+/*!
+ \brief configure ADC discontinuous mode
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel_group: select the channel group
+ only one parameter can be selected which is shown as below:
+ \arg ADC_REGULAR_CHANNEL: regular channel group
+ \arg ADC_INSERTED_CHANNEL: inserted channel group
+ \arg ADC_CHANNEL_DISCON_DISABLE: disable discontinuous mode of regular & inserted channel
+ \param[in] length: number of conversions in discontinuous mode,the number can be 1..8
+ for regular channel, the number has no effect for inserted channel
+ \param[out] none
+ \retval none
+*/
+void adc_discontinuous_mode_config(uint32_t adc_periph, uint8_t adc_channel_group, uint8_t length)
+{
+ /* disable discontinuous mode of regular & inserted channel */
+ ADC_CTL0(adc_periph) &= ~((uint32_t)(ADC_CTL0_DISRC | ADC_CTL0_DISIC));
+ switch(adc_channel_group){
+ case ADC_REGULAR_CHANNEL:
+ /* config the number of conversions in discontinuous mode */
+ ADC_CTL0(adc_periph) &= ~((uint32_t)ADC_CTL0_DISNUM);
+ ADC_CTL0(adc_periph) |= CTL0_DISNUM(((uint32_t)length - ADC_CHANNEL_LENGTH_SUBTRACT_ONE));
+ /* enable regular channel group discontinuous mode */
+ ADC_CTL0(adc_periph) |= (uint32_t)ADC_CTL0_DISRC;
+ break;
+ case ADC_INSERTED_CHANNEL:
+ /* enable inserted channel group discontinuous mode */
+ ADC_CTL0(adc_periph) |= (uint32_t)ADC_CTL0_DISIC;
+ break;
+ case ADC_CHANNEL_DISCON_DISABLE:
+ /* disable discontinuous mode of regular & inserted channel */
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure the length of regular channel group or inserted channel group
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel_group: select the channel group
+ only one parameter can be selected which is shown as below:
+ \arg ADC_REGULAR_CHANNEL: regular channel group
+ \arg ADC_INSERTED_CHANNEL: inserted channel group
+ \param[in] length: the length of the channel
+ regular channel 1-16
+ inserted channel 1-4
+ \param[out] none
+ \retval none
+*/
+void adc_channel_length_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t length)
+{
+ switch(adc_channel_group){
+ case ADC_REGULAR_CHANNEL:
+ /* configure the length of regular channel group */
+ ADC_RSQ0(adc_periph) &= ~((uint32_t)ADC_RSQ0_RL);
+ ADC_RSQ0(adc_periph) |= RSQ0_RL((uint32_t)(length-ADC_CHANNEL_LENGTH_SUBTRACT_ONE));
+ break;
+ case ADC_INSERTED_CHANNEL:
+ /* configure the length of inserted channel group */
+ ADC_ISQ(adc_periph) &= ~((uint32_t)ADC_ISQ_IL);
+ ADC_ISQ(adc_periph) |= ISQ_IL((uint32_t)(length-ADC_CHANNEL_LENGTH_SUBTRACT_ONE));
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure ADC regular channel
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] rank: the regular group sequence rank,this parameter must be between 0 to 15
+ \param[in] adc_channel: the selected ADC channel
+ only one parameter can be selected which is shown as below:
+ \arg ADC_CHANNEL_x(x=0..17)(x=16 and x=17 are only for ADC0): ADC Channelx
+ \param[in] sample_time: the sample time value
+ only one parameter can be selected which is shown as below:
+ \arg ADC_SAMPLETIME_1POINT5: 1.5 cycles
+ \arg ADC_SAMPLETIME_7POINT5: 7.5 cycles
+ \arg ADC_SAMPLETIME_13POINT5: 13.5 cycles
+ \arg ADC_SAMPLETIME_28POINT5: 28.5 cycles
+ \arg ADC_SAMPLETIME_41POINT5: 41.5 cycles
+ \arg ADC_SAMPLETIME_55POINT5: 55.5 cycles
+ \arg ADC_SAMPLETIME_71POINT5: 71.5 cycles
+ \arg ADC_SAMPLETIME_239POINT5: 239.5 cycles
+ \param[out] none
+ \retval none
+*/
+void adc_regular_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time)
+{
+ uint32_t rsq,sampt;
+
+ /* ADC regular sequence config */
+ if(rank < ADC_REGULAR_CHANNEL_RANK_SIX){
+ /* the regular group sequence rank is smaller than six */
+ rsq = ADC_RSQ2(adc_periph);
+ rsq &= ~((uint32_t)(ADC_RSQX_RSQN << (ADC_REGULAR_CHANNEL_RANK_LENGTH*rank)));
+ /* the channel number is written to these bits to select a channel as the nth conversion in the regular channel group */
+ rsq |= ((uint32_t)adc_channel << (ADC_REGULAR_CHANNEL_RANK_LENGTH*rank));
+ ADC_RSQ2(adc_periph) = rsq;
+ }else if(rank < ADC_REGULAR_CHANNEL_RANK_TWELVE){
+ /* the regular group sequence rank is smaller than twelve */
+ rsq = ADC_RSQ1(adc_periph);
+ rsq &= ~((uint32_t)(ADC_RSQX_RSQN << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_SIX))));
+ /* the channel number is written to these bits to select a channel as the nth conversion in the regular channel group */
+ rsq |= ((uint32_t)adc_channel << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_SIX)));
+ ADC_RSQ1(adc_periph) = rsq;
+ }else if(rank < ADC_REGULAR_CHANNEL_RANK_SIXTEEN){
+ /* the regular group sequence rank is smaller than sixteen */
+ rsq = ADC_RSQ0(adc_periph);
+ rsq &= ~((uint32_t)(ADC_RSQX_RSQN << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_TWELVE))));
+ /* the channel number is written to these bits to select a channel as the nth conversion in the regular channel group */
+ rsq |= ((uint32_t)adc_channel << (ADC_REGULAR_CHANNEL_RANK_LENGTH*(rank-ADC_REGULAR_CHANNEL_RANK_TWELVE)));
+ ADC_RSQ0(adc_periph) = rsq;
+ }else{
+ }
+
+ /* ADC sampling time config */
+ if(adc_channel < ADC_CHANNEL_SAMPLE_TEN){
+ /* the regular group sequence rank is smaller than ten */
+ sampt = ADC_SAMPT1(adc_periph);
+ sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel)));
+ /* channel sample time set*/
+ sampt |= (uint32_t)(sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel));
+ ADC_SAMPT1(adc_periph) = sampt;
+ }else if(adc_channel < ADC_CHANNEL_SAMPLE_EIGHTEEN){
+ /* the regular group sequence rank is smaller than eighteen */
+ sampt = ADC_SAMPT0(adc_periph);
+ sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN))));
+ /* channel sample time set*/
+ sampt |= (uint32_t)(sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN)));
+ ADC_SAMPT0(adc_periph) = sampt;
+ }else{
+ }
+}
+
+/*!
+ \brief configure ADC inserted channel
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] rank: the inserted group sequencer rank,this parameter must be between 0 to 3
+ \param[in] adc_channel: the selected ADC channel
+ only one parameter can be selected which is shown as below:
+ \arg ADC_CHANNEL_x(x=0..17)(x=16 and x=17 are only for ADC0): ADC Channelx
+ \param[in] sample_time: The sample time value
+ only one parameter can be selected which is shown as below:
+ \arg ADC_SAMPLETIME_1POINT5: 1.5 cycles
+ \arg ADC_SAMPLETIME_7POINT5: 7.5 cycles
+ \arg ADC_SAMPLETIME_13POINT5: 13.5 cycles
+ \arg ADC_SAMPLETIME_28POINT5: 28.5 cycles
+ \arg ADC_SAMPLETIME_41POINT5: 41.5 cycles
+ \arg ADC_SAMPLETIME_55POINT5: 55.5 cycles
+ \arg ADC_SAMPLETIME_71POINT5: 71.5 cycles
+ \arg ADC_SAMPLETIME_239POINT5: 239.5 cycles
+ \param[out] none
+ \retval none
+*/
+void adc_inserted_channel_config(uint32_t adc_periph, uint8_t rank, uint8_t adc_channel, uint32_t sample_time)
+{
+ uint8_t inserted_length;
+ uint32_t isq,sampt;
+ /* get inserted channel group length */
+ inserted_length = (uint8_t)GET_BITS(ADC_ISQ(adc_periph) , 20U , 21U);
+ /* the channel number is written to these bits to select a channel as the nth conversion in the inserted channel group */
+ isq = ADC_ISQ(adc_periph);
+ isq &= ~((uint32_t)(ADC_ISQ_ISQN << (ADC_INSERTED_CHANNEL_SHIFT_LENGTH-(inserted_length-rank)*ADC_INSERTED_CHANNEL_RANK_LENGTH)));
+ isq |= ((uint32_t)adc_channel << (ADC_INSERTED_CHANNEL_SHIFT_LENGTH-(inserted_length-rank)*ADC_INSERTED_CHANNEL_RANK_LENGTH));
+ ADC_ISQ(adc_periph) = isq;
+
+ /* ADC sampling time config */
+ if(adc_channel < ADC_CHANNEL_SAMPLE_TEN){
+ /* the inserted group sequence rank is smaller than ten */
+ sampt = ADC_SAMPT1(adc_periph);
+ sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel)));
+ /* channel sample time set*/
+ sampt |= (uint32_t) sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*adc_channel);
+ ADC_SAMPT1(adc_periph) = sampt;
+ }else if(adc_channel < ADC_CHANNEL_SAMPLE_EIGHTEEN){
+ /* the inserted group sequence rank is smaller than eighteen */
+ sampt = ADC_SAMPT0(adc_periph);
+ sampt &= ~((uint32_t)(ADC_SAMPTX_SPTN << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN))));
+ /* channel sample time set*/
+ sampt |= ((uint32_t)sample_time << (ADC_CHANNEL_SAMPLE_LENGTH*(adc_channel-ADC_CHANNEL_SAMPLE_TEN)));
+ ADC_SAMPT0(adc_periph) = sampt;
+ }else{
+ }
+}
+
+/*!
+ \brief configure ADC inserted channel offset
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] inserted_channel: insert channel select
+ only one parameter can be selected
+ \arg ADC_INSERTED_CHANNEL_0: inserted channel0
+ \arg ADC_INSERTED_CHANNEL_1: inserted channel1
+ \arg ADC_INSERTED_CHANNEL_2: inserted channel2
+ \arg ADC_INSERTED_CHANNEL_3: inserted channel3
+ \param[in] offset: the offset data
+ \param[out] none
+ \retval none
+*/
+void adc_inserted_channel_offset_config(uint32_t adc_periph, uint8_t inserted_channel, uint16_t offset)
+{
+ uint8_t inserted_length;
+ uint32_t num = 0U;
+
+ inserted_length = (uint8_t)GET_BITS(ADC_ISQ(adc_periph) , 20U , 21U);
+ num = ((uint32_t)ADC_OFFSET_LENGTH - ((uint32_t)inserted_length - (uint32_t)inserted_channel));
+
+ if(num <= ADC_OFFSET_LENGTH){
+ /* calculate the offset of the register */
+ num = num * ADC_OFFSET_SHIFT_LENGTH;
+ /* config the offset of the selected channels */
+ REG32((adc_periph) + 0x14U + num) = IOFFX_IOFF((uint32_t)offset);
+ }
+}
+
+/*!
+ \brief configure ADC external trigger source
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel_group: select the channel group
+ only one parameter can be selected which is shown as below:
+ \arg ADC_REGULAR_CHANNEL: regular channel group
+ \arg ADC_INSERTED_CHANNEL: inserted channel group
+ \param[in] external_trigger_source: regular or inserted group trigger source
+ only one parameter can be selected
+ for regular channel:
+ \arg ADC0_1_EXTTRIG_REGULAR_T0_CH0: TIMER0 CH0 event select
+ \arg ADC0_1_EXTTRIG_REGULAR_T0_CH1: TIMER0 CH1 event select
+ \arg ADC0_1_EXTTRIG_REGULAR_T0_CH2: TIMER0 CH2 event select
+ \arg ADC0_1_EXTTRIG_REGULAR_T1_CH1: TIMER1 CH1 event select
+ \arg ADC0_1_EXTTRIG_REGULAR_T2_TRGO: TIMER2 TRGO event select
+ \arg ADC0_1_EXTTRIG_REGULAR_T3_CH3: TIMER3 CH3 event select
+ \arg ADC0_1_EXTTRIG_REGULAR_EXTI_11: external interrupt line 11
+ \arg ADC0_1_EXTTRIG_REGULAR_NONE: software trigger
+ for inserted channel:
+ \arg ADC0_1_EXTTRIG_INSERTED_T0_TRGO: TIMER0 TRGO event select
+ \arg ADC0_1_EXTTRIG_INSERTED_T0_CH3: TIMER0 CH3 event select
+ \arg ADC0_1_EXTTRIG_INSERTED_T1_TRGO: TIMER1 TRGO event select
+ \arg ADC0_1_EXTTRIG_INSERTED_T1_CH0: TIMER1 CH0 event select
+ \arg ADC0_1_EXTTRIG_INSERTED_T2_CH3: TIMER2 CH3 event select
+ \arg ADC0_1_EXTTRIG_INSERTED_T3_TRGO: TIMER3 TRGO event select
+ \arg ADC0_1_EXTTRIG_INSERTED_EXTI_15: external interrupt line 15
+ \arg ADC0_1_EXTTRIG_INSERTED_NONE: software trigger
+ \param[out] none
+ \retval none
+*/
+void adc_external_trigger_source_config(uint32_t adc_periph, uint8_t adc_channel_group, uint32_t external_trigger_source)
+{
+ switch(adc_channel_group){
+ case ADC_REGULAR_CHANNEL:
+ /* configure ADC regular group external trigger source */
+ ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ETSRC);
+ ADC_CTL1(adc_periph) |= (uint32_t)external_trigger_source;
+ break;
+ case ADC_INSERTED_CHANNEL:
+ /* configure ADC inserted group external trigger source */
+ ADC_CTL1(adc_periph) &= ~((uint32_t)ADC_CTL1_ETSIC);
+ ADC_CTL1(adc_periph) |= (uint32_t)external_trigger_source;
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure ADC external trigger
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel_group: select the channel group
+ one or more parameters can be selected which are shown as below:
+ \arg ADC_REGULAR_CHANNEL: regular channel group
+ \arg ADC_INSERTED_CHANNEL: inserted channel group
+ \param[in] newvalue: ENABLE or DISABLE
+ \param[out] none
+ \retval none
+*/
+void adc_external_trigger_config(uint32_t adc_periph, uint8_t adc_channel_group, ControlStatus newvalue)
+{
+ if(newvalue){
+ if(0U != (adc_channel_group & ADC_REGULAR_CHANNEL)){
+ /* enable ADC regular channel group external trigger */
+ ADC_CTL1(adc_periph) |= ADC_CTL1_ETERC;
+ }
+ if(0U != (adc_channel_group & ADC_INSERTED_CHANNEL)){
+ /* enable ADC inserted channel group external trigger */
+ ADC_CTL1(adc_periph) |= ADC_CTL1_ETEIC;
+ }
+ }else{
+ if(0U != (adc_channel_group & ADC_REGULAR_CHANNEL)){
+ /* disable ADC regular channel group external trigger */
+ ADC_CTL1(adc_periph) &= ~ADC_CTL1_ETERC;
+ }
+ if(0U != (adc_channel_group & ADC_INSERTED_CHANNEL)){
+ /* disable ADC regular channel group external trigger */
+ ADC_CTL1(adc_periph) &= ~ADC_CTL1_ETEIC;
+ }
+ }
+}
+
+/*!
+ \brief enable ADC software trigger
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel_group: select the channel group
+ one or more parameters can be selected which are shown as below:
+ \arg ADC_REGULAR_CHANNEL: regular channel group
+ \arg ADC_INSERTED_CHANNEL: inserted channel group
+ \param[out] none
+ \retval none
+*/
+void adc_software_trigger_enable(uint32_t adc_periph, uint8_t adc_channel_group)
+{
+ if(0U != (adc_channel_group & ADC_REGULAR_CHANNEL)){
+ /* enable ADC regular channel group software trigger */
+ ADC_CTL1(adc_periph) |= ADC_CTL1_SWRCST;
+ }
+ if(0U != (adc_channel_group & ADC_INSERTED_CHANNEL)){
+ /* enable ADC inserted channel group software trigger */
+ ADC_CTL1(adc_periph) |= ADC_CTL1_SWICST;
+ }
+}
+
+/*!
+ \brief read ADC regular group data register
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] none
+ \param[out] none
+ \retval the conversion value
+*/
+uint16_t adc_regular_data_read(uint32_t adc_periph)
+{
+ return (uint16_t)(ADC_RDATA(adc_periph));
+}
+
+/*!
+ \brief read ADC inserted group data register
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] inserted_channel: insert channel select
+ only one parameter can be selected
+ \arg ADC_INSERTED_CHANNEL_0: inserted Channel0
+ \arg ADC_INSERTED_CHANNEL_1: inserted channel1
+ \arg ADC_INSERTED_CHANNEL_2: inserted Channel2
+ \arg ADC_INSERTED_CHANNEL_3: inserted Channel3
+ \param[out] none
+ \retval the conversion value
+*/
+uint16_t adc_inserted_data_read(uint32_t adc_periph, uint8_t inserted_channel)
+{
+ uint32_t idata;
+ /* read the data of the selected channel */
+ switch(inserted_channel){
+ case ADC_INSERTED_CHANNEL_0:
+ /* read the data of channel 0 */
+ idata = ADC_IDATA0(adc_periph);
+ break;
+ case ADC_INSERTED_CHANNEL_1:
+ /* read the data of channel 1 */
+ idata = ADC_IDATA1(adc_periph);
+ break;
+ case ADC_INSERTED_CHANNEL_2:
+ /* read the data of channel 2 */
+ idata = ADC_IDATA2(adc_periph);
+ break;
+ case ADC_INSERTED_CHANNEL_3:
+ /* read the data of channel 3 */
+ idata = ADC_IDATA3(adc_periph);
+ break;
+ default:
+ idata = 0U;
+ break;
+ }
+ return (uint16_t)idata;
+}
+
+/*!
+ \brief read the last ADC0 and ADC1 conversion result data in sync mode
+ \param[in] none
+ \param[out] none
+ \retval the conversion value
+*/
+uint32_t adc_sync_mode_convert_value_read(void)
+{
+ /* return conversion value */
+ return ADC_RDATA(ADC0);
+}
+
+
+/*!
+ \brief configure ADC analog watchdog single channel
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel: the selected ADC channel
+ only one parameter can be selected which is shown as below:
+ \arg ADC_CHANNEL_x: ADC Channelx(x=0..17)(x=16 and x=17 are only for ADC0)
+ \param[out] none
+ \retval none
+*/
+void adc_watchdog_single_channel_enable(uint32_t adc_periph, uint8_t adc_channel)
+{
+ ADC_CTL0(adc_periph) &= (uint32_t)~(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC | ADC_CTL0_WDCHSEL);
+ /* analog watchdog channel select */
+ ADC_CTL0(adc_periph) |= (uint32_t)adc_channel;
+ ADC_CTL0(adc_periph) |= (uint32_t)(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC);
+}
+
+/*!
+ \brief configure ADC analog watchdog group channel
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_channel_group: the channel group use analog watchdog
+ only one parameter can be selected which is shown as below:
+ \arg ADC_REGULAR_CHANNEL: regular channel group
+ \arg ADC_INSERTED_CHANNEL: inserted channel group
+ \arg ADC_REGULAR_INSERTED_CHANNEL: both regular and inserted group
+ \param[out] none
+ \retval none
+*/
+void adc_watchdog_group_channel_enable(uint32_t adc_periph, uint8_t adc_channel_group)
+{
+ ADC_CTL0(adc_periph) &= (uint32_t)~(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC);
+ /* select the group */
+ switch(adc_channel_group){
+ case ADC_REGULAR_CHANNEL:
+ /* regular channel analog watchdog enable */
+ ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_RWDEN;
+ break;
+ case ADC_INSERTED_CHANNEL:
+ /* inserted channel analog watchdog enable */
+ ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_IWDEN;
+ break;
+ case ADC_REGULAR_INSERTED_CHANNEL:
+ /* regular and inserted channel analog watchdog enable */
+ ADC_CTL0(adc_periph) |= (uint32_t)(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief disable ADC analog watchdog
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_watchdog_disable(uint32_t adc_periph)
+{
+ ADC_CTL0(adc_periph) &= (uint32_t)~(ADC_CTL0_RWDEN | ADC_CTL0_IWDEN | ADC_CTL0_WDSC | ADC_CTL0_WDCHSEL);
+}
+
+/*!
+ \brief configure ADC analog watchdog threshold
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] low_threshold: analog watchdog low threshold, 0..4095
+ \param[in] high_threshold: analog watchdog high threshold, 0..4095
+ \param[out] none
+ \retval none
+*/
+void adc_watchdog_threshold_config(uint32_t adc_periph, uint16_t low_threshold, uint16_t high_threshold)
+{
+ ADC_WDLT(adc_periph) = (uint32_t)WDLT_WDLT(low_threshold);
+ ADC_WDHT(adc_periph) = (uint32_t)WDHT_WDHT(high_threshold);
+}
+
+/*!
+ \brief get the ADC flag bits
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_flag: the adc flag bits
+ only one parameter can be selected which is shown as below:
+ \arg ADC_FLAG_WDE: analog watchdog event flag
+ \arg ADC_FLAG_EOC: end of group conversion flag
+ \arg ADC_FLAG_EOIC: end of inserted group conversion flag
+ \arg ADC_FLAG_STIC: start flag of inserted channel group
+ \arg ADC_FLAG_STRC: start flag of regular channel group
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus adc_flag_get(uint32_t adc_periph, uint32_t adc_flag)
+{
+ FlagStatus reval = RESET;
+ if(ADC_STAT(adc_periph) & adc_flag){
+ reval = SET;
+ }
+ return reval;
+}
+
+/*!
+ \brief clear the ADC flag bits
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_flag: the adc flag bits
+ one or more parameters can be selected which are shown as below:
+ \arg ADC_FLAG_WDE: analog watchdog event flag
+ \arg ADC_FLAG_EOC: end of group conversion flag
+ \arg ADC_FLAG_EOIC: end of inserted group conversion flag
+ \arg ADC_FLAG_STIC: start flag of inserted channel group
+ \arg ADC_FLAG_STRC: start flag of regular channel group
+ \param[out] none
+ \retval none
+*/
+void adc_flag_clear(uint32_t adc_periph, uint32_t adc_flag)
+{
+ ADC_STAT(adc_periph) &= ~((uint32_t)adc_flag);
+}
+
+/*!
+ \brief get the bit state of ADCx software start conversion
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] none
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus adc_regular_software_startconv_flag_get(uint32_t adc_periph)
+{
+ FlagStatus reval = RESET;
+ if((uint32_t)RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_SWRCST)){
+ reval = SET;
+ }
+ return reval;
+}
+
+/*!
+ \brief get the bit state of ADCx software inserted channel start conversion
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] none
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus adc_inserted_software_startconv_flag_get(uint32_t adc_periph)
+{
+ FlagStatus reval = RESET;
+ if((uint32_t)RESET != (ADC_CTL1(adc_periph) & ADC_CTL1_SWICST)){
+ reval = SET;
+ }
+ return reval;
+}
+
+/*!
+ \brief get the ADC interrupt bits
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_interrupt: the adc interrupt bits
+ only one parameter can be selected which is shown as below:
+ \arg ADC_INT_FLAG_WDE: analog watchdog interrupt
+ \arg ADC_INT_FLAG_EOC: end of group conversion interrupt
+ \arg ADC_INT_FLAG_EOIC: end of inserted group conversion interrupt
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus adc_interrupt_flag_get(uint32_t adc_periph, uint32_t adc_interrupt)
+{
+ FlagStatus interrupt_flag = RESET;
+ uint32_t state;
+ /* check the interrupt bits */
+ switch(adc_interrupt){
+ case ADC_INT_FLAG_WDE:
+ /* get the ADC analog watchdog interrupt bits */
+ state = ADC_STAT(adc_periph) & ADC_STAT_WDE;
+ if((ADC_CTL0(adc_periph) & ADC_CTL0_WDEIE) && state){
+ interrupt_flag = SET;
+ }
+ break;
+ case ADC_INT_FLAG_EOC:
+ /* get the ADC end of group conversion interrupt bits */
+ state = ADC_STAT(adc_periph) & ADC_STAT_EOC;
+ if((ADC_CTL0(adc_periph) & ADC_CTL0_EOCIE) && state){
+ interrupt_flag = SET;
+ }
+ break;
+ case ADC_INT_FLAG_EOIC:
+ /* get the ADC end of inserted group conversion interrupt bits */
+ state = ADC_STAT(adc_periph) & ADC_STAT_EOIC;
+ if((ADC_CTL0(adc_periph) & ADC_CTL0_EOICIE) && state){
+ interrupt_flag = SET;
+ }
+ break;
+ default:
+ break;
+ }
+ return interrupt_flag;
+}
+
+/*!
+ \brief clear the ADC flag
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_interrupt: the adc status flag
+ one or more parameters can be selected which are shown as below:
+ \arg ADC_INT_FLAG_WDE: analog watchdog interrupt
+ \arg ADC_INT_FLAG_EOC: end of group conversion interrupt
+ \arg ADC_INT_FLAG_EOIC: end of inserted group conversion interrupt
+ \param[out] none
+ \retval none
+*/
+void adc_interrupt_flag_clear(uint32_t adc_periph, uint32_t adc_interrupt)
+{
+ ADC_STAT(adc_periph) &= ~((uint32_t)adc_interrupt);
+}
+
+/*!
+ \brief enable ADC interrupt
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_interrupt: the adc interrupt
+ one or more parameters can be selected which are shown as below:
+ \arg ADC_INT_WDE: analog watchdog interrupt flag
+ \arg ADC_INT_EOC: end of group conversion interrupt flag
+ \arg ADC_INT_EOIC: end of inserted group conversion interrupt flag
+ \param[out] none
+ \retval none
+*/
+void adc_interrupt_enable(uint32_t adc_periph, uint32_t adc_interrupt)
+{
+ /* enable ADC analog watchdog interrupt */
+ if(0U != (adc_interrupt & ADC_INT_WDE)){
+ ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_WDEIE;
+ }
+ /* enable ADC end of group conversion interrupt */
+ if(0U != (adc_interrupt & ADC_INT_EOC)){
+ ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_EOCIE;
+ }
+ /* enable ADC end of inserted group conversion interrupt */
+ if(0U != (adc_interrupt & ADC_INT_EOIC)){
+ ADC_CTL0(adc_periph) |= (uint32_t) ADC_CTL0_EOICIE;
+ }
+}
+
+/*!
+ \brief disable ADC interrupt
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] adc_interrupt: the adc interrupt flag
+ one or more parameters can be selected which are shown as below:
+ \arg ADC_INT_WDE: analog watchdog interrupt flag
+ \arg ADC_INT_EOC: end of group conversion interrupt flag
+ \arg ADC_INT_EOIC: end of inserted group conversion interrupt flag
+ \param[out] none
+ \retval none
+*/
+void adc_interrupt_disable(uint32_t adc_periph, uint32_t adc_interrupt)
+{
+ /* disable ADC analog watchdog interrupt */
+ if(0U != (adc_interrupt & ADC_INT_WDE)){
+ ADC_CTL0(adc_periph) &= ~(uint32_t) ADC_CTL0_WDEIE;
+ }
+ /* disable ADC end of group conversion interrupt */
+ if(0U != (adc_interrupt & ADC_INT_EOC)){
+ ADC_CTL0(adc_periph) &= ~(uint32_t) ADC_CTL0_EOCIE;
+ }
+ /* disable ADC end of inserted group conversion interrupt */
+ if(0U != (adc_interrupt & ADC_INT_EOIC)){
+ ADC_CTL0(adc_periph) &= ~(uint32_t) ADC_CTL0_EOICIE;
+ }
+}
+
+/*!
+ \brief adc resolution config
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] resolution: ADC resolution
+ only one parameter can be selected which is shown as below:
+ \arg ADC_RESOLUTION_12B: 12-bit ADC resolution
+ \arg ADC_RESOLUTION_10B: 10-bit ADC resolution
+ \arg ADC_RESOLUTION_8B: 8-bit ADC resolution
+ \arg ADC_RESOLUTION_6B: 6-bit ADC resolution
+ \param[out] none
+ \retval none
+*/
+void adc_resolution_config(uint32_t adc_periph, uint32_t resolution)
+{
+ ADC_OVSCR(adc_periph) &= ~((uint32_t)ADC_OVSCR_DRES);
+ ADC_OVSCR(adc_periph) |= (uint32_t)resolution;
+}
+
+/*!
+ \brief adc oversample mode config
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[in] mode: ADC oversampling mode
+ only one parameter can be selected which is shown as below:
+ \arg ADC_OVERSAMPLING_ALL_CONVERT: all oversampled conversions for a channel
+ are done consecutively after a trigger
+ \arg ADC_OVERSAMPLING_ONE_CONVERT: each oversampled conversion for a channel
+ needs a trigger
+ \param[in] shift: ADC oversampling shift
+ only one parameter can be selected which is shown as below:
+ \arg ADC_OVERSAMPLING_SHIFT_NONE: no oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_1B: 1-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_2B: 2-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_3B: 3-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_4B: 3-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_5B: 5-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_6B: 6-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_7B: 7-bit oversampling shift
+ \arg ADC_OVERSAMPLING_SHIFT_8B: 8-bit oversampling shift
+ \param[in] ratio: ADC oversampling ratio
+ only one parameter can be selected which is shown as below:
+ \arg ADC_OVERSAMPLING_RATIO_MUL2: oversampling ratio X2
+ \arg ADC_OVERSAMPLING_RATIO_MUL4: oversampling ratio X4
+ \arg ADC_OVERSAMPLING_RATIO_MUL8: oversampling ratio X8
+ \arg ADC_OVERSAMPLING_RATIO_MUL16: oversampling ratio X16
+ \arg ADC_OVERSAMPLING_RATIO_MUL32: oversampling ratio X32
+ \arg ADC_OVERSAMPLING_RATIO_MUL64: oversampling ratio X64
+ \arg ADC_OVERSAMPLING_RATIO_MUL128: oversampling ratio X128
+ \arg ADC_OVERSAMPLING_RATIO_MUL256: oversampling ratio X256
+ \param[out] none
+ \retval none
+*/
+void adc_oversample_mode_config(uint32_t adc_periph, uint8_t mode, uint16_t shift,uint8_t ratio)
+{
+ if(mode){
+ ADC_OVSCR(adc_periph) |= (uint32_t)ADC_OVSCR_TOVS;
+ }else{
+ ADC_OVSCR(adc_periph) &= ~((uint32_t)ADC_OVSCR_TOVS);
+ }
+ /* config the shift and ratio */
+ ADC_OVSCR(adc_periph) &= ~((uint32_t)(ADC_OVSCR_OVSR | ADC_OVSCR_OVSS));
+ ADC_OVSCR(adc_periph) |= ((uint32_t)shift | (uint32_t)ratio);
+}
+
+/*!
+ \brief enable ADC oversample mode
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_oversample_mode_enable(uint32_t adc_periph)
+{
+ ADC_OVSCR(adc_periph) |= ADC_OVSCR_OVSEN;
+}
+
+/*!
+ \brief disable ADC oversample mode
+ \param[in] adc_periph: ADCx, x=0,1
+ \param[out] none
+ \retval none
+*/
+void adc_oversample_mode_disable(uint32_t adc_periph)
+{
+ ADC_OVSCR(adc_periph) &= ~((uint32_t)ADC_OVSCR_OVSEN);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c
new file mode 100644
index 0000000000..c0eeb2a892
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c
@@ -0,0 +1,293 @@
+/*!
+ \file gd32vf103_bkp.c
+ \brief BKP driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_bkp.h"
+
+/* BKP register bits offset */
+#define BKP_TAMPER_BITS_OFFSET ((uint32_t)8U)
+
+/*!
+ \brief reset BKP registers
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_deinit(void)
+{
+ /* reset BKP domain register*/
+ rcu_bkp_reset_enable();
+ rcu_bkp_reset_disable();
+}
+
+/*!
+ \brief write BKP data register
+ \param[in] register_number: refer to bkp_data_register_enum
+ only one parameter can be selected which is shown as below:
+ \arg BKP_DATA_x(x = 0..41): bkp data register number x
+ \param[in] data: the data to be write in BKP data register
+ \param[out] none
+ \retval none
+*/
+void bkp_data_write(bkp_data_register_enum register_number, uint16_t data)
+{
+ if((register_number >= BKP_DATA_10) && (register_number <= BKP_DATA_41)){
+ BKP_DATA10_41((uint32_t)register_number - 1U) = data;
+ }else if((register_number >= BKP_DATA_0) && (register_number <= BKP_DATA_9)){
+ BKP_DATA0_9((uint32_t)register_number - 1U) = data;
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief read BKP data register
+ \param[in] register_number: refer to bkp_data_register_enum
+ only one parameter can be selected which is shown as below:
+ \arg BKP_DATA_x(x = 0..41): bkp data register number x
+ \param[out] none
+ \retval data of BKP data register
+*/
+uint16_t bkp_data_read(bkp_data_register_enum register_number)
+{
+ uint16_t data = 0U;
+
+ /* get the data from the BKP data register */
+ if((register_number >= BKP_DATA_10) && (register_number <= BKP_DATA_41)){
+ data = BKP_DATA10_41((uint32_t)register_number - 1U);
+ }else if((register_number >= BKP_DATA_0) && (register_number <= BKP_DATA_9)){
+ data = BKP_DATA0_9((uint32_t)register_number - 1U);
+ }else{
+ /* illegal parameters */
+ }
+ return data;
+}
+
+/*!
+ \brief enable RTC clock calibration output
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_rtc_calibration_output_enable(void)
+{
+ BKP_OCTL |= (uint16_t)BKP_OCTL_COEN;
+}
+
+/*!
+ \brief disable RTC clock calibration output
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_rtc_calibration_output_disable(void)
+{
+ BKP_OCTL &= (uint16_t)~BKP_OCTL_COEN;
+}
+
+/*!
+ \brief enable RTC alarm or second signal output
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_rtc_signal_output_enable(void)
+{
+ BKP_OCTL |= (uint16_t)BKP_OCTL_ASOEN;
+}
+
+/*!
+ \brief disable RTC alarm or second signal output
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_rtc_signal_output_disable(void)
+{
+ BKP_OCTL &= (uint16_t)~BKP_OCTL_ASOEN;
+}
+
+/*!
+ \brief select RTC output
+ \param[in] outputsel: RTC output selection
+ only one parameter can be selected which is shown as below:
+ \arg RTC_OUTPUT_ALARM_PULSE: RTC alarm pulse is selected as the RTC output
+ \arg RTC_OUTPUT_SECOND_PULSE: RTC second pulse is selected as the RTC output
+ \param[out] none
+ \retval none
+*/
+void bkp_rtc_output_select(uint16_t outputsel)
+{
+ uint16_t ctl = 0U;
+
+ /* configure BKP_OCTL_ROSEL with outputsel */
+ ctl = BKP_OCTL;
+ ctl &= (uint16_t)~BKP_OCTL_ROSEL;
+ ctl |= outputsel;
+ BKP_OCTL = ctl;
+}
+
+/*!
+ \brief set RTC clock calibration value
+ \param[in] value: RTC clock calibration value
+ \arg 0x00 - 0x7F
+ \param[out] none
+ \retval none
+*/
+void bkp_rtc_calibration_value_set(uint8_t value)
+{
+ uint16_t ctl;
+
+ /* configure BKP_OCTL_RCCV with value */
+ ctl = BKP_OCTL;
+ ctl &= (uint16_t)~BKP_OCTL_RCCV;
+ ctl |= (uint16_t)OCTL_RCCV(value);
+ BKP_OCTL = ctl;
+}
+
+/*!
+ \brief enable tamper detection
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_tamper_detection_enable(void)
+{
+ BKP_TPCTL |= (uint16_t)BKP_TPCTL_TPEN;
+}
+
+/*!
+ \brief disable tamper detection
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_tamper_detection_disable(void)
+{
+ BKP_TPCTL &= (uint16_t)~BKP_TPCTL_TPEN;
+}
+
+/*!
+ \brief set tamper pin active level
+ \param[in] level: tamper active level
+ only one parameter can be selected which is shown as below:
+ \arg TAMPER_PIN_ACTIVE_HIGH: the tamper pin is active high
+ \arg TAMPER_PIN_ACTIVE_LOW: the tamper pin is active low
+ \param[out] none
+ \retval none
+*/
+void bkp_tamper_active_level_set(uint16_t level)
+{
+ uint16_t ctl = 0U;
+
+ /* configure BKP_TPCTL_TPAL with level */
+ ctl = BKP_TPCTL;
+ ctl &= (uint16_t)~BKP_TPCTL_TPAL;
+ ctl |= level;
+ BKP_TPCTL = ctl;
+}
+
+/*!
+ \brief enable tamper interrupt
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_interrupt_enable(void)
+{
+ BKP_TPCS |= (uint16_t)BKP_TPCS_TPIE;
+}
+
+/*!
+ \brief disable tamper interrupt
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_interrupt_disable(void)
+{
+ BKP_TPCS &= (uint16_t)~BKP_TPCS_TPIE;
+}
+
+/*!
+ \brief get tamper flag state
+ \param[in] none
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus bkp_flag_get(void)
+{
+ if(BKP_TPCS & BKP_FLAG_TAMPER){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear tamper flag state
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_flag_clear(void)
+{
+ BKP_TPCS |= (uint16_t)(BKP_FLAG_TAMPER >> BKP_TAMPER_BITS_OFFSET);
+}
+
+/*!
+ \brief get tamper interrupt flag state
+ \param[in] none
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus bkp_interrupt_flag_get(void)
+{
+ if(BKP_TPCS & BKP_INT_FLAG_TAMPER){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear tamper interrupt flag state
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void bkp_interrupt_flag_clear(void)
+{
+ BKP_TPCS |= (uint16_t)(BKP_INT_FLAG_TAMPER >> BKP_TAMPER_BITS_OFFSET);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_can.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_can.c
new file mode 100644
index 0000000000..fd44a52a80
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_can.c
@@ -0,0 +1,1018 @@
+/*!
+ \file gd32vf103_can.c
+ \brief CAN driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-11-27, V1.0.1, firmware for GD32VF103
+ \version 2020-07-14, V1.0.2, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-14, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_can.h"
+
+#define CAN_ERROR_HANDLE(s) do{}while(1)
+
+/*!
+ \brief deinitialize CAN
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void can_deinit(uint32_t can_periph)
+{
+ if(CAN0 == can_periph){
+ rcu_periph_reset_enable(RCU_CAN0RST);
+ rcu_periph_reset_disable(RCU_CAN0RST);
+ }else{
+ rcu_periph_reset_enable(RCU_CAN1RST);
+ rcu_periph_reset_disable(RCU_CAN1RST);
+ }
+}
+
+/*!
+ \brief initialize CAN parameter struct with a default value
+ \param[in] type: the type of CAN parameter struct
+ only one parameter can be selected which is shown as below:
+ \arg CAN_INIT_STRUCT: the CAN initial struct
+ \arg CAN_FILTER_STRUCT: the CAN filter struct
+ \arg CAN_TX_MESSAGE_STRUCT: the CAN TX message struct
+ \arg CAN_RX_MESSAGE_STRUCT: the CAN RX message struct
+ \param[in] p_struct: the pointer of the specific struct
+ \param[out] none
+ \retval none
+*/
+void can_struct_para_init(can_struct_type_enum type, void* p_struct)
+{
+ uint8_t i;
+
+ /* get type of the struct */
+ switch(type){
+ /* used for can_init() */
+ case CAN_INIT_STRUCT:
+ ((can_parameter_struct*)p_struct)->auto_bus_off_recovery = DISABLE;
+ ((can_parameter_struct*)p_struct)->no_auto_retrans = DISABLE;
+ ((can_parameter_struct*)p_struct)->auto_wake_up = DISABLE;
+ ((can_parameter_struct*)p_struct)->prescaler = 0x03FFU;
+ ((can_parameter_struct*)p_struct)->rec_fifo_overwrite = DISABLE;
+ ((can_parameter_struct*)p_struct)->resync_jump_width = CAN_BT_SJW_1TQ;
+ ((can_parameter_struct*)p_struct)->time_segment_1 = CAN_BT_BS1_3TQ;
+ ((can_parameter_struct*)p_struct)->time_segment_2 = CAN_BT_BS2_1TQ;
+ ((can_parameter_struct*)p_struct)->time_triggered = DISABLE;
+ ((can_parameter_struct*)p_struct)->trans_fifo_order = DISABLE;
+ ((can_parameter_struct*)p_struct)->working_mode = CAN_NORMAL_MODE;
+
+ break;
+ /* used for can_filter_init() */
+ case CAN_FILTER_STRUCT:
+ ((can_filter_parameter_struct*)p_struct)->filter_bits = CAN_FILTERBITS_32BIT;
+ ((can_filter_parameter_struct*)p_struct)->filter_enable = DISABLE;
+ ((can_filter_parameter_struct*)p_struct)->filter_fifo_number = CAN_FIFO0;
+ ((can_filter_parameter_struct*)p_struct)->filter_list_high = 0x0000U;
+ ((can_filter_parameter_struct*)p_struct)->filter_list_low = 0x0000U;
+ ((can_filter_parameter_struct*)p_struct)->filter_mask_high = 0x0000U;
+ ((can_filter_parameter_struct*)p_struct)->filter_mask_low = 0x0000U;
+ ((can_filter_parameter_struct*)p_struct)->filter_mode = CAN_FILTERMODE_MASK;
+ ((can_filter_parameter_struct*)p_struct)->filter_number = 0U;
+
+ break;
+ /* used for can_message_transmit() */
+ case CAN_TX_MESSAGE_STRUCT:
+ for(i = 0U; i < 8U; i++){
+ ((can_trasnmit_message_struct*)p_struct)->tx_data[i] = 0U;
+ }
+
+ ((can_trasnmit_message_struct*)p_struct)->tx_dlen = 0u;
+ ((can_trasnmit_message_struct*)p_struct)->tx_efid = 0U;
+ ((can_trasnmit_message_struct*)p_struct)->tx_ff = (uint8_t)CAN_FF_STANDARD;
+ ((can_trasnmit_message_struct*)p_struct)->tx_ft = (uint8_t)CAN_FT_DATA;
+ ((can_trasnmit_message_struct*)p_struct)->tx_sfid = 0U;
+
+ break;
+ /* used for can_message_receive() */
+ case CAN_RX_MESSAGE_STRUCT:
+ for(i = 0U; i < 8U; i++){
+ ((can_receive_message_struct*)p_struct)->rx_data[i] = 0U;
+ }
+
+ ((can_receive_message_struct*)p_struct)->rx_dlen = 0U;
+ ((can_receive_message_struct*)p_struct)->rx_efid = 0U;
+ ((can_receive_message_struct*)p_struct)->rx_ff = (uint8_t)CAN_FF_STANDARD;
+ ((can_receive_message_struct*)p_struct)->rx_fi = 0U;
+ ((can_receive_message_struct*)p_struct)->rx_ft = (uint8_t)CAN_FT_DATA;
+ ((can_receive_message_struct*)p_struct)->rx_sfid = 0U;
+
+ break;
+
+ default:
+ CAN_ERROR_HANDLE("parameter is invalid \r\n");
+ }
+}
+
+/*!
+ \brief initialize CAN
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] can_parameter_init: parameters for CAN initializtion
+ \arg working_mode: CAN_NORMAL_MODE, CAN_LOOPBACK_MODE, CAN_SILENT_MODE, CAN_SILENT_LOOPBACK_MODE
+ \arg resync_jump_width: CAN_BT_SJW_xTQ(x=1, 2, 3, 4)
+ \arg time_segment_1: CAN_BT_BS1_xTQ(1..16)
+ \arg time_segment_2: CAN_BT_BS2_xTQ(1..8)
+ \arg time_triggered: ENABLE or DISABLE
+ \arg auto_bus_off_recovery: ENABLE or DISABLE
+ \arg auto_wake_up: ENABLE or DISABLE
+ \arg no_auto_retrans: ENABLE or DISABLE
+ \arg rec_fifo_overwrite: ENABLE or DISABLE
+ \arg trans_fifo_order: ENABLE or DISABLE
+ \arg prescaler: 0x0001 - 0x0400
+ \param[out] none
+ \retval ErrStatus: SUCCESS or ERROR
+*/
+ErrStatus can_init(uint32_t can_periph, can_parameter_struct* can_parameter_init)
+{
+ uint32_t timeout = CAN_TIMEOUT;
+ ErrStatus flag = ERROR;
+
+ /* disable sleep mode */
+ CAN_CTL(can_periph) &= ~CAN_CTL_SLPWMOD;
+ /* enable initialize mode */
+ CAN_CTL(can_periph) |= CAN_CTL_IWMOD;
+ /* wait ACK */
+ while((CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){
+ timeout--;
+ }
+ /* check initialize working success */
+ if(CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)){
+ flag = ERROR;
+ }else{
+ /* set the bit timing register */
+ CAN_BT(can_periph) = (BT_MODE((uint32_t)can_parameter_init->working_mode) | \
+ BT_SJW((uint32_t)can_parameter_init->resync_jump_width) | \
+ BT_BS1((uint32_t)can_parameter_init->time_segment_1) | \
+ BT_BS2((uint32_t)can_parameter_init->time_segment_2) | \
+ BT_BAUDPSC(((uint32_t)(can_parameter_init->prescaler) - 1U)));
+
+ /* time trigger communication mode */
+ if(ENABLE == can_parameter_init->time_triggered){
+ CAN_CTL(can_periph) |= CAN_CTL_TTC;
+ }else{
+ CAN_CTL(can_periph) &= ~CAN_CTL_TTC;
+ }
+ /* automatic bus-off managment */
+ if(ENABLE == can_parameter_init->auto_bus_off_recovery){
+ CAN_CTL(can_periph) |= CAN_CTL_ABOR;
+ }else{
+ CAN_CTL(can_periph) &= ~CAN_CTL_ABOR;
+ }
+ /* automatic wakeup mode */
+ if(ENABLE == can_parameter_init->auto_wake_up){
+ CAN_CTL(can_periph) |= CAN_CTL_AWU;
+ }else{
+ CAN_CTL(can_periph) &= ~CAN_CTL_AWU;
+ }
+ /* automatic retransmission mode disable */
+ if(ENABLE == can_parameter_init->no_auto_retrans){
+ CAN_CTL(can_periph) |= CAN_CTL_ARD;
+ }else{
+ CAN_CTL(can_periph) &= ~CAN_CTL_ARD;
+ }
+ /* receive fifo overwrite mode */
+ if(ENABLE == can_parameter_init->rec_fifo_overwrite){
+ CAN_CTL(can_periph) |= CAN_CTL_RFOD;
+ }else{
+ CAN_CTL(can_periph) &= ~CAN_CTL_RFOD;
+ }
+ /* transmit fifo order */
+ if(ENABLE == can_parameter_init->trans_fifo_order){
+ CAN_CTL(can_periph) |= CAN_CTL_TFO;
+ }else{
+ CAN_CTL(can_periph) &= ~CAN_CTL_TFO;
+ }
+ /* disable initialize mode */
+ CAN_CTL(can_periph) &= ~CAN_CTL_IWMOD;
+ timeout = CAN_TIMEOUT;
+ /* wait the ACK */
+ while((CAN_STAT_IWS == (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){
+ timeout--;
+ }
+ /* check exit initialize mode */
+ if(0U != timeout){
+ flag = SUCCESS;
+ }
+ }
+ return flag;
+}
+
+/*!
+ \brief initialize CAN filter
+ \param[in] can_filter_parameter_init: struct for CAN filter initialization
+ \arg filter_list_high: 0x0000 - 0xFFFF
+ \arg filter_list_low: 0x0000 - 0xFFFF
+ \arg filter_mask_high: 0x0000 - 0xFFFF
+ \arg filter_mask_low: 0x0000 - 0xFFFF
+ \arg filter_fifo_number: CAN_FIFO0, CAN_FIFO1
+ \arg filter_number: 0 - 27
+ \arg filter_mode: CAN_FILTERMODE_MASK, CAN_FILTERMODE_LIST
+ \arg filter_bits: CAN_FILTERBITS_32BIT, CAN_FILTERBITS_16BIT
+ \arg filter_enable: ENABLE or DISABLE
+ \param[out] none
+ \retval none
+*/
+void can_filter_init(can_filter_parameter_struct* can_filter_parameter_init)
+{
+ uint32_t val = 0U;
+
+ val = ((uint32_t)1) << (can_filter_parameter_init->filter_number);
+ /* filter lock disable */
+ CAN_FCTL(CAN0) |= CAN_FCTL_FLD;
+ /* disable filter */
+ CAN_FW(CAN0) &= ~(uint32_t)val;
+
+ /* filter 16 bits */
+ if(CAN_FILTERBITS_16BIT == can_filter_parameter_init->filter_bits){
+ /* set filter 16 bits */
+ CAN_FSCFG(CAN0) &= ~(uint32_t)val;
+ /* first 16 bits list and first 16 bits mask or first 16 bits list and second 16 bits list */
+ CAN_FDATA0(CAN0, can_filter_parameter_init->filter_number) = \
+ FDATA_MASK_HIGH((can_filter_parameter_init->filter_mask_low) & CAN_FILTER_MASK_16BITS) | \
+ FDATA_MASK_LOW((can_filter_parameter_init->filter_list_low) & CAN_FILTER_MASK_16BITS);
+ /* second 16 bits list and second 16 bits mask or third 16 bits list and fourth 16 bits list */
+ CAN_FDATA1(CAN0, can_filter_parameter_init->filter_number) = \
+ FDATA_MASK_HIGH((can_filter_parameter_init->filter_mask_high) & CAN_FILTER_MASK_16BITS) | \
+ FDATA_MASK_LOW((can_filter_parameter_init->filter_list_high) & CAN_FILTER_MASK_16BITS);
+ }
+ /* filter 32 bits */
+ if(CAN_FILTERBITS_32BIT == can_filter_parameter_init->filter_bits){
+ /* set filter 32 bits */
+ CAN_FSCFG(CAN0) |= (uint32_t)val;
+ /* 32 bits list or first 32 bits list */
+ CAN_FDATA0(CAN0, can_filter_parameter_init->filter_number) = \
+ FDATA_MASK_HIGH((can_filter_parameter_init->filter_list_high) & CAN_FILTER_MASK_16BITS) |
+ FDATA_MASK_LOW((can_filter_parameter_init->filter_list_low) & CAN_FILTER_MASK_16BITS);
+ /* 32 bits mask or second 32 bits list */
+ CAN_FDATA1(CAN0, can_filter_parameter_init->filter_number) = \
+ FDATA_MASK_HIGH((can_filter_parameter_init->filter_mask_high) & CAN_FILTER_MASK_16BITS) |
+ FDATA_MASK_LOW((can_filter_parameter_init->filter_mask_low) & CAN_FILTER_MASK_16BITS);
+ }
+
+ /* filter mode */
+ if(CAN_FILTERMODE_MASK == can_filter_parameter_init->filter_mode){
+ /* mask mode */
+ CAN_FMCFG(CAN0) &= ~(uint32_t)val;
+ }else{
+ /* list mode */
+ CAN_FMCFG(CAN0) |= (uint32_t)val;
+ }
+
+ /* filter FIFO */
+ if(CAN_FIFO0 == (can_filter_parameter_init->filter_fifo_number)){
+ /* FIFO0 */
+ CAN_FAFIFO(CAN0) &= ~(uint32_t)val;
+ }else{
+ /* FIFO1 */
+ CAN_FAFIFO(CAN0) |= (uint32_t)val;
+ }
+
+ /* filter working */
+ if(ENABLE == can_filter_parameter_init->filter_enable){
+
+ CAN_FW(CAN0) |= (uint32_t)val;
+ }
+
+ /* filter lock enable */
+ CAN_FCTL(CAN0) &= ~CAN_FCTL_FLD;
+}
+
+/*!
+ \brief set CAN1 fliter start bank number
+ \param[in] start_bank: CAN1 start bank number
+ only one parameter can be selected which is shown as below:
+ \arg (1..27)
+ \param[out] none
+ \retval none
+*/
+void can1_filter_start_bank(uint8_t start_bank)
+{
+ /* filter lock disable */
+ CAN_FCTL(CAN0) |= CAN_FCTL_FLD;
+ /* set CAN1 filter start number */
+ CAN_FCTL(CAN0) &= ~(uint32_t)CAN_FCTL_HBC1F;
+ CAN_FCTL(CAN0) |= FCTL_HBC1F(start_bank);
+ /* filter lock enaable */
+ CAN_FCTL(CAN0) &= ~CAN_FCTL_FLD;
+}
+
+/*!
+ \brief enable CAN debug freeze
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void can_debug_freeze_enable(uint32_t can_periph)
+{
+ /* set DFZ bit */
+ CAN_CTL(can_periph) |= CAN_CTL_DFZ;
+ if(CAN0 == can_periph){
+ dbg_periph_enable(DBG_CAN0_HOLD);
+ }else{
+ dbg_periph_enable(DBG_CAN1_HOLD);
+ }
+}
+
+/*!
+ \brief disable CAN debug freeze
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void can_debug_freeze_disable(uint32_t can_periph)
+{
+ /* set DFZ bit */
+ CAN_CTL(can_periph) &= ~CAN_CTL_DFZ;
+ if(CAN0 == can_periph){
+ dbg_periph_disable(DBG_CAN0_HOLD);
+ }else{
+ dbg_periph_disable(DBG_CAN1_HOLD);
+ }
+}
+
+/*!
+ \brief enable CAN time trigger mode
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void can_time_trigger_mode_enable(uint32_t can_periph)
+{
+ uint8_t mailbox_number;
+
+ /* enable the tcc mode */
+ CAN_CTL(can_periph) |= CAN_CTL_TTC;
+ /* enable time stamp */
+ for(mailbox_number = 0U; mailbox_number < 3U; mailbox_number++){
+ CAN_TMP(can_periph, mailbox_number) |= CAN_TMP_TSEN;
+ }
+}
+
+/*!
+ \brief disable CAN time trigger mode
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void can_time_trigger_mode_disable(uint32_t can_periph)
+{
+ uint8_t mailbox_number;
+
+ /* disable the TCC mode */
+ CAN_CTL(can_periph) &= ~CAN_CTL_TTC;
+ /* reset TSEN bits */
+ for(mailbox_number = 0U; mailbox_number < 3U; mailbox_number++){
+ CAN_TMP(can_periph, mailbox_number) &= ~CAN_TMP_TSEN;
+ }
+}
+
+/*!
+ \brief transmit CAN message
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] transmit_message: struct for CAN transmit message
+ \arg tx_sfid: 0x00000000 - 0x000007FF
+ \arg tx_efid: 0x00000000 - 0x1FFFFFFF
+ \arg tx_ff: CAN_FF_STANDARD, CAN_FF_EXTENDED
+ \arg tx_ft: CAN_FT_DATA, CAN_FT_REMOTE
+ \arg tx_dlen: 0 - 8
+ \arg tx_data[]: 0x00 - 0xFF
+ \param[out] none
+ \retval mailbox_number
+*/
+uint8_t can_message_transmit(uint32_t can_periph, can_trasnmit_message_struct* transmit_message)
+{
+ uint8_t mailbox_number = CAN_MAILBOX0;
+
+ /* select one empty mailbox */
+ if(CAN_TSTAT_TME0 == (CAN_TSTAT(can_periph)&CAN_TSTAT_TME0)){
+ mailbox_number = CAN_MAILBOX0;
+ }else if(CAN_TSTAT_TME1 == (CAN_TSTAT(can_periph)&CAN_TSTAT_TME1)){
+ mailbox_number = CAN_MAILBOX1;
+ }else if(CAN_TSTAT_TME2 == (CAN_TSTAT(can_periph)&CAN_TSTAT_TME2)){
+ mailbox_number = CAN_MAILBOX2;
+ }else{
+ mailbox_number = CAN_NOMAILBOX;
+ }
+ /* return no mailbox empty */
+ if(CAN_NOMAILBOX == mailbox_number){
+ return CAN_NOMAILBOX;
+ }
+
+ CAN_TMI(can_periph, mailbox_number) &= CAN_TMI_TEN;
+ if(CAN_FF_STANDARD == transmit_message->tx_ff){
+ /* set transmit mailbox standard identifier */
+ CAN_TMI(can_periph, mailbox_number) |= (uint32_t)(TMI_SFID(transmit_message->tx_sfid) | \
+ transmit_message->tx_ft);
+ }else{
+ /* set transmit mailbox extended identifier */
+ CAN_TMI(can_periph, mailbox_number) |= (uint32_t)(TMI_EFID(transmit_message->tx_efid) | \
+ transmit_message->tx_ff | \
+ transmit_message->tx_ft);
+ }
+ /* set the data length */
+ CAN_TMP(can_periph, mailbox_number) &= ~CAN_TMP_DLENC;
+ CAN_TMP(can_periph, mailbox_number) |= transmit_message->tx_dlen;
+ /* set the data */
+ CAN_TMDATA0(can_periph, mailbox_number) = TMDATA0_DB3(transmit_message->tx_data[3]) | \
+ TMDATA0_DB2(transmit_message->tx_data[2]) | \
+ TMDATA0_DB1(transmit_message->tx_data[1]) | \
+ TMDATA0_DB0(transmit_message->tx_data[0]);
+ CAN_TMDATA1(can_periph, mailbox_number) = TMDATA1_DB7(transmit_message->tx_data[7]) | \
+ TMDATA1_DB6(transmit_message->tx_data[6]) | \
+ TMDATA1_DB5(transmit_message->tx_data[5]) | \
+ TMDATA1_DB4(transmit_message->tx_data[4]);
+ /* enable transmission */
+ CAN_TMI(can_periph, mailbox_number) |= CAN_TMI_TEN;
+
+ return mailbox_number;
+}
+
+/*!
+ \brief get CAN transmit state
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] mailbox_number
+ only one parameter can be selected which is shown as below:
+ \arg CAN_MAILBOX(x=0,1,2)
+ \param[out] none
+ \retval can_transmit_state_enum
+*/
+can_transmit_state_enum can_transmit_states(uint32_t can_periph, uint8_t mailbox_number)
+{
+ can_transmit_state_enum state = CAN_TRANSMIT_FAILED;
+ uint32_t val = 0U;
+
+ /* check selected mailbox state */
+ switch(mailbox_number){
+ /* mailbox0 */
+ case CAN_MAILBOX0:
+ val = CAN_TSTAT(can_periph) & (CAN_TSTAT_MTF0 | CAN_TSTAT_MTFNERR0 | CAN_TSTAT_TME0);
+ break;
+ /* mailbox1 */
+ case CAN_MAILBOX1:
+ val = CAN_TSTAT(can_periph) & (CAN_TSTAT_MTF1 | CAN_TSTAT_MTFNERR1 | CAN_TSTAT_TME1);
+ break;
+ /* mailbox2 */
+ case CAN_MAILBOX2:
+ val = CAN_TSTAT(can_periph) & (CAN_TSTAT_MTF2 | CAN_TSTAT_MTFNERR2 | CAN_TSTAT_TME2);
+ break;
+ default:
+ val = CAN_TRANSMIT_FAILED;
+ break;
+ }
+
+ switch(val){
+ /* transmit pending */
+ case (CAN_STATE_PENDING):
+ state = CAN_TRANSMIT_PENDING;
+ break;
+ /* mailbox0 transmit succeeded */
+ case (CAN_TSTAT_MTF0 | CAN_TSTAT_MTFNERR0 | CAN_TSTAT_TME0):
+ state = CAN_TRANSMIT_OK;
+ break;
+ /* mailbox1 transmit succeeded */
+ case (CAN_TSTAT_MTF1 | CAN_TSTAT_MTFNERR1 | CAN_TSTAT_TME1):
+ state = CAN_TRANSMIT_OK;
+ break;
+ /* mailbox2 transmit succeeded */
+ case (CAN_TSTAT_MTF2 | CAN_TSTAT_MTFNERR2 | CAN_TSTAT_TME2):
+ state = CAN_TRANSMIT_OK;
+ break;
+ /* transmit failed */
+ default:
+ state = CAN_TRANSMIT_FAILED;
+ break;
+ }
+ return state;
+}
+
+/*!
+ \brief stop CAN transmission
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] mailbox_number
+ only one parameter can be selected which is shown as below:
+ \arg CAN_MAILBOXx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void can_transmission_stop(uint32_t can_periph, uint8_t mailbox_number)
+{
+ if(CAN_MAILBOX0 == mailbox_number){
+ CAN_TSTAT(can_periph) |= CAN_TSTAT_MST0;
+ while(CAN_TSTAT_MST0 == (CAN_TSTAT(can_periph) & CAN_TSTAT_MST0)){
+ }
+ }else if(CAN_MAILBOX1 == mailbox_number){
+ CAN_TSTAT(can_periph) |= CAN_TSTAT_MST1;
+ while(CAN_TSTAT_MST1 == (CAN_TSTAT(can_periph) & CAN_TSTAT_MST1)){
+ }
+ }else if(CAN_MAILBOX2 == mailbox_number){
+ CAN_TSTAT(can_periph) |= CAN_TSTAT_MST2;
+ while(CAN_TSTAT_MST2 == (CAN_TSTAT(can_periph) & CAN_TSTAT_MST2)){
+ }
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief CAN receive message
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] fifo_number
+ \arg CAN_FIFOx(x=0,1)
+ \param[out] receive_message: struct for CAN receive message
+ \arg rx_sfid: 0x00000000 - 0x000007FF
+ \arg rx_efid: 0x00000000 - 0x1FFFFFFF
+ \arg rx_ff: CAN_FF_STANDARD, CAN_FF_EXTENDED
+ \arg rx_ft: CAN_FT_DATA, CAN_FT_REMOTE
+ \arg rx_dlen: 0 - 8
+ \arg rx_data[]: 0x00 - 0xFF
+ \arg rx_fi: 0 - 27
+ \retval none
+*/
+void can_message_receive(uint32_t can_periph, uint8_t fifo_number, can_receive_message_struct* receive_message)
+{
+ /* get the frame format */
+ receive_message->rx_ff = (uint8_t)(CAN_RFIFOMI_FF & CAN_RFIFOMI(can_periph, fifo_number));
+ if(CAN_FF_STANDARD == receive_message->rx_ff){
+ /* get standard identifier */
+ receive_message->rx_sfid = (uint32_t)(GET_RFIFOMI_SFID(CAN_RFIFOMI(can_periph, fifo_number)));
+ }else{
+ /* get extended identifier */
+ receive_message->rx_efid = (uint32_t)(GET_RFIFOMI_EFID(CAN_RFIFOMI(can_periph, fifo_number)));
+ }
+
+ /* get frame type */
+ receive_message->rx_ft = (uint8_t)(CAN_RFIFOMI_FT & CAN_RFIFOMI(can_periph, fifo_number));
+ /* filtering index */
+ receive_message->rx_fi = (uint8_t)(GET_RFIFOMP_FI(CAN_RFIFOMP(can_periph, fifo_number)));
+ /* get recevie data length */
+ receive_message->rx_dlen = (uint8_t)(GET_RFIFOMP_DLENC(CAN_RFIFOMP(can_periph, fifo_number)));
+
+ /* receive data */
+ receive_message -> rx_data[0] = (uint8_t)(GET_RFIFOMDATA0_DB0(CAN_RFIFOMDATA0(can_periph, fifo_number)));
+ receive_message -> rx_data[1] = (uint8_t)(GET_RFIFOMDATA0_DB1(CAN_RFIFOMDATA0(can_periph, fifo_number)));
+ receive_message -> rx_data[2] = (uint8_t)(GET_RFIFOMDATA0_DB2(CAN_RFIFOMDATA0(can_periph, fifo_number)));
+ receive_message -> rx_data[3] = (uint8_t)(GET_RFIFOMDATA0_DB3(CAN_RFIFOMDATA0(can_periph, fifo_number)));
+ receive_message -> rx_data[4] = (uint8_t)(GET_RFIFOMDATA1_DB4(CAN_RFIFOMDATA1(can_periph, fifo_number)));
+ receive_message -> rx_data[5] = (uint8_t)(GET_RFIFOMDATA1_DB5(CAN_RFIFOMDATA1(can_periph, fifo_number)));
+ receive_message -> rx_data[6] = (uint8_t)(GET_RFIFOMDATA1_DB6(CAN_RFIFOMDATA1(can_periph, fifo_number)));
+ receive_message -> rx_data[7] = (uint8_t)(GET_RFIFOMDATA1_DB7(CAN_RFIFOMDATA1(can_periph, fifo_number)));
+
+ /* release FIFO */
+ if(CAN_FIFO0 == fifo_number){
+ CAN_RFIFO0(can_periph) |= CAN_RFIFO0_RFD0;
+ }else{
+ CAN_RFIFO1(can_periph) |= CAN_RFIFO1_RFD1;
+ }
+}
+
+/*!
+ \brief release FIFO0
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] fifo_number
+ only one parameter can be selected which is shown as below:
+ \arg CAN_FIFOx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void can_fifo_release(uint32_t can_periph, uint8_t fifo_number)
+{
+ if(CAN_FIFO0 == fifo_number){
+ CAN_RFIFO0(can_periph) |= CAN_RFIFO0_RFD0;
+ }else if(CAN_FIFO1 == fifo_number){
+ CAN_RFIFO1(can_periph) |= CAN_RFIFO1_RFD1;
+ }else{
+ /* illegal parameters */
+ CAN_ERROR_HANDLE("CAN FIFO NUM is invalid \r\n");
+ }
+}
+
+/*!
+ \brief CAN receive message length
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] fifo_number
+ only one parameter can be selected which is shown as below:
+ \arg CAN_FIFOx(x=0,1)
+ \param[out] none
+ \retval message length
+*/
+uint8_t can_receive_message_length_get(uint32_t can_periph, uint8_t fifo_number)
+{
+ uint8_t val = 0U;
+
+ if(CAN_FIFO0 == fifo_number){
+ /* FIFO0 */
+ val = (uint8_t)(CAN_RFIFO0(can_periph) & CAN_RFIF_RFL_MASK);
+ }else if(CAN_FIFO1 == fifo_number){
+ /* FIFO1 */
+ val = (uint8_t)(CAN_RFIFO1(can_periph) & CAN_RFIF_RFL_MASK);
+ }else{
+ /* illegal parameters */
+ }
+ return val;
+}
+
+/*!
+ \brief set CAN working mode
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] can_working_mode
+ only one parameter can be selected which is shown as below:
+ \arg CAN_MODE_INITIALIZE
+ \arg CAN_MODE_NORMAL
+ \arg CAN_MODE_SLEEP
+ \param[out] none
+ \retval ErrStatus: SUCCESS or ERROR
+*/
+ErrStatus can_working_mode_set(uint32_t can_periph, uint8_t working_mode)
+{
+ ErrStatus flag = ERROR;
+ /* timeout for IWS or also for SLPWS bits */
+ uint32_t timeout = CAN_TIMEOUT;
+
+ if(CAN_MODE_INITIALIZE == working_mode){
+ /* disable sleep mode */
+ CAN_CTL(can_periph) &= (~(uint32_t)CAN_CTL_SLPWMOD);
+ /* set initialize mode */
+ CAN_CTL(can_periph) |= (uint8_t)CAN_CTL_IWMOD;
+ /* wait the acknowledge */
+ while((CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){
+ timeout--;
+ }
+ if(CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)){
+ flag = ERROR;
+ }else{
+ flag = SUCCESS;
+ }
+ }else if(CAN_MODE_NORMAL == working_mode){
+ /* enter normal mode */
+ CAN_CTL(can_periph) &= ~(uint32_t)(CAN_CTL_SLPWMOD | CAN_CTL_IWMOD);
+ /* wait the acknowledge */
+ while((0U != (CAN_STAT(can_periph) & (CAN_STAT_IWS | CAN_STAT_SLPWS))) && (0U != timeout)){
+ timeout--;
+ }
+ if(0U != (CAN_STAT(can_periph) & (CAN_STAT_IWS | CAN_STAT_SLPWS))){
+ flag = ERROR;
+ }else{
+ flag = SUCCESS;
+ }
+ }else if(CAN_MODE_SLEEP == working_mode){
+ /* disable initialize mode */
+ CAN_CTL(can_periph) &= (~(uint32_t)CAN_CTL_IWMOD);
+ /* set sleep mode */
+ CAN_CTL(can_periph) |= (uint8_t)CAN_CTL_SLPWMOD;
+ /* wait the acknowledge */
+ while((CAN_STAT_SLPWS != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)) && (0U != timeout)){
+ timeout--;
+ }
+ if(CAN_STAT_SLPWS != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)){
+ flag = ERROR;
+ }else{
+ flag = SUCCESS;
+ }
+ }else{
+ flag = ERROR;
+ }
+ return flag;
+}
+
+/*!
+ \brief wake up CAN
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval ErrStatus: SUCCESS or ERROR
+*/
+ErrStatus can_wakeup(uint32_t can_periph)
+{
+ ErrStatus flag = ERROR;
+ uint32_t timeout = CAN_TIMEOUT;
+
+ /* wakeup */
+ CAN_CTL(can_periph) &= ~CAN_CTL_SLPWMOD;
+
+ while((0U != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)) && (0x00U != timeout)){
+ timeout--;
+ }
+ /* check state */
+ if(0U != (CAN_STAT(can_periph) & CAN_STAT_SLPWS)){
+ flag = ERROR;
+ }else{
+ flag = SUCCESS;
+ }
+ return flag;
+}
+
+/*!
+ \brief get CAN error type
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval can_error_enum
+ \arg CAN_ERROR_NONE: no error
+ \arg CAN_ERROR_FILL: fill error
+ \arg CAN_ERROR_FORMATE: format error
+ \arg CAN_ERROR_ACK: ACK error
+ \arg CAN_ERROR_BITRECESSIVE: bit recessive
+ \arg CAN_ERROR_BITDOMINANTER: bit dominant error
+ \arg CAN_ERROR_CRC: CRC error
+ \arg CAN_ERROR_SOFTWARECFG: software configure
+*/
+can_error_enum can_error_get(uint32_t can_periph)
+{
+ can_error_enum error;
+ error = CAN_ERROR_NONE;
+
+ /* get error type */
+ error = (can_error_enum)(GET_ERR_ERRN(CAN_ERR(can_periph)));
+ return error;
+}
+
+/*!
+ \brief get CAN receive error number
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval error number
+*/
+uint8_t can_receive_error_number_get(uint32_t can_periph)
+{
+ uint8_t val;
+
+ /* get error count */
+ val = (uint8_t)(GET_ERR_RECNT(CAN_ERR(can_periph)));
+ return val;
+}
+
+/*!
+ \brief get CAN transmit error number
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[out] none
+ \retval error number
+*/
+uint8_t can_transmit_error_number_get(uint32_t can_periph)
+{
+ uint8_t val;
+
+ val = (uint8_t)(GET_ERR_TECNT(CAN_ERR(can_periph)));
+ return val;
+}
+
+/*!
+ \brief enable CAN interrupt
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] interrupt
+ one or more parameters can be selected which are shown as below:
+ \arg CAN_INT_TME: transmit mailbox empty interrupt enable
+ \arg CAN_INT_RFNE0: receive FIFO0 not empty interrupt enable
+ \arg CAN_INT_RFF0: receive FIFO0 full interrupt enable
+ \arg CAN_INT_RFO0: receive FIFO0 overfull interrupt enable
+ \arg CAN_INT_RFNE1: receive FIFO1 not empty interrupt enable
+ \arg CAN_INT_RFF1: receive FIFO1 full interrupt enable
+ \arg CAN_INT_RFO1: receive FIFO1 overfull interrupt enable
+ \arg CAN_INT_WERR: warning error interrupt enable
+ \arg CAN_INT_PERR: passive error interrupt enable
+ \arg CAN_INT_BO: bus-off interrupt enable
+ \arg CAN_INT_ERRN: error number interrupt enable
+ \arg CAN_INT_ERR: error interrupt enable
+ \arg CAN_INT_WU: wakeup interrupt enable
+ \arg CAN_INT_SLPW: sleep working interrupt enable
+ \param[out] none
+ \retval none
+*/
+void can_interrupt_enable(uint32_t can_periph, uint32_t interrupt)
+{
+ CAN_INTEN(can_periph) |= interrupt;
+}
+
+/*!
+ \brief disable CAN interrupt
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] interrupt
+ one or more parameters can be selected which are shown as below:
+ \arg CAN_INT_TME: transmit mailbox empty interrupt enable
+ \arg CAN_INT_RFNE0: receive FIFO0 not empty interrupt enable
+ \arg CAN_INT_RFF0: receive FIFO0 full interrupt enable
+ \arg CAN_INT_RFO0: receive FIFO0 overfull interrupt enable
+ \arg CAN_INT_RFNE1: receive FIFO1 not empty interrupt enable
+ \arg CAN_INT_RFF1: receive FIFO1 full interrupt enable
+ \arg CAN_INT_RFO1: receive FIFO1 overfull interrupt enable
+ \arg CAN_INT_WERR: warning error interrupt enable
+ \arg CAN_INT_PERR: passive error interrupt enable
+ \arg CAN_INT_BO: bus-off interrupt enable
+ \arg CAN_INT_ERRN: error number interrupt enable
+ \arg CAN_INT_ERR: error interrupt enable
+ \arg CAN_INT_WU: wakeup interrupt enable
+ \arg CAN_INT_SLPW: sleep working interrupt enable
+ \param[out] none
+ \retval none
+*/
+void can_interrupt_disable(uint32_t can_periph, uint32_t interrupt)
+{
+ CAN_INTEN(can_periph) &= ~interrupt;
+}
+
+/*!
+ \brief get CAN flag state
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] flag: CAN flags, refer to can_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg CAN_FLAG_RXL: RX level
+ \arg CAN_FLAG_LASTRX: last sample value of RX pin
+ \arg CAN_FLAG_RS: receiving state
+ \arg CAN_FLAG_TS: transmitting state
+ \arg CAN_FLAG_SLPIF: status change flag of entering sleep working mode
+ \arg CAN_FLAG_WUIF: status change flag of wakeup from sleep working mode
+ \arg CAN_FLAG_ERRIF: error flag
+ \arg CAN_FLAG_SLPWS: sleep working state
+ \arg CAN_FLAG_IWS: initial working state
+ \arg CAN_FLAG_TMLS2: transmit mailbox 2 last sending in Tx FIFO
+ \arg CAN_FLAG_TMLS1: transmit mailbox 1 last sending in Tx FIFO
+ \arg CAN_FLAG_TMLS0: transmit mailbox 0 last sending in Tx FIFO
+ \arg CAN_FLAG_TME2: transmit mailbox 2 empty
+ \arg CAN_FLAG_TME1: transmit mailbox 1 empty
+ \arg CAN_FLAG_TME0: transmit mailbox 0 empty
+ \arg CAN_FLAG_MTE2: mailbox 2 transmit error
+ \arg CAN_FLAG_MTE1: mailbox 1 transmit error
+ \arg CAN_FLAG_MTE0: mailbox 0 transmit error
+ \arg CAN_FLAG_MAL2: mailbox 2 arbitration lost
+ \arg CAN_FLAG_MAL1: mailbox 1 arbitration lost
+ \arg CAN_FLAG_MAL0: mailbox 0 arbitration lost
+ \arg CAN_FLAG_MTFNERR2: mailbox 2 transmit finished with no error
+ \arg CAN_FLAG_MTFNERR1: mailbox 1 transmit finished with no error
+ \arg CAN_FLAG_MTFNERR0: mailbox 0 transmit finished with no error
+ \arg CAN_FLAG_MTF2: mailbox 2 transmit finished
+ \arg CAN_FLAG_MTF1: mailbox 1 transmit finished
+ \arg CAN_FLAG_MTF0: mailbox 0 transmit finished
+ \arg CAN_FLAG_RFO0: receive FIFO0 overfull
+ \arg CAN_FLAG_RFF0: receive FIFO0 full
+ \arg CAN_FLAG_RFO1: receive FIFO1 overfull
+ \arg CAN_FLAG_RFF1: receive FIFO1 full
+ \arg CAN_FLAG_BOERR: bus-off error
+ \arg CAN_FLAG_PERR: passive error
+ \arg CAN_FLAG_WERR: warning error
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus can_flag_get(uint32_t can_periph, can_flag_enum flag)
+{
+ /* get flag and interrupt enable state */
+ if(RESET != (CAN_REG_VAL(can_periph, flag) & BIT(CAN_BIT_POS(flag)))){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear CAN flag state
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] flag: CAN flags, refer to can_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg CAN_FLAG_SLPIF: status change flag of entering sleep working mode
+ \arg CAN_FLAG_WUIF: status change flag of wakeup from sleep working mode
+ \arg CAN_FLAG_ERRIF: error flag
+ \arg CAN_FLAG_MTE2: mailbox 2 transmit error
+ \arg CAN_FLAG_MTE1: mailbox 1 transmit error
+ \arg CAN_FLAG_MTE0: mailbox 0 transmit error
+ \arg CAN_FLAG_MAL2: mailbox 2 arbitration lost
+ \arg CAN_FLAG_MAL1: mailbox 1 arbitration lost
+ \arg CAN_FLAG_MAL0: mailbox 0 arbitration lost
+ \arg CAN_FLAG_MTFNERR2: mailbox 2 transmit finished with no error
+ \arg CAN_FLAG_MTFNERR1: mailbox 1 transmit finished with no error
+ \arg CAN_FLAG_MTFNERR0: mailbox 0 transmit finished with no error
+ \arg CAN_FLAG_MTF2: mailbox 2 transmit finished
+ \arg CAN_FLAG_MTF1: mailbox 1 transmit finished
+ \arg CAN_FLAG_MTF0: mailbox 0 transmit finished
+ \arg CAN_FLAG_RFO0: receive FIFO0 overfull
+ \arg CAN_FLAG_RFF0: receive FIFO0 full
+ \arg CAN_FLAG_RFO1: receive FIFO1 overfull
+ \arg CAN_FLAG_RFF1: receive FIFO1 full
+ \param[out] none
+ \retval none
+*/
+void can_flag_clear(uint32_t can_periph, can_flag_enum flag)
+{
+ CAN_REG_VAL(can_periph, flag) = BIT(CAN_BIT_POS(flag));
+}
+
+/*!
+ \brief get CAN interrupt flag state
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] flag: CAN interrupt flags, refer to can_interrupt_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg CAN_INT_FLAG_SLPIF: status change interrupt flag of sleep working mode entering
+ \arg CAN_INT_FLAG_WUIF: status change interrupt flag of wakeup from sleep working mode
+ \arg CAN_INT_FLAG_ERRIF: error interrupt flag
+ \arg CAN_INT_FLAG_MTF2: mailbox 2 transmit finished interrupt flag
+ \arg CAN_INT_FLAG_MTF1: mailbox 1 transmit finished interrupt flag
+ \arg CAN_INT_FLAG_MTF0: mailbox 0 transmit finished interrupt flag
+ \arg CAN_INT_FLAG_RFO0: receive FIFO0 overfull interrupt flag
+ \arg CAN_INT_FLAG_RFF0: receive FIFO0 full interrupt flag
+ \arg CAN_INT_FLAG_RFL0: receive FIFO0 not empty interrupt flag
+ \arg CAN_INT_FLAG_RFO1: receive FIFO1 overfull interrupt flag
+ \arg CAN_INT_FLAG_RFF1: receive FIFO1 full interrupt flag
+ \arg CAN_INT_FLAG_RFL1: receive FIFO1 not empty interrupt flag
+ \arg CAN_INT_FLAG_ERRN: error number interrupt flag
+ \arg CAN_INT_FLAG_BOERR: bus-off error interrupt flag
+ \arg CAN_INT_FLAG_PERR: passive error interrupt flag
+ \arg CAN_INT_FLAG_WERR: warning error interrupt flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus can_interrupt_flag_get(uint32_t can_periph, can_interrupt_flag_enum flag)
+{
+ uint32_t ret1 = RESET;
+ uint32_t ret2 = RESET;
+
+ /* get the staus of interrupt flag */
+ if (flag == CAN_INT_FLAG_RFL0) {
+ ret1 = can_receive_message_length_get(can_periph, CAN_FIFO0);
+ } else if (flag == CAN_INT_FLAG_RFL1) {
+ ret1 = can_receive_message_length_get(can_periph, CAN_FIFO1);
+ } else if (flag == CAN_INT_FLAG_ERRN) {
+ ret1 = can_error_get(can_periph);
+ } else {
+ ret1 = CAN_REG_VALS(can_periph, flag) & BIT(CAN_BIT_POS0(flag));
+ }
+ /* get the staus of interrupt enale bit */
+ ret2 = CAN_INTEN(can_periph) & BIT(CAN_BIT_POS1(flag));
+ if(ret1 && ret2){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear CAN interrupt flag state
+ \param[in] can_periph
+ \arg CANx(x=0,1)
+ \param[in] flag: CAN interrupt flags, refer to can_interrupt_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg CAN_INT_FLAG_SLPIF: status change interrupt flag of sleep working mode entering
+ \arg CAN_INT_FLAG_WUIF: status change interrupt flag of wakeup from sleep working mode
+ \arg CAN_INT_FLAG_ERRIF: error interrupt flag
+ \arg CAN_INT_FLAG_MTF2: mailbox 2 transmit finished interrupt flag
+ \arg CAN_INT_FLAG_MTF1: mailbox 1 transmit finished interrupt flag
+ \arg CAN_INT_FLAG_MTF0: mailbox 0 transmit finished interrupt flag
+ \arg CAN_INT_FLAG_RFO0: receive FIFO0 overfull interrupt flag
+ \arg CAN_INT_FLAG_RFF0: receive FIFO0 full interrupt flag
+ \arg CAN_INT_FLAG_RFO1: receive FIFO1 overfull interrupt flag
+ \arg CAN_INT_FLAG_RFF1: receive FIFO1 full interrupt flag
+ \param[out] none
+ \retval none
+*/
+void can_interrupt_flag_clear(uint32_t can_periph, can_interrupt_flag_enum flag)
+{
+ CAN_REG_VALS(can_periph, flag) = BIT(CAN_BIT_POS0(flag));
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c
new file mode 100644
index 0000000000..4559327ae4
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c
@@ -0,0 +1,128 @@
+/*!
+ \file gd32vf103_crc.c
+ \brief CRC driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_crc.h"
+
+#define CRC_DATA_RESET_VALUE ((uint32_t)0xFFFFFFFFU)
+#define CRC_FDATA_RESET_VALUE ((uint32_t)0x00000000U)
+
+/*!
+ \brief deinit CRC calculation unit
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void crc_deinit(void)
+{
+ CRC_DATA = CRC_DATA_RESET_VALUE;
+ CRC_FDATA = CRC_FDATA_RESET_VALUE;
+ CRC_CTL = (uint32_t)CRC_CTL_RST;
+}
+
+/*!
+ \brief reset data register(CRC_DATA) to the value of 0xFFFFFFFF
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void crc_data_register_reset(void)
+{
+ CRC_CTL |= (uint32_t)CRC_CTL_RST;
+}
+
+/*!
+ \brief read the value of the data register
+ \param[in] none
+ \param[out] none
+ \retval 32-bit value of the data register
+*/
+uint32_t crc_data_register_read(void)
+{
+ uint32_t data;
+ data = CRC_DATA;
+ return (data);
+}
+
+/*!
+ \brief read the value of the free data register
+ \param[in] none
+ \param[out] none
+ \retval 8-bit value of the free data register
+*/
+uint8_t crc_free_data_register_read(void)
+{
+ uint8_t fdata;
+ fdata = (uint8_t)CRC_FDATA;
+ return (fdata);
+}
+
+/*!
+ \brief write data to the free data register
+ \param[in] free_data: specified 8-bit data
+ \param[out] none
+ \retval none
+*/
+void crc_free_data_register_write(uint8_t free_data)
+{
+ CRC_FDATA = (uint32_t)free_data;
+}
+
+/*!
+ \brief calculate the CRC value of a 32-bit data
+ \param[in] sdata: specified 32-bit data
+ \param[out] none
+ \retval 32-bit value calculated by CRC
+*/
+uint32_t crc_single_data_calculate(uint32_t sdata)
+{
+ CRC_DATA = sdata;
+ return (CRC_DATA);
+}
+
+/*!
+ \brief calculate the CRC value of an array of 32-bit values
+ \param[in] array: pointer to an array of 32-bit values
+ \param[in] size: size of the array
+ \param[out] none
+ \retval 32-bit value calculated by CRC
+*/
+uint32_t crc_block_data_calculate(uint32_t array[], uint32_t size)
+{
+ uint32_t index;
+ for(index = 0U; index < size; index++){
+ CRC_DATA = array[index];
+ }
+ return (CRC_DATA);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c
new file mode 100644
index 0000000000..7d505a0b06
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c
@@ -0,0 +1,538 @@
+/*!
+ \file gd32vf103_dac.c
+ \brief DAC driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_dac.h"
+
+/* DAC register bit offset */
+#define DAC1_REG_OFFSET ((uint32_t)16U)
+#define DH_12BIT_OFFSET ((uint32_t)16U)
+#define DH_8BIT_OFFSET ((uint32_t)8U)
+
+/*!
+ \brief deinitialize DAC
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_deinit(void)
+{
+ rcu_periph_reset_enable(RCU_DACRST);
+ rcu_periph_reset_disable(RCU_DACRST);
+}
+
+/*!
+ \brief enable DAC
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_enable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL |= DAC_CTL_DEN0;
+ }else{
+ DAC_CTL |= DAC_CTL_DEN1;
+ }
+}
+
+/*!
+ \brief disable DAC
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_disable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL &= ~DAC_CTL_DEN0;
+ }else{
+ DAC_CTL &= ~DAC_CTL_DEN1;
+ }
+}
+
+/*!
+ \brief enable DAC DMA function
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_dma_enable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL |= DAC_CTL_DDMAEN0;
+ }else{
+ DAC_CTL |= DAC_CTL_DDMAEN1;
+ }
+}
+
+/*!
+ \brief disable DAC DMA function
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_dma_disable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL &= ~DAC_CTL_DDMAEN0;
+ }else{
+ DAC_CTL &= ~DAC_CTL_DDMAEN1;
+ }
+}
+
+/*!
+ \brief enable DAC output buffer
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_output_buffer_enable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL &= ~DAC_CTL_DBOFF0;
+ }else{
+ DAC_CTL &= ~DAC_CTL_DBOFF1;
+ }
+}
+
+/*!
+ \brief disable DAC output buffer
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_output_buffer_disable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL |= DAC_CTL_DBOFF0;
+ }else{
+ DAC_CTL |= DAC_CTL_DBOFF1;
+ }
+}
+
+/*!
+ \brief get DAC output value
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval DAC output data
+*/
+uint16_t dac_output_value_get(uint32_t dac_periph)
+{
+ uint16_t data = 0U;
+ if(DAC0 == dac_periph){
+ /* store the DAC0 output value */
+ data = (uint16_t)DAC0_DO;
+ }else{
+ /* store the DAC1 output value */
+ data = (uint16_t)DAC1_DO;
+ }
+ return data;
+}
+
+/*!
+ \brief set the DAC specified data holding register value
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[in] dac_align: data alignment
+ only one parameter can be selected which is shown as below:
+ \arg DAC_ALIGN_8B_R: data right 8 bit alignment
+ \arg DAC_ALIGN_12B_R: data right 12 bit alignment
+ \arg DAC_ALIGN_12B_L: data left 12 bit alignment
+ \param[in] data: data to be loaded
+ \param[out] none
+ \retval none
+*/
+void dac_data_set(uint32_t dac_periph, uint32_t dac_align, uint16_t data)
+{
+ if(DAC0 == dac_periph){
+ switch(dac_align){
+ /* data right 12 bit alignment */
+ case DAC_ALIGN_12B_R:
+ DAC0_R12DH = data;
+ break;
+ /* data left 12 bit alignment */
+ case DAC_ALIGN_12B_L:
+ DAC0_L12DH = data;
+ break;
+ /* data right 8 bit alignment */
+ case DAC_ALIGN_8B_R:
+ DAC0_R8DH = data;
+ break;
+ default:
+ break;
+ }
+ }else{
+ switch(dac_align){
+ /* data right 12 bit alignment */
+ case DAC_ALIGN_12B_R:
+ DAC1_R12DH = data;
+ break;
+ /* data left 12 bit alignment */
+ case DAC_ALIGN_12B_L:
+ DAC1_L12DH = data;
+ break;
+ /* data right 8 bit alignment */
+ case DAC_ALIGN_8B_R:
+ DAC1_R8DH = data;
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+/*!
+ \brief enable DAC trigger
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_trigger_enable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL |= DAC_CTL_DTEN0;
+ }else{
+ DAC_CTL |= DAC_CTL_DTEN1;
+ }
+}
+
+/*!
+ \brief disable DAC trigger
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_trigger_disable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_CTL &= ~DAC_CTL_DTEN0;
+ }else{
+ DAC_CTL &= ~DAC_CTL_DTEN1;
+ }
+}
+
+/*!
+ \brief set DAC trigger source
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[in] triggersource: external triggers of DAC
+ only one parameter can be selected which is shown as below:
+ \arg DAC_TRIGGER_T1_TRGO: TIMER1 TRGO
+ \arg DAC_TRIGGER_T2_TRGO: TIMER2 TRGO
+ \arg DAC_TRIGGER_T3_TRGO: TIMER3 TRGO
+ \arg DAC_TRIGGER_T4_TRGO: TIMER4 TRGO
+ \arg DAC_TRIGGER_T5_TRGO: TIMER5 TRGO
+ \arg DAC_TRIGGER_T6_TRGO: TIMER6 TRGO
+ \arg DAC_TRIGGER_EXTI_9: EXTI interrupt line9 event
+ \arg DAC_TRIGGER_SOFTWARE: software trigger
+ \param[out] none
+ \retval none
+*/
+void dac_trigger_source_config(uint32_t dac_periph,uint32_t triggersource)
+{
+ if(DAC0 == dac_periph){
+ /* configure DAC0 trigger source */
+ DAC_CTL &= ~DAC_CTL_DTSEL0;
+ DAC_CTL |= triggersource;
+ }else{
+ /* configure DAC1 trigger source */
+ DAC_CTL &= ~DAC_CTL_DTSEL1;
+ DAC_CTL |= (triggersource << DAC1_REG_OFFSET);
+ }
+}
+
+/*!
+ \brief enable DAC software trigger
+ \param[in] dac_periph: DACx(x = 0,1)
+ \retval none
+*/
+void dac_software_trigger_enable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_SWT |= DAC_SWT_SWTR0;
+ }else{
+ DAC_SWT |= DAC_SWT_SWTR1;
+ }
+}
+
+/*!
+ \brief disable DAC software trigger
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[out] none
+ \retval none
+*/
+void dac_software_trigger_disable(uint32_t dac_periph)
+{
+ if(DAC0 == dac_periph){
+ DAC_SWT &= ~DAC_SWT_SWTR0;
+ }else{
+ DAC_SWT &= ~DAC_SWT_SWTR1;
+ }
+}
+
+/*!
+ \brief configure DAC wave mode
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[in] wave_mode: noise wave mode
+ only one parameter can be selected which is shown as below:
+ \arg DAC_WAVE_DISABLE: wave disable
+ \arg DAC_WAVE_MODE_LFSR: LFSR noise mode
+ \arg DAC_WAVE_MODE_TRIANGLE: triangle noise mode
+ \param[out] none
+ \retval none
+*/
+void dac_wave_mode_config(uint32_t dac_periph, uint32_t wave_mode)
+{
+ if(DAC0 == dac_periph){
+ /* configure DAC0 wave mode */
+ DAC_CTL &= ~DAC_CTL_DWM0;
+ DAC_CTL |= wave_mode;
+ }else{
+ /* configure DAC1 wave mode */
+ DAC_CTL &= ~DAC_CTL_DWM1;
+ DAC_CTL |= (wave_mode << DAC1_REG_OFFSET);
+ }
+}
+
+/*!
+ \brief configure DAC wave bit width
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[in] bit_width: noise wave bit width
+ only one parameter can be selected which is shown as below:
+ \arg DAC_WAVE_BIT_WIDTH_1: bit width of the wave signal is 1
+ \arg DAC_WAVE_BIT_WIDTH_2: bit width of the wave signal is 2
+ \arg DAC_WAVE_BIT_WIDTH_3: bit width of the wave signal is 3
+ \arg DAC_WAVE_BIT_WIDTH_4: bit width of the wave signal is 4
+ \arg DAC_WAVE_BIT_WIDTH_5: bit width of the wave signal is 5
+ \arg DAC_WAVE_BIT_WIDTH_6: bit width of the wave signal is 6
+ \arg DAC_WAVE_BIT_WIDTH_7: bit width of the wave signal is 7
+ \arg DAC_WAVE_BIT_WIDTH_8: bit width of the wave signal is 8
+ \arg DAC_WAVE_BIT_WIDTH_9: bit width of the wave signal is 9
+ \arg DAC_WAVE_BIT_WIDTH_10: bit width of the wave signal is 10
+ \arg DAC_WAVE_BIT_WIDTH_11: bit width of the wave signal is 11
+ \arg DAC_WAVE_BIT_WIDTH_12: bit width of the wave signal is 12
+ \param[out] none
+ \retval none
+*/
+void dac_wave_bit_width_config(uint32_t dac_periph, uint32_t bit_width)
+{
+ if(DAC0 == dac_periph){
+ /* configure DAC0 wave bit width */
+ DAC_CTL &= ~DAC_CTL_DWBW0;
+ DAC_CTL |= bit_width;
+ }else{
+ /* configure DAC1 wave bit width */
+ DAC_CTL &= ~DAC_CTL_DWBW1;
+ DAC_CTL |= (bit_width << DAC1_REG_OFFSET);
+ }
+}
+
+/*!
+ \brief configure DAC LFSR noise mode
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[in] unmask_bits: unmask LFSR bits in DAC LFSR noise mode
+ only one parameter can be selected which is shown as below:
+ \arg DAC_LFSR_BIT0: unmask the LFSR bit0
+ \arg DAC_LFSR_BITS1_0: unmask the LFSR bits[1:0]
+ \arg DAC_LFSR_BITS2_0: unmask the LFSR bits[2:0]
+ \arg DAC_LFSR_BITS3_0: unmask the LFSR bits[3:0]
+ \arg DAC_LFSR_BITS4_0: unmask the LFSR bits[4:0]
+ \arg DAC_LFSR_BITS5_0: unmask the LFSR bits[5:0]
+ \arg DAC_LFSR_BITS6_0: unmask the LFSR bits[6:0]
+ \arg DAC_LFSR_BITS7_0: unmask the LFSR bits[7:0]
+ \arg DAC_LFSR_BITS8_0: unmask the LFSR bits[8:0]
+ \arg DAC_LFSR_BITS9_0: unmask the LFSR bits[9:0]
+ \arg DAC_LFSR_BITS10_0: unmask the LFSR bits[10:0]
+ \arg DAC_LFSR_BITS11_0: unmask the LFSR bits[11:0]
+ \param[out] none
+ \retval none
+*/
+void dac_lfsr_noise_config(uint32_t dac_periph, uint32_t unmask_bits)
+{
+ if(DAC0 == dac_periph){
+ /* configure DAC0 LFSR noise mode */
+ DAC_CTL &= ~DAC_CTL_DWBW0;
+ DAC_CTL |= unmask_bits;
+ }else{
+ /* configure DAC1 LFSR noise mode */
+ DAC_CTL &= ~DAC_CTL_DWBW1;
+ DAC_CTL |= (unmask_bits << DAC1_REG_OFFSET);
+ }
+}
+
+/*!
+ \brief configure DAC triangle noise mode
+ \param[in] dac_periph: DACx(x = 0,1)
+ \param[in] amplitude: triangle amplitude in DAC triangle noise mode
+ only one parameter can be selected which is shown as below:
+ \arg DAC_TRIANGLE_AMPLITUDE_1: triangle amplitude is 1
+ \arg DAC_TRIANGLE_AMPLITUDE_3: triangle amplitude is 3
+ \arg DAC_TRIANGLE_AMPLITUDE_7: triangle amplitude is 7
+ \arg DAC_TRIANGLE_AMPLITUDE_15: triangle amplitude is 15
+ \arg DAC_TRIANGLE_AMPLITUDE_31: triangle amplitude is 31
+ \arg DAC_TRIANGLE_AMPLITUDE_63: triangle amplitude is 63
+ \arg DAC_TRIANGLE_AMPLITUDE_127: triangle amplitude is 127
+ \arg DAC_TRIANGLE_AMPLITUDE_255: triangle amplitude is 255
+ \arg DAC_TRIANGLE_AMPLITUDE_511: triangle amplitude is 511
+ \arg DAC_TRIANGLE_AMPLITUDE_1023: triangle amplitude is 1023
+ \arg DAC_TRIANGLE_AMPLITUDE_2047: triangle amplitude is 2047
+ \arg DAC_TRIANGLE_AMPLITUDE_4095: triangle amplitude is 4095
+ \param[out] none
+ \retval none
+*/
+void dac_triangle_noise_config(uint32_t dac_periph, uint32_t amplitude)
+{
+ if(DAC0 == dac_periph){
+ /* configure DAC0 triangle noise mode */
+ DAC_CTL &= ~DAC_CTL_DWBW0;
+ DAC_CTL |= amplitude;
+ }else{
+ /* configure DAC1 triangle noise mode */
+ DAC_CTL &= ~DAC_CTL_DWBW1;
+ DAC_CTL |= (amplitude << DAC1_REG_OFFSET);
+ }
+}
+
+/*!
+ \brief enable DAC concurrent mode
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_enable(void)
+{
+ uint32_t ctl = 0U;
+ ctl = DAC_CTL_DEN0 | DAC_CTL_DEN1;
+ DAC_CTL |= (ctl);
+}
+
+/*!
+ \brief disable DAC concurrent mode
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_disable(void)
+{
+ uint32_t ctl = 0U;
+ ctl = DAC_CTL_DEN0 | DAC_CTL_DEN1;
+ DAC_CTL &= (~ctl);
+}
+
+/*!
+ \brief enable DAC concurrent software trigger function
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_software_trigger_enable(void)
+{
+ uint32_t swt = 0U;
+ swt = DAC_SWT_SWTR0 | DAC_SWT_SWTR1;
+ DAC_SWT |= (swt);
+}
+
+/*!
+ \brief disable DAC concurrent software trigger function
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_software_trigger_disable(void)
+{
+ uint32_t swt = 0U;
+ swt = DAC_SWT_SWTR0 | DAC_SWT_SWTR1;
+ DAC_SWT &= (~swt);
+}
+
+/*!
+ \brief enable DAC concurrent buffer function
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_output_buffer_enable(void)
+{
+ uint32_t ctl = 0U;
+ ctl = DAC_CTL_DBOFF0 | DAC_CTL_DBOFF1;
+ DAC_CTL &= (~ctl);
+}
+
+/*!
+ \brief disable DAC concurrent buffer function
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_output_buffer_disable(void)
+{
+ uint32_t ctl = 0U;
+ ctl = DAC_CTL_DBOFF0 | DAC_CTL_DBOFF1;
+ DAC_CTL |= (ctl);
+}
+
+/*!
+ \brief set DAC concurrent mode data holding register value
+ \param[in] dac_align: data alignment
+ only one parameter can be selected which is shown as below:
+ \arg DAC_ALIGN_8B_R: data right 8b alignment
+ \arg DAC_ALIGN_12B_R: data right 12b alignment
+ \arg DAC_ALIGN_12B_L: data left 12b alignment
+ \param[in] data0: data to be loaded
+ \param[in] data1: data to be loaded
+ \param[out] none
+ \retval none
+*/
+void dac_concurrent_data_set(uint32_t dac_align, uint16_t data0, uint16_t data1)
+{
+ uint32_t data = 0U;
+ switch(dac_align){
+ /* data right 12b alignment */
+ case DAC_ALIGN_12B_R:
+ data = ((uint32_t)data1 << DH_12BIT_OFFSET) | data0;
+ DACC_R12DH = data;
+ break;
+ /* data left 12b alignment */
+ case DAC_ALIGN_12B_L:
+ data = ((uint32_t)data1 << DH_12BIT_OFFSET) | data0;
+ DACC_L12DH = data;
+ break;
+ /* data right 8b alignment */
+ case DAC_ALIGN_8B_R:
+ data = ((uint32_t)data1 << DH_8BIT_OFFSET) | data0;
+ DACC_R8DH = data;
+ break;
+ default:
+ break;
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c
new file mode 100644
index 0000000000..6db88961f2
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c
@@ -0,0 +1,111 @@
+/*!
+ \file gd32vf103_dbg.c
+ \brief DBG driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_dbg.h"
+
+/*!
+ \brief read DBG_ID code register
+ \param[in] none
+ \param[out] none
+ \retval DBG_ID code
+*/
+uint32_t dbg_id_get(void)
+{
+ return DBG_ID;
+}
+
+/*!
+ \brief enable low power behavior when the mcu is in debug mode
+ \param[in] dbg_low_power:
+ one or more parameters can be selected which are shown as below:
+ \arg DBG_LOW_POWER_SLEEP: keep debugger connection during sleep mode
+ \arg DBG_LOW_POWER_DEEPSLEEP: keep debugger connection during deepsleep mode
+ \arg DBG_LOW_POWER_STANDBY: keep debugger connection during standby mode
+ \param[out] none
+ \retval none
+*/
+void dbg_low_power_enable(uint32_t dbg_low_power)
+{
+ DBG_CTL |= dbg_low_power;
+}
+
+/*!
+ \brief disable low power behavior when the mcu is in debug mode
+ \param[in] dbg_low_power:
+ one or more parameters can be selected which are shown as below:
+ \arg DBG_LOW_POWER_SLEEP: donot keep debugger connection during sleep mode
+ \arg DBG_LOW_POWER_DEEPSLEEP: donot keep debugger connection during deepsleep mode
+ \arg DBG_LOW_POWER_STANDBY: donot keep debugger connection during standby mode
+ \param[out] none
+ \retval none
+*/
+void dbg_low_power_disable(uint32_t dbg_low_power)
+{
+ DBG_CTL &= ~dbg_low_power;
+}
+
+/*!
+ \brief enable peripheral behavior when the mcu is in debug mode
+ \param[in] dbg_periph: refer to dbg_periph_enum
+ one or more parameters can be selected which are shown as below:
+ \arg DBG_FWDGT_HOLD : debug FWDGT kept when core is halted
+ \arg DBG_WWDGT_HOLD : debug WWDGT kept when core is halted
+ \arg DBG_CANx_HOLD (x=0,1): hold CANx counter when core is halted
+ \arg DBG_I2Cx_HOLD (x=0,1): hold I2Cx smbus when core is halted
+ \arg DBG_TIMERx_HOLD (x=0,1,2,3,4,5,6): hold TIMERx counter when core is halted
+ \param[out] none
+ \retval none
+*/
+void dbg_periph_enable(dbg_periph_enum dbg_periph)
+{
+ DBG_CTL |= (uint32_t)dbg_periph;
+}
+
+/*!
+ \brief disable peripheral behavior when the mcu is in debug mode
+ \param[in] dbg_periph: refer to dbg_periph_enum
+ one or more parameters can be selected which are shown as below:
+ \arg DBG_FWDGT_HOLD : debug FWDGT kept when core is halted
+ \arg DBG_WWDGT_HOLD : debug WWDGT kept when core is halted
+ \arg DBG_CANx_HOLD (x=0,1): hold CAN0 counter when core is halted
+ \arg DBG_I2Cx_HOLD (x=0,1): hold I2Cx smbus when core is halted
+ \arg DBG_TIMERx_HOLD (x=0,1,2,3,4,5,6): hold TIMERx counter when core is halted
+ \param[out] none
+ \retval none
+*/
+void dbg_periph_disable(dbg_periph_enum dbg_periph)
+{
+ DBG_CTL &= ~(uint32_t)dbg_periph;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c
new file mode 100644
index 0000000000..e7e41ff7b0
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c
@@ -0,0 +1,733 @@
+/*!
+ \file gd32vf103_dma.c
+ \brief DMA driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-10-30, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_dma.h"
+
+#define DMA_WRONG_HANDLE while(1){}
+
+/* check whether peripheral matches channels or not */
+static ErrStatus dma_periph_and_channel_check(uint32_t dma_periph, dma_channel_enum channelx);
+
+/*!
+ \brief deinitialize DMA a channel registers
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel is deinitialized
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_deinit(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ /* disable DMA a channel */
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_CHEN;
+ /* reset DMA channel registers */
+ DMA_CHCTL(dma_periph, channelx) = DMA_CHCTL_RESET_VALUE;
+ DMA_CHCNT(dma_periph, channelx) = DMA_CHCNT_RESET_VALUE;
+ DMA_CHPADDR(dma_periph, channelx) = DMA_CHPADDR_RESET_VALUE;
+ DMA_CHMADDR(dma_periph, channelx) = DMA_CHMADDR_RESET_VALUE;
+ DMA_INTC(dma_periph) |= DMA_FLAG_ADD(DMA_CHINTF_RESET_VALUE, (uint32_t)channelx);
+}
+
+/*!
+ \brief initialize the parameters of DMA struct with the default values
+ \param[in] init_struct: the initialization data needed to initialize DMA channel
+ \param[out] none
+ \retval none
+*/
+void dma_struct_para_init(dma_parameter_struct* init_struct)
+{
+ /* set the DMA struct with the default values */
+ init_struct->periph_addr = 0U;
+ init_struct->periph_width = 0U;
+ init_struct->periph_inc = DMA_PERIPH_INCREASE_DISABLE;
+ init_struct->memory_addr = 0U;
+ init_struct->memory_width = 0U;
+ init_struct->memory_inc = DMA_MEMORY_INCREASE_DISABLE;
+ init_struct->number = 0U;
+ init_struct->direction = DMA_PERIPHERAL_TO_MEMORY;
+ init_struct->priority = DMA_PRIORITY_LOW;
+}
+
+/*!
+ \brief initialize DMA channel
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel is initialized
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] init_struct: the data needed to initialize DMA channel
+ periph_addr: peripheral base address
+ periph_width: DMA_PERIPHERAL_WIDTH_8BIT, DMA_PERIPHERAL_WIDTH_16BIT, DMA_PERIPHERAL_WIDTH_32BIT
+ periph_inc: DMA_PERIPH_INCREASE_ENABLE, DMA_PERIPH_INCREASE_DISABLE
+ memory_addr: memory base address
+ memory_width: DMA_MEMORY_WIDTH_8BIT, DMA_MEMORY_WIDTH_16BIT, DMA_MEMORY_WIDTH_32BIT
+ memory_inc: DMA_MEMORY_INCREASE_ENABLE, DMA_MEMORY_INCREASE_DISABLE
+ direction: DMA_PERIPHERAL_TO_MEMORY, DMA_MEMORY_TO_PERIPHERAL
+ number: the number of remaining data to be transferred by the DMA
+ priority: DMA_PRIORITY_LOW, DMA_PRIORITY_MEDIUM, DMA_PRIORITY_HIGH, DMA_PRIORITY_ULTRA_HIGH
+ \param[out] none
+ \retval none
+*/
+void dma_init(uint32_t dma_periph, dma_channel_enum channelx, dma_parameter_struct* init_struct)
+{
+ uint32_t ctl;
+
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ /* configure peripheral base address */
+ DMA_CHPADDR(dma_periph, channelx) = init_struct->periph_addr;
+
+ /* configure memory base address */
+ DMA_CHMADDR(dma_periph, channelx) = init_struct->memory_addr;
+
+ /* configure the number of remaining data to be transferred */
+ DMA_CHCNT(dma_periph, channelx) = (init_struct->number & DMA_CHANNEL_CNT_MASK);
+
+ /* configure peripheral transfer width,memory transfer width and priority */
+ ctl = DMA_CHCTL(dma_periph, channelx);
+ ctl &= ~(DMA_CHXCTL_PWIDTH | DMA_CHXCTL_MWIDTH | DMA_CHXCTL_PRIO);
+ ctl |= (init_struct->periph_width | init_struct->memory_width | init_struct->priority);
+ DMA_CHCTL(dma_periph, channelx) = ctl;
+
+ /* configure peripheral increasing mode */
+ if(DMA_PERIPH_INCREASE_ENABLE == init_struct->periph_inc){
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_PNAGA;
+ }else{
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_PNAGA;
+ }
+
+ /* configure memory increasing mode */
+ if(DMA_MEMORY_INCREASE_ENABLE == init_struct->memory_inc){
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_MNAGA;
+ }else{
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_MNAGA;
+ }
+
+ /* configure the direction of data transfer */
+ if(DMA_PERIPHERAL_TO_MEMORY == init_struct->direction){
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_DIR;
+ }else{
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_DIR;
+ }
+}
+
+/*!
+ \brief enable DMA circulation mode
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_circulation_enable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_CMEN;
+}
+
+/*!
+ \brief disable DMA circulation mode
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_circulation_disable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_CMEN;
+}
+
+/*!
+ \brief enable memory to memory mode
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_memory_to_memory_enable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_M2M;
+}
+
+/*!
+ \brief disable memory to memory mode
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_memory_to_memory_disable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_M2M;
+}
+
+/*!
+ \brief enable DMA channel
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_channel_enable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_CHEN;
+}
+
+/*!
+ \brief disable DMA channel
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_channel_disable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_CHEN;
+}
+
+/*!
+ \brief set DMA peripheral base address
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to set peripheral base address
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] address: peripheral base address
+ \param[out] none
+ \retval none
+*/
+void dma_periph_address_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t address)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHPADDR(dma_periph, channelx) = address;
+}
+
+/*!
+ \brief set DMA memory base address
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to set memory base address
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] address: memory base address
+ \param[out] none
+ \retval none
+*/
+void dma_memory_address_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t address)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHMADDR(dma_periph, channelx) = address;
+}
+
+/*!
+ \brief set the number of remaining data to be transferred by the DMA
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to set number
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] number: the number of remaining data to be transferred by the DMA
+ \param[out] none
+ \retval none
+*/
+void dma_transfer_number_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t number)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCNT(dma_periph, channelx) = (number & DMA_CHANNEL_CNT_MASK);
+}
+
+/*!
+ \brief get the number of remaining data to be transferred by the DMA
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to set number
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval uint32_t: the number of remaining data to be transferred by the DMA
+*/
+uint32_t dma_transfer_number_get(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ return (uint32_t)DMA_CHCNT(dma_periph, channelx);
+}
+
+/*!
+ \brief configure priority level of DMA channel
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] priority: priority Level of this channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA_PRIORITY_LOW: low priority
+ \arg DMA_PRIORITY_MEDIUM: medium priority
+ \arg DMA_PRIORITY_HIGH: high priority
+ \arg DMA_PRIORITY_ULTRA_HIGH: ultra high priority
+ \param[out] none
+ \retval none
+*/
+void dma_priority_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t priority)
+{
+ uint32_t ctl;
+
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ /* acquire DMA_CHxCTL register */
+ ctl = DMA_CHCTL(dma_periph, channelx);
+ /* assign regiser */
+ ctl &= ~DMA_CHXCTL_PRIO;
+ ctl |= priority;
+ DMA_CHCTL(dma_periph, channelx) = ctl;
+}
+
+/*!
+ \brief configure transfer data size of memory
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] mwidth: transfer data width of memory
+ only one parameter can be selected which is shown as below:
+ \arg DMA_MEMORY_WIDTH_8BIT: transfer data width of memory is 8-bit
+ \arg DMA_MEMORY_WIDTH_16BIT: transfer data width of memory is 16-bit
+ \arg DMA_MEMORY_WIDTH_32BIT: transfer data width of memory is 32-bit
+ \param[out] none
+ \retval none
+*/
+void dma_memory_width_config(uint32_t dma_periph, dma_channel_enum channelx, uint32_t mwidth)
+{
+ uint32_t ctl;
+
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ /* acquire DMA_CHxCTL register */
+ ctl = DMA_CHCTL(dma_periph, channelx);
+ /* assign regiser */
+ ctl &= ~DMA_CHXCTL_MWIDTH;
+ ctl |= mwidth;
+ DMA_CHCTL(dma_periph, channelx) = ctl;
+}
+
+/*!
+ \brief configure transfer data size of peripheral
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] pwidth: transfer data width of peripheral
+ only one parameter can be selected which is shown as below:
+ \arg DMA_PERIPHERAL_WIDTH_8BIT: transfer data width of peripheral is 8-bit
+ \arg DMA_PERIPHERAL_WIDTH_16BIT: transfer data width of peripheral is 16-bit
+ \arg DMA_PERIPHERAL_WIDTH_32BIT: transfer data width of peripheral is 32-bit
+ \param[out] none
+ \retval none
+*/
+void dma_periph_width_config (uint32_t dma_periph, dma_channel_enum channelx, uint32_t pwidth)
+{
+ uint32_t ctl;
+
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ /* acquire DMA_CHxCTL register */
+ ctl = DMA_CHCTL(dma_periph, channelx);
+ /* assign regiser */
+ ctl &= ~DMA_CHXCTL_PWIDTH;
+ ctl |= pwidth;
+ DMA_CHCTL(dma_periph, channelx) = ctl;
+}
+
+/*!
+ \brief enable next address increasement algorithm of memory
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_memory_increase_enable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_MNAGA;
+}
+
+/*!
+ \brief disable next address increasement algorithm of memory
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_memory_increase_disable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_MNAGA;
+}
+
+/*!
+ \brief enable next address increasement algorithm of peripheral
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_periph_increase_enable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_PNAGA;
+}
+
+/*!
+ \brief disable next address increasement algorithm of peripheral
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void dma_periph_increase_disable(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_PNAGA;
+}
+
+/*!
+ \brief configure the direction of data transfer on the channel
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] direction: specify the direction of data transfer
+ only one parameter can be selected which is shown as below:
+ \arg DMA_PERIPHERAL_TO_MEMORY: read from peripheral and write to memory
+ \arg DMA_MEMORY_TO_PERIPHERAL: read from memory and write to peripheral
+ \param[out] none
+ \retval none
+*/
+void dma_transfer_direction_config(uint32_t dma_periph, dma_channel_enum channelx, uint8_t direction)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ if(DMA_PERIPHERAL_TO_MEMORY == direction){
+ DMA_CHCTL(dma_periph, channelx) &= ~DMA_CHXCTL_DIR;
+ } else {
+ DMA_CHCTL(dma_periph, channelx) |= DMA_CHXCTL_DIR;
+ }
+}
+
+/*!
+ \brief check DMA flag is set or not
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to get flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] flag: specify get which flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA_FLAG_G: global interrupt flag of channel
+ \arg DMA_FLAG_FTF: full transfer finish flag of channel
+ \arg DMA_FLAG_HTF: half transfer finish flag of channel
+ \arg DMA_FLAG_ERR: error flag of channel
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus dma_flag_get(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag)
+{
+ FlagStatus reval;
+
+ if(DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, (uint32_t)channelx)){
+ reval = SET;
+ }else{
+ reval = RESET;
+ }
+
+ return reval;
+}
+
+/*!
+ \brief clear DMA a channel flag
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to clear flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] flag: specify get which flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA_FLAG_G: global interrupt flag of channel
+ \arg DMA_FLAG_FTF: full transfer finish flag of channel
+ \arg DMA_FLAG_HTF: half transfer finish flag of channel
+ \arg DMA_FLAG_ERR: error flag of channel
+ \param[out] none
+ \retval none
+*/
+void dma_flag_clear(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag)
+{
+ DMA_INTC(dma_periph) |= DMA_FLAG_ADD(flag, (uint32_t)channelx);
+}
+
+/*!
+ \brief check DMA flag and interrupt enable bit is set or not
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to get flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] flag: specify get which flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA_INT_FLAG_FTF: full transfer finish interrupt flag of channel
+ \arg DMA_INT_FLAG_HTF: half transfer finish interrupt flag of channel
+ \arg DMA_INT_FLAG_ERR: error interrupt flag of channel
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus dma_interrupt_flag_get(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag)
+{
+ uint32_t interrupt_enable = 0U, interrupt_flag = 0U;
+
+ switch(flag){
+ case DMA_INT_FLAG_FTF:
+ /* check whether the full transfer finish interrupt flag is set and enabled */
+ interrupt_flag = DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, (uint32_t)channelx);
+ interrupt_enable = DMA_CHCTL(dma_periph, (uint32_t)channelx) & DMA_CHXCTL_FTFIE;
+ break;
+ case DMA_INT_FLAG_HTF:
+ /* check whether the half transfer finish interrupt flag is set and enabled */
+ interrupt_flag = DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, (uint32_t)channelx);
+ interrupt_enable = DMA_CHCTL(dma_periph, (uint32_t)channelx) & DMA_CHXCTL_HTFIE;
+ break;
+ case DMA_INT_FLAG_ERR:
+ /* check whether the error interrupt flag is set and enabled */
+ interrupt_flag = DMA_INTF(dma_periph) & DMA_FLAG_ADD(flag, (uint32_t)channelx);
+ interrupt_enable = DMA_CHCTL(dma_periph, (uint32_t)channelx) & DMA_CHXCTL_ERRIE;
+ break;
+ default:
+ DMA_WRONG_HANDLE
+ }
+
+ /* when the interrupt flag is set and enabled, return SET */
+ if(interrupt_flag && interrupt_enable){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear DMA a channel flag
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel to clear flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] flag: specify get which flag
+ only one parameter can be selected which is shown as below:
+ \arg DMA_INT_FLAG_G: global interrupt flag of channel
+ \arg DMA_INT_FLAG_FTF: full transfer finish interrupt flag of channel
+ \arg DMA_INT_FLAG_HTF: half transfer finish interrupt flag of channel
+ \arg DMA_INT_FLAG_ERR: error interrupt flag of channel
+ \param[out] none
+ \retval none
+*/
+void dma_interrupt_flag_clear(uint32_t dma_periph, dma_channel_enum channelx, uint32_t flag)
+{
+ DMA_INTC(dma_periph) |= DMA_FLAG_ADD(flag, (uint32_t)channelx);
+}
+
+/*!
+ \brief enable DMA interrupt
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] source: specify which interrupt to enbale
+ one or more parameters can be selected which are shown as below
+ \arg DMA_INT_FTF: channel full transfer finish interrupt
+ \arg DMA_INT_HTF: channel half transfer finish interrupt
+ \arg DMA_INT_ERR: channel error interrupt
+ \param[out] none
+ \retval none
+*/
+void dma_interrupt_enable(uint32_t dma_periph, dma_channel_enum channelx, uint32_t source)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) |= source;
+}
+
+/*!
+ \brief disable DMA interrupt
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA0: DMA_CHx(x=0..6), DMA1: DMA_CHx(x=0..4)
+ \param[in] source: specify which interrupt to disbale
+ one or more parameters can be selected which are shown as below
+ \arg DMA_INT_FTF: channel full transfer finish interrupt
+ \arg DMA_INT_HTF: channel half transfer finish interrupt
+ \arg DMA_INT_ERR: channel error interrupt
+ \param[out] none
+ \retval none
+*/
+void dma_interrupt_disable(uint32_t dma_periph, dma_channel_enum channelx, uint32_t source)
+{
+ if(ERROR == dma_periph_and_channel_check(dma_periph, channelx)){
+ DMA_WRONG_HANDLE
+ }
+
+ DMA_CHCTL(dma_periph, channelx) &= ~source;
+}
+
+/*!
+ \brief check whether peripheral and channels match
+ \param[in] dma_periph: DMAx(x=0,1)
+ \arg DMAx(x=0,1)
+ \param[in] channelx: specify which DMA channel
+ only one parameter can be selected which is shown as below:
+ \arg DMA_CHx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+static ErrStatus dma_periph_and_channel_check(uint32_t dma_periph, dma_channel_enum channelx)
+{
+ ErrStatus val = SUCCESS;
+
+ if(DMA1 == dma_periph){
+ /* for DMA1, the channel is from DMA_CH0 to DMA_CH4 */
+ if(channelx > DMA_CH4){
+ val = ERROR;
+ }
+ }
+
+ return val;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c
new file mode 100644
index 0000000000..4ff0e21525
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c
@@ -0,0 +1,129 @@
+/*!
+ \file gd32vf103_eclic.c
+ \brief ECLIC(Enhancement Core-Local Interrupt Controller) driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_eclic.h"
+#include "riscv_encoding.h"
+
+#define REG_DBGMCU2 ((uint32_t)0xE0042008U)
+#define REG_DBGMCU2EN ((uint32_t)0xE004200CU)
+
+/*!
+ \brief enable the global interrupt
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void eclic_global_interrupt_enable(void)
+{
+ /* set machine interrupt enable bit */
+ set_csr(mstatus, MSTATUS_MIE);
+}
+
+/*!
+ \brief disable the global interrupt
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void eclic_global_interrupt_disable(void)
+{
+ /* clear machine interrupt enable bit */
+ clear_csr(mstatus, MSTATUS_MIE);
+}
+
+/*!
+ \brief set the priority group
+ \param[in] prigroup: specify the priority group
+ \arg ECLIC_PRIGROUP_LEVEL0_PRIO4
+ \arg ECLIC_PRIGROUP_LEVEL1_PRIO3
+ \arg ECLIC_PRIGROUP_LEVEL2_PRIO2
+ \arg ECLIC_PRIGROUP_LEVEL3_PRIO1
+ \arg ECLIC_PRIGROUP_LEVEL4_PRIO0
+ \param[out] none
+ \retval none
+*/
+void eclic_priority_group_set(uint8_t prigroup)
+{
+ eclic_set_nlbits(prigroup);
+}
+
+/*!
+ \brief enable the interrupt request
+ \param[in] source: interrupt request, detailed in IRQn_Type
+ \param[in] level: the level needed to set (maximum is 15, refer to the priority group)
+ \param[in] priority: the priority needed to set (maximum is 15, refer to the priority group)
+ \param[out] none
+ \retval none
+*/
+void eclic_irq_enable(uint32_t source, uint8_t level, uint8_t priority)
+{
+ eclic_enable_interrupt(source);
+ eclic_set_irq_lvl_abs(source, level);
+ eclic_set_irq_priority(source, priority);
+}
+
+/*!
+ \brief disable the interrupt request
+ \param[in] source: interrupt request, detailed in IRQn_Type
+ \param[out] none
+ \retval none
+*/
+void eclic_irq_disable(uint32_t source)
+{
+ eclic_disable_interrupt(source);
+}
+
+/*!
+ \brief reset system
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void eclic_system_reset(void)
+{
+ REG32(REG_DBGMCU2EN) = (uint32_t)0x4b5a6978U;
+ REG32(REG_DBGMCU2) = (uint32_t)0x1U;
+}
+
+/*!
+ \brief send event(SEV)
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void eclic_send_event(void)
+{
+ set_csr(0x812U, 0x1U);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.s
new file mode 100644
index 0000000000..849ac58c82
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.s
@@ -0,0 +1,21240 @@
+ .file "gd32vf103_eclic.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl eclic_global_interrupt_enable
+ .type eclic_global_interrupt_enable, @function
+eclic_global_interrupt_enable:
+.LFB2:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_eclic.c"
+ .loc 1 49 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+.LBB2:
+ .loc 1 51 103
+ #APP
+# 51 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\GD32VF103_standard_peripheral\Source\gd32vf103_eclic.c" 1
+ csrrs a5, mstatus, 8
+# 0 "" 2
+ #NO_APP
+ sw a5,-20(s0)
+.LBE2:
+ .loc 1 52 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE2:
+ .size eclic_global_interrupt_enable, .-eclic_global_interrupt_enable
+ .align 1
+ .globl eclic_global_interrupt_disable
+ .type eclic_global_interrupt_disable, @function
+eclic_global_interrupt_disable:
+.LFB3:
+ .loc 1 61 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+.LBB3:
+ .loc 1 63 103
+ #APP
+# 63 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\GD32VF103_standard_peripheral\Source\gd32vf103_eclic.c" 1
+ csrrc a5, mstatus, 8
+# 0 "" 2
+ #NO_APP
+ sw a5,-20(s0)
+.LBE3:
+ .loc 1 64 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE3:
+ .size eclic_global_interrupt_disable, .-eclic_global_interrupt_disable
+ .align 1
+ .globl eclic_priority_group_set
+ .type eclic_priority_group_set, @function
+eclic_priority_group_set:
+.LFB4:
+ .loc 1 78 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 79 5
+ lbu a5,-17(s0)
+ mv a0,a5
+ call eclic_set_nlbits
+ .loc 1 80 1
+ nop
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE4:
+ .size eclic_priority_group_set, .-eclic_priority_group_set
+ .align 1
+ .globl eclic_irq_enable
+ .type eclic_irq_enable, @function
+eclic_irq_enable:
+.LFB5:
+ .loc 1 91 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ mv a5,a1
+ mv a4,a2
+ sb a5,-21(s0)
+ mv a5,a4
+ sb a5,-22(s0)
+ .loc 1 92 5
+ lw a0,-20(s0)
+ call eclic_enable_interrupt
+ .loc 1 93 5
+ lbu a5,-21(s0)
+ mv a1,a5
+ lw a0,-20(s0)
+ call eclic_set_irq_lvl_abs
+ .loc 1 94 5
+ lbu a5,-22(s0)
+ mv a1,a5
+ lw a0,-20(s0)
+ call eclic_set_irq_priority
+ .loc 1 95 1
+ nop
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size eclic_irq_enable, .-eclic_irq_enable
+ .align 1
+ .globl eclic_irq_disable
+ .type eclic_irq_disable, @function
+eclic_irq_disable:
+.LFB6:
+ .loc 1 104 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 105 5
+ lw a0,-20(s0)
+ call eclic_disable_interrupt
+ .loc 1 106 1
+ nop
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size eclic_irq_disable, .-eclic_irq_disable
+ .align 1
+ .globl eclic_system_reset
+ .type eclic_system_reset, @function
+eclic_system_reset:
+.LFB7:
+ .loc 1 115 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 116 6
+ li a5,-536600576
+ addi a5,a5,12
+ .loc 1 116 65
+ li a4,1264218112
+ addi a4,a4,-1672
+ sw a4,0(a5)
+ .loc 1 117 6
+ li a5,-536600576
+ addi a5,a5,8
+ .loc 1 117 65
+ li a4,1
+ sw a4,0(a5)
+ .loc 1 118 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE7:
+ .size eclic_system_reset, .-eclic_system_reset
+ .align 1
+ .globl eclic_send_event
+ .type eclic_send_event, @function
+eclic_send_event:
+.LFB8:
+ .loc 1 127 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+.LBB4:
+ .loc 1 128 91
+ #APP
+# 128 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\GD32VF103_standard_peripheral\Source\gd32vf103_eclic.c" 1
+ csrrs a5, 0x812U, 1
+# 0 "" 2
+ #NO_APP
+ sw a5,-20(s0)
+.LBE4:
+ .loc 1 129 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE8:
+ .size eclic_send_event, .-eclic_send_event
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0x1d1
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF4022
+ .byte 0xc
+ .4byte .LASF4023
+ .4byte .LASF4024
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3998
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3999
+ .byte 0x3
+ .4byte .LASF4004
+ .byte 0x2
+ .byte 0x2b
+ .byte 0x17
+ .4byte 0x43
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF4000
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF4001
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF4002
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF4003
+ .byte 0x3
+ .4byte .LASF4005
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF4006
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF4007
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF4008
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF4009
+ .byte 0x3
+ .byte 0x18
+ .byte 0x13
+ .4byte 0x37
+ .byte 0x3
+ .4byte .LASF4010
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x5f
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF4011
+ .byte 0x5
+ .4byte .LASF4012
+ .byte 0x1
+ .byte 0x7e
+ .byte 0x6
+ .4byte .LFB8
+ .4byte .LFE8-.LFB8
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xd6
+ .byte 0x6
+ .4byte .LBB4
+ .4byte .LBE4-.LBB4
+ .byte 0x7
+ .4byte .LASF4021
+ .byte 0x1
+ .byte 0x80
+ .byte 0x16
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .4byte .LASF4025
+ .byte 0x1
+ .byte 0x72
+ .byte 0x6
+ .4byte .LFB7
+ .4byte .LFE7-.LFB7
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x9
+ .4byte .LASF4013
+ .byte 0x1
+ .byte 0x67
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x10e
+ .byte 0xa
+ .4byte .LASF4015
+ .byte 0x1
+ .byte 0x67
+ .byte 0x21
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x9
+ .4byte .LASF4014
+ .byte 0x1
+ .byte 0x5a
+ .byte 0x6
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x152
+ .byte 0xa
+ .4byte .LASF4015
+ .byte 0x1
+ .byte 0x5a
+ .byte 0x20
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xa
+ .4byte .LASF4016
+ .byte 0x1
+ .byte 0x5a
+ .byte 0x30
+ .4byte 0x87
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6b
+ .byte 0xa
+ .4byte .LASF4017
+ .byte 0x1
+ .byte 0x5a
+ .byte 0x3f
+ .4byte 0x87
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6a
+ .byte 0
+ .byte 0x9
+ .4byte .LASF4018
+ .byte 0x1
+ .byte 0x4d
+ .byte 0x6
+ .4byte .LFB4
+ .4byte .LFE4-.LFB4
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x178
+ .byte 0xa
+ .4byte .LASF4019
+ .byte 0x1
+ .byte 0x4d
+ .byte 0x27
+ .4byte 0x87
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0
+ .byte 0x5
+ .4byte .LASF4020
+ .byte 0x1
+ .byte 0x3c
+ .byte 0x6
+ .4byte .LFB3
+ .4byte .LFE3-.LFB3
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x1a8
+ .byte 0x6
+ .4byte .LBB3
+ .4byte .LBE3-.LBB3
+ .byte 0x7
+ .4byte .LASF4021
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x16
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .4byte .LASF4026
+ .byte 0x1
+ .byte 0x30
+ .byte 0x6
+ .4byte .LFB2
+ .4byte .LFE2-.LFB2
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x6
+ .4byte .LBB2
+ .4byte .LBE2-.LBB2
+ .byte 0x7
+ .4byte .LASF4021
+ .byte 0x1
+ .byte 0x33
+ .byte 0x16
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0xb
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .file 4 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x24
+ .byte 0x4
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0x5
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .file 6 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x6
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF341
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x7
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF342
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF343
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x8
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF344
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x9
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 11 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xb
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .file 12 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xc
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF528
+ .byte 0x3
+ .byte 0x27
+ .byte 0x5
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xd
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x4
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .byte 0x3
+ .byte 0x36
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x20
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3068
+ .file 33 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3132
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .file 37 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_encoding.h"
+ .byte 0x3
+ .byte 0x25
+ .byte 0x25
+ .byte 0x7
+ .4byte .Ldebug_macro36
+ .byte 0x4
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3996
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3997
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF339
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF340
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF348
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF349
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF360
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF371
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF372
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF373
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF374
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF403
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF404
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF382
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF381
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF420
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF421
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF489
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF490
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF525
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF526
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF709
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF710
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF778
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF779
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1116
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1117
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1124
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1125
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1225
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1226
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1324
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1325
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1331
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1332
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1355
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1361
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1362
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1477
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1483
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1484
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1591
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1597
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1598
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1872
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1878
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1879
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1984
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1990
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1991
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2011
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2017
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2018
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2035
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2041
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2042
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2068
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2074
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2075
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2399
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2405
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2439
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2445
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2582
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2588
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2794
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2931
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2937
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3001
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3003
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3051
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3057
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3067
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3073
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3074
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3080
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3086
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3098
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3104
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3114
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF3115
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3116
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3118
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3120
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3121
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3124
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3127
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3131
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3137
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3138
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3143
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3157
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3162
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.42.f7c52935c17a922f25617b31af8d4b9d,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3163
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_encoding.h.4.141a3f782f9378c77348fd1925237eaf,comdat
+.Ldebug_macro36:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3169
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3170
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3171
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3172
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3173
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3174
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3175
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3176
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3177
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3178
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3179
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3180
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3181
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3182
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3183
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3184
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3185
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3186
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3187
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3188
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3189
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3190
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3191
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3192
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3193
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF3194
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3195
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF3196
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3197
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3198
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3199
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3200
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3201
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3202
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3203
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3204
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3206
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3207
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3208
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF3209
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF3210
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3211
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3212
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF3213
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3214
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3215
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3216
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3217
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF3218
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3219
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3220
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3221
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3222
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3223
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3224
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3225
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3226
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3227
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF3228
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF3229
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3230
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF3231
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF3232
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF3233
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF3234
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF3235
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF3236
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3237
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3238
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3239
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF3240
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3241
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3242
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3243
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3244
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3245
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3246
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF3247
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3248
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3249
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF3250
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF3251
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3252
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3253
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF3254
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3255
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3256
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF3257
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF3258
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF3259
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3260
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3261
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3262
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF3263
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3264
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3265
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3266
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF3267
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF3268
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF3269
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3270
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF3271
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF3272
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF3273
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3274
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3275
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3276
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF3277
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3278
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3279
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3280
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3281
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3282
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3283
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3284
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3285
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3286
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3287
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3288
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF3289
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF3290
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF3291
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF3292
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF3293
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF3294
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF3295
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF3296
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF3297
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3298
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF3299
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF3300
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3301
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF3302
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF3303
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF3304
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF3305
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF3306
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF3307
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF3308
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3309
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3310
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3311
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3312
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3313
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3314
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF3315
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF3316
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF3317
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3318
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3319
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3320
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3321
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF3322
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF3323
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3324
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3325
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3326
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF3327
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF3328
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3329
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3330
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3331
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3332
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3333
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3334
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3335
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3336
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF3337
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3338
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3339
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3340
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3341
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF3342
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF3343
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3344
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3345
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3346
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3347
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3348
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3349
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3350
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3351
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3352
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3353
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3354
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3355
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3356
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3357
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3358
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3359
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3360
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF3361
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF3362
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF3363
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF3364
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF3365
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF3366
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF3367
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF3368
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF3369
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF3370
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF3371
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF3372
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF3373
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF3374
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF3375
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF3376
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF3377
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF3378
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF3379
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF3380
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF3381
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF3382
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF3383
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF3384
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF3385
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF3386
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF3387
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF3388
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF3389
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF3390
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF3391
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF3392
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF3393
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF3394
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF3395
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF3396
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF3397
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF3398
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF3399
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF3400
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF3401
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF3402
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF3403
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF3404
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF3405
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF3406
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF3407
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF3408
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF3409
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF3410
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF3411
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF3412
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF3413
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF3414
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF3415
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF3416
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF3417
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF3418
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF3419
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF3420
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF3421
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF3422
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF3423
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF3424
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF3425
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF3426
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF3427
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF3428
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF3429
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF3430
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF3431
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF3432
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF3433
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF3434
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF3435
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF3436
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF3437
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF3438
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF3439
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF3440
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF3441
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF3442
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF3443
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF3444
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF3445
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF3446
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF3447
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF3448
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF3449
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF3450
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF3451
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF3452
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF3453
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF3454
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF3455
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF3456
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF3457
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF3458
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF3459
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF3460
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF3461
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF3462
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF3463
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF3464
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF3465
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF3466
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF3467
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF3468
+ .byte 0x5
+ .byte 0xff,0x2
+ .4byte .LASF3469
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF3470
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF3471
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF3472
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF3473
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF3474
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF3475
+ .byte 0x5
+ .byte 0x86,0x3
+ .4byte .LASF3476
+ .byte 0x5
+ .byte 0x87,0x3
+ .4byte .LASF3477
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF3478
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF3479
+ .byte 0x5
+ .byte 0x8a,0x3
+ .4byte .LASF3480
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3481
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF3482
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF3483
+ .byte 0x5
+ .byte 0x8e,0x3
+ .4byte .LASF3484
+ .byte 0x5
+ .byte 0x8f,0x3
+ .4byte .LASF3485
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF3486
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF3487
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF3488
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF3489
+ .byte 0x5
+ .byte 0x94,0x3
+ .4byte .LASF3490
+ .byte 0x5
+ .byte 0x95,0x3
+ .4byte .LASF3491
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3492
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF3493
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF3494
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF3495
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF3496
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3497
+ .byte 0x5
+ .byte 0x9c,0x3
+ .4byte .LASF3498
+ .byte 0x5
+ .byte 0x9d,0x3
+ .4byte .LASF3499
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF3500
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF3501
+ .byte 0x5
+ .byte 0xa0,0x3
+ .4byte .LASF3502
+ .byte 0x5
+ .byte 0xa1,0x3
+ .4byte .LASF3503
+ .byte 0x5
+ .byte 0xa2,0x3
+ .4byte .LASF3504
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF3505
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF3506
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF3507
+ .byte 0x5
+ .byte 0xa6,0x3
+ .4byte .LASF3508
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF3509
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF3510
+ .byte 0x5
+ .byte 0xa9,0x3
+ .4byte .LASF3511
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF3512
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF3513
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF3514
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF3515
+ .byte 0x5
+ .byte 0xae,0x3
+ .4byte .LASF3516
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF3517
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF3518
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF3519
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF3520
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF3521
+ .byte 0x5
+ .byte 0xb4,0x3
+ .4byte .LASF3522
+ .byte 0x5
+ .byte 0xb5,0x3
+ .4byte .LASF3523
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF3524
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF3525
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF3526
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF3527
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF3528
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF3529
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF3530
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF3531
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF3532
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF3533
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF3534
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF3535
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF3536
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF3537
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF3538
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF3539
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF3540
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF3541
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF3542
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF3543
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF3544
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF3545
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF3546
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF3547
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF3548
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF3549
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF3550
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF3551
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF3552
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF3553
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF3554
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF3555
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF3556
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF3557
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF3558
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF3559
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF3560
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF3561
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF3562
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF3563
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF3564
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF3565
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF3566
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF3567
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF3568
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF3569
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF3570
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF3571
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF3572
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF3573
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF3574
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF3575
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF3576
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF3577
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF3578
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF3579
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF3580
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF3581
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF3582
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF3583
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF3584
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF3585
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF3586
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF3587
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF3588
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF3589
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF3590
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF3591
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF3592
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF3593
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF3594
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF3595
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF3596
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF3597
+ .byte 0x5
+ .byte 0x80,0x4
+ .4byte .LASF3598
+ .byte 0x5
+ .byte 0x81,0x4
+ .4byte .LASF3599
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF3600
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF3601
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF3602
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF3603
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF3604
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF3605
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF3606
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF3607
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF3608
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF3609
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF3610
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF3611
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF3612
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF3613
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF3614
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF3615
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF3616
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF3617
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF3618
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF3619
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF3620
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF3621
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF3622
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF3623
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF3624
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF3625
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF3626
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF3627
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF3628
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF3629
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF3630
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF3631
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF3632
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF3633
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF3634
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF3635
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF3636
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF3637
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF3638
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF3639
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF3640
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF3641
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF3642
+ .byte 0x5
+ .byte 0xad,0x4
+ .4byte .LASF3643
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF3644
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF3645
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF3646
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF3647
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF3648
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF3649
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF3650
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF3651
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF3652
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF3653
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF3654
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF3655
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF3656
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF3657
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF3658
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF3659
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF3660
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF3661
+ .byte 0x5
+ .byte 0xc0,0x4
+ .4byte .LASF3662
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF3663
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF3664
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF3665
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF3666
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF3667
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF3668
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF3669
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF3670
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF3671
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF3672
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF3673
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF3674
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF3675
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF3676
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF3677
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF3678
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF3679
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF3680
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF3681
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF3682
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF3683
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF3684
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF3685
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF3686
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF3687
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF3688
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF3689
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF3690
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF3691
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF3692
+ .byte 0x5
+ .byte 0xdf,0x4
+ .4byte .LASF3693
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF3694
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF3695
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF3696
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF3697
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF3698
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF3699
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF3700
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF3701
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF3702
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF3703
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF3704
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF3705
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF3706
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF3707
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF3708
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF3709
+ .byte 0x5
+ .byte 0xf0,0x4
+ .4byte .LASF3710
+ .byte 0x5
+ .byte 0xf1,0x4
+ .4byte .LASF3711
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF3712
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF3713
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF3714
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF3715
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF3716
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF3717
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF3718
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF3719
+ .byte 0x5
+ .byte 0xfa,0x4
+ .4byte .LASF3720
+ .byte 0x5
+ .byte 0xfb,0x4
+ .4byte .LASF3721
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF3722
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF3723
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF3724
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF3725
+ .byte 0x5
+ .byte 0x80,0x5
+ .4byte .LASF3726
+ .byte 0x5
+ .byte 0x81,0x5
+ .4byte .LASF3727
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF3728
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF3729
+ .byte 0x5
+ .byte 0x84,0x5
+ .4byte .LASF3730
+ .byte 0x5
+ .byte 0x85,0x5
+ .4byte .LASF3731
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF3732
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF3733
+ .byte 0x5
+ .byte 0x88,0x5
+ .4byte .LASF3734
+ .byte 0x5
+ .byte 0x89,0x5
+ .4byte .LASF3735
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF3736
+ .byte 0x5
+ .byte 0x8b,0x5
+ .4byte .LASF3737
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF3738
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF3739
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF3740
+ .byte 0x5
+ .byte 0x8f,0x5
+ .4byte .LASF3741
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF3742
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF3743
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF3744
+ .byte 0x5
+ .byte 0x93,0x5
+ .4byte .LASF3745
+ .byte 0x5
+ .byte 0x94,0x5
+ .4byte .LASF3746
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF3747
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF3748
+ .byte 0x5
+ .byte 0x97,0x5
+ .4byte .LASF3749
+ .byte 0x5
+ .byte 0x98,0x5
+ .4byte .LASF3750
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF3751
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF3752
+ .byte 0x5
+ .byte 0x9b,0x5
+ .4byte .LASF3753
+ .byte 0x5
+ .byte 0x9c,0x5
+ .4byte .LASF3754
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF3755
+ .byte 0x5
+ .byte 0x9e,0x5
+ .4byte .LASF3756
+ .byte 0x5
+ .byte 0x9f,0x5
+ .4byte .LASF3757
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF3758
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF3759
+ .byte 0x5
+ .byte 0xa2,0x5
+ .4byte .LASF3760
+ .byte 0x5
+ .byte 0xa3,0x5
+ .4byte .LASF3761
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF3762
+ .byte 0x5
+ .byte 0xa5,0x5
+ .4byte .LASF3763
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF3764
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF3765
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF3766
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF3767
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF3768
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF3769
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF3770
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF3771
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF3772
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF3773
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF3774
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF3775
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF3776
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF3777
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF3778
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF3779
+ .byte 0x5
+ .byte 0xb6,0x5
+ .4byte .LASF3780
+ .byte 0x5
+ .byte 0xb7,0x5
+ .4byte .LASF3781
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF3782
+ .byte 0x5
+ .byte 0xb9,0x5
+ .4byte .LASF3783
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF3784
+ .byte 0x5
+ .byte 0xbb,0x5
+ .4byte .LASF3785
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF3786
+ .byte 0x5
+ .byte 0xbd,0x5
+ .4byte .LASF3787
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF3788
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF3789
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF3790
+ .byte 0x5
+ .byte 0xc1,0x5
+ .4byte .LASF3791
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF3792
+ .byte 0x5
+ .byte 0xc3,0x5
+ .4byte .LASF3793
+ .byte 0x5
+ .byte 0xc4,0x5
+ .4byte .LASF3794
+ .byte 0x5
+ .byte 0xc5,0x5
+ .4byte .LASF3795
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF3796
+ .byte 0x5
+ .byte 0xc7,0x5
+ .4byte .LASF3797
+ .byte 0x5
+ .byte 0xc8,0x5
+ .4byte .LASF3798
+ .byte 0x5
+ .byte 0xc9,0x5
+ .4byte .LASF3799
+ .byte 0x5
+ .byte 0xca,0x5
+ .4byte .LASF3800
+ .byte 0x5
+ .byte 0xcb,0x5
+ .4byte .LASF3801
+ .byte 0x5
+ .byte 0xcc,0x5
+ .4byte .LASF3802
+ .byte 0x5
+ .byte 0xcd,0x5
+ .4byte .LASF3803
+ .byte 0x5
+ .byte 0xce,0x5
+ .4byte .LASF3804
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF3805
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF3806
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF3807
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF3808
+ .byte 0x5
+ .byte 0xd3,0x5
+ .4byte .LASF3809
+ .byte 0x5
+ .byte 0xd4,0x5
+ .4byte .LASF3810
+ .byte 0x5
+ .byte 0xd5,0x5
+ .4byte .LASF3811
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF3812
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF3813
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF3814
+ .byte 0x5
+ .byte 0xd9,0x5
+ .4byte .LASF3815
+ .byte 0x5
+ .byte 0xda,0x5
+ .4byte .LASF3816
+ .byte 0x5
+ .byte 0xdb,0x5
+ .4byte .LASF3817
+ .byte 0x5
+ .byte 0xdc,0x5
+ .4byte .LASF3818
+ .byte 0x5
+ .byte 0xdd,0x5
+ .4byte .LASF3819
+ .byte 0x5
+ .byte 0xde,0x5
+ .4byte .LASF3820
+ .byte 0x5
+ .byte 0xdf,0x5
+ .4byte .LASF3821
+ .byte 0x5
+ .byte 0xe0,0x5
+ .4byte .LASF3822
+ .byte 0x5
+ .byte 0xe1,0x5
+ .4byte .LASF3823
+ .byte 0x5
+ .byte 0xe2,0x5
+ .4byte .LASF3824
+ .byte 0x5
+ .byte 0xe3,0x5
+ .4byte .LASF3825
+ .byte 0x5
+ .byte 0xe4,0x5
+ .4byte .LASF3826
+ .byte 0x5
+ .byte 0xe5,0x5
+ .4byte .LASF3827
+ .byte 0x5
+ .byte 0xe6,0x5
+ .4byte .LASF3828
+ .byte 0x5
+ .byte 0xe7,0x5
+ .4byte .LASF3829
+ .byte 0x5
+ .byte 0xe8,0x5
+ .4byte .LASF3830
+ .byte 0x5
+ .byte 0xe9,0x5
+ .4byte .LASF3831
+ .byte 0x5
+ .byte 0xea,0x5
+ .4byte .LASF3832
+ .byte 0x5
+ .byte 0xeb,0x5
+ .4byte .LASF3833
+ .byte 0x5
+ .byte 0xec,0x5
+ .4byte .LASF3834
+ .byte 0x5
+ .byte 0xed,0x5
+ .4byte .LASF3835
+ .byte 0x5
+ .byte 0xee,0x5
+ .4byte .LASF3836
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF3837
+ .byte 0x5
+ .byte 0xf0,0x5
+ .4byte .LASF3838
+ .byte 0x5
+ .byte 0xf1,0x5
+ .4byte .LASF3839
+ .byte 0x5
+ .byte 0xf2,0x5
+ .4byte .LASF3840
+ .byte 0x5
+ .byte 0xf3,0x5
+ .4byte .LASF3841
+ .byte 0x5
+ .byte 0xf4,0x5
+ .4byte .LASF3842
+ .byte 0x5
+ .byte 0xf5,0x5
+ .4byte .LASF3843
+ .byte 0x5
+ .byte 0xf6,0x5
+ .4byte .LASF3844
+ .byte 0x5
+ .byte 0xf7,0x5
+ .4byte .LASF3845
+ .byte 0x5
+ .byte 0xf8,0x5
+ .4byte .LASF3846
+ .byte 0x5
+ .byte 0xf9,0x5
+ .4byte .LASF3847
+ .byte 0x5
+ .byte 0xfa,0x5
+ .4byte .LASF3848
+ .byte 0x5
+ .byte 0xfb,0x5
+ .4byte .LASF3849
+ .byte 0x5
+ .byte 0xfc,0x5
+ .4byte .LASF3850
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF3851
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF3852
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF3853
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF3854
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF3855
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF3856
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF3857
+ .byte 0x5
+ .byte 0x84,0x6
+ .4byte .LASF3858
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF3859
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF3860
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF3861
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF3862
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF3863
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF3864
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF3865
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF3866
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF3867
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF3868
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF3869
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF3870
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF3871
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF3872
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF3873
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF3874
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF3875
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF3876
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF3877
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF3878
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF3879
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF3880
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF3881
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF3882
+ .byte 0x5
+ .byte 0x9d,0x6
+ .4byte .LASF3883
+ .byte 0x5
+ .byte 0x9e,0x6
+ .4byte .LASF3884
+ .byte 0x5
+ .byte 0x9f,0x6
+ .4byte .LASF3885
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF3886
+ .byte 0x5
+ .byte 0xa1,0x6
+ .4byte .LASF3887
+ .byte 0x5
+ .byte 0xa2,0x6
+ .4byte .LASF3888
+ .byte 0x5
+ .byte 0xa3,0x6
+ .4byte .LASF3889
+ .byte 0x5
+ .byte 0xa4,0x6
+ .4byte .LASF3890
+ .byte 0x5
+ .byte 0xa5,0x6
+ .4byte .LASF3891
+ .byte 0x5
+ .byte 0xa6,0x6
+ .4byte .LASF3892
+ .byte 0x5
+ .byte 0xa7,0x6
+ .4byte .LASF3893
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF3894
+ .byte 0x5
+ .byte 0xa9,0x6
+ .4byte .LASF3895
+ .byte 0x5
+ .byte 0xaa,0x6
+ .4byte .LASF3896
+ .byte 0x5
+ .byte 0xab,0x6
+ .4byte .LASF3897
+ .byte 0x5
+ .byte 0xac,0x6
+ .4byte .LASF3898
+ .byte 0x5
+ .byte 0xad,0x6
+ .4byte .LASF3899
+ .byte 0x5
+ .byte 0xae,0x6
+ .4byte .LASF3900
+ .byte 0x5
+ .byte 0xaf,0x6
+ .4byte .LASF3901
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF3902
+ .byte 0x5
+ .byte 0xb1,0x6
+ .4byte .LASF3903
+ .byte 0x5
+ .byte 0xb2,0x6
+ .4byte .LASF3904
+ .byte 0x5
+ .byte 0xb3,0x6
+ .4byte .LASF3905
+ .byte 0x5
+ .byte 0xb4,0x6
+ .4byte .LASF3906
+ .byte 0x5
+ .byte 0xb5,0x6
+ .4byte .LASF3907
+ .byte 0x5
+ .byte 0xb6,0x6
+ .4byte .LASF3908
+ .byte 0x5
+ .byte 0xb7,0x6
+ .4byte .LASF3909
+ .byte 0x5
+ .byte 0xb8,0x6
+ .4byte .LASF3910
+ .byte 0x5
+ .byte 0xb9,0x6
+ .4byte .LASF3911
+ .byte 0x5
+ .byte 0xba,0x6
+ .4byte .LASF3912
+ .byte 0x5
+ .byte 0xbb,0x6
+ .4byte .LASF3913
+ .byte 0x5
+ .byte 0xbc,0x6
+ .4byte .LASF3914
+ .byte 0x5
+ .byte 0xbd,0x6
+ .4byte .LASF3915
+ .byte 0x5
+ .byte 0xbe,0x6
+ .4byte .LASF3916
+ .byte 0x5
+ .byte 0xbf,0x6
+ .4byte .LASF3917
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF3918
+ .byte 0x5
+ .byte 0xc1,0x6
+ .4byte .LASF3919
+ .byte 0x5
+ .byte 0xc2,0x6
+ .4byte .LASF3920
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF3921
+ .byte 0x5
+ .byte 0xc4,0x6
+ .4byte .LASF3922
+ .byte 0x5
+ .byte 0xc5,0x6
+ .4byte .LASF3923
+ .byte 0x5
+ .byte 0xc6,0x6
+ .4byte .LASF3924
+ .byte 0x5
+ .byte 0xc7,0x6
+ .4byte .LASF3925
+ .byte 0x5
+ .byte 0xc8,0x6
+ .4byte .LASF3926
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF3927
+ .byte 0x5
+ .byte 0xca,0x6
+ .4byte .LASF3928
+ .byte 0x5
+ .byte 0xcb,0x6
+ .4byte .LASF3929
+ .byte 0x5
+ .byte 0xcc,0x6
+ .4byte .LASF3930
+ .byte 0x5
+ .byte 0xcd,0x6
+ .4byte .LASF3931
+ .byte 0x5
+ .byte 0xce,0x6
+ .4byte .LASF3932
+ .byte 0x5
+ .byte 0xcf,0x6
+ .4byte .LASF3933
+ .byte 0x5
+ .byte 0xd0,0x6
+ .4byte .LASF3934
+ .byte 0x5
+ .byte 0xd1,0x6
+ .4byte .LASF3935
+ .byte 0x5
+ .byte 0xd2,0x6
+ .4byte .LASF3936
+ .byte 0x5
+ .byte 0xd3,0x6
+ .4byte .LASF3937
+ .byte 0x5
+ .byte 0xd4,0x6
+ .4byte .LASF3938
+ .byte 0x5
+ .byte 0xd5,0x6
+ .4byte .LASF3939
+ .byte 0x5
+ .byte 0xd6,0x6
+ .4byte .LASF3940
+ .byte 0x5
+ .byte 0xd7,0x6
+ .4byte .LASF3941
+ .byte 0x5
+ .byte 0xd8,0x6
+ .4byte .LASF3942
+ .byte 0x5
+ .byte 0xd9,0x6
+ .4byte .LASF3943
+ .byte 0x5
+ .byte 0xda,0x6
+ .4byte .LASF3944
+ .byte 0x5
+ .byte 0xdb,0x6
+ .4byte .LASF3945
+ .byte 0x5
+ .byte 0xdc,0x6
+ .4byte .LASF3946
+ .byte 0x5
+ .byte 0xdd,0x6
+ .4byte .LASF3947
+ .byte 0x5
+ .byte 0xde,0x6
+ .4byte .LASF3948
+ .byte 0x5
+ .byte 0xdf,0x6
+ .4byte .LASF3949
+ .byte 0x5
+ .byte 0xe0,0x6
+ .4byte .LASF3950
+ .byte 0x5
+ .byte 0xe1,0x6
+ .4byte .LASF3951
+ .byte 0x5
+ .byte 0xe2,0x6
+ .4byte .LASF3952
+ .byte 0x5
+ .byte 0xe3,0x6
+ .4byte .LASF3953
+ .byte 0x5
+ .byte 0xe4,0x6
+ .4byte .LASF3954
+ .byte 0x5
+ .byte 0xe5,0x6
+ .4byte .LASF3955
+ .byte 0x5
+ .byte 0xe6,0x6
+ .4byte .LASF3956
+ .byte 0x5
+ .byte 0xe7,0x6
+ .4byte .LASF3957
+ .byte 0x5
+ .byte 0xe8,0x6
+ .4byte .LASF3958
+ .byte 0x5
+ .byte 0xe9,0x6
+ .4byte .LASF3959
+ .byte 0x5
+ .byte 0xea,0x6
+ .4byte .LASF3960
+ .byte 0x5
+ .byte 0xeb,0x6
+ .4byte .LASF3961
+ .byte 0x5
+ .byte 0xec,0x6
+ .4byte .LASF3962
+ .byte 0x5
+ .byte 0xed,0x6
+ .4byte .LASF3963
+ .byte 0x5
+ .byte 0xee,0x6
+ .4byte .LASF3964
+ .byte 0x5
+ .byte 0xef,0x6
+ .4byte .LASF3965
+ .byte 0x5
+ .byte 0xf0,0x6
+ .4byte .LASF3966
+ .byte 0x5
+ .byte 0xf1,0x6
+ .4byte .LASF3967
+ .byte 0x5
+ .byte 0xf2,0x6
+ .4byte .LASF3968
+ .byte 0x5
+ .byte 0xf3,0x6
+ .4byte .LASF3969
+ .byte 0x5
+ .byte 0xf6,0x6
+ .4byte .LASF3970
+ .byte 0x5
+ .byte 0xf7,0x6
+ .4byte .LASF3971
+ .byte 0x5
+ .byte 0xf9,0x6
+ .4byte .LASF3972
+ .byte 0x5
+ .byte 0xfb,0x6
+ .4byte .LASF3973
+ .byte 0x5
+ .byte 0xfd,0x6
+ .4byte .LASF3974
+ .byte 0x5
+ .byte 0xfe,0x6
+ .4byte .LASF3975
+ .byte 0x5
+ .byte 0xff,0x6
+ .4byte .LASF3976
+ .byte 0x5
+ .byte 0x80,0x7
+ .4byte .LASF3977
+ .byte 0x5
+ .byte 0x81,0x7
+ .4byte .LASF3978
+ .byte 0x5
+ .byte 0x83,0x7
+ .4byte .LASF3979
+ .byte 0x5
+ .byte 0x84,0x7
+ .4byte .LASF3980
+ .byte 0x5
+ .byte 0x85,0x7
+ .4byte .LASF3981
+ .byte 0x5
+ .byte 0x87,0x7
+ .4byte .LASF3982
+ .byte 0x5
+ .byte 0x88,0x7
+ .4byte .LASF3983
+ .byte 0x5
+ .byte 0x8b,0x7
+ .4byte .LASF3984
+ .byte 0x5
+ .byte 0x8c,0x7
+ .4byte .LASF3985
+ .byte 0x5
+ .byte 0x8d,0x7
+ .4byte .LASF3986
+ .byte 0x5
+ .byte 0x8e,0x7
+ .4byte .LASF3987
+ .byte 0x5
+ .byte 0x8f,0x7
+ .4byte .LASF3988
+ .byte 0x5
+ .byte 0x90,0x7
+ .4byte .LASF3989
+ .byte 0x5
+ .byte 0x91,0x7
+ .4byte .LASF3990
+ .byte 0x5
+ .byte 0x92,0x7
+ .4byte .LASF3991
+ .byte 0x5
+ .byte 0x93,0x7
+ .4byte .LASF3992
+ .byte 0x5
+ .byte 0x94,0x7
+ .4byte .LASF3993
+ .byte 0x5
+ .byte 0x95,0x7
+ .4byte .LASF3994
+ .byte 0x5
+ .byte 0x96,0x7
+ .4byte .LASF3995
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF3997:
+ .string "REG_DBGMCU2EN ((uint32_t)0xE004200CU)"
+.LASF2493:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1581:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF3005:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF366:
+ .string "___int16_t_defined 1"
+.LASF2254:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF758:
+ .string "BKP_DATA BITS(0,15)"
+.LASF885:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1930:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF1625:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF3602:
+ .string "MATCH_FCVT_S_W 0xd0000053"
+.LASF3155:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF1711:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF3650:
+ .string "MATCH_C_JR 0x8002"
+.LASF3977:
+ .string "CSR_PUSHMEPC 0x7EF"
+.LASF2952:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF835:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1277:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2455:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2399:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF1302:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF2133:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF3958:
+ .string "CSR_MHPMCOUNTER20H 0xb94"
+.LASF2424:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF3104:
+ .string "_T_WCHAR "
+.LASF1995:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF537:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1608:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF1968:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2882:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2490:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF827:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF3702:
+ .string "MATCH_C_SUBW 0x9c01"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2467:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF510:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF3895:
+ .string "CSR_MHPMEVENT24 0x338"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF3969:
+ .string "CSR_MHPMCOUNTER31H 0xb9f"
+.LASF2709:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF914:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF3693:
+ .string "MASK_C_ANDI 0xec03"
+.LASF2554:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2196:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF3603:
+ .string "MASK_FCVT_S_W 0xfff0007f"
+.LASF2444:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2869:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF1465:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1096:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF4006:
+ .string "long unsigned int"
+.LASF727:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1762:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF2924:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF2404:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF3952:
+ .string "CSR_MHPMCOUNTER14H 0xb8e"
+.LASF1770:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF3953:
+ .string "CSR_MHPMCOUNTER15H 0xb8f"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF3238:
+ .string "MCONTROL_ACTION_TRACE_STOP 3"
+.LASF501:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1664:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1333:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF3175:
+ .string "MSTATUS_SPIE 0x00000020"
+.LASF3488:
+ .string "MATCH_LR_D 0x1000302f"
+.LASF755:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2768:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF1401:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF3678:
+ .string "MATCH_C_FSW 0xe000"
+.LASF2407:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF3280:
+ .string "IRQ_H_TIMER 6"
+.LASF478:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF3502:
+ .string "MATCH_MRET 0x30200073"
+.LASF1998:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF1037:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF3263:
+ .string "MIE_MEIE MIP_MEIP"
+.LASF2545:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF3097:
+ .string "_SIZET_ "
+.LASF1332:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF3246:
+ .string "MIP_SSIP (1 << IRQ_S_SOFT)"
+.LASF3165:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF2900:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1116:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF3981:
+ .string "CSR_TXEVT 0x812"
+.LASF439:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1603:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF1714:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF2292:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF581:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2949:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF3674:
+ .string "MATCH_C_FSD 0xa000"
+.LASF1226:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3157:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF3369:
+ .string "MASK_XOR 0xfe00707f"
+.LASF3035:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF1732:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF2057:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF341:
+ .string "SYSTEM_GD32VF103_H "
+.LASF3513:
+ .string "MASK_CSRRS 0x707f"
+.LASF1509:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF498:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF3926:
+ .string "CSR_HPMCOUNTER19H 0xc93"
+.LASF3845:
+ .string "CSR_MHPMCOUNTER5 0xb05"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF459:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1048:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF452:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF1766:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF413:
+ .string "_UINT32_T_DECLARED "
+.LASF1278:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF784:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1774:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF674:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1800:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2422:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF2970:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF435:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1115:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF3557:
+ .string "MASK_FMIN_D 0xfe00707f"
+.LASF1107:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF3847:
+ .string "CSR_MHPMCOUNTER7 0xb07"
+.LASF1546:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1017:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF993:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF3461:
+ .string "MASK_AMOMINU_W 0xf800707f"
+.LASF1893:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF3811:
+ .string "CSR_HPMCOUNTER30 0xc1e"
+.LASF2290:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1719:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF386:
+ .string "short +1"
+.LASF3921:
+ .string "CSR_HPMCOUNTER14H 0xc8e"
+.LASF1866:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1595:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF3532:
+ .string "MATCH_FSGNJN_S 0x20001053"
+.LASF2801:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF702:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF2997:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF3757:
+ .string "MASK_CUSTOM2_RS1 0x707f"
+.LASF2978:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF3686:
+ .string "MATCH_C_LUI 0x6001"
+.LASF1014:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF3226:
+ .string "MCONTROL_M (1<<6)"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF678:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2229:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3903:
+ .string "CSR_MVENDORID 0xf11"
+.LASF2570:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF1045:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF467:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1816:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF3762:
+ .string "MATCH_CUSTOM2_RD_RS1 0x605b"
+.LASF512:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF2983:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2783:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2777:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF3792:
+ .string "CSR_HPMCOUNTER11 0xc0b"
+.LASF3262:
+ .string "MIE_HEIE MIP_HEIP"
+.LASF2035:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2833:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF1757:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1548:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF511:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1000:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2551:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF2107:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1487:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF1144:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF1421:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2237:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF2976:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF3318:
+ .string "rdinstret() read_csr(instret)"
+.LASF1506:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF421:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1698:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF1747:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF2294:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1725:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF3133:
+ .string "_RISCV_CONST_H "
+.LASF2527:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF2418:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1176:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF3077:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1042:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2601:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1901:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF3776:
+ .string "MATCH_CUSTOM3_RD_RS1_RS2 0x707b"
+.LASF2538:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2140:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2529:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2525:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF3716:
+ .string "MATCH_C_LWSP 0x4002"
+.LASF2431:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1843:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF1131:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF2344:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF2090:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF669:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2549:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF3982:
+ .string "CSR_MMISC_CTL 0x7d0"
+.LASF3306:
+ .string "RISCV_PGLEVEL_BITS 10"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF4001:
+ .string "short int"
+.LASF3338:
+ .string "MATCH_AUIPC 0x17"
+.LASF1850:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF551:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1230:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2125:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1884:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF3571:
+ .string "MASK_FEQ_S 0xfe00707f"
+.LASF2579:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2572:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF1335:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF3630:
+ .string "MATCH_FMADD_S 0x43"
+.LASF1635:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF3281:
+ .string "IRQ_M_TIMER 7"
+.LASF548:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF350:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2649:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF3304:
+ .string "MSTATUS_SD MSTATUS32_SD"
+.LASF1916:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2751:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF2110:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF3893:
+ .string "CSR_MHPMEVENT22 0x336"
+.LASF3180:
+ .string "MSTATUS_FS 0x00006000"
+.LASF899:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF2273:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF2989:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1324:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF1827:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF759:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1258:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF762:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF3928:
+ .string "CSR_HPMCOUNTER21H 0xc95"
+.LASF1961:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF795:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF3732:
+ .string "MATCH_CUSTOM0_RS1 0x200b"
+.LASF465:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF666:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF532:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1237:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF946:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2369:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF927:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF3043:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF958:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF2138:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF3980:
+ .string "CSR_SLEEPVALUE 0x811"
+.LASF1056:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF2162:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF3406:
+ .string "MATCH_LHU 0x5003"
+.LASF3374:
+ .string "MATCH_OR 0x6033"
+.LASF2762:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF451:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF3506:
+ .string "MATCH_SFENCE_VM 0x10400073"
+.LASF642:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2205:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF813:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2469:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF3149:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2295:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF904:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF639:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1262:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2569:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF3864:
+ .string "CSR_MHPMCOUNTER24 0xb18"
+.LASF2906:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF3640:
+ .string "MATCH_FMSUB_D 0x2000047"
+.LASF2799:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF3918:
+ .string "CSR_HPMCOUNTER11H 0xc8b"
+.LASF3719:
+ .string "MASK_C_FLWSP 0xe003"
+.LASF3128:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1950:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF364:
+ .string "__have_long32 1"
+.LASF1330:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1241:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF3093:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF3781:
+ .string "CSR_CYCLE 0xc00"
+.LASF1100:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF801:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2175:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1849:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF2071:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF1957:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF948:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3613:
+ .string "MASK_FCVT_D_W 0xfff0007f"
+.LASF4010:
+ .string "uint32_t"
+.LASF870:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF3031:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1970:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF3539:
+ .string "MASK_FMAX_S 0xfe00707f"
+.LASF401:
+ .string "__LEAST8 \"hh\""
+.LASF1561:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF3357:
+ .string "MASK_ANDI 0x707f"
+.LASF1263:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1149:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2126:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF2317:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF2759:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF2704:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF3662:
+ .string "MATCH_C_LDSP 0x6002"
+.LASF814:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2586:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1744:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2766:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF3467:
+ .string "MASK_LR_W 0xf9f0707f"
+.LASF3667:
+ .string "MASK_C_ADDI4SPN 0xe003"
+.LASF3786:
+ .string "CSR_HPMCOUNTER5 0xc05"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF1980:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2564:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1156:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1387:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF3405:
+ .string "MASK_LBU 0x707f"
+.LASF1063:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF2826:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF3756:
+ .string "MATCH_CUSTOM2_RS1 0x205b"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2891:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF3660:
+ .string "MATCH_C_ADDIW 0x2001"
+.LASF2121:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF2898:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF860:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF640:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF3227:
+ .string "MCONTROL_H (1<<5)"
+.LASF2659:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF1170:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF2568:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF2443:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2767:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF3193:
+ .string "SSTATUS_FS 0x00006000"
+.LASF1320:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF3181:
+ .string "MSTATUS_XS 0x00018000"
+.LASF1689:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF2003:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF3079:
+ .string "_GCC_PTRDIFF_T "
+.LASF3418:
+ .string "MATCH_FENCE 0xf"
+.LASF1705:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF3049:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF1649:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2509:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF3456:
+ .string "MATCH_AMOMIN_W 0x8000202f"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2542:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1083:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF829:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2280:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1527:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF387:
+ .string "__int20 +2"
+.LASF3746:
+ .string "MATCH_CUSTOM1_RS1_RS2 0x302b"
+.LASF343:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF552:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF3537:
+ .string "MASK_FMIN_S 0xfe00707f"
+.LASF1907:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF3942:
+ .string "CSR_MHPMCOUNTER4H 0xb84"
+.LASF2512:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1656:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2474:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF3438:
+ .string "MATCH_MULW 0x200003b"
+.LASF1823:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1484:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2394:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2631:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1351:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2534:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1805:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF800:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF930:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF880:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF3987:
+ .string "CAUSE_BREAKPOINT 0x3"
+.LASF2192:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2960:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF3828:
+ .string "CSR_MCOUNTEREN 0x306"
+.LASF1297:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1835:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF3351:
+ .string "MASK_SRLI 0xfc00707f"
+.LASF806:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1020:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2396:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF2605:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF3763:
+ .string "MASK_CUSTOM2_RD_RS1 0x707f"
+.LASF3260:
+ .string "MIE_MTIE MIP_MTIP"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1920:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF2328:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF2005:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1183:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2807:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF3514:
+ .string "MATCH_CSRRC 0x3073"
+.LASF1631:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2531:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1754:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2559:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF3884:
+ .string "CSR_MHPMEVENT13 0x32d"
+.LASF1639:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF3483:
+ .string "MASK_AMOMINU_D 0xf800707f"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF942:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF431:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF3538:
+ .string "MATCH_FMAX_S 0x28001053"
+.LASF3156:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2972:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2552:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF2723:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1969:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF3363:
+ .string "MASK_SLL 0xfe00707f"
+.LASF488:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF3269:
+ .string "PRV_M 3"
+.LASF3971:
+ .string "CSR_MNXTI 0x345"
+.LASF2334:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2633:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2186:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF3844:
+ .string "CSR_MHPMCOUNTER4 0xb04"
+.LASF3793:
+ .string "CSR_HPMCOUNTER12 0xc0c"
+.LASF3956:
+ .string "CSR_MHPMCOUNTER18H 0xb92"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF2022:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF3978:
+ .string "CSR_PUSHMSUBM 0x7EB"
+.LASF1095:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF962:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1085:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1338:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1788:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1133:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF3184:
+ .string "MSTATUS_MXR 0x00080000"
+.LASF2740:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF362:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1515:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF2149:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF2835:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF3737:
+ .string "MASK_CUSTOM0_RD 0x707f"
+.LASF427:
+ .string "__int_fast16_t_defined 1"
+.LASF1604:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF1080:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF2135:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1945:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF332:
+ .string "__O volatile"
+.LASF2814:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF567:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1948:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF869:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2628:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF3342:
+ .string "MATCH_SLLI 0x1013"
+.LASF970:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2470:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF539:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2662:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF3778:
+ .string "CSR_FFLAGS 0x1"
+.LASF2729:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1426:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF3300:
+ .string "PTE_D 0x080"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF3261:
+ .string "MIE_SEIE MIP_SEIP"
+.LASF363:
+ .string "__have_longlong64 1"
+.LASF852:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF895:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF3990:
+ .string "CAUSE_MISALIGNED_STORE 0x6"
+.LASF2981:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2446:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF404:
+ .string "__LEAST64 \"ll\""
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF1941:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1634:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1059:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1184:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2441:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1147:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF3573:
+ .string "MASK_FLE_D 0xfe00707f"
+.LASF2437:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2593:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF2958:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF3444:
+ .string "MATCH_REMW 0x200603b"
+.LASF2002:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF3821:
+ .string "CSR_SPTBR 0x180"
+.LASF3524:
+ .string "MATCH_FSUB_S 0x8000053"
+.LASF3064:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1496:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2934:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF1175:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1683:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2716:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1108:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF821:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF3195:
+ .string "SSTATUS_PUM 0x00040000"
+.LASF2847:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF388:
+ .string "__int20__ +2"
+.LASF3701:
+ .string "MASK_C_AND 0xfc63"
+.LASF1310:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF3301:
+ .string "PTE_SOFT 0x300"
+.LASF1898:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1914:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF859:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF3376:
+ .string "MATCH_AND 0x7033"
+.LASF1211:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1514:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2299:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1563:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF3336:
+ .string "MATCH_LUI 0x37"
+.LASF618:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF3831:
+ .string "CSR_MCAUSE 0x342"
+.LASF2248:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF1715:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF3463:
+ .string "MASK_AMOMAXU_W 0xf800707f"
+.LASF1588:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1491:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2528:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF2664:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF2336:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF605:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF1895:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF2064:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF2128:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF3472:
+ .string "MATCH_AMOXOR_D 0x2000302f"
+.LASF2166:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2409:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF2010:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF1760:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF3003:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF414:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF2154:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF540:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF3505:
+ .string "MASK_DRET 0xffffffff"
+.LASF3029:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2543:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2620:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF2556:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF3798:
+ .string "CSR_HPMCOUNTER17 0xc11"
+.LASF3925:
+ .string "CSR_HPMCOUNTER18H 0xc92"
+.LASF357:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF549:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF905:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF830:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF3360:
+ .string "MATCH_SUB 0x40000033"
+.LASF1472:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1550:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF923:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF3474:
+ .string "MATCH_AMOOR_D 0x4000302f"
+.LASF3770:
+ .string "MATCH_CUSTOM3_RS1_RS2 0x307b"
+.LASF2284:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2348:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF872:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF3892:
+ .string "CSR_MHPMEVENT21 0x335"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF2214:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2298:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF1504:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF854:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF3274:
+ .string "VM_SV39 9"
+.LASF1897:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2706:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF3017:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1415:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1208:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF533:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1675:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF3870:
+ .string "CSR_MHPMCOUNTER30 0xb1e"
+.LASF3381:
+ .string "MASK_SLLIW 0xfe00707f"
+.LASF3773:
+ .string "MASK_CUSTOM3_RD 0x707f"
+.LASF3551:
+ .string "MASK_FSGNJ_D 0xfe00707f"
+.LASF565:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1067:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1859:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF2242:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2312:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1255:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF3961:
+ .string "CSR_MHPMCOUNTER23H 0xb97"
+.LASF3384:
+ .string "MATCH_SRAIW 0x4000501b"
+.LASF1150:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2987:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1493:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF1125:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF3249:
+ .string "MIP_STIP (1 << IRQ_S_TIMER)"
+.LASF995:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2213:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1240:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF3119:
+ .string "__need_NULL"
+.LASF2786:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1531:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2713:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1668:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2653:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF2076:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2160:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF3795:
+ .string "CSR_HPMCOUNTER14 0xc0e"
+.LASF542:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2848:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2210:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2883:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF3896:
+ .string "CSR_MHPMEVENT25 0x339"
+.LASF3863:
+ .string "CSR_MHPMCOUNTER23 0xb17"
+.LASF989:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF2400:
+ .string "GD32VF103_RTC_H "
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2810:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2491:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF526:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF2198:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF3341:
+ .string "MASK_ADDI 0x707f"
+.LASF2297:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF925:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2338:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2937:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF2100:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF2279:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF665:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2361:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1441:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2240:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF2885:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1368:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2146:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF1751:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF3265:
+ .string "SIP_STIP MIP_STIP"
+.LASF2287:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF3568:
+ .string "MATCH_FLT_S 0xa0001053"
+.LASF606:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF3451:
+ .string "MASK_AMOXOR_W 0xf800707f"
+.LASF834:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF3164:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2765:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF2267:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1132:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2673:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1904:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF3402:
+ .string "MATCH_LD 0x3003"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF529:
+ .string "ADC0 ADC_BASE"
+.LASF1508:
+ .string "FMC_CTL_START BIT(6)"
+.LASF1076:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF1355:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF3510:
+ .string "MATCH_CSRRW 0x1073"
+.LASF2021:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF3745:
+ .string "MASK_CUSTOM1_RS1 0x707f"
+.LASF3503:
+ .string "MASK_MRET 0xffffffff"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2612:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF573:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF3755:
+ .string "MASK_CUSTOM2 0x707f"
+.LASF2351:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF3174:
+ .string "MSTATUS_UPIE 0x00000010"
+.LASF1887:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF416:
+ .string "_UINT64_T_DECLARED "
+.LASF504:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF3930:
+ .string "CSR_HPMCOUNTER23H 0xc97"
+.LASF3014:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF3560:
+ .string "MATCH_FCVT_S_D 0x40100053"
+.LASF2385:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF508:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1462:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF3131:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1623:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF1791:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF2171:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF966:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1797:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF3839:
+ .string "CSR_DPC 0x7b1"
+.LASF430:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1661:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF2926:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF2019:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2817:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1971:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF3595:
+ .string "MASK_FCVT_L_D 0xfff0007f"
+.LASF1959:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2865:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1578:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1123:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1953:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF2094:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1361:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF2020:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF2985:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF1535:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF1283:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF1737:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF866:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF2963:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF3371:
+ .string "MASK_SRL 0xfe00707f"
+.LASF1583:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF374:
+ .string "_SYS__INTSUP_H "
+.LASF3681:
+ .string "MASK_C_ADDI 0xe003"
+.LASF913:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2563:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF3048:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2794:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2340:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2505:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF2992:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF799:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF2129:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF3801:
+ .string "CSR_HPMCOUNTER20 0xc14"
+.LASF2462:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF3398:
+ .string "MATCH_LH 0x1003"
+.LASF3350:
+ .string "MATCH_SRLI 0x5013"
+.LASF810:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF2074:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF3340:
+ .string "MATCH_ADDI 0x13"
+.LASF1582:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF2103:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF390:
+ .string "long +4"
+.LASF1266:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1072:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF3000:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2141:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2245:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1890:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF3788:
+ .string "CSR_HPMCOUNTER7 0xc07"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF3237:
+ .string "MCONTROL_ACTION_TRACE_START 2"
+.LASF3302:
+ .string "PTE_PPN_SHIFT 10"
+.LASF2216:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF3949:
+ .string "CSR_MHPMCOUNTER11H 0xb8b"
+.LASF2935:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF3765:
+ .string "MASK_CUSTOM2_RD_RS1_RS2 0x707f"
+.LASF2033:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF590:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF446:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF2367:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF681:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2838:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2757:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF912:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2353:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2844:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF3703:
+ .string "MASK_C_SUBW 0xfc63"
+.LASF3970:
+ .string "CSR_MTVT 0x307"
+.LASF3315:
+ .string "clear_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF889:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1296:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF2226:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF2051:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1739:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2643:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF2101:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF607:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1524:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1748:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF3601:
+ .string "MASK_FCLASS_D 0xfff0707f"
+.LASF3883:
+ .string "CSR_MHPMEVENT12 0x32c"
+.LASF2504:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF3843:
+ .string "CSR_MHPMCOUNTER3 0xb03"
+.LASF3899:
+ .string "CSR_MHPMEVENT28 0x33c"
+.LASF1814:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF3424:
+ .string "MATCH_MULH 0x2001033"
+.LASF2843:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF3728:
+ .string "MATCH_C_FSWSP 0xe002"
+.LASF3001:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF394:
+ .string "__INT16 \"h\""
+.LASF2748:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2319:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF4017:
+ .string "priority"
+.LASF957:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF4004:
+ .string "__uint8_t"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2458:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF601:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1129:
+ .string "DAC1 (1U)"
+.LASF3636:
+ .string "MATCH_FNMADD_S 0x4f"
+.LASF680:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF3123:
+ .string "TIMER_MSIP 0xFFC"
+.LASF3210:
+ .string "DCSR_STEP (1<<2)"
+.LASF3117:
+ .string "NULL"
+.LASF782:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF3200:
+ .string "DCSR_FULLRESET (1<<28)"
+.LASF1340:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF3221:
+ .string "MCONTROL_SELECT (1<<19)"
+.LASF331:
+ .string "__I volatile const"
+.LASF1885:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF1003:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2841:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF936:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2260:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF1707:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF649:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3099:
+ .string "__need_size_t"
+.LASF1801:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2247:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1093:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF1334:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF2980:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF978:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1876:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF846:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1630:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1357:
+ .string "EXTI EXTI_BASE"
+.LASF2032:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF3782:
+ .string "CSR_TIME 0xc01"
+.LASF1996:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1773:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1331:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF2018:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF643:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF3753:
+ .string "MASK_CUSTOM1_RD_RS1_RS2 0x707f"
+.LASF2117:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF2246:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF688:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF514:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2314:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF689:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF3691:
+ .string "MASK_C_SRAI 0xec03"
+.LASF3531:
+ .string "MASK_FSGNJ_S 0xfe00707f"
+.LASF2333:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF773:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF1938:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2903:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF2355:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF996:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF968:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2434:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2058:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF3673:
+ .string "MASK_C_FLW 0xe003"
+.LASF1908:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF3305:
+ .string "SSTATUS_SD SSTATUS32_SD"
+.LASF1103:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1106:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2697:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1567:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF766:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF3395:
+ .string "MASK_SRAW 0xfe00707f"
+.LASF1477:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF3187:
+ .string "MSTATUS64_SD 0x8000000000000000"
+.LASF613:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF438:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1653:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF3468:
+ .string "MATCH_SC_W 0x1800202f"
+.LASF781:
+ .string "CAN0 CAN_BASE"
+.LASF400:
+ .string "__FAST64 \"ll\""
+.LASF1134:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1580:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1054:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF3191:
+ .string "SSTATUS_SPIE 0x00000020"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF3334:
+ .string "MATCH_JAL 0x6f"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1915:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF2874:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF988:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF3002:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1891:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1040:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF3729:
+ .string "MASK_C_FSWSP 0xe003"
+.LASF1989:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2761:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF2851:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF1792:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF3247:
+ .string "MIP_HSIP (1 << IRQ_H_SOFT)"
+.LASF1004:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF3891:
+ .string "CSR_MHPMEVENT20 0x334"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2362:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1839:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF959:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF2013:
+ .string "DBG DBG_BASE"
+.LASF1599:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2781:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2754:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF1384:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF977:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF3727:
+ .string "MASK_C_SWSP 0xe003"
+.LASF3564:
+ .string "MATCH_FSQRT_D 0x5a000053"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF3092:
+ .string "_SIZE_T_DEFINED "
+.LASF2773:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF437:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF1386:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF1566:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF2271:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF2014:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF2000:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2714:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2920:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1585:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF395:
+ .string "__INT32 \"l\""
+.LASF761:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1293:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF3166:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF3946:
+ .string "CSR_MHPMCOUNTER8H 0xb88"
+.LASF1555:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF3576:
+ .string "MATCH_FEQ_D 0xa2002053"
+.LASF3820:
+ .string "CSR_SIP 0x144"
+.LASF2373:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF347:
+ .string "__NEWLIB__ 4"
+.LASF3417:
+ .string "MASK_SD 0x707f"
+.LASF1646:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2717:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF3392:
+ .string "MATCH_SRLW 0x503b"
+.LASF3113:
+ .string "_GCC_WCHAR_T "
+.LASF3855:
+ .string "CSR_MHPMCOUNTER15 0xb0f"
+.LASF1267:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF3815:
+ .string "CSR_STVEC 0x105"
+.LASF1402:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF1157:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF2178:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF2075:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1743:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF351:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF3480:
+ .string "MATCH_AMOMAX_D 0xa000302f"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2712:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2764:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF2955:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF365:
+ .string "___int8_t_defined 1"
+.LASF4018:
+ .string "eclic_priority_group_set"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF3797:
+ .string "CSR_HPMCOUNTER16 0xc10"
+.LASF2977:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF1926:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF460:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2208:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF932:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2639:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF954:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2749:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF2012:
+ .string "GD32VF103_DBG_H "
+.LASF440:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2449:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1430:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF3027:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF3479:
+ .string "MASK_AMOMIN_D 0xf800707f"
+.LASF1905:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF1367:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF1832:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1097:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF3705:
+ .string "MASK_C_ADDW 0xfc63"
+.LASF1994:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF3810:
+ .string "CSR_HPMCOUNTER29 0xc1d"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2947:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF947:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF3635:
+ .string "MASK_FNMSUB_S 0x600007f"
+.LASF845:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF2690:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF2218:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF4011:
+ .string "long double"
+.LASF3078:
+ .string "___int_ptrdiff_t_h "
+.LASF1492:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1575:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2495:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF2043:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF1923:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF2571:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF3303:
+ .string "PTE_TABLE(PTE) (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)"
+.LASF2616:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF1497:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1577:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF3223:
+ .string "MCONTROL_ACTION (0x3f<<12)"
+.LASF2381:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF340:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF481:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF3068:
+ .string "N200_FUNC_H "
+.LASF3784:
+ .string "CSR_HPMCOUNTER3 0xc03"
+.LASF3769:
+ .string "MASK_CUSTOM3_RS1 0x707f"
+.LASF1687:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF788:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1620:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2875:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1703:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2614:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF3751:
+ .string "MASK_CUSTOM1_RD_RS1 0x707f"
+.LASF3095:
+ .string "___int_size_t_h "
+.LASF2142:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF3909:
+ .string "CSR_INSTRETH 0xc82"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2829:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2705:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF2435:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1557:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF3699:
+ .string "MASK_C_OR 0xfc63"
+.LASF1868:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF3410:
+ .string "MATCH_SB 0x23"
+.LASF4019:
+ .string "prigroup"
+.LASF3718:
+ .string "MATCH_C_FLWSP 0x6002"
+.LASF3366:
+ .string "MATCH_SLTU 0x3033"
+.LASF2760:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1808:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF809:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF3548:
+ .string "MATCH_FDIV_D 0x1a000053"
+.LASF1573:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF2042:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF3501:
+ .string "MASK_HRET 0xffffffff"
+.LASF874:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF3682:
+ .string "MATCH_C_JAL 0x2001"
+.LASF3684:
+ .string "MATCH_C_LI 0x4001"
+.LASF3536:
+ .string "MATCH_FMIN_S 0x28000053"
+.LASF1423:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF3198:
+ .string "DCSR_XDEBUGVER (3U<<30)"
+.LASF2557:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2359:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF3854:
+ .string "CSR_MHPMCOUNTER14 0xb0e"
+.LASF3834:
+ .string "CSR_TSELECT 0x7a0"
+.LASF3861:
+ .string "CSR_MHPMCOUNTER21 0xb15"
+.LASF3707:
+ .string "MASK_C_J 0xe003"
+.LASF3490:
+ .string "MATCH_SC_D 0x1800302f"
+.LASF2860:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2357:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF3889:
+ .string "CSR_MHPMEVENT18 0x332"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF2086:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF525:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2901:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF3407:
+ .string "MASK_LHU 0x707f"
+.LASF2206:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF661:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF3422:
+ .string "MATCH_MUL 0x2000033"
+.LASF2919:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF2689:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1944:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF602:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF3159:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2738:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF3052:
+ .string "GD32VF103_WWDGT_H "
+.LASF3934:
+ .string "CSR_HPMCOUNTER27H 0xc9b"
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF2998:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF922:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2652:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF455:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF937:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF1836:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF3283:
+ .string "IRQ_H_EXT 10"
+.LASF1590:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2577:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1749:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF3487:
+ .string "MASK_AMOSWAP_D 0xf800707f"
+.LASF1864:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF2515:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF2276:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF911:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1559:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF3814:
+ .string "CSR_SIE 0x104"
+.LASF1309:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF918:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF3172:
+ .string "MSTATUS_HIE 0x00000004"
+.LASF820:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF2108:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF3437:
+ .string "MASK_REMU 0xfe00707f"
+.LASF2062:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF490:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1352:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2230:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF596:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1949:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1952:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1955:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF3910:
+ .string "CSR_HPMCOUNTER3H 0xc83"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1553:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF338:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF3713:
+ .string "MASK_C_SLLI 0xe003"
+.LASF1712:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2283:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1536:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF3777:
+ .string "MASK_CUSTOM3_RD_RS1_RS2 0x707f"
+.LASF1102:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1242:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1505:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1951:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF3651:
+ .string "MASK_C_JR 0xf07f"
+.LASF1318:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2938:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF2156:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2769:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF629:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2668:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF1701:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF3584:
+ .string "MATCH_FCVT_LU_S 0xc0300053"
+.LASF2153:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF1724:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF3109:
+ .string "_WCHAR_T_DEFINED "
+.LASF2027:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF382:
+ .string "long"
+.LASF3129:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2815:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2202:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF1274:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2677:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF3370:
+ .string "MATCH_SRL 0x5033"
+.LASF3523:
+ .string "MASK_FADD_S 0xfe00007f"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF3044:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF356:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF3286:
+ .string "IRQ_HOST 13"
+.LASF3335:
+ .string "MASK_JAL 0x7f"
+.LASF3988:
+ .string "CAUSE_MISALIGNED_LOAD 0x4"
+.LASF1846:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1174:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2401:
+ .string "RTC RTC_BASE"
+.LASF952:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF3415:
+ .string "MASK_SW 0x707f"
+.LASF1466:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1121:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF3393:
+ .string "MASK_SRLW 0xfe00707f"
+.LASF3322:
+ .string "MATCH_BNE 0x1063"
+.LASF2113:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1539:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1544:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF1012:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2211:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF999:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF1665:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1288:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF786:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF3163:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2984:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1209:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2219:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF3202:
+ .string "DCSR_EBREAKH (1<<14)"
+.LASF1446:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1354:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF368:
+ .string "___int64_t_defined 1"
+.LASF3779:
+ .string "CSR_FRM 0x2"
+.LASF3367:
+ .string "MASK_SLTU 0xfe00707f"
+.LASF2524:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1057:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF3359:
+ .string "MASK_ADD 0xfe00707f"
+.LASF3764:
+ .string "MATCH_CUSTOM2_RD_RS1_RS2 0x705b"
+.LASF2239:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2052:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF3796:
+ .string "CSR_HPMCOUNTER15 0xc0f"
+.LASF1260:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF3364:
+ .string "MATCH_SLT 0x2033"
+.LASF456:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF3886:
+ .string "CSR_MHPMEVENT15 0x32f"
+.LASF3917:
+ .string "CSR_HPMCOUNTER10H 0xc8a"
+.LASF1360:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF1291:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1733:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF3189:
+ .string "SSTATUS_SIE 0x00000002"
+.LASF1470:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2517:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF677:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF3607:
+ .string "MASK_FCVT_S_L 0xfff0007f"
+.LASF3256:
+ .string "MIE_HSIE MIP_HSIP"
+.LASF953:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1552:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF3822:
+ .string "CSR_MSTATUS 0x300"
+.LASF2059:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2366:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2775:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF2244:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1326:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2797:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2904:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF3040:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2388:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2514:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF1678:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1244:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2511:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1673:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF3588:
+ .string "MATCH_FCLASS_S 0xe0001053"
+.LASF3824:
+ .string "CSR_MEDELEG 0x302"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF1861:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF2007:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2755:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2471:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2763:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF2109:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF1459:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1228:
+ .string "DMA0 (DMA_BASE)"
+.LASF2660:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF556:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF2253:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1910:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF448:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF1813:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF432:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1280:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF3550:
+ .string "MATCH_FSGNJ_D 0x22000053"
+.LASF3494:
+ .string "MATCH_EBREAK 0x100073"
+.LASF1064:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF408:
+ .string "__int8_t_defined 1"
+.LASF1254:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1758:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1299:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF973:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF3232:
+ .string "MCONTROL_LOAD (1<<0)"
+.LASF1347:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF1112:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF1346:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2429:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF491:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2669:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF3290:
+ .string "CONFIG_STRING_ADDR 0x0000100C"
+.LASF3575:
+ .string "MASK_FLT_D 0xfe00707f"
+.LASF3218:
+ .string "MCONTROL_TYPE(xlen) (0xfULL<<((xlen)-4))"
+.LASF2263:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF3720:
+ .string "MATCH_C_MV 0x8002"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF3659:
+ .string "MASK_C_SD 0xe003"
+.LASF1726:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF3197:
+ .string "SSTATUS64_SD 0x8000000000000000"
+.LASF352:
+ .string "__ATFILE_VISIBLE 0"
+.LASF3546:
+ .string "MATCH_FMUL_D 0x12000053"
+.LASF3714:
+ .string "MATCH_C_FLDSP 0x2002"
+.LASF2197:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2496:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF668:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1328:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1928:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF3760:
+ .string "MATCH_CUSTOM2_RD 0x405b"
+.LASF1695:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF812:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF892:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF3974:
+ .string "CSR_MTVT2 0x7EC"
+.LASF851:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF3285:
+ .string "IRQ_COP 12"
+.LASF1853:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF3809:
+ .string "CSR_HPMCOUNTER28 0xc1c"
+.LASF507:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1140:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1692:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF3708:
+ .string "MATCH_C_BEQZ 0xc001"
+.LASF2861:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF979:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF574:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2876:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF3217:
+ .string "DCSR_CAUSE_HALT 5"
+.LASF1094:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1261:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF950:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF3307:
+ .string "RISCV_PGSHIFT 12"
+.LASF1128:
+ .string "DAC0 (0U)"
+.LASF969:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2408:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF2200:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1556:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1647:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF3803:
+ .string "CSR_HPMCOUNTER22 0xc16"
+.LASF3857:
+ .string "CSR_MHPMCOUNTER17 0xb11"
+.LASF3947:
+ .string "CSR_MHPMCOUNTER9H 0xb89"
+.LASF3235:
+ .string "MCONTROL_ACTION_DEBUG_EXCEPTION 0"
+.LASF486:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF617:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF3299:
+ .string "PTE_A 0x040"
+.LASF1659:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF3194:
+ .string "SSTATUS_XS 0x00018000"
+.LASF2155:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF3046:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2902:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1570:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF3214:
+ .string "DCSR_CAUSE_HWBP 2"
+.LASF2959:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF768:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF2031:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF789:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1173:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2666:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF570:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF3750:
+ .string "MATCH_CUSTOM1_RD_RS1 0x602b"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2944:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF2487:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2053:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2816:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF2274:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF2966:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1569:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF3572:
+ .string "MATCH_FLE_D 0xa2000053"
+.LASF2683:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF3493:
+ .string "MASK_ECALL 0xffffffff"
+.LASF3296:
+ .string "PTE_X 0x008"
+.LASF2459:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF3927:
+ .string "CSR_HPMCOUNTER20H 0xc94"
+.LASF1337:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2403:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1113:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2415:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1591:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2311:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF2724:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1490:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF330:
+ .string "GD32VF103_H "
+.LASF563:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF497:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2853:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1098:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2024:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF3622:
+ .string "MATCH_FLW 0x2007"
+.LASF2183:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2905:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2607:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2427:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1880:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF774:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF3858:
+ .string "CSR_MHPMCOUNTER18 0xb12"
+.LASF3620:
+ .string "MATCH_FMV_D_X 0xf2000053"
+.LASF1081:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3888:
+ .string "CSR_MHPMEVENT17 0x331"
+.LASF3050:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF843:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF772:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2072:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF779:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF960:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1783:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF2735:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF3610:
+ .string "MATCH_FMV_S_X 0xf0000053"
+.LASF1047:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1290:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF360:
+ .string "__XSI_VISIBLE 0"
+.LASF3019:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF2532:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1826:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2430:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2209:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2412:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1551:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF3291:
+ .string "EXT_IO_BASE 0x40000000"
+.LASF1060:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF616:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF2104:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF566:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF2168:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2954:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF4012:
+ .string "eclic_send_event"
+.LASF2558:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2347:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1082:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF593:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2600:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF2236:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF3038:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF3476:
+ .string "MATCH_AMOAND_D 0x6000302f"
+.LASF833:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF371:
+ .string "___int_least32_t_defined 1"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF3518:
+ .string "MATCH_CSRRSI 0x6073"
+.LASF1529:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF2169:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2519:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1406:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF557:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1518:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1201:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF3132:
+ .string "N200_ECLIC_H "
+.LASF2636:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2819:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1804:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF2483:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF3907:
+ .string "CSR_CYCLEH 0xc80"
+.LASF3586:
+ .string "MATCH_FMV_X_S 0xe0000053"
+.LASF3443:
+ .string "MASK_DIVUW 0xfe00707f"
+.LASF2968:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF3878:
+ .string "CSR_MHPMEVENT7 0x327"
+.LASF1621:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF583:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF3347:
+ .string "MASK_SLTIU 0x707f"
+.LASF450:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1650:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF3331:
+ .string "MASK_BGEU 0x707f"
+.LASF2733:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF3154:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF3273:
+ .string "VM_SV32 8"
+.LASF3219:
+ .string "MCONTROL_DMODE(xlen) (1ULL<<((xlen)-5))"
+.LASF2957:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF3042:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1528:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF1050:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF3712:
+ .string "MATCH_C_SLLI 0x2"
+.LASF383:
+ .string "signed +0"
+.LASF1322:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF1822:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF685:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2808:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF1142:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF3520:
+ .string "MATCH_CSRRCI 0x7073"
+.LASF1163:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF1741:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF3936:
+ .string "CSR_HPMCOUNTER29H 0xc9d"
+.LASF3562:
+ .string "MATCH_FCVT_D_S 0x42000053"
+.LASF424:
+ .string "__int_least32_t_defined 1"
+.LASF3519:
+ .string "MASK_CSRRSI 0x707f"
+.LASF1249:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1245:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF412:
+ .string "_INT32_T_DECLARED "
+.LASF1532:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF3549:
+ .string "MASK_FDIV_D 0xfe00007f"
+.LASF2676:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF411:
+ .string "__int16_t_defined 1"
+.LASF2909:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF652:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF1185:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF3653:
+ .string "MASK_C_JALR 0xf07f"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF2309:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2618:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF3827:
+ .string "CSR_MTVEC 0x305"
+.LASF1041:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF1475:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF522:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF3439:
+ .string "MASK_MULW 0xfe00707f"
+.LASF1109:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF3957:
+ .string "CSR_MHPMCOUNTER19H 0xb93"
+.LASF1044:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF2195:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF3462:
+ .string "MATCH_AMOMAXU_W 0xe000202f"
+.LASF2176:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF2994:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF3914:
+ .string "CSR_HPMCOUNTER7H 0xc87"
+.LASF934:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF3025:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF3959:
+ .string "CSR_MHPMCOUNTER21H 0xb95"
+.LASF3558:
+ .string "MATCH_FMAX_D 0x2a001053"
+.LASF3913:
+ .string "CSR_HPMCOUNTER6H 0xc86"
+.LASF3362:
+ .string "MATCH_SLL 0x1033"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2684:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF797:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2452:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1982:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF3186:
+ .string "MSTATUS32_SD 0x80000000"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF2255:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF3668:
+ .string "MATCH_C_FLD 0x2000"
+.LASF2426:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF1921:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2849:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF3579:
+ .string "MASK_FCVT_W_S 0xfff0007f"
+.LASF558:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2789:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2516:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF2264:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF398:
+ .string "__FAST16 "
+.LASF3073:
+ .string "_T_PTRDIFF_ "
+.LASF1077:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF805:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF2974:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1364:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF2060:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF3380:
+ .string "MATCH_SLLIW 0x101b"
+.LASF1753:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF2591:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1203:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF3387:
+ .string "MASK_ADDW 0xfe00707f"
+.LASF500:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF3580:
+ .string "MATCH_FCVT_WU_S 0xc0100053"
+.LASF1110:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF2063:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2384:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3125:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2433:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF949:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF534:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF757:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF2590:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF825:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1902:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF1526:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1958:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF3993:
+ .string "CAUSE_SUPERVISOR_ECALL 0x9"
+.LASF1495:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF1427:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF863:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF3989:
+ .string "CAUSE_FAULT_LOAD 0x5"
+.LASF2539:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF3589:
+ .string "MASK_FCLASS_S 0xfff0707f"
+.LASF3420:
+ .string "MATCH_FENCE_I 0x100f"
+.LASF1628:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2331:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF3090:
+ .string "_BSD_SIZE_T_ "
+.LASF2461:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF472:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF2068:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF2438:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF3860:
+ .string "CSR_MHPMCOUNTER20 0xb14"
+.LASF2316:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1939:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF2617:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF429:
+ .string "__int_fast64_t_defined 1"
+.LASF1931:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF938:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF3388:
+ .string "MATCH_SUBW 0x4000003b"
+.LASF1684:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF3072:
+ .string "_PTRDIFF_T "
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF3112:
+ .string "__INT_WCHAR_T_H "
+.LASF2888:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2739:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF577:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF1502:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1287:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2432:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2859:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2329:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF2028:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1329:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF3316:
+ .string "rdtime() read_csr(time)"
+.LASF422:
+ .string "__int_least8_t_defined 1"
+.LASF951:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF3807:
+ .string "CSR_HPMCOUNTER26 0xc1a"
+.LASF1716:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF2661:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF3236:
+ .string "MCONTROL_ACTION_DEBUG_MODE 1"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1005:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF3594:
+ .string "MATCH_FCVT_L_D 0xc2200053"
+.LASF2193:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF3254:
+ .string "MIP_MEIP (1 << IRQ_M_EXT)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF418:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2986:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2489:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF3288:
+ .string "DEFAULT_NMIVEC 0x00001004"
+.LASF2526:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF3201:
+ .string "DCSR_EBREAKM (1<<15)"
+.LASF3365:
+ .string "MASK_SLT 0xfe00707f"
+.LASF955:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1395:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF406:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF3794:
+ .string "CSR_HPMCOUNTER13 0xc0d"
+.LASF1137:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2638:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF1565:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF3271:
+ .string "VM_MBB 1"
+.LASF2771:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2611:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF1655:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF644:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1073:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF883:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF3851:
+ .string "CSR_MHPMCOUNTER11 0xb0b"
+.LASF1239:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF3962:
+ .string "CSR_MHPMCOUNTER24H 0xb98"
+.LASF1979:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF945:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2584:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1359:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1091:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF3373:
+ .string "MASK_SRA 0xfe00707f"
+.LASF2134:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1688:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1871:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF3282:
+ .string "IRQ_S_EXT 9"
+.LASF2265:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1159:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF3457:
+ .string "MASK_AMOMIN_W 0xf800707f"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF764:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF1500:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF1613:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2918:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2969:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1987:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2792:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF419:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1479:
+ .string "FMC FMC_BASE"
+.LASF3654:
+ .string "MATCH_C_EBREAK 0x9002"
+.LASF3922:
+ .string "CSR_HPMCOUNTER15H 0xc8f"
+.LASF2780:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1677:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF750:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1934:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF3578:
+ .string "MATCH_FCVT_W_S 0xc0000053"
+.LASF1917:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF903:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF3295:
+ .string "PTE_W 0x004"
+.LASF3666:
+ .string "MATCH_C_ADDI4SPN 0x0"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1205:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2644:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF3354:
+ .string "MATCH_ORI 0x6013"
+.LASF2301:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2136:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2648:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1669:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF3706:
+ .string "MATCH_C_J 0xa001"
+.LASF998:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1947:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1709:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF3011:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF3875:
+ .string "CSR_MHPMEVENT4 0x324"
+.LASF3434:
+ .string "MATCH_REM 0x2006033"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF3675:
+ .string "MASK_C_FSD 0xe003"
+.LASF868:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2700:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF664:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1345:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2323:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF3849:
+ .string "CSR_MHPMCOUNTER9 0xb09"
+.LASF3621:
+ .string "MASK_FMV_D_X 0xfff0707f"
+.LASF3887:
+ .string "CSR_MHPMEVENT16 0x330"
+.LASF1972:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF2048:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2397:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF3767:
+ .string "MASK_CUSTOM3 0x707f"
+.LASF3646:
+ .string "MATCH_C_NOP 0x1"
+.LASF2699:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1761:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1768:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF3879:
+ .string "CSR_MHPMEVENT8 0x328"
+.LASF3931:
+ .string "CSR_HPMCOUNTER24H 0xc98"
+.LASF2800:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF3859:
+ .string "CSR_MHPMCOUNTER19 0xb13"
+.LASF1796:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF3080:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF436:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF965:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF1463:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2772:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF3790:
+ .string "CSR_HPMCOUNTER9 0xc09"
+.LASF3361:
+ .string "MASK_SUB 0xfe00707f"
+.LASF1207:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2802:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2950:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1554:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF3615:
+ .string "MASK_FCVT_D_WU 0xfff0007f"
+.LASF858:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2825:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF4002:
+ .string "short unsigned int"
+.LASF742:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF3711:
+ .string "MASK_C_BNEZ 0xe003"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF901:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1637:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1146:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2587:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2785:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF3470:
+ .string "MATCH_AMOADD_D 0x302f"
+.LASF3122:
+ .string "N200_TIMER_H "
+.LASF1145:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF576:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF3124:
+ .string "TIMER_MSIP_size 0x4"
+.LASF2044:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF3067:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF3239:
+ .string "MCONTROL_ACTION_TRACE_EMIT 4"
+.LASF2912:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF3440:
+ .string "MATCH_DIVW 0x200403b"
+.LASF1856:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF2742:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF3353:
+ .string "MASK_SRAI 0xfc00707f"
+.LASF1321:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1540:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF897:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1857:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1662:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2182:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF3498:
+ .string "MATCH_SRET 0x10200073"
+.LASF3780:
+ .string "CSR_FCSR 0x3"
+.LASF1730:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF718:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1275:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2485:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF2604:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1894:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF399:
+ .string "__FAST32 "
+.LASF1251:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF730:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF1699:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF4024:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF3203:
+ .string "DCSR_EBREAKS (1<<13)"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF3813:
+ .string "CSR_SSTATUS 0x100"
+.LASF468:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2623:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF3004:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF4016:
+ .string "level"
+.LASF775:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF824:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF3721:
+ .string "MASK_C_MV 0xf003"
+.LASF3950:
+ .string "CSR_MHPMCOUNTER12H 0xb8c"
+.LASF2993:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2420:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1745:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1069:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF3452:
+ .string "MATCH_AMOOR_W 0x4000202f"
+.LASF1879:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF578:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2852:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1052:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF3485:
+ .string "MASK_AMOMAXU_D 0xf800707f"
+.LASF2562:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2840:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2615:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF376:
+ .string "signed"
+.LASF3747:
+ .string "MASK_CUSTOM1_RS1_RS2 0x707f"
+.LASF975:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF2730:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2501:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF553:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF354:
+ .string "__GNU_VISIBLE 0"
+.LASF2884:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2372:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1632:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1537:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2627:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1252:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF2172:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1273:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2179:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF3455:
+ .string "MASK_AMOAND_W 0xf800707f"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1181:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1612:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2343:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF2199:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF3275:
+ .string "VM_SV48 10"
+.LASF2782:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF2839:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF3509:
+ .string "MASK_WFI 0xffffffff"
+.LASF3644:
+ .string "MATCH_FNMADD_D 0x200004f"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF3585:
+ .string "MASK_FCVT_LU_S 0xfff0007f"
+.LASF3216:
+ .string "DCSR_CAUSE_STEP 4"
+.LASF1358:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF676:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF402:
+ .string "__LEAST16 \"h\""
+.LASF1534:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF3986:
+ .string "CAUSE_ILLEGAL_INSTRUCTION 0x2"
+.LASF3965:
+ .string "CSR_MHPMCOUNTER27H 0xb9b"
+.LASF1442:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF3938:
+ .string "CSR_HPMCOUNTER31H 0xc9f"
+.LASF2872:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF2670:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2147:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF3657:
+ .string "MASK_C_LD 0xe003"
+.LASF1248:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF3016:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF1984:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1198:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF1618:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF3152:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF2238:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF3742:
+ .string "MATCH_CUSTOM1 0x2b"
+.LASF1319:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF3023:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF3047:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2956:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2613:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1781:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF4026:
+ .string "eclic_global_interrupt_enable"
+.LASF476:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2173:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2163:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF1348:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF3919:
+ .string "CSR_HPMCOUNTER12H 0xc8c"
+.LASF924:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF2025:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF3741:
+ .string "MASK_CUSTOM0_RD_RS1_RS2 0x707f"
+.LASF850:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF1545:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF1513:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1818:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF550:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1671:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2592:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2286:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF3833:
+ .string "CSR_MIP 0x344"
+.LASF1888:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2746:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1313:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2965:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2741:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF580:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF2886:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF3866:
+ .string "CSR_MHPMCOUNTER26 0xb1a"
+.LASF3972:
+ .string "CSR_MCOUNTINHIBIT 0x320"
+.LASF888:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2464:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF3209:
+ .string "DCSR_HALT (1<<3)"
+.LASF1124:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF3629:
+ .string "MASK_FSD 0x707f"
+.LASF3672:
+ .string "MATCH_C_FLW 0x6000"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF819:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF3489:
+ .string "MASK_LR_D 0xf9f0707f"
+.LASF1342:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF4008:
+ .string "long long unsigned int"
+.LASF2038:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF2258:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2609:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF987:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1314:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF857:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF3872:
+ .string "CSR_MUCOUNTEREN 0x320"
+.LASF1120:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF3543:
+ .string "MASK_FADD_D 0xfe00007f"
+.LASF474:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF2069:
+ .string "GD32VF103_RCU_H "
+.LASF785:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF2269:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1512:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1281:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF3850:
+ .string "CSR_MHPMCOUNTER10 0xb0a"
+.LASF900:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF3473:
+ .string "MASK_AMOXOR_D 0xf800707f"
+.LASF1533:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1964:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2928:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF3292:
+ .string "DRAM_BASE 0x80000000"
+.LASF3704:
+ .string "MATCH_C_ADDW 0x9c21"
+.LASF941:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF3647:
+ .string "MASK_C_NOP 0xffff"
+.LASF725:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3611:
+ .string "MASK_FMV_S_X 0xfff0707f"
+.LASF4000:
+ .string "unsigned char"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF3022:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2656:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2508:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF3840:
+ .string "CSR_DSCRATCH 0x7b2"
+.LASF3279:
+ .string "IRQ_S_TIMER 5"
+.LASF1089:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF2743:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF2831:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF3876:
+ .string "CSR_MHPMEVENT5 0x325"
+.LASF787:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF1966:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF2089:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1693:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1641:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2708:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1654:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1946:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2753:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2915:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF3867:
+ .string "CSR_MHPMCOUNTER27 0xb1b"
+.LASF2573:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2289:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF1925:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF1690:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF3375:
+ .string "MASK_OR 0xfe00707f"
+.LASF2858:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF1706:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF3823:
+ .string "CSR_MISA 0x301"
+.LASF2119:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF1729:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF1810:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF464:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2703:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF3901:
+ .string "CSR_MHPMEVENT30 0x33e"
+.LASF1992:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF3389:
+ .string "MASK_SUBW 0xfe00707f"
+.LASF3736:
+ .string "MATCH_CUSTOM0_RD 0x400b"
+.LASF2580:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF3554:
+ .string "MATCH_FSGNJX_D 0x22002053"
+.LASF2687:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1975:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1027:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2537:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2463:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF2897:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF3631:
+ .string "MASK_FMADD_S 0x600007f"
+.LASF528:
+ .string "GD32VF103_ADC_H "
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF842:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF348:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1285:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2326:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1385:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF579:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF403:
+ .string "__LEAST32 \"l\""
+.LASF582:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1501:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF1362:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1503:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2756:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF3445:
+ .string "MASK_REMW 0xfe00707f"
+.LASF2585:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF3293:
+ .string "PTE_V 0x001"
+.LASF1403:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1039:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2507:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF597:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2726:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1636:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF1962:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF3596:
+ .string "MATCH_FCVT_LU_D 0xc2300053"
+.LASF894:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF3436:
+ .string "MATCH_REMU 0x2007033"
+.LASF1343:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF2220:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF3120:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF2688:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF3127:
+ .string "TIMER_MTIME 0x0"
+.LASF3694:
+ .string "MATCH_C_SUB 0x8c01"
+.LASF1601:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF487:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF972:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2867:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1295:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF3690:
+ .string "MATCH_C_SRAI 0x8401"
+.LASF832:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF656:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF3966:
+ .string "CSR_MHPMCOUNTER28H 0xb9c"
+.LASF521:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1119:
+ .string "CRC CRC_BASE"
+.LASF1388:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF849:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF886:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF2967:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF1633:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF3394:
+ .string "MATCH_SRAW 0x4000503b"
+.LASF560:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF3427:
+ .string "MASK_MULHSU 0xfe00707f"
+.LASF3242:
+ .string "MCONTROL_MATCH_GE 2"
+.LASF876:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF915:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF3088:
+ .string "__SIZE_T "
+.LASF3759:
+ .string "MASK_CUSTOM2_RS1_RS2 0x707f"
+.LASF3837:
+ .string "CSR_TDATA3 0x7a3"
+.LASF2480:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF1867:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF2310:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF349:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF3148:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1735:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1833:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF345:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1339:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1614:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF3414:
+ .string "MATCH_SW 0x2023"
+.LASF1101:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1829:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF494:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2665:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF2093:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2589:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2951:
+ .string "USART_STAT_TC BIT(6)"
+.LASF3643:
+ .string "MASK_FNMSUB_D 0x600007f"
+.LASF1481:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2734:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF3045:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF2566:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF3656:
+ .string "MATCH_C_LD 0x6000"
+.LASF1830:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1136:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF2293:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF4014:
+ .string "eclic_irq_enable"
+.LASF2645:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2472:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2927:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF909:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF499:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1541:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF1609:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF2250:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF864:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF2973:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF3396:
+ .string "MATCH_LB 0x3"
+.LASF2067:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF2099:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF816:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2630:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF620:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF3188:
+ .string "SSTATUS_UIE 0x00000001"
+.LASF2365:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF1911:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF2498:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1825:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF2878:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1956:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF1807:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2187:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF967:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF732:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF935:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF2092:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF3432:
+ .string "MATCH_DIVU 0x2005033"
+.LASF1336:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF1940:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1270:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2784:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF519:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2899:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF3171:
+ .string "MSTATUS_SIE 0x00000002"
+.LASF1522:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2857:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF738:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2640:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF3816:
+ .string "CSR_SSCRATCH 0x140"
+.LASF3817:
+ .string "CSR_SEPC 0x141"
+.LASF2227:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF3403:
+ .string "MASK_LD 0x707f"
+.LASF2320:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF3144:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF3677:
+ .string "MASK_C_SW 0xe003"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2788:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF342:
+ .string "_STDINT_H "
+.LASF1424:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF420:
+ .string "_INTPTR_T_DECLARED "
+.LASF1126:
+ .string "GD32VF103_DAC_H "
+.LASF2837:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1878:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1025:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF2105:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF3733:
+ .string "MASK_CUSTOM0_RS1 0x707f"
+.LASF355:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF2376:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF3639:
+ .string "MASK_FMADD_D 0x600007f"
+.LASF2642:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF3313:
+ .string "swap_csr(reg,val) ({ unsigned long __tmp; if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(val)); else asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(val)); __tmp; })"
+.LASF3555:
+ .string "MASK_FSGNJX_D 0xfe00707f"
+.LASF3176:
+ .string "MSTATUS_HPIE 0x00000040"
+.LASF2795:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF2368:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF3020:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2774:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1473:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1214:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF2181:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2962:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF2410:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF1168:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF963:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF3486:
+ .string "MATCH_AMOSWAP_D 0x800302f"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF3034:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF3151:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF3526:
+ .string "MATCH_FMUL_S 0x10000053"
+.LASF1976:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2513:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF3906:
+ .string "CSR_MHARTID 0xf14"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2371:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF726:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF1872:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF731:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1009:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2809:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF3954:
+ .string "CSR_MHPMCOUNTER16H 0xb90"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1986:
+ .string "FWDGT FWDGT_BASE"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3345:
+ .string "MASK_SLTI 0x707f"
+.LASF4005:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1676:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1927:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF3053:
+ .string "WWDGT WWDGT_BASE"
+.LASF3911:
+ .string "CSR_HPMCOUNTER4H 0xc84"
+.LASF2995:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2315:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF475:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF931:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1271:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2413:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2896:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF3192:
+ .string "SSTATUS_SPP 0x00000100"
+.LASF2332:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF3277:
+ .string "IRQ_H_SOFT 2"
+.LASF3783:
+ .string "CSR_INSTRET 0xc02"
+.LASF2139:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF3698:
+ .string "MATCH_C_OR 0x8c41"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF1842:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF877:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF3768:
+ .string "MATCH_CUSTOM3_RS1 0x207b"
+.LASF804:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2161:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF3929:
+ .string "CSR_HPMCOUNTER22H 0xc96"
+.LASF2917:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF3516:
+ .string "MATCH_CSRRWI 0x5073"
+.LASF3511:
+ .string "MASK_CSRRW 0x707f"
+.LASF794:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF483:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1640:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF3734:
+ .string "MATCH_CUSTOM0_RS1_RS2 0x300b"
+.LASF3386:
+ .string "MATCH_ADDW 0x3b"
+.LASF1865:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF2081:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF929:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1598:
+ .string "AFIO AFIO_BASE"
+.LASF3842:
+ .string "CSR_MINSTRET 0xb02"
+.LASF1349:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF844:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1713:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2624:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF3110:
+ .string "_WCHAR_T_H "
+.LASF2026:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF3471:
+ .string "MASK_AMOADD_D 0xf800707f"
+.LASF3841:
+ .string "CSR_MCYCLE 0xb00"
+.LASF2913:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF2881:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF545:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2456:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF964:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF585:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF3606:
+ .string "MATCH_FCVT_S_L 0xd0200053"
+.LASF3507:
+ .string "MASK_SFENCE_VM 0xfff07fff"
+.LASF3491:
+ .string "MASK_SC_D 0xf800707f"
+.LASF2212:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF3222:
+ .string "MCONTROL_TIMING (1<<18)"
+.LASF3058:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF3012:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF3087:
+ .string "_T_SIZE "
+.LASF482:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF780:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1963:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1765:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2522:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF1900:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF509:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF647:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF1777:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF1153:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF3735:
+ .string "MASK_CUSTOM0_RS1_RS2 0x707f"
+.LASF1304:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF765:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF3126:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF2916:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2621:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF496:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF2948:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF826:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF2011:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2402:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF3553:
+ .string "MASK_FSGNJN_D 0xfe00707f"
+.LASF462:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1584:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF2377:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF1990:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF672:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF1666:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2710:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF811:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1130:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1231:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2736:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2828:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2931:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF2674:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF1488:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF2040:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF3346:
+ .string "MATCH_SLTIU 0x3013"
+.LASF865:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF3329:
+ .string "MASK_BLTU 0x707f"
+.LASF3100:
+ .string "__wchar_t__ "
+.LASF2308:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF3976:
+ .string "CSR_PUSHMCAUSE 0x7EE"
+.LASF3923:
+ .string "CSR_HPMCOUNTER16H 0xc90"
+.LASF2392:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2821:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF3582:
+ .string "MATCH_FCVT_L_S 0xc0200053"
+.LASF1510:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF891:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF3252:
+ .string "MIP_SEIP (1 << IRQ_S_EXT)"
+.LASF3276:
+ .string "IRQ_S_SOFT 1"
+.LASF1393:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF1670:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF910:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF3074:
+ .string "_T_PTRDIFF "
+.LASF1854:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF645:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF503:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF535:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF3715:
+ .string "MASK_C_FLDSP 0xe003"
+.LASF3529:
+ .string "MASK_FDIV_S 0xfe00007f"
+.LASF2054:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF3605:
+ .string "MASK_FCVT_S_WU 0xfff0007f"
+.LASF1734:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF3094:
+ .string "_SIZE_T_DECLARED "
+.LASF2468:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF608:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF763:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2342:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF3592:
+ .string "MATCH_FCVT_WU_D 0xc2100053"
+.LASF3082:
+ .string "__size_t__ "
+.LASF2582:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF604:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2830:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF3692:
+ .string "MATCH_C_ANDI 0x8801"
+.LASF2346:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF3416:
+ .string "MATCH_SD 0x3023"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF3183:
+ .string "MSTATUS_PUM 0x00040000"
+.LASF3663:
+ .string "MASK_C_LDSP 0xe003"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF691:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF3885:
+ .string "CSR_MHPMEVENT14 0x32e"
+.LASF2942:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF1282:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF3413:
+ .string "MASK_SH 0x707f"
+.LASF1238:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF1965:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF506:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF943:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1812:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2834:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1445:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF3383:
+ .string "MASK_SRLIW 0xfe00707f"
+.LASF466:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1460:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF3136:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1061:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF3428:
+ .string "MATCH_MULHU 0x2003033"
+.LASF3378:
+ .string "MATCH_ADDIW 0x1b"
+.LASF1624:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF3819:
+ .string "CSR_SBADADDR 0x143"
+.LASF2017:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1899:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF2194:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF667:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF916:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF3871:
+ .string "CSR_MHPMCOUNTER31 0xb1f"
+.LASF790:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1985:
+ .string "GD32VF103_FWDGT_H "
+.LASF1148:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF426:
+ .string "__int_fast8_t_defined 1"
+.LASF621:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2895:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF2077:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2803:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1284:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1605:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2581:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1026:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF3071:
+ .string "_ANSI_STDDEF_H "
+.LASF1740:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF3743:
+ .string "MASK_CUSTOM1 0x707f"
+.LASF3297:
+ .string "PTE_U 0x010"
+.LASF441:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF3102:
+ .string "_WCHAR_T "
+.LASF2417:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF839:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF3141:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF1852:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF2095:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1727:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2548:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1576:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF492:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF3168:
+ .string "__SEV eclic_send_event"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1135:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF838:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2964:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1021:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF3731:
+ .string "MASK_CUSTOM0 0x707f"
+.LASF1873:
+ .string "GD32VF103_I2C_H "
+.LASF2414:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2836:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF3924:
+ .string "CSR_HPMCOUNTER17H 0xc91"
+.LASF1344:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2378:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1720:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF3632:
+ .string "MATCH_FMSUB_S 0x47"
+.LASF1799:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF3935:
+ .string "CSR_HPMCOUNTER28H 0xc9c"
+.LASF3836:
+ .string "CSR_TDATA2 0x7a2"
+.LASF3598:
+ .string "MATCH_FMV_X_D 0xe2000053"
+.LASF2390:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2306:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF2132:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF3533:
+ .string "MASK_FSGNJN_S 0xfe00707f"
+.LASF485:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF1644:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2523:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF3637:
+ .string "MASK_FNMADD_S 0x600007f"
+.LASF711:
+ .string "GD32VF103_BKP_H "
+.LASF2252:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2473:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF3257:
+ .string "MIE_MSIE MIP_MSIP"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF3856:
+ .string "CSR_MHPMCOUNTER16 0xb10"
+.LASF1680:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF2102:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF3091:
+ .string "_SIZE_T_DEFINED_ "
+.LASF737:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1723:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF2157:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF3185:
+ .string "MSTATUS_VM 0x1F000000"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2603:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2335:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF3355:
+ .string "MASK_ORI 0x707f"
+.LASF1250:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2651:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF3251:
+ .string "MIP_MTIP (1 << IRQ_M_TIMER)"
+.LASF353:
+ .string "__BSD_VISIBLE 0"
+.LASF741:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2971:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF3013:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2275:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF653:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF3229:
+ .string "MCONTROL_U (1<<3)"
+.LASF2982:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF4015:
+ .string "source"
+.LASF3051:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF3508:
+ .string "MATCH_WFI 0x10500073"
+.LASF1180:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1697:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF2832:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF3670:
+ .string "MATCH_C_LW 0x4000"
+.LASF3898:
+ .string "CSR_MHPMEVENT27 0x33b"
+.LASF3882:
+ .string "CSR_MHPMEVENT11 0x32b"
+.LASF2383:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2598:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF4013:
+ .string "eclic_irq_disable"
+.LASF2222:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF396:
+ .string "__INT64 \"ll\""
+.LASF1973:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF3142:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF1127:
+ .string "DAC DAC_BASE"
+.LASF1467:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF3838:
+ .string "CSR_DCSR 0x7b0"
+.LASF976:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF407:
+ .string "_UINT8_T_DECLARED "
+.LASF994:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2486:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1078:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1264:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2565:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF2029:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2502:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1543:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2201:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF3343:
+ .string "MASK_SLLI 0xfc00707f"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF3477:
+ .string "MASK_AMOAND_D 0xf800707f"
+.LASF729:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF660:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2718:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF719:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1015:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF584:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF1929:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2805:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF3697:
+ .string "MASK_C_XOR 0xfc63"
+.LASF3390:
+ .string "MATCH_SLLW 0x103b"
+.LASF803:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF447:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1307:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1006:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1991:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF3245:
+ .string "MCONTROL_MATCH_MASK_HIGH 5"
+.LASF610:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF740:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2873:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1983:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF991:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1579:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF559:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF561:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1010:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF728:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF3190:
+ .string "SSTATUS_UPIE 0x00000010"
+.LASF555:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2439:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF746:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF3766:
+ .string "MATCH_CUSTOM3 0x7b"
+.LASF3754:
+ .string "MATCH_CUSTOM2 0x5b"
+.LASF818:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2143:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF3150:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF335:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF1851:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF2423:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF599:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1909:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF469:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF391:
+ .string "_INTPTR_EQ_INT "
+.LASF2732:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2337:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF2131:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF898:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF3869:
+ .string "CSR_MHPMCOUNTER29 0xb1d"
+.LASF1592:
+ .string "GD32VF103_GPIO_H "
+.LASF3266:
+ .string "PRV_U 0"
+.LASF1389:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1821:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF3108:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2325:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF3908:
+ .string "CSR_TIMEH 0xc81"
+.LASF1803:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF1999:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF692:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF1407:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF2189:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF3399:
+ .string "MASK_LH 0x707f"
+.LASF3204:
+ .string "DCSR_EBREAKU (1<<12)"
+.LASF3121:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF2779:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF2991:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF2806:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF380:
+ .string "__int20"
+.LASF2892:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2056:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF734:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF739:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1756:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2389:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF798:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1325:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2184:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF3284:
+ .string "IRQ_M_EXT 11"
+.LASF3010:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF3772:
+ .string "MATCH_CUSTOM3_RD 0x407b"
+.LASF1086:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1651:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF2061:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1253:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2457:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF591:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2711:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF2015:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF1139:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF1837:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2695:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF3008:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF523:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF3449:
+ .string "MASK_AMOADD_W 0xf800707f"
+.LASF2482:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF3007:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF2440:
+ .string "GD32VF103_SPI_H "
+.LASF333:
+ .string "__IO volatile"
+.LASF3377:
+ .string "MASK_AND 0xfe00707f"
+.LASF2118:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF3431:
+ .string "MASK_DIV 0xfe00707f"
+.LASF1118:
+ .string "GD32VF103_CRC_H "
+.LASF752:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1574:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1279:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF3459:
+ .string "MASK_AMOMAX_W 0xf800707f"
+.LASF3009:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2574:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1298:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1919:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF3915:
+ .string "CSR_HPMCOUNTER8H 0xc88"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF3272:
+ .string "VM_MBBID 2"
+.LASF1568:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF3400:
+ .string "MATCH_LW 0x2003"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF3115:
+ .string "_BSD_WCHAR_T_"
+.LASF3528:
+ .string "MATCH_FDIV_S 0x18000053"
+.LASF3448:
+ .string "MATCH_AMOADD_W 0x202f"
+.LASF3107:
+ .string "_BSD_WCHAR_T_ "
+.LASF2088:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF1802:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF2180:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1210:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF3805:
+ .string "CSR_HPMCOUNTER24 0xc18"
+.LASF3083:
+ .string "__SIZE_T__ "
+.LASF3738:
+ .string "MATCH_CUSTOM0_RD_RS1 0x600b"
+.LASF1977:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF1993:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1860:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2203:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF3419:
+ .string "MASK_FENCE 0x707f"
+.LASF2152:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF3433:
+ .string "MASK_DIVU 0xfe00707f"
+.LASF2339:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2177:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1794:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2478:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1327:
+ .string "EXMC (EXMC_BASE)"
+.LASF1051:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF385:
+ .string "char +0"
+.LASF3991:
+ .string "CAUSE_FAULT_STORE 0x7"
+.LASF1704:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF3162:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF3454:
+ .string "MATCH_AMOAND_W 0x6000202f"
+.LASF1008:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF3521:
+ .string "MASK_CSRRCI 0x707f"
+.LASF445:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF2650:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF751:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF513:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF2066:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2354:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2466:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF3749:
+ .string "MASK_CUSTOM1_RD 0x707f"
+.LASF3057:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1405:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF2224:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1793:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1778:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF2854:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF2550:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF568:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF3752:
+ .string "MATCH_CUSTOM1_RD_RS1_RS2 0x702b"
+.LASF2855:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1365:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF3600:
+ .string "MATCH_FCLASS_D 0xe2001053"
+.LASF370:
+ .string "___int_least16_t_defined 1"
+.LASF2862:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF3540:
+ .string "MATCH_FSQRT_S 0x58000053"
+.LASF3687:
+ .string "MASK_C_LUI 0xe003"
+.LASF1259:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2961:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2352:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF3146:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF3464:
+ .string "MATCH_AMOSWAP_W 0x800202f"
+.LASF2868:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1507:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1074:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF808:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF2049:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF3320:
+ .string "MATCH_BEQ 0x63"
+.LASF926:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF3018:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF3145:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF3024:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF3225:
+ .string "MCONTROL_MATCH (0xf<<7)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF3114:
+ .string "_WCHAR_T_DECLARED "
+.LASF2241:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF3658:
+ .string "MATCH_C_SD 0xe000"
+.LASF2798:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF562:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF367:
+ .string "___int32_t_defined 1"
+.LASF2084:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1182:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF3205:
+ .string "DCSR_STOPCYCLE (1<<10)"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF3744:
+ .string "MATCH_CUSTOM1_RS1 0x202b"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF1615:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF3832:
+ .string "CSR_MBADADDR 0x343"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2850:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF2158:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2277:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF1482:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF2130:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1763:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2887:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF1607:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF3652:
+ .string "MATCH_C_JALR 0x9002"
+.LASF3963:
+ .string "CSR_MHPMCOUNTER25H 0xb99"
+.LASF1483:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF493:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF3941:
+ .string "CSR_MHPMCOUNTER3H 0xb83"
+.LASF907:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF2006:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1685:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2503:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF2626:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2914:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF423:
+ .string "__int_least16_t_defined 1"
+.LASF1169:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2341:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF3105:
+ .string "__WCHAR_T "
+.LASF3211:
+ .string "DCSR_PRV (3<<0)"
+.LASF409:
+ .string "_INT16_T_DECLARED "
+.LASF3634:
+ .string "MATCH_FNMSUB_S 0x4b"
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1046:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF3761:
+ .string "MASK_CUSTOM2_RD 0x707f"
+.LASF919:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF3955:
+ .string "CSR_MHPMCOUNTER17H 0xb91"
+.LASF1717:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2691:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF2270:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF3671:
+ .string "MASK_C_LW 0xe003"
+.LASF4003:
+ .string "long int"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF2231:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1883:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2576:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF3695:
+ .string "MASK_C_SUB 0xfc63"
+.LASF3530:
+ .string "MATCH_FSGNJ_S 0x20000053"
+.LASF2291:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF1356:
+ .string "GD32VF103_EXTI_H "
+.LASF378:
+ .string "char"
+.LASF1750:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF3593:
+ .string "MASK_FCVT_WU_D 0xfff0007f"
+.LASF2150:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF3228:
+ .string "MCONTROL_S (1<<4)"
+.LASF2190:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF3835:
+ .string "CSR_TDATA1 0x7a1"
+.LASF881:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2702:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF392:
+ .string "_INT32_EQ_LONG "
+.LASF1070:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF3626:
+ .string "MATCH_FSW 0x2027"
+.LASF1840:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF1922:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF2313:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2863:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF536:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF908:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF2039:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF3874:
+ .string "CSR_MHPMEVENT3 0x323"
+.LASF598:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2370:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF2082:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2871:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF686:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF2877:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF3994:
+ .string "CAUSE_HYPERVISOR_ECALL 0xa"
+.LASF1789:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF687:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF2235:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2988:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2790:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2477:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF3460:
+ .string "MATCH_AMOMINU_W 0xc000202f"
+.LASF3006:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2625:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF2679:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2811:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF663:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF3061:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF1847:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF3939:
+ .string "CSR_MCYCLEH 0xb80"
+.LASF3446:
+ .string "MATCH_REMUW 0x200703b"
+.LASF1521:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF3372:
+ .string "MATCH_SRA 0x40005033"
+.LASF1104:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF517:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1889:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF2356:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF2990:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF1918:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF2387:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1011:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF2758:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1043:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1611:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2281:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2380:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF2111:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2583:
+ .string "GD32VF103_TIMER_H "
+.LASF1018:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2030:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF3070:
+ .string "_STDDEF_H_ "
+.LASF3730:
+ .string "MATCH_CUSTOM0 0xb"
+.LASF722:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF3207:
+ .string "DCSR_CAUSE (7<<6)"
+.LASF3902:
+ .string "CSR_MHPMEVENT31 0x33f"
+.LASF3158:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF2680:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF841:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF3932:
+ .string "CSR_HPMCOUNTER25H 0xc99"
+.LASF1710:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF2079:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF990:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF2073:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF3628:
+ .string "MATCH_FSD 0x3027"
+.LASF2578:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2191:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF3774:
+ .string "MATCH_CUSTOM3_RD_RS1 0x607b"
+.LASF921:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF479:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF856:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF3391:
+ .string "MASK_SLLW 0xfe00707f"
+.LASF3897:
+ .string "CSR_MHPMEVENT26 0x33a"
+.LASF1016:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF862:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1558:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF3062:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1776:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2215:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF1471:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1023:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1795:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF3264:
+ .string "SIP_SSIP MIP_SSIP"
+.LASF2727:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2122:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF3566:
+ .string "MATCH_FLE_S 0xa0000053"
+.LASF3569:
+ .string "MASK_FLT_S 0xfe00707f"
+.LASF564:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF3328:
+ .string "MATCH_BLTU 0x6063"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF2330:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF3722:
+ .string "MATCH_C_ADD 0x9002"
+.LASF1235:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF815:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1746:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2599:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2930:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF3565:
+ .string "MASK_FSQRT_D 0xfff0007f"
+.LASF2324:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF2561:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF807:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1464:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF831:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF3791:
+ .string "CSR_HPMCOUNTER10 0xc0a"
+.LASF1674:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF3495:
+ .string "MASK_EBREAK 0xffffffff"
+.LASF1933:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF531:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF721:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF3026:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF1663:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1587:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1167:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF3255:
+ .string "MIE_SSIE MIP_SSIP"
+.LASF3616:
+ .string "MATCH_FCVT_D_L 0xd2200053"
+.LASF3868:
+ .string "CSR_MHPMCOUNTER28 0xb1c"
+.LASF3442:
+ .string "MATCH_DIVUW 0x200503b"
+.LASF3968:
+ .string "CSR_MHPMCOUNTER30H 0xb9e"
+.LASF956:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF3848:
+ .string "CSR_MHPMCOUNTER8 0xb08"
+.LASF2685:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF3429:
+ .string "MASK_MULHU 0xfe00707f"
+.LASF2016:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF650:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3812:
+ .string "CSR_HPMCOUNTER31 0xc1f"
+.LASF3447:
+ .string "MASK_REMUW 0xfe00707f"
+.LASF1141:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2421:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1172:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF720:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF2251:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF2055:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1538:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF3951:
+ .string "CSR_MHPMCOUNTER13H 0xb8d"
+.LASF3167:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF3880:
+ .string "CSR_MHPMEVENT9 0x329"
+.LASF2635:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF453:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1912:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF1981:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1572:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1731:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF736:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF3614:
+ .string "MATCH_FCVT_D_WU 0xd2100053"
+.LASF3179:
+ .string "MSTATUS_MPP 0x00001800"
+.LASF3709:
+ .string "MASK_C_BEQZ 0xe003"
+.LASF3522:
+ .string "MATCH_FADD_S 0x53"
+.LASF3920:
+ .string "CSR_HPMCOUNTER13H 0xc8d"
+.LASF3140:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF884:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF3450:
+ .string "MATCH_AMOXOR_W 0x2000202f"
+.LASF2256:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2725:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF3134:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1767:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2518:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF896:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF3344:
+ .string "MATCH_SLTI 0x2013"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF2941:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF710:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF753:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1444:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2824:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF3547:
+ .string "MASK_FMUL_D 0xfe00007f"
+.LASF2137:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF715:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1602:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1049:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF384:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1256:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF1696:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2479:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2120:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF2393:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF2999:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF3567:
+ .string "MASK_FLE_S 0xfe00707f"
+.LASF879:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF3552:
+ .string "MATCH_FSGNJN_D 0x22001053"
+.LASF675:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF3624:
+ .string "MATCH_FLD 0x3007"
+.LASF2167:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF594:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF3545:
+ .string "MASK_FSUB_D 0xfe00007f"
+.LASF2827:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2594:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF3625:
+ .string "MASK_FLD 0x707f"
+.LASF417:
+ .string "__int64_t_defined 1"
+.LASF724:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF2097:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF4023:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_eclic.c"
+.LASF2879:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF3771:
+ .string "MASK_CUSTOM3_RS1_RS2 0x707f"
+.LASF3665:
+ .string "MASK_C_SDSP 0xe003"
+.LASF379:
+ .string "short"
+.LASF1350:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1517:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF1547:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF2922:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2358:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF992:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF3065:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3804:
+ .string "CSR_HPMCOUNTER23 0xc17"
+.LASF4022:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1511:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF3983:
+ .string "CSR_MSUBM 0x7c4"
+.LASF749:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF871:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF735:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1013:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF1817:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2698:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF1660:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF3583:
+ .string "MASK_FCVT_L_S 0xfff0007f"
+.LASF2460:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2540:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF592:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF939:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1769:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF2114:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF359:
+ .string "__SVID_VISIBLE 0"
+.LASF2098:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2667:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1443:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1657:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF748:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF3937:
+ .string "CSR_HPMCOUNTER30H 0xc9e"
+.LASF1247:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1099:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF3482:
+ .string "MATCH_AMOMINU_D 0xc000302f"
+.LASF2234:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF3535:
+ .string "MASK_FSGNJX_S 0xfe00707f"
+.LASF3700:
+ .string "MATCH_C_AND 0x8c61"
+.LASF1881:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF2693:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF2257:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF823:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2221:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF723:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF940:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF3215:
+ .string "DCSR_CAUSE_DEBUGINT 3"
+.LASF1815:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF3542:
+ .string "MATCH_FADD_D 0x2000053"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF4025:
+ .string "eclic_system_reset"
+.LASF3248:
+ .string "MIP_MSIP (1 << IRQ_M_SOFT)"
+.LASF3775:
+ .string "MASK_CUSTOM3_RD_RS1 0x707f"
+.LASF1227:
+ .string "GD32VF103_DMA_H "
+.LASF3310:
+ .string "write_fpu(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF3680:
+ .string "MATCH_C_ADDI 0x1"
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF3056:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1158:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF2008:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2596:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF3818:
+ .string "CSR_SCAUSE 0x142"
+.LASF1088:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF3348:
+ .string "MATCH_XORI 0x4013"
+.LASF2004:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2694:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF3401:
+ .string "MASK_LW 0x707f"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF1943:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF3170:
+ .string "MSTATUS_UIE 0x00000001"
+.LASF754:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2364:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF2070:
+ .string "RCU RCU_BASE"
+.LASF2744:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF3825:
+ .string "CSR_MIDELEG 0x303"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2629:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2818:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF2037:
+ .string "PMU PMU_BASE"
+.LASF3739:
+ .string "MASK_CUSTOM0_RD_RS1 0x707f"
+.LASF3944:
+ .string "CSR_MHPMCOUNTER6H 0xb86"
+.LASF747:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2610:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2541:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF3475:
+ .string "MASK_AMOOR_D 0xf800707f"
+.LASF619:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF369:
+ .string "___int_least8_t_defined 1"
+.LASF2272:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF3230:
+ .string "MCONTROL_EXECUTE (1<<2)"
+.LASF2174:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF802:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF670:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1896:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2555:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1738:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF397:
+ .string "__FAST8 "
+.LASF2047:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF648:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1790:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF572:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF1702:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF630:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF3484:
+ .string "MATCH_AMOMAXU_D 0xe000302f"
+.LASF3512:
+ .string "MATCH_CSRRS 0x2073"
+.LASF3683:
+ .string "MASK_C_JAL 0xe003"
+.LASF2307:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF3213:
+ .string "DCSR_CAUSE_SWBP 1"
+.LASF530:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF3574:
+ .string "MATCH_FLT_D 0xa2001053"
+.LASF760:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2481:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF3308:
+ .string "RISCV_PGSIZE (1 << RISCV_PGSHIFT)"
+.LASF1164:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF2398:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2395:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2907:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF2752:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF3758:
+ .string "MATCH_CUSTOM2_RS1_RS2 0x305b"
+.LASF1114:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1065:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2375:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1233:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2946:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF3224:
+ .string "MCONTROL_CHAIN (1<<11)"
+.LASF2908:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1586:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF2322:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF3581:
+ .string "MASK_FCVT_WU_S 0xfff0007f"
+.LASF2023:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1363:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF1752:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1954:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF3881:
+ .string "CSR_MHPMEVENT10 0x32a"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF1771:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF520:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF3826:
+ .string "CSR_MIE 0x304"
+.LASF2428:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF546:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF3945:
+ .string "CSR_MHPMCOUNTER7H 0xb87"
+.LASF2451:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1764:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF3339:
+ .string "MASK_AUIPC 0x7f"
+.LASF3527:
+ .string "MASK_FMUL_S 0xfe00007f"
+.LASF3599:
+ .string "MASK_FMV_X_D 0xfff0707f"
+.LASF1786:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF2262:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF3244:
+ .string "MCONTROL_MATCH_MASK_LOW 4"
+.LASF906:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1779:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF518:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2536:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF3985:
+ .string "CAUSE_FAULT_FETCH 0x1"
+.LASF1499:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2411:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF3311:
+ .string "read_csr(reg) ({ unsigned long __tmp; asm volatile (\"csrr %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF428:
+ .string "__int_fast32_t_defined 1"
+.LASF1370:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF595:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF1616:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF2112:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF3725:
+ .string "MASK_C_FSDSP 0xe003"
+.LASF3999:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2715:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF3178:
+ .string "MSTATUS_SPP 0x00000100"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1841:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF2148:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF2083:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1001:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3633:
+ .string "MASK_FMSUB_S 0x600007f"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2655:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF393:
+ .string "__INT8 \"hh\""
+.LASF2282:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1755:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF1480:
+ .string "OB OB_BASE"
+.LASF4009:
+ .string "uint8_t"
+.LASF3206:
+ .string "DCSR_STOPTIME (1<<9)"
+.LASF3349:
+ .string "MASK_XORI 0x707f"
+.LASF3478:
+ .string "MATCH_AMOMIN_D 0x8000302f"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3904:
+ .string "CSR_MARCHID 0xf12"
+.LASF3028:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF853:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF1143:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF3967:
+ .string "CSR_MHPMCOUNTER29H 0xb9d"
+.LASF2533:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF434:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF3421:
+ .string "MASK_FENCE_I 0x707f"
+.LASF1476:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF541:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF1066:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF1708:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1606:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2567:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF3314:
+ .string "set_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF1742:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2793:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1681:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF3591:
+ .string "MASK_FCVT_W_D 0xfff0007f"
+.LASF2045:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF3294:
+ .string "PTE_R 0x002"
+.LASF3379:
+ .string "MASK_ADDIW 0x707f"
+.LASF3453:
+ .string "MASK_AMOOR_W 0xf800707f"
+.LASF2921:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF1648:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2476:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF3799:
+ .string "CSR_HPMCOUNTER18 0xc12"
+.LASF1431:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF389:
+ .string "int +2"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF2382:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF3287:
+ .string "DEFAULT_RSTVEC 0x00001000"
+.LASF3940:
+ .string "CSR_MINSTRETH 0xb82"
+.LASF2278:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2500:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF3182:
+ .string "MSTATUS_MPRV 0x00020000"
+.LASF3243:
+ .string "MCONTROL_MATCH_LT 3"
+.LASF2597:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2405:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1084:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF3740:
+ .string "MATCH_CUSTOM0_RD_RS1_RS2 0x700b"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1062:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF875:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF461:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF997:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2663:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1530:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2822:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1772:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1162:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1489:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF3608:
+ .string "MATCH_FCVT_S_LU 0xd0300053"
+.LASF3161:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF3298:
+ .string "PTE_G 0x020"
+.LASF515:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1369:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF1834:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF2391:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF983:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2285:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF454:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1806:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF756:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF2001:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF3041:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF3808:
+ .string "CSR_HPMCOUNTER27 0xc1b"
+.LASF443:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2506:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF2791:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF3612:
+ .string "MATCH_FCVT_D_W 0xd2000053"
+.LASF1627:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2943:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF3517:
+ .string "MASK_CSRRWI 0x707f"
+.LASF646:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF837:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1422:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2890:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1269:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1246:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF2925:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF1257:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2953:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF586:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF855:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF745:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1824:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF3323:
+ .string "MASK_BNE 0x707f"
+.LASF1055:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF377:
+ .string "unsigned"
+.LASF477:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1913:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF524:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF3789:
+ .string "CSR_HPMCOUNTER8 0xc08"
+.LASF1155:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF2745:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2602:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF3033:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2345:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF1520:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF3717:
+ .string "MASK_C_LWSP 0xe003"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2288:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1478:
+ .string "GD32VF103_FMC_H "
+.LASF3382:
+ .string "MATCH_SRLIW 0x501b"
+.LASF2682:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF3905:
+ .string "CSR_MIMPID 0xf13"
+.LASF2932:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF2894:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF3231:
+ .string "MCONTROL_STORE (1<<1)"
+.LASF3333:
+ .string "MASK_JALR 0x707f"
+.LASF2880:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF3597:
+ .string "MASK_FCVT_LU_D 0xfff0007f"
+.LASF3036:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF717:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2419:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF1171:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF3525:
+ .string "MASK_FSUB_S 0xfe00007f"
+.LASF3853:
+ .string "CSR_MHPMCOUNTER13 0xb0d"
+.LASF480:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF733:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF2041:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1819:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1924:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF336:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1022:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF1396:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF1425:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF638:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF3469:
+ .string "MASK_SC_W 0xf800707f"
+.LASF3995:
+ .string "CAUSE_MACHINE_ECALL 0xb"
+.LASF543:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF1787:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF3648:
+ .string "MATCH_C_ADDI16SP 0x6101"
+.LASF744:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF3688:
+ .string "MATCH_C_SRLI 0x8001"
+.LASF3912:
+ .string "CSR_HPMCOUNTER5H 0xc85"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2484:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF2165:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF3563:
+ .string "MASK_FCVT_D_S 0xfff0007f"
+.LASF1882:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF339:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF3327:
+ .string "MASK_BGE 0x707f"
+.LASF2188:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF3240:
+ .string "MCONTROL_MATCH_EQUAL 0"
+.LASF671:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF2488:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF2296:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF3106:
+ .string "_WCHAR_T_ "
+.LASF2266:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1682:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF3996:
+ .string "REG_DBGMCU2 ((uint32_t)0xE0042008U)"
+.LASF3076:
+ .string "_PTRDIFF_T_ "
+.LASF2078:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF484:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1404:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1629:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF3577:
+ .string "MASK_FEQ_D 0xfe00707f"
+.LASF3724:
+ .string "MATCH_C_FSDSP 0xa002"
+.LASF651:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF3556:
+ .string "MATCH_FMIN_D 0x2a000053"
+.LASF2641:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF3426:
+ .string "MATCH_MULHSU 0x2002033"
+.LASF716:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF848:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1122:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF1877:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1516:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF3312:
+ .string "write_csr(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrw \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"csrw \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF1775:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2658:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2453:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF3685:
+ .string "MASK_C_LI 0xe003"
+.LASF3992:
+ .string "CAUSE_USER_ECALL 0x8"
+.LASF3627:
+ .string "MASK_FSW 0x707f"
+.LASF2145:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2116:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2619:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF3411:
+ .string "MASK_SB 0x707f"
+.LASF571:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF2856:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2707:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2787:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF3515:
+ .string "MASK_CSRRC 0x707f"
+.LASF743:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF817:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF3368:
+ .string "MATCH_XOR 0x4033"
+.LASF3641:
+ .string "MASK_FMSUB_D 0x600007f"
+.LASF2080:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF971:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1229:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF3075:
+ .string "__PTRDIFF_T "
+.LASF2447:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2637:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2945:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1038:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2046:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF2233:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF433:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2622:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF2436:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF3173:
+ .string "MSTATUS_MIE 0x00000008"
+.LASF1200:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF654:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF3649:
+ .string "MASK_C_ADDI16SP 0xef83"
+.LASF1272:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF867:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF587:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2318:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF463:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1974:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF2243:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1353:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1002:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF3055:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF3084:
+ .string "_SIZE_T "
+.LASF1286:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF2300:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF3356:
+ .string "MATCH_ANDI 0x7013"
+.LASF2106:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2671:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF575:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2492:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1152:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF2929:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF3199:
+ .string "DCSR_NDRESET (1<<29)"
+.LASF673:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2374:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF346:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF3877:
+ .string "CSR_MHPMEVENT6 0x326"
+.LASF1942:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF793:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF882:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1780:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1932:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1721:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF3037:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF1468:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF3973:
+ .string "CSR_MNVEC 0x7C3"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF410:
+ .string "_UINT16_T_DECLARED "
+.LASF3324:
+ .string "MATCH_BLT 0x4063"
+.LASF2127:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF887:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF3873:
+ .string "CSR_MSCOUNTEREN 0x321"
+.LASF3618:
+ .string "MATCH_FCVT_D_LU 0xd2300053"
+.LASF3559:
+ .string "MASK_FMAX_D 0xfe00707f"
+.LASF2747:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1667:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF3196:
+ .string "SSTATUS32_SD 0x80000000"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF3241:
+ .string "MCONTROL_MATCH_NAPOT 1"
+.LASF2675:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF902:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2144:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF457:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF3385:
+ .string "MASK_SRAIW 0xfe00707f"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF3258:
+ .string "MIE_STIE MIP_STIP"
+.LASF1600:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF944:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF3960:
+ .string "CSR_MHPMCOUNTER22H 0xb96"
+.LASF1236:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1811:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF3504:
+ .string "MATCH_DRET 0x7b200073"
+.LASF3332:
+ .string "MATCH_JALR 0x67"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF2228:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2936:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF3030:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF344:
+ .string "_SYS_FEATURES_H "
+.LASF840:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1700:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF3604:
+ .string "MATCH_FCVT_S_WU 0xd0100053"
+.LASF1079:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF600:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF655:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2731:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF3321:
+ .string "MASK_BEQ 0x707f"
+.LASF3326:
+ .string "MATCH_BGE 0x5063"
+.LASF3492:
+ .string "MATCH_ECALL 0x73"
+.LASF2845:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF449:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2893:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF3111:
+ .string "___int_wchar_t_h "
+.LASF1869:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF3481:
+ .string "MASK_AMOMAX_D 0xf800707f"
+.LASF2217:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF3309:
+ .string "read_fpu(reg) ({ unsigned long __tmp; asm volatile (\"fmv.x.w %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF3352:
+ .string "MATCH_SRAI 0x40005013"
+.LASF3435:
+ .string "MASK_REM 0xfe00707f"
+.LASF1562:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1845:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF3130:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF4020:
+ .string "eclic_global_interrupt_disable"
+.LASF712:
+ .string "BKP BKP_BASE"
+.LASF1232:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF1166:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1177:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1058:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2696:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2521:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF3153:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2416:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2445:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF3233:
+ .string "MCONTROL_TYPE_NONE 0"
+.LASF1202:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF3253:
+ .string "MIP_HEIP (1 << IRQ_H_EXT)"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF603:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2778:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF2065:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF3802:
+ .string "CSR_HPMCOUNTER21 0xc15"
+.LASF381:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1461:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1525:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF489:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF3137:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF1024:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF3063:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF2036:
+ .string "GD32VF103_PMU_H "
+.LASF847:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF1997:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF3015:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF502:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF554:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1870:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF1988:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF1798:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF1053:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2606:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF3496:
+ .string "MATCH_URET 0x200073"
+.LASF1782:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF3570:
+ .string "MATCH_FEQ_S 0xa0002053"
+.LASF3408:
+ .string "MATCH_LWU 0x6003"
+.LASF1087:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF3118:
+ .string "NULL ((void *)0)"
+.LASF444:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1935:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1469:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1111:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF2085:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1589:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2465:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF2634:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF3458:
+ .string "MATCH_AMOMAX_W 0xa000202f"
+.LASF1317:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1199:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF3655:
+ .string "MASK_C_EBREAK 0xffff"
+.LASF2588:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF3441:
+ .string "MASK_DIVW 0xfe00707f"
+.LASF3534:
+ .string "MATCH_FSGNJX_S 0x20002053"
+.LASF928:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1728:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF3409:
+ .string "MASK_LWU 0x707f"
+.LASF792:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF1643:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1105:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1305:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF3984:
+ .string "CAUSE_MISALIGNED_FETCH 0x0"
+.LASF1265:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2646:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1151:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF505:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF3096:
+ .string "_GCC_SIZE_T "
+.LASF1672:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF2939:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF3900:
+ .string "CSR_MHPMEVENT29 0x33d"
+.LASF1564:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF778:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF375:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF777:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1234:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF3423:
+ .string "MASK_MUL 0xfe00707f"
+.LASF3116:
+ .string "__need_wchar_t"
+.LASF1759:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF974:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF3404:
+ .string "MATCH_LBU 0x4003"
+.LASF3617:
+ .string "MASK_FCVT_D_L 0xfff0007f"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1844:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF3499:
+ .string "MASK_SRET 0xffffffff"
+.LASF3319:
+ .string "RISCV_ENCODING_H "
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF3544:
+ .string "MATCH_FSUB_D 0xa000053"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF933:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF3497:
+ .string "MASK_URET 0xffffffff"
+.LASF1863:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1498:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF3250:
+ .string "MIP_HTIP (1 << IRQ_H_TIMER)"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2654:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2979:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1486:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2728:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF3069:
+ .string "_STDDEF_H "
+.LASF1303:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1960:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF3085:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2553:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF3177:
+ .string "MSTATUS_MPIE 0x00000080"
+.LASF3270:
+ .string "VM_MBARE 0"
+.LASF1862:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF4021:
+ .string "__tmp"
+.LASF1485:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1440:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF684:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF3500:
+ .string "MATCH_HRET 0x20200073"
+.LASF1019:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF361:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2442:
+ .string "SPI1 SPI_BASE"
+.LASF2406:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF3089:
+ .string "_SIZE_T_ "
+.LASF2349:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2546:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF2804:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF3948:
+ .string "CSR_MHPMCOUNTER10H 0xb8a"
+.LASF3268:
+ .string "PRV_H 2"
+.LASF3748:
+ .string "MATCH_CUSTOM1_RD 0x402b"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1204:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2350:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2363:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF783:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF3669:
+ .string "MASK_C_FLD 0xe003"
+.LASF3661:
+ .string "MASK_C_ADDIW 0xe003"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF569:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1638:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2678:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2823:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2866:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF3330:
+ .string "MATCH_BGEU 0x7063"
+.LASF3430:
+ .string "MATCH_DIV 0x2004033"
+.LASF1694:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF3208:
+ .string "DCSR_DEBUGINT (1<<5)"
+.LASF890:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF3609:
+ .string "MASK_FCVT_S_LU 0xfff0007f"
+.LASF3890:
+ .string "CSR_MHPMEVENT19 0x333"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF641:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF2232:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1906:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2510:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1691:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2204:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2305:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF3830:
+ .string "CSR_MEPC 0x341"
+.LASF822:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF3317:
+ .string "rdcycle() read_csr(cycle)"
+.LASF544:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF3101:
+ .string "__WCHAR_T__ "
+.LASF337:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1075:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF714:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF3086:
+ .string "_T_SIZE_ "
+.LASF2520:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF2870:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF1593:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF2259:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2159:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF473:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2737:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1596:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF2933:
+ .string "USART1 USART_BASE"
+.LASF1658:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF3169:
+ .string "RISCV_CSR_ENCODING_H "
+.LASF3696:
+ .string "MATCH_C_XOR 0x8c21"
+.LASF2544:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF442:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1848:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF538:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF3979:
+ .string "CSR_WFE 0x810"
+.LASF2647:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF3337:
+ .string "MASK_LUI 0x7f"
+.LASF3710:
+ .string "MATCH_C_BNEZ 0xe001"
+.LASF713:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1820:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1090:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF2124:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2379:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1523:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2657:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1068:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF770:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF1206:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF3138:
+ .string "ECLICINTCTLBITS 4"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1892:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF3081:
+ .string "__need_ptrdiff_t"
+.LASF1652:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2530:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2910:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF3943:
+ .string "CSR_MHPMCOUNTER5H 0xb85"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF3278:
+ .string "IRQ_M_SOFT 3"
+.LASF1903:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF3234:
+ .string "MCONTROL_TYPE_MATCH 2"
+.LASF2475:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF3723:
+ .string "MASK_C_ADD 0xf003"
+.LASF3806:
+ .string "CSR_HPMCOUNTER25 0xc19"
+.LASF1967:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1408:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF2796:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1179:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF3933:
+ .string "CSR_HPMCOUNTER26H 0xc9a"
+.LASF3541:
+ .string "MASK_FSQRT_S 0xfff0007f"
+.LASF2494:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1874:
+ .string "I2C0 I2C_BASE"
+.LASF405:
+ .string "_SYS__STDINT_H "
+.LASF1186:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF4007:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF3975:
+ .string "CSR_JALMNXTI 0x7ED"
+.LASF2701:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF2304:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF3916:
+ .string "CSR_HPMCOUNTER9H 0xc89"
+.LASF2595:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF3846:
+ .string "CSR_MHPMCOUNTER6 0xb06"
+.LASF2450:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF701:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF3664:
+ .string "MATCH_C_SDSP 0xe002"
+.LASF2889:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF3590:
+ .string "MATCH_FCVT_W_D 0xc2000053"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1838:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF3676:
+ .string "MATCH_C_SW 0xc000"
+.LASF1071:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF2223:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF334:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF1610:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF516:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF1519:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF2386:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2692:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF873:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF1785:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF1383:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF878:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF3465:
+ .string "MASK_AMOSWAP_W 0xf800707f"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF682:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF3039:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1736:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2497:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1138:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1622:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF458:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1294:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF2686:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF589:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF3412:
+ .string "MATCH_SH 0x1023"
+.LASF1289:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2425:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2327:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF3147:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1549:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1617:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF961:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF1292:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF2560:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF3619:
+ .string "MASK_FCVT_D_LU 0xfff0007f"
+.LASF2185:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF3059:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF2303:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF2842:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1722:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2170:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1213:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1645:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF3021:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2164:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF3160:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1937:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF3060:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF893:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF3032:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1243:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF1036:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2454:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2864:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1855:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1007:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF3852:
+ .string "CSR_MHPMCOUNTER12 0xb0c"
+.LASF1494:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1571:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF3829:
+ .string "CSR_MSCRATCH 0x340"
+.LASF2499:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1032:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF588:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF2681:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF2770:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2575:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF3689:
+ .string "MASK_C_SRLI 0xec03"
+.LASF3325:
+ .string "MASK_BLT 0x707f"
+.LASF3054:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF2091:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF2268:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF679:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF1828:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF1028:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2672:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1301:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2547:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF1366:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF3466:
+ .string "MATCH_LR_W 0x1000202f"
+.LASF1642:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF3103:
+ .string "_T_WCHAR_ "
+.LASF2034:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2302:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF2207:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF3800:
+ .string "CSR_HPMCOUNTER19 0xc13"
+.LASF2820:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF329:
+ .string "GD32VF103_ECLIC_H "
+.LASF1978:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF495:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF470:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1474:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF3259:
+ .string "MIE_HTIE MIP_HTIP"
+.LASF2050:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF791:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF2096:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2115:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2321:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF1161:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF3894:
+ .string "CSR_MHPMEVENT23 0x337"
+.LASF3098:
+ .string "__size_t "
+.LASF2535:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF3623:
+ .string "MASK_FLW 0x707f"
+.LASF358:
+ .string "__POSIX_VISIBLE 199009"
+.LASF3964:
+ .string "CSR_MHPMCOUNTER26H 0xb9a"
+.LASF3862:
+ .string "CSR_MHPMCOUNTER22 0xb16"
+.LASF3267:
+ .string "PRV_S 1"
+.LASF2123:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2225:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1858:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF3143:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2719:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1619:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF2975:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF836:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1686:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF373:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1875:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF796:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF3726:
+ .string "MATCH_C_SWSP 0xc002"
+.LASF547:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2151:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1594:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2911:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF2249:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF920:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF1831:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF2996:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1276:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2776:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF769:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF527:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2632:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF3785:
+ .string "CSR_HPMCOUNTER4 0xc04"
+.LASF1718:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2720:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF372:
+ .string "___int_least64_t_defined 1"
+.LASF3865:
+ .string "CSR_MHPMCOUNTER25 0xb19"
+.LASF2940:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF3638:
+ .string "MATCH_FMADD_D 0x2000043"
+.LASF3642:
+ .string "MATCH_FNMSUB_D 0x200004b"
+.LASF3289:
+ .string "DEFAULT_MTVEC 0x00001010"
+.LASF3220:
+ .string "MCONTROL_MASKMAX(xlen) (0x3fULL<<((xlen)-11))"
+.LASF861:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1341:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF3212:
+ .string "DCSR_CAUSE_NONE 0"
+.LASF3679:
+ .string "MASK_C_FSW 0xe003"
+.LASF1784:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF3066:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF1597:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF3139:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF3425:
+ .string "MASK_MULH 0xfe00707f"
+.LASF2722:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2813:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1092:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1117:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2721:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1154:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF2009:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1809:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1560:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF471:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF917:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF662:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF1268:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF2087:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF2360:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF3787:
+ .string "CSR_HPMCOUNTER6 0xc06"
+.LASF2812:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF3135:
+ .string "_AT(T,X) ((T)(X))"
+.LASF3998:
+ .string "unsigned int"
+.LASF2448:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1936:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF2261:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF425:
+ .string "__int_least64_t_defined 1"
+.LASF1886:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF771:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2608:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF415:
+ .string "_INT64_T_DECLARED "
+.LASF2750:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF3561:
+ .string "MASK_FCVT_S_D 0xfff0007f"
+.LASF1679:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2846:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF3397:
+ .string "MASK_LB 0x707f"
+.LASF3587:
+ .string "MASK_FMV_X_S 0xfff0707f"
+.LASF2923:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1160:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1626:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1542:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1300:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+.LASF3645:
+ .string "MASK_FNMADD_D 0x600007f"
+.LASF3358:
+ .string "MATCH_ADD 0x33"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c
new file mode 100644
index 0000000000..8e1f807d9c
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c
@@ -0,0 +1,165 @@
+/*!
+ \file gd32vf103_exmc.c
+ \brief EXMC driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_exmc.h"
+
+/* EXMC bank0 register reset value */
+#define BANK0_SNCTL0_REGION_RESET ((uint32_t)0x000030DAU)
+#define BANK0_SNTCFG_RESET ((uint32_t)0x0FFFFFFFU)
+
+/* EXMC register bit offset */
+#define SNCTL_NRMUX_OFFSET ((uint32_t)1U)
+#define SNCTL_WREN_OFFSET ((uint32_t)12U)
+#define SNCTL_NRWTEN_OFFSET ((uint32_t)13U)
+#define SNCTL_ASYNCWAIT_OFFSET ((uint32_t)15U)
+
+#define SNTCFG_AHLD_OFFSET ((uint32_t)4U)
+#define SNTCFG_DSET_OFFSET ((uint32_t)8U)
+#define SNTCFG_BUSLAT_OFFSET ((uint32_t)16U)
+
+/*!
+ \brief deinitialize EXMC NOR/SRAM region
+ \param[in] norsram_region: select the region of bank0
+ \arg EXMC_BANK0_NORSRAM_REGIONx(x=0)
+ \param[out] none
+ \retval none
+*/
+void exmc_norsram_deinit(uint32_t norsram_region)
+{
+ /* reset the registers */
+ if(EXMC_BANK0_NORSRAM_REGION0 == norsram_region){
+ EXMC_SNCTL(norsram_region) = BANK0_SNCTL0_REGION_RESET;
+ }
+
+ EXMC_SNTCFG(norsram_region) = BANK0_SNTCFG_RESET;
+}
+
+/*!
+ \brief initialize the structure exmc_norsram_parameter_struct
+ \param[in] none
+ \param[out] exmc_norsram_init_struct: the initialized structure exmc_norsram_parameter_struct pointer
+ \retval none
+*/
+void exmc_norsram_struct_para_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct)
+{
+ /* configure the structure with default value */
+ exmc_norsram_init_struct->norsram_region = EXMC_BANK0_NORSRAM_REGION0;
+ exmc_norsram_init_struct->address_data_mux = ENABLE;
+ exmc_norsram_init_struct->memory_type = EXMC_MEMORY_TYPE_SRAM;
+ exmc_norsram_init_struct->databus_width = EXMC_NOR_DATABUS_WIDTH_16B;
+ exmc_norsram_init_struct->nwait_polarity = EXMC_NWAIT_POLARITY_LOW;
+ exmc_norsram_init_struct->memory_write = ENABLE;
+ exmc_norsram_init_struct->nwait_signal = ENABLE;
+ exmc_norsram_init_struct->asyn_wait = DISABLE;
+
+ /* read/write timing configure */
+ exmc_norsram_init_struct->read_write_timing->asyn_address_setuptime = 0xFU;
+ exmc_norsram_init_struct->read_write_timing->asyn_address_holdtime = 0xFU;
+ exmc_norsram_init_struct->read_write_timing->asyn_data_setuptime = 0xFFU;
+ exmc_norsram_init_struct->read_write_timing->bus_latency = 0xFU;
+}
+
+/*!
+ \brief initialize EXMC NOR/SRAM region
+ \param[in] exmc_norsram_parameter_struct: configure the EXMC NOR/SRAM parameter
+ norsram_region: EXMC_BANK0_NORSRAM_REGIONx,x=0
+ asyn_wait: ENABLE or DISABLE
+ nwait_signal: ENABLE or DISABLE
+ memory_write: ENABLE or DISABLE
+ nwait_polarity: EXMC_NWAIT_POLARITY_LOW,EXMC_NWAIT_POLARITY_HIGH
+ databus_width: EXMC_NOR_DATABUS_WIDTH_8B,EXMC_NOR_DATABUS_WIDTH_16B
+ memory_type: EXMC_MEMORY_TYPE_SRAM,EXMC_MEMORY_TYPE_PSRAM,EXMC_MEMORY_TYPE_NOR
+ address_data_mux: ENABLE
+ read_write_timing: structure exmc_norsram_timing_parameter_struct set the time
+ \param[out] none
+ \retval none
+*/
+void exmc_norsram_init(exmc_norsram_parameter_struct* exmc_norsram_init_struct)
+{
+ uint32_t snctl = 0x00000000U, sntcfg = 0x00000000U;
+
+ /* get the register value */
+ snctl = EXMC_SNCTL(exmc_norsram_init_struct->norsram_region);
+
+ /* clear relative bits */
+ snctl &= ((uint32_t)~(EXMC_SNCTL_NREN | EXMC_SNCTL_NRTP | EXMC_SNCTL_NRW | EXMC_SNCTL_NRWTPOL |
+ EXMC_SNCTL_WREN | EXMC_SNCTL_NRWTEN | EXMC_SNCTL_ASYNCWAIT | EXMC_SNCTL_NRMUX));
+
+ snctl |= (uint32_t)((uint32_t)exmc_norsram_init_struct->address_data_mux << SNCTL_NRMUX_OFFSET) |
+ exmc_norsram_init_struct->memory_type |
+ exmc_norsram_init_struct->databus_width |
+ exmc_norsram_init_struct->nwait_polarity |
+ ((uint32_t)exmc_norsram_init_struct->memory_write << SNCTL_WREN_OFFSET) |
+ ((uint32_t)exmc_norsram_init_struct->nwait_signal << SNCTL_NRWTEN_OFFSET) |
+ ((uint32_t)exmc_norsram_init_struct->asyn_wait << SNCTL_ASYNCWAIT_OFFSET);
+
+ sntcfg = (uint32_t)((exmc_norsram_init_struct->read_write_timing->asyn_address_setuptime - 1U ) & EXMC_SNTCFG_ASET )|
+ (((exmc_norsram_init_struct->read_write_timing->asyn_address_holdtime - 1U ) << SNTCFG_AHLD_OFFSET ) & EXMC_SNTCFG_AHLD ) |
+ (((exmc_norsram_init_struct->read_write_timing->asyn_data_setuptime - 1U ) << SNTCFG_DSET_OFFSET ) & EXMC_SNTCFG_DSET ) |
+ (((exmc_norsram_init_struct->read_write_timing->bus_latency - 1U ) << SNTCFG_BUSLAT_OFFSET ) & EXMC_SNTCFG_BUSLAT );
+
+ /* nor flash access enable */
+ if(EXMC_MEMORY_TYPE_NOR == exmc_norsram_init_struct->memory_type){
+ snctl |= (uint32_t)EXMC_SNCTL_NREN;
+ }
+
+ /* configure the registers */
+ EXMC_SNCTL(exmc_norsram_init_struct->norsram_region) = snctl;
+ EXMC_SNTCFG(exmc_norsram_init_struct->norsram_region) = sntcfg;
+}
+
+/*!
+ \brief enable EXMC NOR/PSRAM bank region
+ \param[in] norsram_region: specify the region of NOR/PSRAM bank
+ \arg EXMC_BANK0_NORSRAM_REGIONx(x=0)
+ \param[out] none
+ \retval none
+*/
+void exmc_norsram_enable(uint32_t norsram_region)
+{
+ EXMC_SNCTL(norsram_region) |= (uint32_t)EXMC_SNCTL_NRBKEN;
+}
+
+/*!
+ \brief disable EXMC NOR/PSRAM bank region
+ \param[in] norsram_region: specify the region of NOR/PSRAM bank
+ \arg EXMC_BANK0_NORSRAM_REGIONx(x=0)
+ \param[out] none
+ \retval none
+*/
+void exmc_norsram_disable(uint32_t norsram_region)
+{
+ EXMC_SNCTL(norsram_region) &= ~(uint32_t)EXMC_SNCTL_NRBKEN;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c
new file mode 100644
index 0000000000..4d84564352
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c
@@ -0,0 +1,255 @@
+/*!
+ \file gd32vf103_exti.c
+ \brief EXTI driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_exti.h"
+
+#define EXTI_REG_RESET_VALUE ((uint32_t)0x00000000U)
+
+/*!
+ \brief deinitialize the EXTI
+ \param[in] none
+ \param[out] none
+ \retval none
+ */
+void exti_deinit(void)
+{
+ /* reset the value of all the EXTI registers */
+ EXTI_INTEN = EXTI_REG_RESET_VALUE;
+ EXTI_EVEN = EXTI_REG_RESET_VALUE;
+ EXTI_RTEN = EXTI_REG_RESET_VALUE;
+ EXTI_FTEN = EXTI_REG_RESET_VALUE;
+ EXTI_SWIEV = EXTI_REG_RESET_VALUE;
+}
+
+/*!
+ \brief initialize the EXTI
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[in] mode: interrupt or event mode, refer to exti_mode_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_INTERRUPT: interrupt mode
+ \arg EXTI_EVENT: event mode
+ \param[in] trig_type: trigger type, refer to exti_trig_type_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_TRIG_RISING: rising edge trigger
+ \arg EXTI_TRIG_FALLING: falling edge trigger
+ \arg EXTI_TRIG_BOTH: rising edge and falling edge trigger
+ \arg EXTI_TRIG_NONE: without rising edge or falling edge trigger
+ \param[out] none
+ \retval none
+ */
+void exti_init(exti_line_enum linex, exti_mode_enum mode, exti_trig_type_enum trig_type)
+{
+ /* reset the EXTI line x */
+ EXTI_INTEN &= ~(uint32_t) linex;
+ EXTI_EVEN &= ~(uint32_t) linex;
+ EXTI_RTEN &= ~(uint32_t) linex;
+ EXTI_FTEN &= ~(uint32_t) linex;
+
+ /* set the EXTI mode and enable the interrupts or events from EXTI line x */
+ switch (mode) {
+ case EXTI_INTERRUPT:
+ EXTI_INTEN |= (uint32_t) linex;
+ break;
+ case EXTI_EVENT:
+ EXTI_EVEN |= (uint32_t) linex;
+ break;
+ default:
+ break;
+ }
+
+ /* set the EXTI trigger type */
+ switch (trig_type) {
+ case EXTI_TRIG_RISING:
+ EXTI_RTEN |= (uint32_t) linex;
+ EXTI_FTEN &= ~(uint32_t) linex;
+ break;
+ case EXTI_TRIG_FALLING:
+ EXTI_RTEN &= ~(uint32_t) linex;
+ EXTI_FTEN |= (uint32_t) linex;
+ break;
+ case EXTI_TRIG_BOTH:
+ EXTI_RTEN |= (uint32_t) linex;
+ EXTI_FTEN |= (uint32_t) linex;
+ break;
+ case EXTI_TRIG_NONE:
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief enable the interrupts from EXTI line x
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_interrupt_enable(exti_line_enum linex)
+{
+ EXTI_INTEN |= (uint32_t) linex;
+}
+
+/*!
+ \brief enable the events from EXTI line x
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_event_enable(exti_line_enum linex)
+{
+ EXTI_EVEN |= (uint32_t) linex;
+}
+
+/*!
+ \brief disable the interrupt from EXTI line x
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_interrupt_disable(exti_line_enum linex)
+{
+ EXTI_INTEN &= ~(uint32_t) linex;
+}
+
+/*!
+ \brief disable the events from EXTI line x
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_event_disable(exti_line_enum linex)
+{
+ EXTI_EVEN &= ~(uint32_t) linex;
+}
+
+/*!
+ \brief get EXTI lines flag
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval FlagStatus: status of flag (RESET or SET)
+*/
+FlagStatus exti_flag_get(exti_line_enum linex)
+{
+ if (RESET != (EXTI_PD & (uint32_t) linex)) {
+ return SET;
+ } else {
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear EXTI lines pending flag
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_flag_clear(exti_line_enum linex)
+{
+ EXTI_PD = (uint32_t) linex;
+}
+
+/*!
+ \brief get EXTI lines flag when the interrupt flag is set
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval FlagStatus: status of flag (RESET or SET)
+*/
+FlagStatus exti_interrupt_flag_get(exti_line_enum linex)
+{
+ uint32_t flag_left, flag_right;
+
+ flag_left = EXTI_PD & (uint32_t) linex;
+ flag_right = EXTI_INTEN & (uint32_t) linex;
+
+ if ((RESET != flag_left) && (RESET != flag_right)) {
+ return SET;
+ } else {
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear EXTI lines pending flag
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_interrupt_flag_clear(exti_line_enum linex)
+{
+ EXTI_PD = (uint32_t) linex;
+}
+
+/*!
+ \brief enable EXTI software interrupt event
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_software_interrupt_enable(exti_line_enum linex)
+{
+ EXTI_SWIEV |= (uint32_t) linex;
+}
+
+/*!
+ \brief disable EXTI software interrupt event
+ \param[in] linex: EXTI line number, refer to exti_line_enum
+ only one parameter can be selected which is shown as below:
+ \arg EXTI_x (x=0..18): EXTI line x
+ \param[out] none
+ \retval none
+*/
+void exti_software_interrupt_disable(exti_line_enum linex)
+{
+ EXTI_SWIEV &= ~(uint32_t) linex;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exti.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exti.s
new file mode 100644
index 0000000000..917e05d1f9
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_exti.s
@@ -0,0 +1,17780 @@
+ .file "gd32vf103_exti.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl exti_deinit
+ .type exti_deinit, @function
+exti_deinit:
+.LFB2:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_exti.c"
+ .loc 1 47 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 49 6
+ li a5,1073807360
+ addi a5,a5,1024
+ .loc 1 49 89
+ sw zero,0(a5)
+ .loc 1 50 6
+ li a5,1073807360
+ addi a5,a5,1028
+ .loc 1 50 89
+ sw zero,0(a5)
+ .loc 1 51 6
+ li a5,1073807360
+ addi a5,a5,1032
+ .loc 1 51 89
+ sw zero,0(a5)
+ .loc 1 52 6
+ li a5,1073807360
+ addi a5,a5,1036
+ .loc 1 52 89
+ sw zero,0(a5)
+ .loc 1 53 6
+ li a5,1073807360
+ addi a5,a5,1040
+ .loc 1 53 89
+ sw zero,0(a5)
+ .loc 1 54 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE2:
+ .size exti_deinit, .-exti_deinit
+ .align 1
+ .globl exti_init
+ .type exti_init, @function
+exti_init:
+.LFB3:
+ .loc 1 75 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ sw a2,-28(s0)
+ .loc 1 77 89
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a3,0(a5)
+ .loc 1 77 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 77 89
+ li a5,1073807360
+ addi a5,a5,1024
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 78 89
+ li a5,1073807360
+ addi a5,a5,1028
+ lw a3,0(a5)
+ .loc 1 78 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 78 89
+ li a5,1073807360
+ addi a5,a5,1028
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 79 89
+ li a5,1073807360
+ addi a5,a5,1032
+ lw a3,0(a5)
+ .loc 1 79 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 79 89
+ li a5,1073807360
+ addi a5,a5,1032
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 80 89
+ li a5,1073807360
+ addi a5,a5,1036
+ lw a3,0(a5)
+ .loc 1 80 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 80 89
+ li a5,1073807360
+ addi a5,a5,1036
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 83 5
+ lw a5,-24(s0)
+ beq a5,zero,.L3
+ lw a4,-24(s0)
+ li a5,1
+ beq a4,a5,.L4
+ .loc 1 91 9
+ j .L6
+.L3:
+ .loc 1 85 93
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 86 9
+ j .L6
+.L4:
+ .loc 1 88 93
+ li a5,1073807360
+ addi a5,a5,1028
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1028
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 89 9
+ nop
+.L6:
+ .loc 1 95 5
+ lw a4,-28(s0)
+ li a5,2
+ beq a4,a5,.L7
+ lw a4,-28(s0)
+ li a5,2
+ bgtu a4,a5,.L12
+ lw a5,-28(s0)
+ beq a5,zero,.L9
+ lw a4,-28(s0)
+ li a5,1
+ beq a4,a5,.L10
+ .loc 1 110 9
+ j .L12
+.L9:
+ .loc 1 97 93
+ li a5,1073807360
+ addi a5,a5,1032
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1032
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 98 93
+ li a5,1073807360
+ addi a5,a5,1036
+ lw a3,0(a5)
+ .loc 1 98 96
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 98 93
+ li a5,1073807360
+ addi a5,a5,1036
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 99 9
+ j .L11
+.L10:
+ .loc 1 101 93
+ li a5,1073807360
+ addi a5,a5,1032
+ lw a3,0(a5)
+ .loc 1 101 96
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 101 93
+ li a5,1073807360
+ addi a5,a5,1032
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 102 93
+ li a5,1073807360
+ addi a5,a5,1036
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1036
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 103 9
+ j .L11
+.L7:
+ .loc 1 105 93
+ li a5,1073807360
+ addi a5,a5,1032
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1032
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 106 93
+ li a5,1073807360
+ addi a5,a5,1036
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1036
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 107 9
+ j .L11
+.L12:
+ .loc 1 110 9
+ nop
+.L11:
+ .loc 1 112 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE3:
+ .size exti_init, .-exti_init
+ .align 1
+ .globl exti_interrupt_enable
+ .type exti_interrupt_enable, @function
+exti_interrupt_enable:
+.LFB4:
+ .loc 1 123 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 124 89
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 125 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE4:
+ .size exti_interrupt_enable, .-exti_interrupt_enable
+ .align 1
+ .globl exti_event_enable
+ .type exti_event_enable, @function
+exti_event_enable:
+.LFB5:
+ .loc 1 136 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 137 89
+ li a5,1073807360
+ addi a5,a5,1028
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1028
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 138 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size exti_event_enable, .-exti_event_enable
+ .align 1
+ .globl exti_interrupt_disable
+ .type exti_interrupt_disable, @function
+exti_interrupt_disable:
+.LFB6:
+ .loc 1 149 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 150 89
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a3,0(a5)
+ .loc 1 150 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 150 89
+ li a5,1073807360
+ addi a5,a5,1024
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 151 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size exti_interrupt_disable, .-exti_interrupt_disable
+ .align 1
+ .globl exti_event_disable
+ .type exti_event_disable, @function
+exti_event_disable:
+.LFB7:
+ .loc 1 162 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 163 89
+ li a5,1073807360
+ addi a5,a5,1028
+ lw a3,0(a5)
+ .loc 1 163 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 163 89
+ li a5,1073807360
+ addi a5,a5,1028
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 164 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE7:
+ .size exti_event_disable, .-exti_event_disable
+ .align 1
+ .globl exti_flag_get
+ .type exti_flag_get, @function
+exti_flag_get:
+.LFB8:
+ .loc 1 175 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 176 20
+ li a5,1073807360
+ addi a5,a5,1044
+ lw a4,0(a5)
+ .loc 1 176 103
+ lw a5,-20(s0)
+ and a5,a4,a5
+ .loc 1 176 8
+ beq a5,zero,.L18
+ .loc 1 177 16
+ li a5,1
+ j .L19
+.L18:
+ .loc 1 179 16
+ li a5,0
+.L19:
+ .loc 1 181 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE8:
+ .size exti_flag_get, .-exti_flag_get
+ .align 1
+ .globl exti_flag_clear
+ .type exti_flag_clear, @function
+exti_flag_clear:
+.LFB9:
+ .loc 1 192 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 193 6
+ li a5,1073807360
+ addi a5,a5,1044
+ .loc 1 193 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 194 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE9:
+ .size exti_flag_clear, .-exti_flag_clear
+ .align 1
+ .globl exti_interrupt_flag_get
+ .type exti_interrupt_flag_get, @function
+exti_interrupt_flag_get:
+.LFB10:
+ .loc 1 205 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 208 18
+ li a5,1073807360
+ addi a5,a5,1044
+ lw a5,0(a5)
+ .loc 1 208 15
+ lw a4,-36(s0)
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 209 19
+ li a5,1073807360
+ addi a5,a5,1024
+ lw a5,0(a5)
+ .loc 1 209 16
+ lw a4,-36(s0)
+ and a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 211 8
+ lw a5,-20(s0)
+ beq a5,zero,.L22
+ .loc 1 211 30 discriminator 1
+ lw a5,-24(s0)
+ beq a5,zero,.L22
+ .loc 1 212 16
+ li a5,1
+ j .L23
+.L22:
+ .loc 1 214 16
+ li a5,0
+.L23:
+ .loc 1 216 1
+ mv a0,a5
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE10:
+ .size exti_interrupt_flag_get, .-exti_interrupt_flag_get
+ .align 1
+ .globl exti_interrupt_flag_clear
+ .type exti_interrupt_flag_clear, @function
+exti_interrupt_flag_clear:
+.LFB11:
+ .loc 1 227 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 228 6
+ li a5,1073807360
+ addi a5,a5,1044
+ .loc 1 228 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 229 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE11:
+ .size exti_interrupt_flag_clear, .-exti_interrupt_flag_clear
+ .align 1
+ .globl exti_software_interrupt_enable
+ .type exti_software_interrupt_enable, @function
+exti_software_interrupt_enable:
+.LFB12:
+ .loc 1 240 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 241 89
+ li a5,1073807360
+ addi a5,a5,1040
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,1040
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 242 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE12:
+ .size exti_software_interrupt_enable, .-exti_software_interrupt_enable
+ .align 1
+ .globl exti_software_interrupt_disable
+ .type exti_software_interrupt_disable, @function
+exti_software_interrupt_disable:
+.LFB13:
+ .loc 1 253 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 254 89
+ li a5,1073807360
+ addi a5,a5,1040
+ lw a3,0(a5)
+ .loc 1 254 92
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 254 89
+ li a5,1073807360
+ addi a5,a5,1040
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 255 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE13:
+ .size exti_software_interrupt_disable, .-exti_software_interrupt_disable
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .file 4 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0x3a2
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF3228
+ .byte 0xc
+ .4byte .LASF3229
+ .4byte .LASF3230
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3170
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3171
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF3172
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF3173
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF3174
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF3175
+ .byte 0x3
+ .4byte .LASF3179
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x5f
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3176
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF3177
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF3178
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF3180
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x53
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x4
+ .byte 0xb5
+ .byte 0xe
+ .4byte 0xa2
+ .byte 0x6
+ .4byte .LASF3181
+ .byte 0
+ .byte 0x7
+ .string "SET"
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3182
+ .byte 0x4
+ .byte 0xb5
+ .byte 0x28
+ .4byte 0x87
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF3183
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .byte 0xb5
+ .byte 0xe
+ .4byte 0x147
+ .byte 0x6
+ .4byte .LASF3184
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3185
+ .byte 0x2
+ .byte 0x6
+ .4byte .LASF3186
+ .byte 0x4
+ .byte 0x6
+ .4byte .LASF3187
+ .byte 0x8
+ .byte 0x6
+ .4byte .LASF3188
+ .byte 0x10
+ .byte 0x6
+ .4byte .LASF3189
+ .byte 0x20
+ .byte 0x6
+ .4byte .LASF3190
+ .byte 0x40
+ .byte 0x6
+ .4byte .LASF3191
+ .byte 0x80
+ .byte 0x8
+ .4byte .LASF3192
+ .2byte 0x100
+ .byte 0x8
+ .4byte .LASF3193
+ .2byte 0x200
+ .byte 0x8
+ .4byte .LASF3194
+ .2byte 0x400
+ .byte 0x8
+ .4byte .LASF3195
+ .2byte 0x800
+ .byte 0x8
+ .4byte .LASF3196
+ .2byte 0x1000
+ .byte 0x8
+ .4byte .LASF3197
+ .2byte 0x2000
+ .byte 0x8
+ .4byte .LASF3198
+ .2byte 0x4000
+ .byte 0x8
+ .4byte .LASF3199
+ .2byte 0x8000
+ .byte 0x9
+ .4byte .LASF3200
+ .4byte 0x10000
+ .byte 0x9
+ .4byte .LASF3201
+ .4byte 0x20000
+ .byte 0x9
+ .4byte .LASF3202
+ .4byte 0x40000
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3203
+ .byte 0x5
+ .byte 0xc9
+ .byte 0x3
+ .4byte 0xb5
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .byte 0xcc
+ .byte 0xe
+ .4byte 0x16e
+ .byte 0x6
+ .4byte .LASF3204
+ .byte 0
+ .byte 0x6
+ .4byte .LASF3205
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3206
+ .byte 0x5
+ .byte 0xcf
+ .byte 0x3
+ .4byte 0x153
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .byte 0xd2
+ .byte 0xe
+ .4byte 0x1a1
+ .byte 0x6
+ .4byte .LASF3207
+ .byte 0
+ .byte 0x6
+ .4byte .LASF3208
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3209
+ .byte 0x2
+ .byte 0x6
+ .4byte .LASF3210
+ .byte 0x3
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3211
+ .byte 0x5
+ .byte 0xd7
+ .byte 0x3
+ .4byte 0x17a
+ .byte 0xa
+ .4byte .LASF3212
+ .byte 0x1
+ .byte 0xfc
+ .byte 0x6
+ .4byte .LFB13
+ .4byte .LFE13-.LFB13
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x1d3
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xfc
+ .byte 0x35
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3213
+ .byte 0x1
+ .byte 0xef
+ .byte 0x6
+ .4byte .LFB12
+ .4byte .LFE12-.LFB12
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x1f9
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xef
+ .byte 0x34
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3215
+ .byte 0x1
+ .byte 0xe2
+ .byte 0x6
+ .4byte .LFB11
+ .4byte .LFE11-.LFB11
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x21f
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xe2
+ .byte 0x2f
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3219
+ .byte 0x1
+ .byte 0xcc
+ .byte 0xc
+ .4byte 0xa2
+ .4byte .LFB10
+ .4byte .LFE10-.LFB10
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x267
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xcc
+ .byte 0x33
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xd
+ .4byte .LASF3216
+ .byte 0x1
+ .byte 0xce
+ .byte 0xe
+ .4byte 0x7b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xd
+ .4byte .LASF3217
+ .byte 0x1
+ .byte 0xce
+ .byte 0x19
+ .4byte 0x7b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3218
+ .byte 0x1
+ .byte 0xbf
+ .byte 0x6
+ .4byte .LFB9
+ .4byte .LFE9-.LFB9
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x28d
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xbf
+ .byte 0x25
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3220
+ .byte 0x1
+ .byte 0xae
+ .byte 0xc
+ .4byte 0xa2
+ .4byte .LFB8
+ .4byte .LFE8-.LFB8
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x2b7
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xae
+ .byte 0x29
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3221
+ .byte 0x1
+ .byte 0xa1
+ .byte 0x6
+ .4byte .LFB7
+ .4byte .LFE7-.LFB7
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x2dd
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0xa1
+ .byte 0x28
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3222
+ .byte 0x1
+ .byte 0x94
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x303
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0x94
+ .byte 0x2c
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3223
+ .byte 0x1
+ .byte 0x87
+ .byte 0x6
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x329
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0x87
+ .byte 0x27
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3224
+ .byte 0x1
+ .byte 0x7a
+ .byte 0x6
+ .4byte .LFB4
+ .4byte .LFE4-.LFB4
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x34f
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0x7a
+ .byte 0x2b
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3225
+ .byte 0x1
+ .byte 0x4a
+ .byte 0x6
+ .4byte .LFB3
+ .4byte .LFE3-.LFB3
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x393
+ .byte 0xb
+ .4byte .LASF3214
+ .byte 0x1
+ .byte 0x4a
+ .byte 0x1f
+ .4byte 0x147
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3226
+ .byte 0x1
+ .byte 0x4a
+ .byte 0x35
+ .4byte 0x16e
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0xb
+ .4byte .LASF3227
+ .byte 0x1
+ .byte 0x4a
+ .byte 0x4f
+ .4byte 0x1a1
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0xe
+ .4byte .LASF3231
+ .byte 0x1
+ .byte 0x2e
+ .byte 0x6
+ .4byte .LFB2
+ .4byte .LFE2-.LFB2
+ .byte 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0x5
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0x6
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xd
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xe
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .byte 0x3
+ .byte 0x24
+ .byte 0x5
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .file 6 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x6
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF341
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x7
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF342
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF343
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x8
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF344
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x9
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 11 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xb
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .file 12 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xc
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF528
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xd
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x5
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .byte 0x3
+ .byte 0x36
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x20
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2953
+ .file 33 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3017
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3169
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF339
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF340
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF348
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF349
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF360
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF371
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF372
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF373
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF374
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF403
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF404
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF382
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF381
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF420
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF421
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF489
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF490
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF525
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF526
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF709
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF710
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF778
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF779
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1116
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1117
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1124
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1125
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1225
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1226
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1324
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1325
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1331
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1332
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1361
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1362
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1476
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1483
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1484
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1597
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1598
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1757
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1869
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1878
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1879
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1896
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1920
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1953
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1990
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1991
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2017
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2018
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2041
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2042
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2074
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2075
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2284
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2324
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2405
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2445
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2467
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2588
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2794
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2816
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2936
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2937
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2952
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2965
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2983
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF2999
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF3000
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3001
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3003
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3006
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3016
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3022
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3042
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3047
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.42.52891d75061e5b2f67234aff30665892,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3057
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3073
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF3074
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3086
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3104
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3120
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF3121
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3124
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3127
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF3137
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF3138
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF3143
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF3163
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF2749:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2378:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1466:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF2890:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF366:
+ .string "___int16_t_defined 1"
+.LASF2139:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF758:
+ .string "BKP_DATA BITS(0,15)"
+.LASF885:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1815:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF1510:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF3040:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF1596:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF2837:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF835:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1277:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2340:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2048:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF1302:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF2018:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF2309:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF2989:
+ .string "_T_WCHAR "
+.LASF1880:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF537:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1493:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF1853:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2767:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2375:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF2689:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2352:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF510:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF2594:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF914:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF2439:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2081:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF2329:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2754:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF3156:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1096:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF3176:
+ .string "long unsigned int"
+.LASF727:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1647:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF2985:
+ .string "__wchar_t__ "
+.LASF2289:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF1655:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF501:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1549:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1340:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF755:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2653:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF3092:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF2292:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF478:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF1883:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF1037:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF2430:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF2982:
+ .string "_SIZET_ "
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF3213:
+ .string "exti_software_interrupt_enable"
+.LASF2785:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1116:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF439:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1488:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF1599:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF2177:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF581:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2834:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF1226:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3042:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF2920:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF1617:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF1942:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF341:
+ .string "SYSTEM_GD32VF103_H "
+.LASF1394:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF459:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1048:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF452:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF3053:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1651:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF2938:
+ .string "WWDGT WWDGT_BASE"
+.LASF413:
+ .string "_UINT32_T_DECLARED "
+.LASF1278:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF784:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1659:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF674:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1685:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2307:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF2946:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF2855:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF435:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1115:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF1107:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF1431:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1017:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF993:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF1778:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF2175:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1604:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF386:
+ .string "short +1"
+.LASF1751:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1480:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF2686:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF702:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF2882:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF2863:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF1014:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF678:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2114:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2810:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF467:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1701:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF512:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF2868:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2668:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2662:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF1920:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2718:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF1642:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1433:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF511:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1000:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2436:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF3215:
+ .string "exti_interrupt_flag_clear"
+.LASF1992:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1372:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF1144:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF3112:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2122:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF2861:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF3065:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF1391:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF421:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1583:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF3006:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF2179:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1610:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF3203:
+ .string "exti_line_enum"
+.LASF3018:
+ .string "_RISCV_CONST_H "
+.LASF2412:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF2303:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1176:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF2962:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF2925:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2486:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1786:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF2423:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2025:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2414:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2410:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF2316:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1728:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF2615:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2229:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF1975:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF669:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2434:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF3173:
+ .string "short int"
+.LASF1735:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF551:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1230:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2010:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1769:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF2464:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2206:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF2400:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF2457:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF1342:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF3125:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF1520:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF548:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF350:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2534:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF1801:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2636:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF2380:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF1995:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF3225:
+ .string "exti_init"
+.LASF899:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2874:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1324:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF1712:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF2373:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF759:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1258:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF762:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF1846:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF795:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF465:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF666:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF532:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1237:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF946:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2254:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF927:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF958:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF2023:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF1056:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF2047:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF2647:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF451:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF642:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2090:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF813:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2354:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF3034:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2180:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF904:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF639:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF2288:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1262:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2454:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2791:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF2684:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF3013:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1835:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF1337:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1241:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF2978:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF1100:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF801:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2060:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1734:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF1956:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF1632:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF948:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3180:
+ .string "uint32_t"
+.LASF870:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF2916:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1855:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF401:
+ .string "__LEAST8 \"hh\""
+.LASF1446:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1263:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1149:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2011:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF1339:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF2644:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF2589:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF814:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2471:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1629:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2651:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF1865:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2449:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1156:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF3090:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF3078:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF1063:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF2711:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2776:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF2006:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF3222:
+ .string "exti_interrupt_disable"
+.LASF860:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF640:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF2544:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF1170:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF2453:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF2328:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2652:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF1320:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF1574:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF1888:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF2964:
+ .string "_GCC_PTRDIFF_T "
+.LASF1590:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF1534:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF3145:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2394:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2427:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1083:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF829:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2165:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1412:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF387:
+ .string "__int20 +2"
+.LASF343:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF552:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF2397:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1541:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2359:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF1708:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1369:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2279:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2516:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2419:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1690:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF800:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF930:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF880:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF3185:
+ .string "EXTI_1"
+.LASF2845:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF1297:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1720:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF806:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1020:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2281:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF2490:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1805:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF3077:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF2213:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF3100:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1183:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2692:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF2875:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF1516:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2416:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1639:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2444:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF2944:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF942:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF431:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF3041:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2857:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2437:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF2608:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1854:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF488:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF2219:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2518:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2071:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF1907:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF1095:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF962:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1085:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1345:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1673:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1133:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF2625:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF362:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1400:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF2034:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF330:
+ .string "GD32VF103_H "
+.LASF2720:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF427:
+ .string "__int_fast16_t_defined 1"
+.LASF1489:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF1080:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF2020:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1830:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF332:
+ .string "__O volatile"
+.LASF2699:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF567:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1833:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF1367:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF2513:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF970:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2355:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF539:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2547:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF2614:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF3117:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF363:
+ .string "__have_longlong64 1"
+.LASF852:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF895:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF2866:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF812:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF2331:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF404:
+ .string "__LEAST64 \"ll\""
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF1826:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1519:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1059:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1184:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2326:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1147:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF2322:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2478:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF2843:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF1887:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF2949:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1381:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2819:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1175:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1568:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2601:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1108:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF821:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF2732:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF388:
+ .string "__int20__ +2"
+.LASF1310:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1783:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1799:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF859:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF1211:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1399:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2184:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1448:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF618:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF2133:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF1600:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF3130:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF1473:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1376:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2413:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF2549:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF2221:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF605:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF1780:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF1949:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF2013:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF2051:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2294:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF1895:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF883:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF2888:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF414:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF1722:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF540:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF2914:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2428:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2505:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF2441:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF357:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF549:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF905:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF830:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF3163:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1435:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF923:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF2169:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2233:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF872:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF3194:
+ .string "EXTI_10"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF2099:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2183:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF1389:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF854:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF1782:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2591:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF2902:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF3106:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1208:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF533:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1560:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF565:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1067:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1744:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF2127:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2197:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1255:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF2458:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2872:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1021:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF1125:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF995:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2098:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1240:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF3004:
+ .string "__need_NULL"
+.LASF2671:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1416:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2598:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1553:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2538:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF1961:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2262:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF542:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2733:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2095:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2768:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF3219:
+ .string "exti_interrupt_flag_get"
+.LASF989:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF2285:
+ .string "GD32VF103_RTC_H "
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2695:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2376:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF526:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF2083:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF2182:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF925:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2223:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2822:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF1985:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF2164:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF665:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2246:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF3132:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2125:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF2770:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF3059:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2031:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF2172:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF606:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF834:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2650:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF2152:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1132:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2558:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1789:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF529:
+ .string "ADC0 ADC_BASE"
+.LASF1393:
+ .string "FMC_CTL_START BIT(6)"
+.LASF2202:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF1076:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF1362:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF1090:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF1906:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2497:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF573:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF2236:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF1772:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF416:
+ .string "_UINT64_T_DECLARED "
+.LASF504:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF2899:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF2270:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF508:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF3016:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF3139:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1508:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF1676:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF2056:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF966:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1682:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF1546:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF2811:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF1904:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2702:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1856:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF1844:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2750:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1463:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1123:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1838:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF1979:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF3052:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF1905:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF2870:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF1420:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF1283:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF1622:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF866:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF3110:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2848:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF1468:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF374:
+ .string "_SYS__INTSUP_H "
+.LASF2508:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF913:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2448:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF2679:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2225:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2390:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF2877:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF799:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF2014:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF2347:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF810:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF1959:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF1467:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF1988:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF390:
+ .string "long +4"
+.LASF1266:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1072:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF2885:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2026:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2130:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1775:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF2101:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF2820:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF1918:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF590:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF446:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF2252:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF681:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2723:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2642:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF912:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2238:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2729:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF889:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1296:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF2111:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF1936:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1624:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2528:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF1986:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF607:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1409:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1633:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF2389:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF1699:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF3054:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF2728:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2886:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF394:
+ .string "__INT16 \"h\""
+.LASF2633:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2204:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF957:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF2545:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2343:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF2080:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF601:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1129:
+ .string "DAC1 (1U)"
+.LASF680:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF3008:
+ .string "TIMER_MSIP 0xFFC"
+.LASF3002:
+ .string "NULL"
+.LASF782:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF1347:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF331:
+ .string "__I volatile const"
+.LASF1770:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF1003:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2726:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF936:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2145:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF1592:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF649:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1686:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2132:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1093:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF2865:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF978:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1761:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF846:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1515:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF3048:
+ .string "EXTI EXTI_BASE"
+.LASF1917:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF1881:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1658:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF3082:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1338:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF1903:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF643:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF2002:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF2131:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF688:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF514:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2199:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF689:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF2218:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF773:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF2788:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF2240:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF968:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2319:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF1943:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF1793:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF1103:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1106:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2582:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1452:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF766:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF3168:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF613:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF438:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1538:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF781:
+ .string "CAN0 CAN_BASE"
+.LASF400:
+ .string "__FAST64 \"ll\""
+.LASF1134:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1465:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1054:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1800:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF988:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF3111:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF2887:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF2658:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF2382:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF1776:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1040:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF1874:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2646:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF2736:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF1677:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF1004:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2247:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1724:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF959:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF1898:
+ .string "DBG DBG_BASE"
+.LASF1484:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF1365:
+ .string "OB OB_BASE"
+.LASF2666:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2639:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF3075:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF977:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF3182:
+ .string "FlagStatus"
+.LASF3119:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF2977:
+ .string "_SIZE_T_DEFINED "
+.LASF437:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF1908:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF1451:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF2156:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF1899:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF1885:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2599:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2805:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1470:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF395:
+ .string "__INT32 \"l\""
+.LASF761:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1293:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF1440:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF2258:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF347:
+ .string "__NEWLIB__ 4"
+.LASF1531:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2602:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF2998:
+ .string "_GCC_WCHAR_T "
+.LASF1267:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF3093:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF1157:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF2063:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF1960:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1628:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF351:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2597:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2649:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF2840:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF365:
+ .string "___int8_t_defined 1"
+.LASF3144:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF2862:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF1811:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF460:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2093:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF932:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2524:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF954:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2634:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF1897:
+ .string "GD32VF103_DBG_H "
+.LASF440:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2334:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF3121:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF2912:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF1790:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1717:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1097:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF1879:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2832:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF947:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF1823:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2575:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF2103:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF364:
+ .string "__have_long32 1"
+.LASF2963:
+ .string "___int_ptrdiff_t_h "
+.LASF1377:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1460:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2958:
+ .string "_T_PTRDIFF_ "
+.LASF1928:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF1808:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF2456:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF2501:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF1382:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1462:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF2266:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF340:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF481:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF1171:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF2953:
+ .string "N200_FUNC_H "
+.LASF1572:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF788:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1505:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2760:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1588:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2499:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF2980:
+ .string "___int_size_t_h "
+.LASF2027:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF3143:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2714:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2590:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF2320:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1442:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1753:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF2645:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1693:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF809:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF1458:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF1927:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF874:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF1890:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF2442:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2244:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF2743:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2242:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF1971:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF525:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2786:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2091:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF661:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF2804:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF2574:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1829:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF602:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF3044:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2623:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF2937:
+ .string "GD32VF103_WWDGT_H "
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF2883:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF922:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2537:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF455:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF937:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF1475:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2462:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1634:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF1749:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF2161:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF911:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1444:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF1309:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF918:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF820:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF1993:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF1947:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF490:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1359:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2115:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF596:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1834:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1837:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1840:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1438:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF338:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF1597:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2168:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1421:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF1102:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1242:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1390:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1836:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF1318:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2823:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF2041:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2654:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF629:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2553:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF1586:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF2038:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF1609:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF2876:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF2994:
+ .string "_WCHAR_T_DEFINED "
+.LASF1912:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF382:
+ .string "long"
+.LASF3014:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2700:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2087:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF3166:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF1274:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2562:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF2929:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF356:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF3122:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF1731:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1174:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2286:
+ .string "RTC RTC_BASE"
+.LASF952:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF3157:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1121:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF1998:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF787:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF1424:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1847:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF1012:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2096:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF999:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF1550:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF3128:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF2745:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF1288:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF786:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2869:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1209:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2104:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF3137:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF3058:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF368:
+ .string "___int64_t_defined 1"
+.LASF2409:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1057:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF2124:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF1937:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF1260:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF456:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF3051:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF1291:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1618:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF3161:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2402:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF677:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF953:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1437:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF3220:
+ .string "exti_flag_get"
+.LASF1944:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2251:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2660:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF2129:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1333:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2682:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2789:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF2273:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2399:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF3138:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF1807:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF1244:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2396:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1558:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF1746:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF1892:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2640:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2356:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2648:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF1994:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF3150:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1228:
+ .string "DMA0 (DMA_BASE)"
+.LASF556:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF2138:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1795:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF448:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF1698:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF432:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1280:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF1064:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF408:
+ .string "__int8_t_defined 1"
+.LASF1254:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1643:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1299:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF973:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF1112:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF1353:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2314:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF491:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2148:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1611:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF352:
+ .string "__ATFILE_VISIBLE 0"
+.LASF2082:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2381:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF668:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1335:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1813:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF1580:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF892:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF851:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF3212:
+ .string "exti_software_interrupt_disable"
+.LASF1738:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF507:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1140:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1577:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF2746:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF979:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF574:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2761:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF1094:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1261:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1378:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF950:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF3085:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF1128:
+ .string "DAC0 (0U)"
+.LASF969:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2293:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF2085:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1441:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF2984:
+ .string "__need_size_t"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1532:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF486:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF617:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF1544:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF2040:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF2931:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2787:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1455:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF3088:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF2844:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF768:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF1916:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF789:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1173:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2551:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF570:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2829:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF1938:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2701:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF2159:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF2851:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1454:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF2568:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF1344:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2957:
+ .string "_PTRDIFF_T "
+.LASF1113:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2300:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1476:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF2991:
+ .string "_WCHAR_T_ "
+.LASF2196:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF3195:
+ .string "EXTI_11"
+.LASF3196:
+ .string "EXTI_12"
+.LASF3197:
+ .string "EXTI_13"
+.LASF3198:
+ .string "EXTI_14"
+.LASF3199:
+ .string "EXTI_15"
+.LASF1375:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF3201:
+ .string "EXTI_17"
+.LASF3202:
+ .string "EXTI_18"
+.LASF563:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF497:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2738:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1098:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF1909:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF2068:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2790:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2492:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2312:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1765:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF774:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF1081:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF843:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF1957:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF779:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF960:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1668:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF2045:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF2620:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF1047:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1290:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF360:
+ .string "__XSI_VISIBLE 0"
+.LASF2904:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF2417:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1711:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2315:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2094:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2297:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1436:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF1060:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF616:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF1989:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF566:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF2053:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2839:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF3216:
+ .string "flag_left"
+.LASF1011:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2232:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1082:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF593:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2485:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF2121:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF2923:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF833:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF371:
+ .string "___int_least32_t_defined 1"
+.LASF3073:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF1414:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF2054:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2404:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF3097:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF557:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1403:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1201:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF3017:
+ .string "N200_ECLIC_H "
+.LASF2521:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2704:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1689:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF2368:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF2853:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF1506:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF583:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF450:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1535:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF2618:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF3039:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF2842:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF2927:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF3062:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1721:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF1050:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF383:
+ .string "signed +0"
+.LASF1322:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF1707:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF685:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF1142:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF1163:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF1626:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF424:
+ .string "__int_least32_t_defined 1"
+.LASF1249:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1245:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF412:
+ .string "_INT32_T_DECLARED "
+.LASF1417:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF2561:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF411:
+ .string "__int16_t_defined 1"
+.LASF2794:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF652:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF1185:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF2194:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2503:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF1041:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF996:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF522:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF1109:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF1044:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF3000:
+ .string "_BSD_WCHAR_T_"
+.LASF2061:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF2879:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF934:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF2910:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF3116:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2569:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF797:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2337:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1867:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF3109:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF2140:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF1806:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2734:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF558:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2674:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2401:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF2149:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF398:
+ .string "__FAST16 "
+.LASF1077:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF805:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF2859:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF3055:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF1945:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF3205:
+ .string "EXTI_EVENT"
+.LASF1638:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF2476:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1203:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF500:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF1110:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF1948:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2269:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3010:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2318:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF949:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF534:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF757:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF2475:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF3210:
+ .string "EXTI_TRIG_NONE"
+.LASF825:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1787:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF1411:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1843:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF1380:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF2295:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF863:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF2424:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF1513:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2216:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF2975:
+ .string "_BSD_SIZE_T_ "
+.LASF2346:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF472:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF1953:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF2323:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF2201:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF2783:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1824:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2502:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF429:
+ .string "__int_fast64_t_defined 1"
+.LASF1816:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF938:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF1569:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF2997:
+ .string "__INT_WCHAR_T_H "
+.LASF2773:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2624:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF577:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF1387:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1287:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2317:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2744:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2214:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF1913:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1336:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF422:
+ .string "__int_least8_t_defined 1"
+.LASF951:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF1601:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF2546:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF3101:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1005:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF2078:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF418:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2871:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2374:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF2411:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF955:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF3086:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF406:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF1137:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2523:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF1450:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF2656:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2496:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF1540:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF644:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1073:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF2035:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF1239:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF1864:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF945:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2469:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF3050:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1091:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF2019:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF1573:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1756:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF2150:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1159:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF764:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF1385:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF1498:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2803:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2854:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1872:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2677:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF419:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1364:
+ .string "FMC FMC_BASE"
+.LASF2665:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1562:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF750:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1819:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF1802:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF903:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF2276:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF1205:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2529:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF3204:
+ .string "EXTI_INTERRUPT"
+.LASF2186:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2021:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2533:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1554:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF998:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1832:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1594:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF2896:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF868:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2585:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF664:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1352:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2208:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF1857:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF1933:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2282:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF2584:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1646:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1653:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF2685:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF1681:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF2965:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF436:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF965:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF3154:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2657:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF3057:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF1207:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2687:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2835:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1439:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF858:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2710:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF3174:
+ .string "short unsigned int"
+.LASF742:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF901:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1522:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF2350:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF2670:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF3007:
+ .string "N200_TIMER_H "
+.LASF1145:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF576:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF3009:
+ .string "TIMER_MSIP_size 0x4"
+.LASF1929:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF2952:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF2797:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF1741:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF2627:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF1321:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1425:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF897:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1742:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF3140:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1547:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2067:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF1615:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF718:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1275:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2370:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF2489:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1779:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF3096:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF399:
+ .string "__FAST32 "
+.LASF1251:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF3066:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF730:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF1584:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF3230:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF468:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF869:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2889:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF775:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF824:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF2878:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2305:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1630:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1069:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF1764:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF578:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2737:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1052:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF2447:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2725:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2500:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF376:
+ .string "signed"
+.LASF975:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF2386:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF553:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF354:
+ .string "__GNU_VISIBLE 0"
+.LASF2769:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2257:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1517:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF3126:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1422:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2512:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1252:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF2057:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1273:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2064:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1181:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1497:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2228:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF2084:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF2667:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF2724:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF3049:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF676:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF402:
+ .string "__LEAST16 \"h\""
+.LASF1419:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF3133:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF2372:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2757:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF2555:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2032:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF1248:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF2901:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF1869:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1198:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF1503:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF3037:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF2123:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1319:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF2908:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF2932:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2841:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2498:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1666:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF3214:
+ .string "linex"
+.LASF476:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2058:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2926:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF924:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF1910:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF850:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF1398:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1703:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF550:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1556:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2477:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2171:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF1773:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2631:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1313:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2850:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2626:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF580:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF2771:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF888:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2349:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF1124:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF819:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF1349:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF3159:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF3178:
+ .string "long long unsigned int"
+.LASF1923:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF3217:
+ .string "flag_right"
+.LASF2494:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF987:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1314:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF857:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF1120:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF474:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF1954:
+ .string "GD32VF103_RCU_H "
+.LASF785:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF2154:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1397:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF3083:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1281:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF900:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF1418:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1849:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2813:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF941:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF725:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3172:
+ .string "unsigned char"
+.LASF3091:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF2907:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2541:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2393:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1089:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF3184:
+ .string "EXTI_0"
+.LASF2628:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF3186:
+ .string "EXTI_2"
+.LASF3187:
+ .string "EXTI_3"
+.LASF3188:
+ .string "EXTI_4"
+.LASF3189:
+ .string "EXTI_5"
+.LASF3190:
+ .string "EXTI_6"
+.LASF3191:
+ .string "EXTI_7"
+.LASF3192:
+ .string "EXTI_8"
+.LASF3193:
+ .string "EXTI_9"
+.LASF3148:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF1851:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF1974:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1578:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1526:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2593:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1539:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF3118:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF1831:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2638:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2800:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF2174:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF1810:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF1575:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF1591:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF2004:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF3146:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF1614:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF1695:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF464:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2588:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF1877:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF2465:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2572:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1860:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1027:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2422:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2348:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF1725:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF2782:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF528:
+ .string "GD32VF103_ADC_H "
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF842:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF348:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1285:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2211:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF3076:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF2158:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF579:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF403:
+ .string "__LEAST32 \"l\""
+.LASF582:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1386:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF2759:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF1388:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2641:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF2470:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF3094:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1039:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2392:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF2999:
+ .string "_WCHAR_T_DECLARED "
+.LASF597:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2611:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1521:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF894:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF1350:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF2105:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF2573:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF3012:
+ .string "TIMER_MTIME 0x0"
+.LASF1486:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF487:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF972:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2752:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1295:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF832:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF656:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF521:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1119:
+ .string "CRC CRC_BASE"
+.LASF3079:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF849:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF886:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF2852:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF1518:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF560:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF876:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF3231:
+ .string "exti_deinit"
+.LASF915:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF2973:
+ .string "__SIZE_T "
+.LASF2365:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF1752:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF2195:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF349:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF3033:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1620:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1718:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF345:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1346:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1499:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF1842:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF1101:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1714:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF494:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2550:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF1978:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2474:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2836:
+ .string "USART_STAT_TC BIT(6)"
+.LASF1366:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2619:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF2930:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF2451:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF1715:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1136:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF2178:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF1150:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2530:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2357:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2812:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF909:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF499:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF2143:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF1494:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF2135:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF864:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF2858:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF1952:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF1984:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF2928:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF816:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2515:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF620:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF2250:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF1796:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF2383:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1710:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF3224:
+ .string "exti_interrupt_enable"
+.LASF2763:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1841:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF1692:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2072:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF967:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF732:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF935:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF1977:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF1343:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF1825:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1270:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2669:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF519:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2784:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF1407:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF2284:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2742:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF738:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2525:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF2112:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF2205:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF3029:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2673:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF342:
+ .string "_STDINT_H "
+.LASF3115:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF1126:
+ .string "GD32VF103_DAC_H "
+.LASF2722:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1763:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1025:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF1990:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF355:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF2261:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF2527:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF2680:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF2253:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF2905:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2659:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF3164:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1214:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF2066:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2847:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF1168:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF963:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF2919:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF3036:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF1861:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2398:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2256:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF726:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF1757:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF731:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF2255:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF1009:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2694:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1871:
+ .string "FWDGT FWDGT_BASE"
+.LASF3107:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3179:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1561:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1812:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF2880:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2200:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF475:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF931:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1271:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2298:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2781:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF2217:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF2024:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF1727:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF877:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF804:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2046:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF2802:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF794:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF483:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1525:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF1750:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF1966:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF929:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1483:
+ .string "AFIO AFIO_BASE"
+.LASF1356:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF844:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1598:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2509:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF2995:
+ .string "_WCHAR_T_H "
+.LASF1911:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2798:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF545:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF964:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF585:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF2097:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF2943:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF2897:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF2972:
+ .string "_T_SIZE "
+.LASF482:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF780:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1848:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1650:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2407:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF1785:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF509:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF647:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF1164:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF1662:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF2960:
+ .string "__PTRDIFF_T "
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF1304:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF765:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF3011:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF2801:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2506:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF496:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF2833:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF826:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF1896:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2287:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF462:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1469:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF1875:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF672:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF3183:
+ .string "long double"
+.LASF1551:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2595:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF811:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1130:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1231:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2621:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2713:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2816:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF2559:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF1373:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF1925:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF865:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF2193:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF2277:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF3149:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF3105:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF2706:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF1395:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF891:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF3084:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF2630:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF1555:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF910:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF2959:
+ .string "_T_PTRDIFF "
+.LASF1739:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF645:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF503:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF535:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF1939:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF1619:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF2979:
+ .string "_SIZE_T_DECLARED "
+.LASF2353:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF608:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF763:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2227:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF827:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF2967:
+ .string "__size_t__ "
+.LASF2467:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF604:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2715:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF2231:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF1803:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF691:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF2827:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF1282:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF1238:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF1850:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF506:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF943:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF3068:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1697:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2719:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF3136:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF3103:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF466:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF3151:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF3021:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1061:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF1404:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF1509:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF1902:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1784:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF2079:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF667:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF916:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF790:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1870:
+ .string "GD32VF103_FWDGT_H "
+.LASF1148:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF3071:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF426:
+ .string "__int_fast8_t_defined 1"
+.LASF621:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2780:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF1962:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2688:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1284:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1490:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2466:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1026:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF2956:
+ .string "_ANSI_STDDEF_H "
+.LASF1625:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF441:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF2987:
+ .string "_WCHAR_T "
+.LASF2302:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF839:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF3026:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF1737:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF1980:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1612:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2433:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1461:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF492:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF1332:
+ .string "__SEV eclic_send_event"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1135:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF838:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2849:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1758:
+ .string "GD32VF103_I2C_H "
+.LASF2299:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2721:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1351:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2263:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1605:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF1684:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF1042:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2275:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2191:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF2017:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF485:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF1529:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2408:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF711:
+ .string "GD32VF103_BKP_H "
+.LASF2137:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2358:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF1565:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF1987:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF2976:
+ .string "_SIZE_T_DEFINED_ "
+.LASF737:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1608:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF2042:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2488:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2220:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF3165:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF1250:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2536:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF353:
+ .string "__BSD_VISIBLE 0"
+.LASF741:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2856:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF2898:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2160:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF653:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF1036:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2867:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF1180:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1582:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF2717:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF2268:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2483:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF2107:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF396:
+ .string "__INT64 \"ll\""
+.LASF1858:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF3027:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF1127:
+ .string "DAC DAC_BASE"
+.LASF2992:
+ .string "_BSD_WCHAR_T_ "
+.LASF976:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF407:
+ .string "_UINT8_T_DECLARED "
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF994:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2371:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF2941:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1078:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1264:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2936:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF1914:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2387:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1428:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2086:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF729:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF660:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2603:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF3124:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF719:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1015:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF584:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF2795:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF2690:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF803:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF447:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1307:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1006:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1876:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF610:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF740:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF2758:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1868:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF991:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1464:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF559:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF561:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1010:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF728:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF555:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2324:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF746:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF818:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2028:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF3035:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF335:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF1736:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF2308:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF599:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1794:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF469:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF391:
+ .string "_INTPTR_EQ_INT "
+.LASF2617:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2222:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF2016:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF898:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF1477:
+ .string "GD32VF103_GPIO_H "
+.LASF3080:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1706:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF2993:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2210:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF1153:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF1688:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF1884:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF692:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF3098:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF2074:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF2664:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF1368:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF2691:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF380:
+ .string "__int20"
+.LASF2777:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF1941:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF734:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF739:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1641:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2274:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF798:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1325:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2069:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF2895:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF1086:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1536:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF760:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF1253:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2342:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF591:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2596:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF1900:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF1139:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF3063:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF3207:
+ .string "EXTI_TRIG_RISING"
+.LASF2580:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF1683:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF2893:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF523:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF2367:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF2892:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF2325:
+ .string "GD32VF103_SPI_H "
+.LASF333:
+ .string "__IO volatile"
+.LASF2003:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF1118:
+ .string "GD32VF103_CRC_H "
+.LASF752:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1459:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1279:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF2894:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2459:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1298:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1804:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1453:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF3089:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF1687:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF2065:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1210:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF2968:
+ .string "__SIZE_T__ "
+.LASF1862:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF1878:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1745:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2088:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF2037:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF2224:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2062:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1679:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2363:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1334:
+ .string "EXMC (EXMC_BASE)"
+.LASF1051:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF385:
+ .string "char +0"
+.LASF1589:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF1155:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF1008:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF445:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF2535:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF751:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF513:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF1951:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2239:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2351:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF3114:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF1426:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF2942:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1636:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF2109:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1678:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1663:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF2739:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF2435:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF568:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF2740:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF3056:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF370:
+ .string "___int_least16_t_defined 1"
+.LASF2747:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF1259:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2846:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2237:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF3031:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF2753:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1392:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1074:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF808:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF1934:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF926:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF2903:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF3030:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF2909:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF2126:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF3158:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF2683:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF1429:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF562:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF367:
+ .string "___int32_t_defined 1"
+.LASF1969:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1182:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF1500:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2735:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF3153:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF2043:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2162:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF2015:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1648:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2772:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF1492:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF493:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF2935:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF1891:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1570:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2388:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF2511:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2799:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF423:
+ .string "__int_least16_t_defined 1"
+.LASF1169:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2226:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF2990:
+ .string "__WCHAR_T "
+.LASF409:
+ .string "_INT16_T_DECLARED "
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1046:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF919:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF1602:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2576:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF2155:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF3175:
+ .string "long int"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF2116:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1768:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2461:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2176:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF329:
+ .string "GD32VF103_EXTI_H "
+.LASF378:
+ .string "char"
+.LASF1635:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF1341:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF2075:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF881:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2587:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF392:
+ .string "_INT32_EQ_LONG "
+.LASF2344:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF1070:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF2198:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2748:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF3069:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF908:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF1924:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF598:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF3221:
+ .string "exti_event_disable"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF1967:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2756:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF686:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF2762:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF1674:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF687:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF2120:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2873:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2675:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2362:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF2891:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2510:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF2564:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2696:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF663:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF1732:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF1406:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1104:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF517:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1774:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF2039:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF2986:
+ .string "__WCHAR_T__ "
+.LASF2272:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1563:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF2643:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1043:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1496:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF3129:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2166:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2265:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF1996:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2468:
+ .string "GD32VF103_TIMER_H "
+.LASF1018:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF1915:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF2955:
+ .string "_STDDEF_H_ "
+.LASF722:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF3043:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF2565:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF841:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF1595:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF1964:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF990:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF1958:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF2077:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2463:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2076:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF921:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF479:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF856:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF1016:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF862:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1443:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF2947:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1661:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2100:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF3162:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1023:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1680:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF2612:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2007:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF564:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF2215:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF1235:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF815:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1631:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2484:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2815:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF2209:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF2446:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF807:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF3155:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF2241:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF831:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF1559:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF1818:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF531:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF721:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF2911:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF428:
+ .string "__int_fast32_t_defined 1"
+.LASF1548:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1472:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1814:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF1167:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF1045:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF956:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF2570:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF1901:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF650:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1141:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2306:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1172:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF3102:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF720:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF2136:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF1940:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF887:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF1423:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF1331:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF2520:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF453:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1797:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF1866:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1457:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1616:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF736:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF3025:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF884:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF2141:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2610:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF3019:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1652:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2403:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF896:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF2826:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF710:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF753:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF3135:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2709:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF1432:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF2022:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF715:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1487:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1049:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF384:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1256:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF1581:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF3200:
+ .string "EXTI_16"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2005:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF2278:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF2884:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF879:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF675:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF2052:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF594:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF2712:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2479:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF417:
+ .string "__int64_t_defined 1"
+.LASF724:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF1982:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF2764:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF379:
+ .string "short"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1146:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF1402:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF772:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2807:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2243:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF992:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF2950:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3228:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1396:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF749:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF871:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF735:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1013:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF1702:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2583:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF1545:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF2345:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2425:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF592:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF939:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1654:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF1999:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF359:
+ .string "__SVID_VISIBLE 0"
+.LASF1983:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2552:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF3134:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1542:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF748:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF1247:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF420:
+ .string "_INTPTR_T_DECLARED "
+.LASF2119:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF1766:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF2578:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF2142:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF823:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2106:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF723:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF940:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF1700:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF1671:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF2609:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1227:
+ .string "GD32VF103_DMA_H "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF1158:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF1893:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2481:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF1088:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF1889:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2579:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF1828:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF754:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2249:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF1955:
+ .string "RCU RCU_BASE"
+.LASF2629:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2514:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2703:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF2364:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF1922:
+ .string "PMU PMU_BASE"
+.LASF747:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2495:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2426:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF619:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF369:
+ .string "___int_least8_t_defined 1"
+.LASF2157:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF2059:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF802:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF670:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1781:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2440:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1623:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF397:
+ .string "__FAST8 "
+.LASF1932:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF648:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1675:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF572:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF1587:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF630:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF2192:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF530:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF2366:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF2283:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2280:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2792:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF3208:
+ .string "EXTI_TRIG_FALLING"
+.LASF2637:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF1114:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1065:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2260:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1233:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2831:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF2793:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1471:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF2207:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF2716:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF430:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1637:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1839:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF2778:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF1656:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF520:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF2313:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF546:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF2336:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1649:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF2147:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF906:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1664:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF518:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2421:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF1071:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF1384:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2296:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF2542:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF3061:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF595:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF1501:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF1997:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF3171:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2600:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1726:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF2033:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF1968:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1001:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2540:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF393:
+ .string "__INT8 \"hh\""
+.LASF2167:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1640:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF2809:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF498:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF2913:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF853:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF1143:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF2418:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF434:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF3167:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF541:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF1066:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF1593:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1491:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2452:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF1627:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2678:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1566:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF1930:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF2806:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF1533:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF1713:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF2361:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF3181:
+ .string "RESET"
+.LASF389:
+ .string "int +2"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF2267:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF2163:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2385:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF2482:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2290:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1084:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1062:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF875:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF461:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF997:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2548:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1415:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2707:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1657:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1162:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1374:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF3046:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF3120:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF515:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF3060:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF1719:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF983:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2170:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF454:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1691:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF756:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF1886:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF443:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2391:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF2676:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF1512:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2828:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF646:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF837:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF3113:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2775:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1269:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1246:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF3095:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1257:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2838:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF3227:
+ .string "trig_type"
+.LASF586:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF855:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF745:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1709:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF1055:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF377:
+ .string "unsigned"
+.LASF477:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1798:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF524:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF2443:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF3209:
+ .string "EXTI_TRIG_BOTH"
+.LASF2487:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF2918:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2230:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF1405:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2173:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1363:
+ .string "GD32VF103_FMC_H "
+.LASF2567:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF2817:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF2779:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF2765:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF2921:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF717:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1099:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2304:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF2693:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF480:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF733:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF1926:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1704:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1809:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF336:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1355:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF3087:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF2766:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF638:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF1413:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF543:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF1672:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF744:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2369:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF2050:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF1767:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF339:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF2073:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF907:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF671:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF1022:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2181:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF2151:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1567:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF2961:
+ .string "_PTRDIFF_T_ "
+.LASF1963:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF484:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1514:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF651:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF2526:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF1524:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF716:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF848:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1122:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF1762:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1401:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF1660:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2543:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2338:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF2030:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2001:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2504:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF571:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF2741:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2592:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2672:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF743:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF817:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF1965:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF971:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1229:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF2332:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2522:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2830:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1038:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1931:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF2118:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF433:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2507:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF2321:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF1200:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF654:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1272:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF3141:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF867:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF587:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2203:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF463:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1859:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF2128:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1360:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1002:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF2940:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF2969:
+ .string "_SIZE_T "
+.LASF1286:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF2185:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF1991:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2556:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF575:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2377:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1152:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF2814:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF673:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2259:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF346:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF1827:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF793:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF882:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1665:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1817:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1606:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF2922:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF1294:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF410:
+ .string "_UINT16_T_DECLARED "
+.LASF2012:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF3211:
+ .string "exti_trig_type_enum"
+.LASF3169:
+ .string "EXTI_REG_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1131:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF2632:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1552:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF3229:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_exti.c"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF2560:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF902:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2029:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF457:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF1485:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF944:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF1236:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1696:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF2113:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2821:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF2915:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF344:
+ .string "_SYS_FEATURES_H "
+.LASF840:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1585:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF1079:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF600:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF655:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2616:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF2730:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF449:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2933:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2996:
+ .string "___int_wchar_t_h "
+.LASF1754:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF2102:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF1447:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1730:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF3015:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF712:
+ .string "BKP BKP_BASE"
+.LASF1232:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF1166:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1177:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1058:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2581:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2406:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF3038:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2301:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2330:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF1202:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF603:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2663:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF3127:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF1950:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF381:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF3152:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1410:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF489:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF3022:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF1024:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2948:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF1921:
+ .string "GD32VF103_PMU_H "
+.LASF847:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF1882:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF2900:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF502:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF554:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1755:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF1873:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF2455:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF1053:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2491:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF1667:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF1087:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF3003:
+ .string "NULL ((void *)0)"
+.LASF444:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1820:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF3160:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1111:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF1970:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1474:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2519:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF1317:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1199:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF2473:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF845:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF928:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1613:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF792:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF1528:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1105:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1305:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF1265:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2531:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1151:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF505:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF2981:
+ .string "_GCC_SIZE_T "
+.LASF1557:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF2824:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF1449:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF778:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF375:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF777:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1234:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF3001:
+ .string "__need_wchar_t"
+.LASF1644:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF974:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1729:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF933:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF1748:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1383:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2539:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2864:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1371:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2613:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF2954:
+ .string "_STDDEF_H "
+.LASF1303:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1845:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF3142:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF2970:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2438:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF1747:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1370:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF3131:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF684:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF361:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2327:
+ .string "SPI1 SPI_BASE"
+.LASF2291:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF2974:
+ .string "_SIZE_T_ "
+.LASF2234:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2431:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF3223:
+ .string "exti_event_enable"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1204:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2235:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2248:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF783:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF1946:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF569:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1523:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2563:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2708:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2751:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF1579:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF890:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF641:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF3104:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF2117:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1791:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2395:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1576:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2089:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2190:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF822:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF544:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF337:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF3147:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1075:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF714:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF2971:
+ .string "_T_SIZE_ "
+.LASF2405:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF2755:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF1478:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF2144:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2044:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF473:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2622:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1481:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF2818:
+ .string "USART1 USART_BASE"
+.LASF1543:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF2429:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF442:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1733:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF538:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF2532:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF3226:
+ .string "mode"
+.LASF713:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1705:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1019:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF2009:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF536:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF2264:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1408:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF1068:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF770:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF1206:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF3023:
+ .string "ECLICINTCTLBITS 4"
+.LASF3081:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1777:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF2966:
+ .string "__need_ptrdiff_t"
+.LASF1537:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2415:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1788:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF2360:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF1852:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF3099:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF2934:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF2681:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF3070:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2341:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF2379:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1759:
+ .string "I2C0 I2C_BASE"
+.LASF405:
+ .string "_SYS__STDINT_H "
+.LASF1186:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF3177:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2586:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF2189:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF2480:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF701:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF2774:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF3064:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1723:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF3047:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF2335:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF2108:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF334:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF1495:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF516:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF2472:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2271:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2577:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF873:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF1670:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF3074:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF878:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF682:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF2924:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1621:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF1973:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1138:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1507:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF458:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF2571:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF589:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF1289:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2310:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2212:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF3032:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1434:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1502:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF961:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF1292:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF3072:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF2445:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF2070:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF2188:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF1645:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF2727:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1607:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2055:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1213:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1530:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF2906:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2049:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF3045:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1822:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF2945:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF3206:
+ .string "exti_mode_enum"
+.LASF893:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF2917:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1243:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF2339:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2554:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF1740:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1007:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF1379:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1456:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF2384:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1032:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF588:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF2566:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF2655:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2460:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF2939:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF1976:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF2153:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF679:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1028:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2557:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1301:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2432:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF3123:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF2311:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF1527:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF2988:
+ .string "_T_WCHAR_ "
+.LASF1919:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2187:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF2092:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF2705:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF1326:
+ .string "GD32VF103_ECLIC_H "
+.LASF1863:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF495:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF3218:
+ .string "exti_flag_clear"
+.LASF470:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF1935:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF791:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF1981:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2000:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF3005:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF1161:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF2983:
+ .string "__size_t "
+.LASF2420:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF358:
+ .string "__POSIX_VISIBLE 199009"
+.LASF2008:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2110:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1743:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF3108:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF3028:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2604:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1504:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF2860:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF836:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1571:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF373:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1760:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF796:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF547:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2036:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1479:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2796:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF2134:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF920:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF1716:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF2881:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1276:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2661:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF769:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF527:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2517:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF1603:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2605:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF372:
+ .string "___int_least64_t_defined 1"
+.LASF2825:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF1792:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF861:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1348:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF1669:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF2951:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF1482:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF3024:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF2607:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF3067:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2698:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1092:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1117:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2606:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1179:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF1154:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF1894:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1694:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1445:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF471:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF917:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF662:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF1268:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF2450:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF1972:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF2245:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF1430:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF2697:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF3020:
+ .string "_AT(T,X) ((T)(X))"
+.LASF3170:
+ .string "unsigned int"
+.LASF2333:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1821:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF2146:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF425:
+ .string "__int_least64_t_defined 1"
+.LASF1771:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF771:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2493:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF415:
+ .string "_INT64_T_DECLARED "
+.LASF2635:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF1564:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2731:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF2808:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1160:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1511:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1427:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1300:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c
new file mode 100644
index 0000000000..d7b130a0c6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c
@@ -0,0 +1,648 @@
+/*!
+ \file gd32vf103_fmc.c
+ \brief FMC driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-09-18, V1.0.1, firmware for GD32VF103
+ \version 2020-02-20, V1.0.2, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_fmc.h"
+
+/*!
+ \brief set the FMC wait state counter
+ \param[in] wscnt£ºwait state counter value
+ \arg WS_WSCNT_0: FMC 0 wait state
+ \arg WS_WSCNT_1: FMC 1 wait state
+ \arg WS_WSCNT_2: FMC 2 wait state
+ \param[out] none
+ \retval none
+ */
+void fmc_wscnt_set(uint32_t wscnt)
+{
+ uint32_t reg;
+
+ reg = FMC_WS;
+ /* set the wait state counter value */
+ reg &= ~FMC_WS_WSCNT;
+ FMC_WS = (reg | wscnt);
+}
+
+/*!
+ \brief unlock the main FMC operation
+ \param[in] none
+ \param[out] none
+ \retval none
+ */
+void fmc_unlock(void)
+{
+ if((RESET != (FMC_CTL & FMC_CTL_LK))){
+ /* write the FMC unlock key */
+ FMC_KEY = UNLOCK_KEY0;
+ FMC_KEY = UNLOCK_KEY1;
+ }
+}
+
+/*!
+ \brief lock the main FMC operation
+ \param[in] none
+ \param[out] none
+ \retval none
+ */
+void fmc_lock(void)
+{
+ /* set the LK bit */
+ FMC_CTL |= FMC_CTL_LK;
+}
+
+
+/*!
+ \brief FMC erase page
+ \param[in] page_address: the page address to be erased.
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum fmc_page_erase(uint32_t page_address)
+{
+ fmc_state_enum fmc_state;
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ /* if the last operation is completed, start page erase */
+ if (FMC_READY == fmc_state) {
+ FMC_CTL |= FMC_CTL_PER;
+ FMC_ADDR = page_address;
+ FMC_CTL |= FMC_CTL_START;
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ /* reset the PER bit */
+ FMC_CTL &= ~FMC_CTL_PER;
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief FMC erase whole chip
+ \param[in] none
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum fmc_mass_erase(void)
+{
+ fmc_state_enum fmc_state;
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* start whole chip erase */
+ FMC_CTL |= FMC_CTL_MER;
+ FMC_CTL |= FMC_CTL_START;
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ /* reset the MER bit */
+ FMC_CTL &= ~FMC_CTL_MER;
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief FMC program a word at the corresponding address
+ \param[in] address: address to program
+ \param[in] data: word to program
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum fmc_word_program(uint32_t address, uint32_t data)
+{
+ fmc_state_enum fmc_state = FMC_READY;
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* set the PG bit to start program */
+ FMC_CTL |= FMC_CTL_PG;
+ REG32(address) = data;
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ /* reset the PG bit */
+ FMC_CTL &= ~FMC_CTL_PG;
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+/*
+ \brief FMC program a half word at the corresponding address
+ \param[in] address: address to program
+ \param[in] data: halfword to program
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+*/
+fmc_state_enum fmc_halfword_program(uint32_t address, uint16_t data)
+{
+ fmc_state_enum fmc_state = FMC_READY;
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* set the PG bit to start program */
+ FMC_CTL |= FMC_CTL_PG;
+ REG16(address) = data;
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ /* reset the PG bit */
+ FMC_CTL &= ~FMC_CTL_PG;
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief unlock the option byte operation
+ \param[in] none
+ \param[out] none
+ \retval none
+ */
+void ob_unlock(void)
+{
+ if(RESET == (FMC_CTL & FMC_CTL_OBWEN)){
+ /* write the FMC key */
+ FMC_OBKEY = UNLOCK_KEY0;
+ FMC_OBKEY = UNLOCK_KEY1;
+ }
+
+ /* wait until OBWEN bit is set by hardware */
+ while (RESET == (FMC_CTL & FMC_CTL_OBWEN)){
+ }
+}
+
+/*!
+ \brief lock the option byte operation
+ \param[in] none
+ \param[out] none
+ \retval none
+ */
+void ob_lock(void)
+{
+ /* reset the OBWEN bit */
+ FMC_CTL &= ~FMC_CTL_OBWEN;
+}
+
+/*!
+ \brief erase the FMC option byte
+ unlock the FMC_CTL and option byte before calling this function
+ \param[in] none
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum ob_erase(void)
+{
+ uint16_t temp_spc = FMC_NSPC;
+
+ fmc_state_enum fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ /* check the option byte security protection value */
+ if(RESET != ob_spc_get()){
+ temp_spc = FMC_USPC;
+ }
+
+ if(FMC_READY == fmc_state){
+
+ /* start erase the option byte */
+ FMC_CTL |= FMC_CTL_OBER;
+ FMC_CTL |= FMC_CTL_START;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* reset the OBER bit */
+ FMC_CTL &= ~FMC_CTL_OBER;
+ /* set the OBPG bit */
+ FMC_CTL |= FMC_CTL_OBPG;
+ /* no security protection */
+ OB_SPC = (uint16_t) temp_spc;
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ if (FMC_TOERR != fmc_state) {
+ /* reset the OBPG bit */
+ FMC_CTL &= ~FMC_CTL_OBPG;
+ }
+ }else{
+ if(FMC_TOERR != fmc_state){
+ /* reset the OBPG bit */
+ FMC_CTL &= ~FMC_CTL_OBPG;
+ }
+ }
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief enable write protection
+ \param[in] ob_wp: specify sector to be write protected, set the bit to 1 if
+ you want to protect the corresponding pages. meanwhile, sector
+ macro could used to set specific sector write protected.
+ one or more parameters can be selected which are shown as below:
+ \arg OB_WP_x(x = 0..31): write protect specify sector
+ \arg OB_WP_ALL: write protect all sector
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum ob_write_protection_enable(uint32_t ob_wp)
+{
+ uint16_t temp_wp0, temp_wp1, temp_wp2, temp_wp3;
+
+ fmc_state_enum fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ ob_wp = (uint32_t) (~ob_wp);
+ temp_wp0 = (uint16_t) (ob_wp & OB_WP0_WP0);
+ temp_wp1 = (uint16_t) ((ob_wp & OB_WP1_WP1) >> 8U);
+ temp_wp2 = (uint16_t) ((ob_wp & OB_WP2_WP2) >> 16U);
+ temp_wp3 = (uint16_t) ((ob_wp & OB_WP3_WP3) >> 24U);
+
+ if(FMC_READY == fmc_state){
+
+ /* set the OBPG bit*/
+ FMC_CTL |= FMC_CTL_OBPG;
+
+ if(0xFFU != temp_wp0){
+ OB_WP0 = temp_wp0;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ }
+ if((FMC_READY == fmc_state) && (0xFFU != temp_wp1)){
+ OB_WP1 = temp_wp1;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ }
+ if((FMC_READY == fmc_state) && (0xFFU != temp_wp2)){
+ OB_WP2 = temp_wp2;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ }
+ if((FMC_READY == fmc_state) && (0xFFU != temp_wp3)){
+ OB_WP3 = temp_wp3;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+ }
+ if(FMC_TOERR != fmc_state){
+ /* reset the OBPG bit */
+ FMC_CTL &= ~FMC_CTL_OBPG;
+ }
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief configure security protection
+ \param[in] ob_spc: specify security protection
+ only one parameter can be selected which is shown as below:
+ \arg FMC_NSPC: no security protection
+ \arg FMC_USPC: under security protection
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum ob_security_protection_config(uint8_t ob_spc)
+{
+ fmc_state_enum fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ FMC_CTL |= FMC_CTL_OBER;
+ FMC_CTL |= FMC_CTL_START;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* reset the OBER bit */
+ FMC_CTL &= ~FMC_CTL_OBER;
+
+ /* start the option byte program */
+ FMC_CTL |= FMC_CTL_OBPG;
+
+ OB_SPC = (uint16_t) ob_spc;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if (FMC_TOERR != fmc_state) {
+ /* reset the OBPG bit */
+ FMC_CTL &= ~FMC_CTL_OBPG;
+ }
+ }else{
+ if (FMC_TOERR != fmc_state) {
+ /* reset the OBER bit */
+ FMC_CTL &= ~FMC_CTL_OBER;
+ }
+ }
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief program the FMC user option byte
+ \param[in] ob_fwdgt: option byte watchdog value
+ \arg OB_FWDGT_SW: software free watchdog
+ \arg OB_FWDGT_HW: hardware free watchdog
+ \param[in] ob_deepsleep: option byte deepsleep reset value
+ \arg OB_DEEPSLEEP_NRST: no reset when entering deepsleep mode
+ \arg OB_DEEPSLEEP_RST: generate a reset instead of entering deepsleep mode
+ \param[in] ob_stdby:option byte standby reset value
+ \arg OB_STDBY_NRST: no reset when entering standby mode
+ \arg OB_STDBY_RST: generate a reset instead of entering standby mode
+ \param[in] ob_boot: specifies the option byte boot bank value
+ \arg OB_BOOT_B0: boot from bank0
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum ob_user_write(uint8_t ob_fwdgt, uint8_t ob_deepsleep, uint8_t ob_stdby, uint8_t ob_boot)
+{
+ fmc_state_enum fmc_state = FMC_READY;
+ uint8_t temp;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* set the OBPG bit*/
+ FMC_CTL |= FMC_CTL_OBPG;
+
+ temp = ((uint8_t)((uint8_t)((uint8_t)(ob_boot | ob_fwdgt) | ob_deepsleep) | ob_stdby) | OB_USER_MASK);
+ OB_USER = (uint16_t) temp;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_TOERR != fmc_state){
+ /* reset the OBPG bit */
+ FMC_CTL &= ~FMC_CTL_OBPG;
+ }
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief program the FMC data option byte
+ \param[in] address: the option bytes address to be programmed
+ \param[in] data: the byte to be programmed
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum ob_data_program(uint32_t address, uint8_t data)
+{
+ fmc_state_enum fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_READY == fmc_state){
+ /* set the OBPG bit */
+ FMC_CTL |= FMC_CTL_OBPG;
+ REG16(address) = data;
+
+ /* wait for the FMC ready */
+ fmc_state = fmc_ready_wait(FMC_TIMEOUT_COUNT);
+
+ if(FMC_TOERR != fmc_state){
+ /* reset the OBPG bit */
+ FMC_CTL &= ~FMC_CTL_OBPG;
+ }
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief get OB_USER in register FMC_OBSTAT
+ \param[in] none
+ \param[out] none
+ \retval the FMC user option byte values
+ */
+uint8_t ob_user_get(void)
+{
+ /* return the FMC user option byte value */
+ return (uint8_t) (FMC_OBSTAT >> 2U);
+}
+
+/*!
+ \brief get OB_DATA in register FMC_OBSTAT
+ \param[in] none
+ \param[out] none
+ \retval ob_data
+ */
+uint16_t ob_data_get(void)
+{
+ return (uint16_t) (FMC_OBSTAT >> 10U);
+}
+
+/*!
+ \brief get the FMC option byte write protection
+ \param[in] none
+ \param[out] none
+ \retval the FMC write protection option byte value
+ */
+uint32_t ob_write_protection_get(void)
+{
+ /* return the FMC write protection option byte value */
+ return FMC_WP;
+}
+
+/*!
+ \brief get FMC option byte security protection state
+ \param[in] none
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+ */
+FlagStatus ob_spc_get(void)
+{
+ FlagStatus spc_state = RESET;
+
+ if(RESET != (FMC_OBSTAT & FMC_OBSTAT_SPC)){
+ spc_state = SET;
+ }else{
+ spc_state = RESET;
+ }
+ return spc_state;
+}
+
+/*!
+ \brief enable FMC interrupt
+ \param[in] interrupt: the FMC interrupt source
+ only one parameter can be selected which is shown as below:
+ \arg FMC_INT_END: enable FMC end of program interrupt
+ \arg FMC_INT_ERR: enable FMC error interrupt
+ \param[out] none
+ \retval none
+ */
+void fmc_interrupt_enable(fmc_int_enum interrupt)
+{
+ FMC_CTL |= (uint32_t)interrupt;
+}
+
+/*!
+ \brief disable FMC interrupt
+ \param[in] interrupt: the FMC interrupt source
+ only one parameter can be selected which is shown as below:
+ \arg FMC_INT_END: enable FMC end of program interrupt
+ \arg FMC_INT_ERR: enable FMC error interrupt
+ \param[out] none
+ \retval none
+ */
+void fmc_interrupt_disable(fmc_int_enum interrupt)
+{
+ FMC_CTL &= ~(uint32_t)interrupt;
+}
+
+/*!
+ \brief check flag is set or not
+ \param[in] flag: check FMC flag
+ only one parameter can be selected which is shown as below:
+ \arg FMC_FLAG_BUSY: FMC busy flag
+ \arg FMC_FLAG_PGERR: FMC operation error flag
+ \arg FMC_FLAG_WPERR: FMC erase/program protection error flag
+ \arg FMC_FLAG_END: FMC end of operation flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+ */
+FlagStatus fmc_flag_get(fmc_flag_enum flag)
+{
+ FlagStatus status = RESET;
+
+ if(FMC_STAT & flag){
+ status = SET;
+ }
+ /* return the state of corresponding FMC flag */
+ return status;
+}
+
+/*!
+ \brief clear the FMC flag
+ \param[in] flag: clear FMC flag
+ only one parameter can be selected which is shown as below:
+ \arg FMC_FLAG_PGERR: FMC operation error flag
+ \arg FMC_FLAG_WPERR: FMC erase/program protection error flag
+ \arg FMC_FLAG_END: FMC end of operation flag
+ \param[out] none
+ \retval none
+ */
+void fmc_flag_clear(fmc_flag_enum flag)
+{
+ /* clear the flags */
+ FMC_STAT = flag;
+}
+
+/*!
+ \brief get FMC interrupt flag state
+ \param[in] flag: FMC interrupt flags, refer to fmc_interrupt_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg FMC_INT_FLAG_PGERR: FMC operation error interrupt flag
+ \arg FMC_INT_FLAG_WPERR: FMC erase/program protection error interrupt flag
+ \arg FMC_INT_FLAG_END: FMC end of operation interrupt flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+ */
+FlagStatus fmc_interrupt_flag_get(fmc_interrupt_flag_enum flag)
+{
+ FlagStatus status = RESET;
+
+ if(FMC_STAT & flag){
+ status = SET;
+ }
+ /* return the state of corresponding FMC flag */
+ return status;
+}
+
+/*!
+ \brief clear FMC interrupt flag state
+ \param[in] flag: FMC interrupt flags, refer to can_interrupt_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg FMC_INT_FLAG_PGERR: FMC operation error interrupt flag
+ \arg FMC_INT_FLAG_WPERR: FMC erase/program protection error interrupt flag
+ \arg FMC_INT_FLAG_END: FMC end of operation interrupt flag
+ \param[out] none
+ \retval none
+ */
+void fmc_interrupt_flag_clear(fmc_interrupt_flag_enum flag)
+{
+ /* clear the flags */
+ FMC_STAT = flag;
+}
+
+/*!
+ \brief get the FMC state
+ \param[in] none
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum fmc_state_get(void)
+{
+ fmc_state_enum fmc_state = FMC_READY;
+
+ if((uint32_t) 0x00U != (FMC_STAT & FMC_STAT_BUSY)){
+ fmc_state = FMC_BUSY;
+ }else{
+ if((uint32_t) 0x00U != (FMC_STAT & FMC_STAT_WPERR)){
+ fmc_state = FMC_WPERR;
+ }else{
+ if((uint32_t) 0x00U != (FMC_STAT & (FMC_STAT_PGERR))){
+ fmc_state = FMC_PGERR;
+ }
+ }
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
+
+/*!
+ \brief check whether FMC is ready or not
+ \param[in] timeout: count of loop
+ \param[out] none
+ \retval state of FMC, refer to fmc_state_enum
+ */
+fmc_state_enum fmc_ready_wait(uint32_t timeout)
+{
+ fmc_state_enum fmc_state = FMC_BUSY;
+
+ /* wait for FMC ready */
+ do{
+ /* get FMC state */
+ fmc_state = fmc_state_get();
+ timeout--;
+ }while((FMC_BUSY == fmc_state) && (0x00U != timeout));
+
+ if(FMC_BUSY == fmc_state){
+ fmc_state = FMC_TOERR;
+ }
+ /* return the FMC state */
+ return fmc_state;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c
new file mode 100644
index 0000000000..c46b5b14c7
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c
@@ -0,0 +1,152 @@
+/*!
+ \file gd32vf103_fwdgt.c
+ \brief FWDGT driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_fwdgt.h"
+
+/* write value to FWDGT_CTL_CMD bit field */
+#define CTL_CMD(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))
+/* write value to FWDGT_RLD_RLD bit field */
+#define RLD_RLD(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))
+
+/*!
+ \brief enable write access to FWDGT_PSC and FWDGT_RLD
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void fwdgt_write_enable(void)
+{
+ FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE;
+}
+
+/*!
+ \brief disable write access to FWDGT_PSC and FWDGT_RLD
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void fwdgt_write_disable(void)
+{
+ FWDGT_CTL = FWDGT_WRITEACCESS_DISABLE;
+}
+
+/*!
+ \brief start the free watchdog timer counter
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void fwdgt_enable(void)
+{
+ FWDGT_CTL = FWDGT_KEY_ENABLE;
+}
+
+/*!
+ \brief reload the counter of FWDGT
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void fwdgt_counter_reload(void)
+{
+ FWDGT_CTL = FWDGT_KEY_RELOAD;
+}
+
+/*!
+ \brief configure counter reload value, and prescaler divider value
+ \param[in] reload_value: specify reload value(0x0000 - 0x0FFF)
+ \param[in] prescaler_div: FWDGT prescaler value
+ only one parameter can be selected which is shown as below:
+ \arg FWDGT_PSC_DIV4: FWDGT prescaler set to 4
+ \arg FWDGT_PSC_DIV8: FWDGT prescaler set to 8
+ \arg FWDGT_PSC_DIV16: FWDGT prescaler set to 16
+ \arg FWDGT_PSC_DIV32: FWDGT prescaler set to 32
+ \arg FWDGT_PSC_DIV64: FWDGT prescaler set to 64
+ \arg FWDGT_PSC_DIV128: FWDGT prescaler set to 128
+ \arg FWDGT_PSC_DIV256: FWDGT prescaler set to 256
+ \param[out] none
+ \retval ErrStatus: ERROR or SUCCESS
+*/
+ErrStatus fwdgt_config(uint16_t reload_value, uint8_t prescaler_div)
+{
+ uint32_t timeout = FWDGT_PSC_TIMEOUT;
+ uint32_t flag_status = RESET;
+
+ /* enable write access to FWDGT_PSC,and FWDGT_RLD */
+ FWDGT_CTL = FWDGT_WRITEACCESS_ENABLE;
+ /* wait until the PUD flag to be reset */
+ do{
+ flag_status = FWDGT_STAT & FWDGT_STAT_PUD;
+ }while((--timeout > 0U) && ((uint32_t)RESET != flag_status));
+
+ if((uint32_t)RESET != flag_status){
+ return ERROR;
+ }
+ /* configure FWDGT */
+ FWDGT_PSC = (uint32_t)prescaler_div;
+
+ timeout = FWDGT_RLD_TIMEOUT;
+ /* wait until the RUD flag to be reset */
+ do{
+ flag_status = FWDGT_STAT & FWDGT_STAT_RUD;
+ }while((--timeout > 0U) && ((uint32_t)RESET != flag_status));
+
+ if((uint32_t)RESET != flag_status){
+ return ERROR;
+ }
+ FWDGT_RLD = RLD_RLD(reload_value);
+ /* reload the counter */
+ FWDGT_CTL = FWDGT_KEY_RELOAD;
+
+ return SUCCESS;
+}
+
+/*!
+ \brief get flag state of FWDGT
+ \param[in] flag: flag to get
+ only one parameter can be selected which is shown as below:
+ \arg FWDGT_FLAG_PUD: a write operation to FWDGT_PSC register is on going
+ \arg FWDGT_FLAG_RUD: a write operation to FWDGT_RLD register is on going
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus fwdgt_flag_get(uint16_t flag)
+{
+ if(FWDGT_STAT & flag){
+ return SET;
+ }
+
+ return RESET;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c
new file mode 100644
index 0000000000..9b151282be
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c
@@ -0,0 +1,503 @@
+/*!
+ \file gd32vf103_gpio.c
+ \brief GPIO driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_gpio.h"
+
+#define AFIO_EXTI_SOURCE_MASK ((uint8_t)0x03U) /*!< AFIO exti source selection mask*/
+#define AFIO_EXTI_SOURCE_FIELDS ((uint8_t)0x04U) /*!< select AFIO exti source registers */
+#define LSB_16BIT_MASK ((uint16_t)0xFFFFU) /*!< LSB 16-bit mask */
+#define PCF_POSITION_MASK ((uint32_t)0x000F0000U) /*!< AFIO_PCF register position mask */
+#define PCF_SWJCFG_MASK ((uint32_t)0xF0FFFFFFU) /*!< AFIO_PCF register SWJCFG mask */
+#define PCF_LOCATION1_MASK ((uint32_t)0x00200000U) /*!< AFIO_PCF register location1 mask */
+#define PCF_LOCATION2_MASK ((uint32_t)0x00100000U) /*!< AFIO_PCF register location2 mask */
+#define AFIO_PCF1_FIELDS ((uint32_t)0x80000000U) /*!< select AFIO_PCF1 register */
+#define GPIO_OUTPUT_PORT_OFFSET ((uint32_t)4U) /*!< GPIO event output port offset*/
+
+/*!
+ \brief reset GPIO port
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[out] none
+ \retval none
+*/
+void gpio_deinit(uint32_t gpio_periph)
+{
+ switch (gpio_periph) {
+ case GPIOA:
+ /* reset GPIOA */
+ rcu_periph_reset_enable(RCU_GPIOARST);
+ rcu_periph_reset_disable(RCU_GPIOARST);
+ break;
+ case GPIOB:
+ /* reset GPIOB */
+ rcu_periph_reset_enable(RCU_GPIOBRST);
+ rcu_periph_reset_disable(RCU_GPIOBRST);
+ break;
+ case GPIOC:
+ /* reset GPIOC */
+ rcu_periph_reset_enable(RCU_GPIOCRST);
+ rcu_periph_reset_disable(RCU_GPIOCRST);
+ break;
+ case GPIOD:
+ /* reset GPIOD */
+ rcu_periph_reset_enable(RCU_GPIODRST);
+ rcu_periph_reset_disable(RCU_GPIODRST);
+ break;
+ case GPIOE:
+ /* reset GPIOE */
+ rcu_periph_reset_enable(RCU_GPIOERST);
+ rcu_periph_reset_disable(RCU_GPIOERST);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief reset alternate function I/O(AFIO)
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void gpio_afio_deinit(void)
+{
+ rcu_periph_reset_enable(RCU_AFRST);
+ rcu_periph_reset_disable(RCU_AFRST);
+}
+
+/*!
+ \brief GPIO parameter initialization
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] mode: gpio pin mode
+ only one parameter can be selected which is shown as below:
+ \arg GPIO_MODE_AIN: analog input mode
+ \arg GPIO_MODE_IN_FLOATING: floating input mode
+ \arg GPIO_MODE_IPD: pull-down input mode
+ \arg GPIO_MODE_IPU: pull-up input mode
+ \arg GPIO_MODE_OUT_OD: GPIO output with open-drain
+ \arg GPIO_MODE_OUT_PP: GPIO output with push-pull
+ \arg GPIO_MODE_AF_OD: AFIO output with open-drain
+ \arg GPIO_MODE_AF_PP: AFIO output with push-pull
+ \param[in] speed: gpio output max speed value
+ only one parameter can be selected which is shown as below:
+ \arg GPIO_OSPEED_10MHZ: output max speed 10MHz
+ \arg GPIO_OSPEED_2MHZ: output max speed 2MHz
+ \arg GPIO_OSPEED_50MHZ: output max speed 50MHz
+ \param[in] pin: GPIO pin
+ one or more parameters can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+
+ \param[out] none
+ \retval none
+*/
+void gpio_init(uint32_t gpio_periph, uint32_t mode, uint32_t speed,
+ uint32_t pin)
+{
+ uint16_t i;
+ uint32_t temp_mode = 0U;
+ uint32_t reg = 0U;
+
+ /* GPIO mode configuration */
+ temp_mode = (uint32_t) (mode & ((uint32_t) 0x0FU));
+
+ /* GPIO speed configuration */
+ if (((uint32_t) 0x00U) != ((uint32_t) mode & ((uint32_t) 0x10U))) {
+ /* output mode max speed:10MHz,2MHz,50MHz */
+ temp_mode |= (uint32_t) speed;
+ }
+
+ /* configure the eight low port pins with GPIO_CTL0 */
+ for (i = 0U; i < 8U; i++) {
+ if ((1U << i) & pin) {
+ reg = GPIO_CTL0(gpio_periph);
+
+ /* clear the specified pin mode bits */
+ reg &= ~GPIO_MODE_MASK(i);
+ /* set the specified pin mode bits */
+ reg |= GPIO_MODE_SET(i, temp_mode);
+
+ /* set IPD or IPU */
+ if (GPIO_MODE_IPD == mode) {
+ /* reset the corresponding OCTL bit */
+ GPIO_BC(gpio_periph) = (uint32_t) ((1U << i) & pin);
+ } else {
+ /* set the corresponding OCTL bit */
+ if (GPIO_MODE_IPU == mode) {
+ GPIO_BOP(gpio_periph) = (uint32_t) ((1U << i) & pin);
+ }
+ }
+ /* set GPIO_CTL0 register */
+ GPIO_CTL0(gpio_periph) = reg;
+ }
+ }
+ /* configure the eight high port pins with GPIO_CTL1 */
+ for (i = 8U; i < 16U; i++) {
+ if ((1U << i) & pin) {
+ reg = GPIO_CTL1(gpio_periph);
+
+ /* clear the specified pin mode bits */
+ reg &= ~GPIO_MODE_MASK(i - 8U);
+ /* set the specified pin mode bits */
+ reg |= GPIO_MODE_SET(i - 8U, temp_mode);
+
+ /* set IPD or IPU */
+ if (GPIO_MODE_IPD == mode) {
+ /* reset the corresponding OCTL bit */
+ GPIO_BC(gpio_periph) = (uint32_t) ((1U << i) & pin);
+ } else {
+ /* set the corresponding OCTL bit */
+ if (GPIO_MODE_IPU == mode) {
+ GPIO_BOP(gpio_periph) = (uint32_t) ((1U << i) & pin);
+ }
+ }
+ /* set GPIO_CTL1 register */
+ GPIO_CTL1(gpio_periph) = reg;
+ }
+ }
+}
+
+/*!
+ \brief set GPIO pin
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] pin: GPIO pin
+ one or more parameters can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+ \param[out] none
+ \retval none
+*/
+void gpio_bit_set(uint32_t gpio_periph, uint32_t pin)
+{
+ GPIO_BOP(gpio_periph) = (uint32_t) pin;
+}
+
+/*!
+ \brief reset GPIO pin
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] pin: GPIO pin
+ one or more parameters can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+ \param[out] none
+ \retval none
+*/
+void gpio_bit_reset(uint32_t gpio_periph, uint32_t pin)
+{
+ GPIO_BC(gpio_periph) = (uint32_t) pin;
+}
+
+/*!
+ \brief write data to the specified GPIO pin
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] pin: GPIO pin
+ one or more parameters can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+ \param[in] bit_value: SET or RESET
+ only one parameter can be selected which is shown as below:
+ \arg RESET: clear the port pin
+ \arg SET: set the port pin
+ \param[out] none
+ \retval none
+*/
+void gpio_bit_write(uint32_t gpio_periph, uint32_t pin, bit_status bit_value)
+{
+ if (RESET != bit_value) {
+ GPIO_BOP(gpio_periph) = (uint32_t) pin;
+ } else {
+ GPIO_BC(gpio_periph) = (uint32_t) pin;
+ }
+}
+
+/*!
+ \brief write data to the specified GPIO port
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] data: specify the value to be written to the port output data register
+ \param[out] none
+ \retval none
+*/
+void gpio_port_write(uint32_t gpio_periph, uint16_t data)
+{
+ GPIO_OCTL(gpio_periph) = (uint32_t) data;
+}
+
+/*!
+ \brief get GPIO pin input status
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] pin: GPIO pin
+ only one parameter can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+ \param[out] none
+ \retval input status of gpio pin: SET or RESET
+*/
+FlagStatus gpio_input_bit_get(uint32_t gpio_periph, uint32_t pin)
+{
+ if ((uint32_t) RESET != (GPIO_ISTAT(gpio_periph) & (pin))) {
+ return SET;
+ } else {
+ return RESET;
+ }
+}
+
+/*!
+ \brief get GPIO port input status
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[out] none
+ \retval input status of gpio all pins
+*/
+uint16_t gpio_input_port_get(uint32_t gpio_periph)
+{
+ return (uint16_t) (GPIO_ISTAT(gpio_periph));
+}
+
+/*!
+ \brief get GPIO pin output status
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] pin: GPIO pin
+ only one parameter can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+ \param[out] none
+ \retval output status of gpio pin: SET or RESET
+*/
+FlagStatus gpio_output_bit_get(uint32_t gpio_periph, uint32_t pin)
+{
+ if ((uint32_t) RESET != (GPIO_OCTL(gpio_periph) & (pin))) {
+ return SET;
+ } else {
+ return RESET;
+ }
+}
+
+/*!
+ \brief get GPIO port output status
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[out] none
+ \retval output status of gpio all pins
+*/
+uint16_t gpio_output_port_get(uint32_t gpio_periph)
+{
+ return ((uint16_t) GPIO_OCTL(gpio_periph));
+}
+
+/*!
+ \brief configure GPIO pin remap
+ \param[in] gpio_remap: select the pin to remap
+ only one parameter can be selected which are shown as below:
+ \arg GPIO_SPI0_REMAP: SPI0 remapping
+ \arg GPIO_I2C0_REMAP: I2C0 remapping
+ \arg GPIO_USART0_REMAP: USART0 remapping
+ \arg GPIO_USART1_REMAP: USART1 remapping
+ \arg GPIO_USART2_PARTIAL_REMAP: USART2 partial remapping
+ \arg GPIO_USART2_FULL_REMAP: USART2 full remapping
+ \arg GPIO_TIMER0_PARTIAL_REMAP: TIMER0 partial remapping
+ \arg GPIO_TIMER0_FULL_REMAP: TIMER0 full remapping
+ \arg GPIO_TIMER1_PARTIAL_REMAP0: TIMER1 partial remapping
+ \arg GPIO_TIMER1_PARTIAL_REMAP1: TIMER1 partial remapping
+ \arg GPIO_TIMER1_FULL_REMAP: TIMER1 full remapping
+ \arg GPIO_TIMER2_PARTIAL_REMAP: TIMER2 partial remapping
+ \arg GPIO_TIMER2_FULL_REMAP: TIMER2 full remapping
+ \arg GPIO_TIMER3_REMAP: TIMER3 remapping
+ \arg GPIO_CAN0_PARTIAL_REMAP: CAN0 partial remapping
+ \arg GPIO_CAN0_FULL_REMAP: CAN0 full remapping
+ \arg GPIO_PD01_REMAP: PD01 remapping
+ \arg GPIO_TIMER4CH3_IREMAP: TIMER4 channel3 internal remapping
+ \arg GPIO_CAN1_REMAP: CAN1 remapping
+ \arg GPIO_SWJ_NONJTRST_REMAP: JTAG-DP,but without NJTRST
+ \arg GPIO_SWJ_DISABLE_REMAP: JTAG-DP disabled
+ \arg GPIO_SPI2_REMAP: SPI2 remapping
+ \arg GPIO_TIMER1ITI1_REMAP: TIMER1 internal trigger 1 remapping
+ \arg GPIO_EXMC_NADV_REMAP: EXMC_NADV connect/disconnect
+ \param[in] newvalue: ENABLE or DISABLE
+ \param[out] none
+ \retval none
+*/
+void gpio_pin_remap_config(uint32_t remap, ControlStatus newvalue)
+{
+ uint32_t remap1 = 0U, remap2 = 0U, temp_reg = 0U, temp_mask = 0U;
+
+ if (AFIO_PCF1_FIELDS == (remap & AFIO_PCF1_FIELDS)) {
+ /* get AFIO_PCF1 regiter value */
+ temp_reg = AFIO_PCF1;
+ } else {
+ /* get AFIO_PCF0 regiter value */
+ temp_reg = AFIO_PCF0;
+ }
+
+ temp_mask = (remap & PCF_POSITION_MASK) >> 0x10U;
+ remap1 = remap & LSB_16BIT_MASK;
+
+ /* judge pin remap type */
+ if ((PCF_LOCATION1_MASK | PCF_LOCATION2_MASK)
+ == (remap & (PCF_LOCATION1_MASK | PCF_LOCATION2_MASK))) {
+ temp_reg &= PCF_SWJCFG_MASK;
+ AFIO_PCF0 &= PCF_SWJCFG_MASK;
+ } else if (PCF_LOCATION2_MASK == (remap & PCF_LOCATION2_MASK)) {
+ remap2 = ((uint32_t) 0x03U) << temp_mask;
+ temp_reg &= ~remap2;
+ temp_reg |= ~PCF_SWJCFG_MASK;
+ } else {
+ temp_reg &= ~(remap1 << ((remap >> 0x15U) * 0x10U));
+ temp_reg |= ~PCF_SWJCFG_MASK;
+ }
+
+ /* set pin remap value */
+ if (DISABLE != newvalue) {
+ temp_reg |= (remap1 << ((remap >> 0x15U) * 0x10U));
+ }
+
+ if (AFIO_PCF1_FIELDS == (remap & AFIO_PCF1_FIELDS)) {
+ /* set AFIO_PCF1 regiter value */
+ AFIO_PCF1 = temp_reg;
+ } else {
+ /* set AFIO_PCF0 regiter value */
+ AFIO_PCF0 = temp_reg;
+ }
+}
+
+/*!
+ \brief select GPIO pin exti sources
+ \param[in] gpio_outputport: gpio event output port
+ only one parameter can be selected which are shown as below:
+ \arg GPIO_PORT_SOURCE_GPIOA: output port source A
+ \arg GPIO_PORT_SOURCE_GPIOB: output port source B
+ \arg GPIO_PORT_SOURCE_GPIOC: output port source C
+ \arg GPIO_PORT_SOURCE_GPIOD: output port source D
+ \arg GPIO_PORT_SOURCE_GPIOE: output port source E
+ \param[in] gpio_outputpin: GPIO_PIN_SOURCE_x(x=0..15)
+ \param[out] none
+ \retval none
+*/
+void gpio_exti_source_select(uint8_t output_port, uint8_t output_pin)
+{
+ uint32_t source = 0U;
+ source = ((uint32_t) 0x0FU)
+ << (AFIO_EXTI_SOURCE_FIELDS * (output_pin & AFIO_EXTI_SOURCE_MASK));
+
+ /* select EXTI sources */
+ if (GPIO_PIN_SOURCE_4 > output_pin) {
+ /* select EXTI0/EXTI1/EXTI2/EXTI3 */
+ AFIO_EXTISS0 &= ~source;
+ AFIO_EXTISS0 |= (((uint32_t) output_port)
+ << (AFIO_EXTI_SOURCE_FIELDS
+ * (output_pin & AFIO_EXTI_SOURCE_MASK)));
+ } else if (GPIO_PIN_SOURCE_8 > output_pin) {
+ /* select EXTI4/EXTI5/EXTI6/EXTI7 */
+ AFIO_EXTISS1 &= ~source;
+ AFIO_EXTISS1 |= (((uint32_t) output_port)
+ << (AFIO_EXTI_SOURCE_FIELDS
+ * (output_pin & AFIO_EXTI_SOURCE_MASK)));
+ } else if (GPIO_PIN_SOURCE_12 > output_pin) {
+ /* select EXTI8/EXTI9/EXTI10/EXTI11 */
+ AFIO_EXTISS2 &= ~source;
+ AFIO_EXTISS2 |= (((uint32_t) output_port)
+ << (AFIO_EXTI_SOURCE_FIELDS
+ * (output_pin & AFIO_EXTI_SOURCE_MASK)));
+ } else {
+ /* select EXTI12/EXTI13/EXTI14/EXTI15 */
+ AFIO_EXTISS3 &= ~source;
+ AFIO_EXTISS3 |= (((uint32_t) output_port)
+ << (AFIO_EXTI_SOURCE_FIELDS
+ * (output_pin & AFIO_EXTI_SOURCE_MASK)));
+ }
+}
+
+/*!
+ \brief configure GPIO pin event output
+ \param[in] output_port: gpio event output port
+ only one parameter can be selected which are shown as below:
+ \arg GPIO_EVENT_PORT_GPIOA: event output port A
+ \arg GPIO_EVENT_PORT_GPIOB: event output port B
+ \arg GPIO_EVENT_PORT_GPIOC: event output port C
+ \arg GPIO_EVENT_PORT_GPIOD: event output port D
+ \arg GPIO_EVENT_PORT_GPIOE: event output port E
+ \param[in] output_pin:
+ only one parameter can be selected which are shown as below:
+ \arg GPIO_EVENT_PIN_x(x=0..15)
+ \param[out] none
+ \retval none
+*/
+void gpio_event_output_config(uint8_t output_port, uint8_t output_pin)
+{
+ uint32_t reg = 0U;
+ reg = AFIO_EC;
+
+ /* clear AFIO_EC_PORT and AFIO_EC_PIN bits */
+ reg &= (uint32_t) (~(AFIO_EC_PORT | AFIO_EC_PIN));
+
+ reg |= (uint32_t) ((uint32_t) output_port << GPIO_OUTPUT_PORT_OFFSET);
+ reg |= (uint32_t) output_pin;
+
+ AFIO_EC = reg;
+}
+
+/*!
+ \brief enable GPIO pin event output
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void gpio_event_output_enable(void)
+{
+ AFIO_EC |= AFIO_EC_EOE;
+}
+
+/*!
+ \brief disable GPIO pin event output
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void gpio_event_output_disable(void)
+{
+ AFIO_EC &= (uint32_t) (~AFIO_EC_EOE);
+}
+
+/*!
+ \brief lock GPIO pin
+ \param[in] gpio_periph: GPIOx(x = A,B,C,D,E)
+ \param[in] pin: GPIO pin
+ one or more parameters can be selected which are shown as below:
+ \arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
+ \param[out] none
+ \retval none
+*/
+void gpio_pin_lock(uint32_t gpio_periph, uint32_t pin)
+{
+ uint32_t lock = 0x00010000U;
+ lock |= pin;
+
+ /* lock key writing sequence: write 1 -> write 0 -> write 1 -> read 0 -> read 1 */
+ GPIO_LOCK(gpio_periph) = (uint32_t) lock;
+ GPIO_LOCK(gpio_periph) = (uint32_t) pin;
+ GPIO_LOCK(gpio_periph) = (uint32_t) lock;
+ lock = GPIO_LOCK(gpio_periph);
+ lock = GPIO_LOCK(gpio_periph);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.s
new file mode 100644
index 0000000000..e607efad1d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.s
@@ -0,0 +1,19001 @@
+ .file "gd32vf103_gpio.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl gpio_deinit
+ .type gpio_deinit, @function
+gpio_deinit:
+.LFB2:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_gpio.c"
+ .loc 1 55 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 56 5
+ lw a4,-20(s0)
+ li a5,1073815552
+ addi a5,a5,-2048
+ beq a4,a5,.L2
+ lw a4,-20(s0)
+ li a5,1073815552
+ addi a5,a5,-2048
+ bgtu a4,a5,.L9
+ lw a4,-20(s0)
+ li a5,1073811456
+ addi a5,a5,1024
+ beq a4,a5,.L4
+ lw a4,-20(s0)
+ li a5,1073811456
+ addi a5,a5,1024
+ bgtu a4,a5,.L9
+ lw a4,-20(s0)
+ li a5,1073811456
+ beq a4,a5,.L5
+ lw a4,-20(s0)
+ li a5,1073811456
+ bgtu a4,a5,.L9
+ lw a4,-20(s0)
+ li a5,1073811456
+ addi a5,a5,-2048
+ beq a4,a5,.L6
+ lw a4,-20(s0)
+ li a5,1073811456
+ addi a5,a5,-1024
+ beq a4,a5,.L7
+ .loc 1 83 9
+ j .L9
+.L6:
+ .loc 1 59 9
+ li a0,770
+ call rcu_periph_reset_enable
+ .loc 1 60 9
+ li a0,770
+ call rcu_periph_reset_disable
+ .loc 1 61 9
+ j .L8
+.L7:
+ .loc 1 64 9
+ li a0,771
+ call rcu_periph_reset_enable
+ .loc 1 65 9
+ li a0,771
+ call rcu_periph_reset_disable
+ .loc 1 66 9
+ j .L8
+.L5:
+ .loc 1 69 9
+ li a0,772
+ call rcu_periph_reset_enable
+ .loc 1 70 9
+ li a0,772
+ call rcu_periph_reset_disable
+ .loc 1 71 9
+ j .L8
+.L4:
+ .loc 1 74 9
+ li a0,773
+ call rcu_periph_reset_enable
+ .loc 1 75 9
+ li a0,773
+ call rcu_periph_reset_disable
+ .loc 1 76 9
+ j .L8
+.L2:
+ .loc 1 79 9
+ li a0,774
+ call rcu_periph_reset_enable
+ .loc 1 80 9
+ li a0,774
+ call rcu_periph_reset_disable
+ .loc 1 81 9
+ j .L8
+.L9:
+ .loc 1 83 9
+ nop
+.L8:
+ .loc 1 85 1
+ nop
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE2:
+ .size gpio_deinit, .-gpio_deinit
+ .align 1
+ .globl gpio_afio_deinit
+ .type gpio_afio_deinit, @function
+gpio_afio_deinit:
+.LFB3:
+ .loc 1 94 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw ra,12(sp)
+ sw s0,8(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 95 5
+ li a0,768
+ call rcu_periph_reset_enable
+ .loc 1 96 5
+ li a0,768
+ call rcu_periph_reset_disable
+ .loc 1 97 1
+ nop
+ lw ra,12(sp)
+ .cfi_restore 1
+ lw s0,8(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE3:
+ .size gpio_afio_deinit, .-gpio_afio_deinit
+ .align 1
+ .globl gpio_init
+ .type gpio_init, @function
+gpio_init:
+.LFB4:
+ .loc 1 126 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ sw a2,-44(s0)
+ sw a3,-48(s0)
+ .loc 1 128 14
+ sw zero,-24(s0)
+ .loc 1 129 14
+ sw zero,-28(s0)
+ .loc 1 132 15
+ lw a5,-40(s0)
+ andi a5,a5,15
+ sw a5,-24(s0)
+ .loc 1 135 48
+ lw a5,-40(s0)
+ andi a5,a5,16
+ .loc 1 135 8
+ beq a5,zero,.L12
+ .loc 1 137 19
+ lw a4,-24(s0)
+ lw a5,-44(s0)
+ or a5,a4,a5
+ sw a5,-24(s0)
+.L12:
+ .loc 1 141 12
+ sh zero,-18(s0)
+ .loc 1 141 5
+ j .L13
+.L17:
+ .loc 1 142 17
+ lhu a5,-18(s0)
+ li a4,1
+ sll a4,a4,a5
+ .loc 1 142 23
+ lw a5,-48(s0)
+ and a5,a4,a5
+ .loc 1 142 12
+ beq a5,zero,.L14
+ .loc 1 143 21
+ lw a5,-36(s0)
+ .loc 1 143 17
+ lw a5,0(a5)
+ sw a5,-28(s0)
+ .loc 1 146 34
+ lhu a5,-18(s0)
+ slli a5,a5,2
+ .loc 1 146 27
+ li a4,15
+ sll a5,a4,a5
+ .loc 1 146 20
+ not a5,a5
+ .loc 1 146 17
+ lw a4,-28(s0)
+ and a5,a4,a5
+ sw a5,-28(s0)
+ .loc 1 148 61
+ lhu a5,-18(s0)
+ slli a5,a5,2
+ .loc 1 148 21
+ lw a4,-24(s0)
+ sll a5,a4,a5
+ .loc 1 148 17
+ lw a4,-28(s0)
+ or a5,a4,a5
+ sw a5,-28(s0)
+ .loc 1 151 16
+ lw a4,-40(s0)
+ li a5,40
+ bne a4,a5,.L15
+ .loc 1 153 93
+ lhu a5,-18(s0)
+ li a4,1
+ sll a4,a4,a5
+ .loc 1 153 40
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 153 19
+ mv a3,a5
+ .loc 1 153 77
+ lw a5,-48(s0)
+ and a5,a4,a5
+ .loc 1 153 75
+ sw a5,0(a3)
+ j .L16
+.L15:
+ .loc 1 156 20
+ lw a4,-40(s0)
+ li a5,72
+ bne a4,a5,.L16
+ .loc 1 157 97
+ lhu a5,-18(s0)
+ li a4,1
+ sll a4,a4,a5
+ .loc 1 157 44
+ lw a5,-36(s0)
+ addi a5,a5,16
+ .loc 1 157 23
+ mv a3,a5
+ .loc 1 157 81
+ lw a5,-48(s0)
+ and a5,a4,a5
+ .loc 1 157 79
+ sw a5,0(a3)
+.L16:
+ .loc 1 161 15
+ lw a5,-36(s0)
+ .loc 1 161 71
+ lw a4,-28(s0)
+ sw a4,0(a5)
+.L14:
+ .loc 1 141 27 discriminator 2
+ lhu a5,-18(s0)
+ addi a5,a5,1
+ sh a5,-18(s0)
+.L13:
+ .loc 1 141 5 discriminator 1
+ lhu a4,-18(s0)
+ li a5,7
+ bleu a4,a5,.L17
+ .loc 1 165 12
+ li a5,8
+ sh a5,-18(s0)
+ .loc 1 165 5
+ j .L18
+.L22:
+ .loc 1 166 17
+ lhu a5,-18(s0)
+ li a4,1
+ sll a4,a4,a5
+ .loc 1 166 23
+ lw a5,-48(s0)
+ and a5,a4,a5
+ .loc 1 166 12
+ beq a5,zero,.L19
+ .loc 1 167 42
+ lw a5,-36(s0)
+ addi a5,a5,4
+ .loc 1 167 17
+ lw a5,0(a5)
+ sw a5,-28(s0)
+ .loc 1 170 39
+ lhu a5,-18(s0)
+ addi a5,a5,-8
+ .loc 1 170 34
+ slli a5,a5,2
+ .loc 1 170 27
+ li a4,15
+ sll a5,a4,a5
+ .loc 1 170 20
+ not a5,a5
+ .loc 1 170 17
+ lw a4,-28(s0)
+ and a5,a4,a5
+ sw a5,-28(s0)
+ .loc 1 172 66
+ lhu a5,-18(s0)
+ addi a5,a5,-8
+ .loc 1 172 61
+ slli a5,a5,2
+ .loc 1 172 21
+ lw a4,-24(s0)
+ sll a5,a4,a5
+ .loc 1 172 17
+ lw a4,-28(s0)
+ or a5,a4,a5
+ sw a5,-28(s0)
+ .loc 1 175 16
+ lw a4,-40(s0)
+ li a5,40
+ bne a4,a5,.L20
+ .loc 1 177 93
+ lhu a5,-18(s0)
+ li a4,1
+ sll a4,a4,a5
+ .loc 1 177 40
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 177 19
+ mv a3,a5
+ .loc 1 177 77
+ lw a5,-48(s0)
+ and a5,a4,a5
+ .loc 1 177 75
+ sw a5,0(a3)
+ j .L21
+.L20:
+ .loc 1 180 20
+ lw a4,-40(s0)
+ li a5,72
+ bne a4,a5,.L21
+ .loc 1 181 97
+ lhu a5,-18(s0)
+ li a4,1
+ sll a4,a4,a5
+ .loc 1 181 44
+ lw a5,-36(s0)
+ addi a5,a5,16
+ .loc 1 181 23
+ mv a3,a5
+ .loc 1 181 81
+ lw a5,-48(s0)
+ and a5,a4,a5
+ .loc 1 181 79
+ sw a5,0(a3)
+.L21:
+ .loc 1 185 36
+ lw a5,-36(s0)
+ addi a5,a5,4
+ .loc 1 185 15
+ mv a4,a5
+ .loc 1 185 71
+ lw a5,-28(s0)
+ sw a5,0(a4)
+.L19:
+ .loc 1 165 28 discriminator 2
+ lhu a5,-18(s0)
+ addi a5,a5,1
+ sh a5,-18(s0)
+.L18:
+ .loc 1 165 5 discriminator 1
+ lhu a4,-18(s0)
+ li a5,15
+ bleu a4,a5,.L22
+ .loc 1 188 1
+ nop
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE4:
+ .size gpio_init, .-gpio_init
+ .align 1
+ .globl gpio_bit_set
+ .type gpio_bit_set, @function
+gpio_bit_set:
+.LFB5:
+ .loc 1 200 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 201 28
+ lw a5,-20(s0)
+ addi a5,a5,16
+ .loc 1 201 7
+ mv a4,a5
+ .loc 1 201 63
+ lw a5,-24(s0)
+ sw a5,0(a4)
+ .loc 1 202 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size gpio_bit_set, .-gpio_bit_set
+ .align 1
+ .globl gpio_bit_reset
+ .type gpio_bit_reset, @function
+gpio_bit_reset:
+.LFB6:
+ .loc 1 214 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 215 28
+ lw a5,-20(s0)
+ addi a5,a5,20
+ .loc 1 215 7
+ mv a4,a5
+ .loc 1 215 63
+ lw a5,-24(s0)
+ sw a5,0(a4)
+ .loc 1 216 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size gpio_bit_reset, .-gpio_bit_reset
+ .align 1
+ .globl gpio_bit_write
+ .type gpio_bit_write, @function
+gpio_bit_write:
+.LFB7:
+ .loc 1 232 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ sw a2,-28(s0)
+ .loc 1 233 8
+ lw a5,-28(s0)
+ beq a5,zero,.L26
+ .loc 1 234 32
+ lw a5,-20(s0)
+ addi a5,a5,16
+ .loc 1 234 11
+ mv a4,a5
+ .loc 1 234 67
+ lw a5,-24(s0)
+ sw a5,0(a4)
+ .loc 1 238 1
+ j .L28
+.L26:
+ .loc 1 236 32
+ lw a5,-20(s0)
+ addi a5,a5,20
+ .loc 1 236 11
+ mv a4,a5
+ .loc 1 236 67
+ lw a5,-24(s0)
+ sw a5,0(a4)
+.L28:
+ .loc 1 238 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE7:
+ .size gpio_bit_write, .-gpio_bit_write
+ .align 1
+ .globl gpio_port_write
+ .type gpio_port_write, @function
+gpio_port_write:
+.LFB8:
+ .loc 1 248 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ mv a5,a1
+ sh a5,-22(s0)
+ .loc 1 249 28
+ lw a5,-20(s0)
+ addi a5,a5,12
+ .loc 1 249 7
+ mv a4,a5
+ .loc 1 249 65
+ lhu a5,-22(s0)
+ .loc 1 249 63
+ sw a5,0(a4)
+ .loc 1 250 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE8:
+ .size gpio_port_write, .-gpio_port_write
+ .align 1
+ .globl gpio_input_bit_get
+ .type gpio_input_bit_get, @function
+gpio_input_bit_get:
+.LFB9:
+ .loc 1 262 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 263 53
+ lw a5,-20(s0)
+ addi a5,a5,8
+ .loc 1 263 31
+ lw a4,0(a5)
+ .loc 1 263 88
+ lw a5,-24(s0)
+ and a5,a4,a5
+ .loc 1 263 8
+ beq a5,zero,.L31
+ .loc 1 264 16
+ li a5,1
+ j .L32
+.L31:
+ .loc 1 266 16
+ li a5,0
+.L32:
+ .loc 1 268 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE9:
+ .size gpio_input_bit_get, .-gpio_input_bit_get
+ .align 1
+ .globl gpio_input_port_get
+ .type gpio_input_port_get, @function
+gpio_input_port_get:
+.LFB10:
+ .loc 1 277 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 278 47
+ lw a5,-20(s0)
+ addi a5,a5,8
+ .loc 1 278 25
+ lw a5,0(a5)
+ .loc 1 278 12
+ slli a5,a5,16
+ srli a5,a5,16
+ .loc 1 279 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE10:
+ .size gpio_input_port_get, .-gpio_input_port_get
+ .align 1
+ .globl gpio_output_bit_get
+ .type gpio_output_bit_get, @function
+gpio_output_bit_get:
+.LFB11:
+ .loc 1 291 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 292 53
+ lw a5,-20(s0)
+ addi a5,a5,12
+ .loc 1 292 31
+ lw a4,0(a5)
+ .loc 1 292 88
+ lw a5,-24(s0)
+ and a5,a4,a5
+ .loc 1 292 8
+ beq a5,zero,.L36
+ .loc 1 293 16
+ li a5,1
+ j .L37
+.L36:
+ .loc 1 295 16
+ li a5,0
+.L37:
+ .loc 1 297 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE11:
+ .size gpio_output_bit_get, .-gpio_output_bit_get
+ .align 1
+ .globl gpio_output_port_get
+ .type gpio_output_port_get, @function
+gpio_output_port_get:
+.LFB12:
+ .loc 1 306 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 307 47
+ lw a5,-20(s0)
+ addi a5,a5,12
+ .loc 1 307 25
+ lw a5,0(a5)
+ .loc 1 307 13
+ slli a5,a5,16
+ srli a5,a5,16
+ .loc 1 308 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE12:
+ .size gpio_output_port_get, .-gpio_output_port_get
+ .align 1
+ .globl gpio_pin_remap_config
+ .type gpio_pin_remap_config, @function
+gpio_pin_remap_config:
+.LFB13:
+ .loc 1 343 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 344 14
+ sw zero,-24(s0)
+ .loc 1 344 27
+ sw zero,-28(s0)
+ .loc 1 344 40
+ sw zero,-20(s0)
+ .loc 1 344 55
+ sw zero,-32(s0)
+ .loc 1 346 33
+ lw a5,-36(s0)
+ .loc 1 346 8
+ bge a5,zero,.L41
+ .loc 1 348 21
+ li a5,1073807360
+ addi a5,a5,28
+ .loc 1 348 18
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ j .L42
+.L41:
+ .loc 1 351 21
+ li a5,1073807360
+ addi a5,a5,4
+ .loc 1 351 18
+ lw a5,0(a5)
+ sw a5,-20(s0)
+.L42:
+ .loc 1 354 51
+ lw a5,-36(s0)
+ srli a5,a5,16
+ .loc 1 354 15
+ andi a5,a5,15
+ sw a5,-32(s0)
+ .loc 1 355 12
+ lw a4,-36(s0)
+ li a5,65536
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 359 23
+ lw a4,-36(s0)
+ li a5,3145728
+ and a4,a4,a5
+ .loc 1 358 8
+ li a5,3145728
+ bne a4,a5,.L43
+ .loc 1 360 18
+ lw a4,-20(s0)
+ li a5,-251658240
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 361 93
+ li a5,1073807360
+ addi a5,a5,4
+ lw a3,0(a5)
+ li a5,1073807360
+ addi a5,a5,4
+ li a4,-251658240
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ j .L44
+.L43:
+ .loc 1 362 50
+ lw a4,-36(s0)
+ li a5,1048576
+ and a5,a4,a5
+ .loc 1 362 15
+ beq a5,zero,.L45
+ .loc 1 363 16
+ lw a5,-32(s0)
+ li a4,3
+ sll a5,a4,a5
+ sw a5,-28(s0)
+ .loc 1 364 21
+ lw a5,-28(s0)
+ not a5,a5
+ .loc 1 364 18
+ lw a4,-20(s0)
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 365 18
+ lw a4,-20(s0)
+ li a5,251658240
+ or a5,a4,a5
+ sw a5,-20(s0)
+ j .L44
+.L45:
+ .loc 1 367 41
+ lw a5,-36(s0)
+ srli a5,a5,21
+ .loc 1 367 51
+ slli a5,a5,4
+ .loc 1 367 30
+ lw a4,-24(s0)
+ sll a5,a4,a5
+ .loc 1 367 21
+ not a5,a5
+ .loc 1 367 18
+ lw a4,-20(s0)
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 368 18
+ lw a4,-20(s0)
+ li a5,251658240
+ or a5,a4,a5
+ sw a5,-20(s0)
+.L44:
+ .loc 1 372 8
+ lw a5,-40(s0)
+ beq a5,zero,.L46
+ .loc 1 373 40
+ lw a5,-36(s0)
+ srli a5,a5,21
+ .loc 1 373 50
+ slli a5,a5,4
+ .loc 1 373 29
+ lw a4,-24(s0)
+ sll a5,a4,a5
+ .loc 1 373 18
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+.L46:
+ .loc 1 376 33
+ lw a5,-36(s0)
+ .loc 1 376 8
+ bge a5,zero,.L47
+ .loc 1 378 10
+ li a5,1073807360
+ addi a5,a5,28
+ .loc 1 378 93
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 383 1
+ j .L49
+.L47:
+ .loc 1 381 10
+ li a5,1073807360
+ addi a5,a5,4
+ .loc 1 381 93
+ lw a4,-20(s0)
+ sw a4,0(a5)
+.L49:
+ .loc 1 383 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE13:
+ .size gpio_pin_remap_config, .-gpio_pin_remap_config
+ .align 1
+ .globl gpio_exti_source_select
+ .type gpio_exti_source_select, @function
+gpio_exti_source_select:
+.LFB14:
+ .loc 1 399 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ mv a5,a0
+ mv a4,a1
+ sb a5,-33(s0)
+ mv a5,a4
+ sb a5,-34(s0)
+ .loc 1 400 14
+ sw zero,-20(s0)
+ .loc 1 402 48
+ lbu a5,-34(s0)
+ andi a5,a5,3
+ .loc 1 402 34
+ slli a5,a5,2
+ .loc 1 401 12
+ li a4,15
+ sll a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 405 8
+ lbu a4,-34(s0)
+ li a5,3
+ bgtu a4,a5,.L51
+ .loc 1 407 93
+ li a5,1073807360
+ addi a5,a5,8
+ lw a3,0(a5)
+ .loc 1 407 96
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 407 93
+ li a5,1073807360
+ addi a5,a5,8
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 408 93
+ li a5,1073807360
+ addi a5,a5,8
+ lw a3,0(a5)
+ .loc 1 408 98
+ lbu a4,-33(s0)
+ .loc 1 410 39
+ lbu a5,-34(s0)
+ andi a5,a5,3
+ .loc 1 410 25
+ slli a5,a5,2
+ .loc 1 409 17
+ sll a4,a4,a5
+ .loc 1 408 93
+ li a5,1073807360
+ addi a5,a5,8
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 430 1
+ j .L55
+.L51:
+ .loc 1 411 15
+ lbu a4,-34(s0)
+ li a5,7
+ bgtu a4,a5,.L53
+ .loc 1 413 93
+ li a5,1073807360
+ addi a5,a5,12
+ lw a3,0(a5)
+ .loc 1 413 96
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 413 93
+ li a5,1073807360
+ addi a5,a5,12
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 414 93
+ li a5,1073807360
+ addi a5,a5,12
+ lw a3,0(a5)
+ .loc 1 414 98
+ lbu a4,-33(s0)
+ .loc 1 416 39
+ lbu a5,-34(s0)
+ andi a5,a5,3
+ .loc 1 416 25
+ slli a5,a5,2
+ .loc 1 415 17
+ sll a4,a4,a5
+ .loc 1 414 93
+ li a5,1073807360
+ addi a5,a5,12
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 430 1
+ j .L55
+.L53:
+ .loc 1 417 15
+ lbu a4,-34(s0)
+ li a5,11
+ bgtu a4,a5,.L54
+ .loc 1 419 93
+ li a5,1073807360
+ addi a5,a5,16
+ lw a3,0(a5)
+ .loc 1 419 96
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 419 93
+ li a5,1073807360
+ addi a5,a5,16
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 420 93
+ li a5,1073807360
+ addi a5,a5,16
+ lw a3,0(a5)
+ .loc 1 420 98
+ lbu a4,-33(s0)
+ .loc 1 422 39
+ lbu a5,-34(s0)
+ andi a5,a5,3
+ .loc 1 422 25
+ slli a5,a5,2
+ .loc 1 421 17
+ sll a4,a4,a5
+ .loc 1 420 93
+ li a5,1073807360
+ addi a5,a5,16
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 430 1
+ j .L55
+.L54:
+ .loc 1 425 93
+ li a5,1073807360
+ addi a5,a5,20
+ lw a3,0(a5)
+ .loc 1 425 96
+ lw a5,-20(s0)
+ not a4,a5
+ .loc 1 425 93
+ li a5,1073807360
+ addi a5,a5,20
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 426 93
+ li a5,1073807360
+ addi a5,a5,20
+ lw a3,0(a5)
+ .loc 1 426 98
+ lbu a4,-33(s0)
+ .loc 1 428 39
+ lbu a5,-34(s0)
+ andi a5,a5,3
+ .loc 1 428 25
+ slli a5,a5,2
+ .loc 1 427 17
+ sll a4,a4,a5
+ .loc 1 426 93
+ li a5,1073807360
+ addi a5,a5,20
+ or a4,a3,a4
+ sw a4,0(a5)
+.L55:
+ .loc 1 430 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE14:
+ .size gpio_exti_source_select, .-gpio_exti_source_select
+ .align 1
+ .globl gpio_event_output_config
+ .type gpio_event_output_config, @function
+gpio_event_output_config:
+.LFB15:
+ .loc 1 448 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ mv a5,a0
+ mv a4,a1
+ sb a5,-33(s0)
+ mv a5,a4
+ sb a5,-34(s0)
+ .loc 1 449 14
+ sw zero,-20(s0)
+ .loc 1 450 12
+ li a5,1073807360
+ .loc 1 450 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 453 9
+ lw a5,-20(s0)
+ andi a5,a5,-128
+ sw a5,-20(s0)
+ .loc 1 455 24
+ lbu a5,-33(s0)
+ .loc 1 455 12
+ slli a5,a5,4
+ .loc 1 455 9
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 456 12
+ lbu a5,-34(s0)
+ .loc 1 456 9
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 458 6
+ li a5,1073807360
+ .loc 1 458 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 459 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE15:
+ .size gpio_event_output_config, .-gpio_event_output_config
+ .align 1
+ .globl gpio_event_output_enable
+ .type gpio_event_output_enable, @function
+gpio_event_output_enable:
+.LFB16:
+ .loc 1 468 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 469 89
+ li a5,1073807360
+ lw a4,0(a5)
+ li a5,1073807360
+ ori a4,a4,128
+ sw a4,0(a5)
+ .loc 1 470 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE16:
+ .size gpio_event_output_enable, .-gpio_event_output_enable
+ .align 1
+ .globl gpio_event_output_disable
+ .type gpio_event_output_disable, @function
+gpio_event_output_disable:
+.LFB17:
+ .loc 1 479 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 480 89
+ li a5,1073807360
+ lw a4,0(a5)
+ li a5,1073807360
+ andi a4,a4,-129
+ sw a4,0(a5)
+ .loc 1 481 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE17:
+ .size gpio_event_output_disable, .-gpio_event_output_disable
+ .align 1
+ .globl gpio_pin_lock
+ .type gpio_pin_lock, @function
+gpio_pin_lock:
+.LFB18:
+ .loc 1 493 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 494 14
+ li a5,65536
+ sw a5,-20(s0)
+ .loc 1 495 10
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 498 28
+ lw a5,-36(s0)
+ addi a5,a5,24
+ .loc 1 498 7
+ mv a4,a5
+ .loc 1 498 63
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 499 28
+ lw a5,-36(s0)
+ addi a5,a5,24
+ .loc 1 499 7
+ mv a4,a5
+ .loc 1 499 63
+ lw a5,-40(s0)
+ sw a5,0(a4)
+ .loc 1 500 28
+ lw a5,-36(s0)
+ addi a5,a5,24
+ .loc 1 500 7
+ mv a4,a5
+ .loc 1 500 63
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 501 35
+ lw a5,-36(s0)
+ addi a5,a5,24
+ .loc 1 501 10
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 502 35
+ lw a5,-36(s0)
+ addi a5,a5,24
+ .loc 1 502 10
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 503 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE18:
+ .size gpio_pin_lock, .-gpio_pin_lock
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .file 4 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .file 6 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0x5e1
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF3264
+ .byte 0xc
+ .4byte .LASF3265
+ .4byte .LASF3266
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3178
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3179
+ .byte 0x3
+ .4byte .LASF3182
+ .byte 0x2
+ .byte 0x2b
+ .byte 0x17
+ .4byte 0x43
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF3180
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF3181
+ .byte 0x3
+ .4byte .LASF3183
+ .byte 0x2
+ .byte 0x39
+ .byte 0x1c
+ .4byte 0x5d
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF3184
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF3185
+ .byte 0x3
+ .4byte .LASF3186
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x77
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3187
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF3188
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF3189
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF3190
+ .byte 0x3
+ .byte 0x18
+ .byte 0x13
+ .4byte 0x37
+ .byte 0x3
+ .4byte .LASF3191
+ .byte 0x3
+ .byte 0x24
+ .byte 0x14
+ .4byte 0x51
+ .byte 0x3
+ .4byte .LASF3192
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x6b
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x4
+ .byte 0xb3
+ .byte 0xe
+ .4byte 0xd2
+ .byte 0x6
+ .4byte .LASF3193
+ .byte 0
+ .byte 0x6
+ .4byte .LASF3194
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3195
+ .byte 0x4
+ .byte 0xb3
+ .byte 0x3c
+ .4byte 0xb7
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x4
+ .byte 0xb5
+ .byte 0xe
+ .4byte 0xf9
+ .byte 0x6
+ .4byte .LASF3196
+ .byte 0
+ .byte 0x7
+ .string "SET"
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3197
+ .byte 0x4
+ .byte 0xb5
+ .byte 0x28
+ .4byte 0xde
+ .byte 0x8
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x139
+ .byte 0xe
+ .4byte 0x1f5
+ .byte 0x9
+ .4byte .LASF3198
+ .2byte 0xa0c
+ .byte 0x9
+ .4byte .LASF3199
+ .2byte 0x400
+ .byte 0x9
+ .4byte .LASF3200
+ .2byte 0x401
+ .byte 0x9
+ .4byte .LASF3201
+ .2byte 0x402
+ .byte 0x9
+ .4byte .LASF3202
+ .2byte 0x403
+ .byte 0x9
+ .4byte .LASF3203
+ .2byte 0x404
+ .byte 0x9
+ .4byte .LASF3204
+ .2byte 0x405
+ .byte 0x9
+ .4byte .LASF3205
+ .2byte 0x40b
+ .byte 0x9
+ .4byte .LASF3206
+ .2byte 0x40e
+ .byte 0x9
+ .4byte .LASF3207
+ .2byte 0x40f
+ .byte 0x9
+ .4byte .LASF3208
+ .2byte 0x411
+ .byte 0x9
+ .4byte .LASF3209
+ .2byte 0x412
+ .byte 0x9
+ .4byte .LASF3210
+ .2byte 0x413
+ .byte 0x9
+ .4byte .LASF3211
+ .2byte 0x414
+ .byte 0x9
+ .4byte .LASF3212
+ .2byte 0x415
+ .byte 0x9
+ .4byte .LASF3213
+ .2byte 0x416
+ .byte 0x9
+ .4byte .LASF3214
+ .2byte 0x419
+ .byte 0x9
+ .4byte .LASF3215
+ .2byte 0x41a
+ .byte 0x9
+ .4byte .LASF3216
+ .2byte 0x41b
+ .byte 0x9
+ .4byte .LASF3217
+ .2byte 0x41c
+ .byte 0x9
+ .4byte .LASF3218
+ .2byte 0x41d
+ .byte 0x9
+ .4byte .LASF3219
+ .2byte 0x300
+ .byte 0x9
+ .4byte .LASF3220
+ .2byte 0x302
+ .byte 0x9
+ .4byte .LASF3221
+ .2byte 0x303
+ .byte 0x9
+ .4byte .LASF3222
+ .2byte 0x304
+ .byte 0x9
+ .4byte .LASF3223
+ .2byte 0x305
+ .byte 0x9
+ .4byte .LASF3224
+ .2byte 0x306
+ .byte 0x9
+ .4byte .LASF3225
+ .2byte 0x309
+ .byte 0x9
+ .4byte .LASF3226
+ .2byte 0x30a
+ .byte 0x9
+ .4byte .LASF3227
+ .2byte 0x30b
+ .byte 0x9
+ .4byte .LASF3228
+ .2byte 0x30c
+ .byte 0x9
+ .4byte .LASF3229
+ .2byte 0x30e
+ .byte 0
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF3230
+ .byte 0xa
+ .4byte .LASF3231
+ .byte 0x6
+ .2byte 0x109
+ .byte 0x14
+ .4byte 0xf9
+ .byte 0xb
+ .4byte .LASF3235
+ .byte 0x1
+ .2byte 0x1ec
+ .byte 0x6
+ .4byte .LFB18
+ .4byte .LFE18-.LFB18
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x251
+ .byte 0xc
+ .4byte .LASF3232
+ .byte 0x1
+ .2byte 0x1ec
+ .byte 0x1d
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xd
+ .string "pin"
+ .byte 0x1
+ .2byte 0x1ec
+ .byte 0x33
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xe
+ .4byte .LASF3239
+ .byte 0x1
+ .2byte 0x1ee
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xf
+ .4byte .LASF3233
+ .byte 0x1
+ .2byte 0x1de
+ .byte 0x6
+ .4byte .LFB17
+ .4byte .LFE17-.LFB17
+ .byte 0x1
+ .byte 0x9c
+ .byte 0xf
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1d3
+ .byte 0x6
+ .4byte .LFB16
+ .4byte .LFE16-.LFB16
+ .byte 0x1
+ .byte 0x9c
+ .byte 0xb
+ .4byte .LASF3236
+ .byte 0x1
+ .2byte 0x1bf
+ .byte 0x6
+ .4byte .LFB15
+ .4byte .LFE15-.LFB15
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x2bf
+ .byte 0xc
+ .4byte .LASF3237
+ .byte 0x1
+ .2byte 0x1bf
+ .byte 0x27
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5f
+ .byte 0xc
+ .4byte .LASF3238
+ .byte 0x1
+ .2byte 0x1bf
+ .byte 0x3c
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5e
+ .byte 0x10
+ .string "reg"
+ .byte 0x1
+ .2byte 0x1c1
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xb
+ .4byte .LASF3240
+ .byte 0x1
+ .2byte 0x18e
+ .byte 0x6
+ .4byte .LFB14
+ .4byte .LFE14-.LFB14
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x307
+ .byte 0xc
+ .4byte .LASF3237
+ .byte 0x1
+ .2byte 0x18e
+ .byte 0x26
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5f
+ .byte 0xc
+ .4byte .LASF3238
+ .byte 0x1
+ .2byte 0x18e
+ .byte 0x3b
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5e
+ .byte 0xe
+ .4byte .LASF3241
+ .byte 0x1
+ .2byte 0x190
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xb
+ .4byte .LASF3242
+ .byte 0x1
+ .2byte 0x156
+ .byte 0x6
+ .4byte .LFB13
+ .4byte .LFE13-.LFB13
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x37f
+ .byte 0xc
+ .4byte .LASF3243
+ .byte 0x1
+ .2byte 0x156
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xc
+ .4byte .LASF3244
+ .byte 0x1
+ .2byte 0x156
+ .byte 0x3a
+ .4byte 0xd2
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xe
+ .4byte .LASF3245
+ .byte 0x1
+ .2byte 0x158
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0xe
+ .4byte .LASF3246
+ .byte 0x1
+ .2byte 0x158
+ .byte 0x1b
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0xe
+ .4byte .LASF3247
+ .byte 0x1
+ .2byte 0x158
+ .byte 0x28
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xe
+ .4byte .LASF3248
+ .byte 0x1
+ .2byte 0x158
+ .byte 0x37
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3249
+ .byte 0x1
+ .2byte 0x131
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB12
+ .4byte .LFE12-.LFB12
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x3ab
+ .byte 0xc
+ .4byte .LASF3232
+ .byte 0x1
+ .2byte 0x131
+ .byte 0x28
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3250
+ .byte 0x1
+ .2byte 0x122
+ .byte 0xc
+ .4byte 0xf9
+ .4byte .LFB11
+ .4byte .LFE11-.LFB11
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x3e7
+ .byte 0xc
+ .4byte .LASF3232
+ .byte 0x1
+ .2byte 0x122
+ .byte 0x29
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xd
+ .string "pin"
+ .byte 0x1
+ .2byte 0x122
+ .byte 0x3f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3251
+ .byte 0x1
+ .2byte 0x114
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB10
+ .4byte .LFE10-.LFB10
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x413
+ .byte 0xc
+ .4byte .LASF3232
+ .byte 0x1
+ .2byte 0x114
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3252
+ .byte 0x1
+ .2byte 0x105
+ .byte 0xc
+ .4byte 0xf9
+ .4byte .LFB9
+ .4byte .LFE9-.LFB9
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x44f
+ .byte 0xc
+ .4byte .LASF3232
+ .byte 0x1
+ .2byte 0x105
+ .byte 0x28
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xd
+ .string "pin"
+ .byte 0x1
+ .2byte 0x105
+ .byte 0x3e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3253
+ .byte 0x1
+ .byte 0xf7
+ .byte 0x6
+ .4byte .LFB8
+ .4byte .LFE8-.LFB8
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x484
+ .byte 0x13
+ .4byte .LASF3232
+ .byte 0x1
+ .byte 0xf7
+ .byte 0x1f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x13
+ .4byte .LASF3254
+ .byte 0x1
+ .byte 0xf7
+ .byte 0x35
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6a
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3255
+ .byte 0x1
+ .byte 0xe7
+ .byte 0x6
+ .4byte .LFB7
+ .4byte .LFE7-.LFB7
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x4c8
+ .byte 0x13
+ .4byte .LASF3232
+ .byte 0x1
+ .byte 0xe7
+ .byte 0x1e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x14
+ .string "pin"
+ .byte 0x1
+ .byte 0xe7
+ .byte 0x34
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x13
+ .4byte .LASF3256
+ .byte 0x1
+ .byte 0xe7
+ .byte 0x44
+ .4byte 0x1fc
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3257
+ .byte 0x1
+ .byte 0xd5
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x4fd
+ .byte 0x13
+ .4byte .LASF3232
+ .byte 0x1
+ .byte 0xd5
+ .byte 0x1e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x14
+ .string "pin"
+ .byte 0x1
+ .byte 0xd5
+ .byte 0x34
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3258
+ .byte 0x1
+ .byte 0xc7
+ .byte 0x6
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x532
+ .byte 0x13
+ .4byte .LASF3232
+ .byte 0x1
+ .byte 0xc7
+ .byte 0x1c
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x14
+ .string "pin"
+ .byte 0x1
+ .byte 0xc7
+ .byte 0x32
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3259
+ .byte 0x1
+ .byte 0x7c
+ .byte 0x6
+ .4byte .LFB4
+ .4byte .LFE4-.LFB4
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x5b0
+ .byte 0x13
+ .4byte .LASF3232
+ .byte 0x1
+ .byte 0x7c
+ .byte 0x19
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x13
+ .4byte .LASF3260
+ .byte 0x1
+ .byte 0x7c
+ .byte 0x2f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0x13
+ .4byte .LASF3261
+ .byte 0x1
+ .byte 0x7c
+ .byte 0x3e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x54
+ .byte 0x14
+ .string "pin"
+ .byte 0x1
+ .byte 0x7d
+ .byte 0x12
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x50
+ .byte 0x15
+ .string "i"
+ .byte 0x1
+ .byte 0x7f
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0x16
+ .4byte .LASF3262
+ .byte 0x1
+ .byte 0x80
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x15
+ .string "reg"
+ .byte 0x1
+ .byte 0x81
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0x17
+ .4byte .LASF3263
+ .byte 0x1
+ .byte 0x5d
+ .byte 0x6
+ .4byte .LFB3
+ .4byte .LFE3-.LFB3
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x18
+ .4byte .LASF3267
+ .byte 0x1
+ .byte 0x36
+ .byte 0x6
+ .4byte .LFB2
+ .4byte .LFE2-.LFB2
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x13
+ .4byte .LASF3232
+ .byte 0x1
+ .byte 0x36
+ .byte 0x1b
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0x5
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xd
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xe
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xf
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x10
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x11
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x12
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x13
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x14
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x15
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x16
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x17
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x18
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .byte 0x3
+ .byte 0x24
+ .byte 0x6
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .file 7 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x7
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF341
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF342
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF343
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x9
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF344
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 11 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0xb
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 12 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xc
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xd
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF528
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .byte 0x3
+ .byte 0x31
+ .byte 0x6
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .byte 0x3
+ .byte 0x36
+ .byte 0x5
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x20
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2794
+ .file 33 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2858
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3169
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3170
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3171
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3172
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3173
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3174
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3175
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3176
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3177
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF339
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF340
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF348
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF349
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF360
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF371
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF372
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF373
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF374
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF403
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF404
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF382
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF381
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF420
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF421
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF489
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF490
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF525
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF526
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF709
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF710
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF778
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF779
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1116
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1117
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1124
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1125
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1225
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1226
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1324
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1325
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1331
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1332
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1361
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1362
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1483
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1484
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1597
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1598
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1710
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1737
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1761
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1794
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1878
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1879
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF1990
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF1991
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2017
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2018
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2041
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2042
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2074
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2075
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2125
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2165
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2308
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2405
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2445
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2588
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2657
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2777
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2793
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2806
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2824
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF2840
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF2841
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF2842
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF2844
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2847
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2857
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF2863
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2883
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2888
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.42.a27b53988a6e293185a2067f74a5a061,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2937
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF3001
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF3003
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3057
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3073
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3074
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF3086
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF3104
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF3120
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF3121
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF3124
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF3127
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF3137
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF3138
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF3143
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF3163
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF2026:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF2219:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1588:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF2731:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF366:
+ .string "___int16_t_defined 1"
+.LASF1980:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF758:
+ .string "BKP_DATA BITS(0,15)"
+.LASF885:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1656:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF2881:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF3007:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF2641:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF2678:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF1401:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF835:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1277:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2181:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF1889:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF1302:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF3267:
+ .string "gpio_deinit"
+.LASF1859:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF2150:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF2830:
+ .string "_T_WCHAR "
+.LASF1721:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF537:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1694:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2608:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2216:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF827:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2193:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF510:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF2435:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF914:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF2280:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF1922:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF2170:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2595:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF1472:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1096:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF3187:
+ .string "long unsigned int"
+.LASF727:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF2157:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF3228:
+ .string "RCU_SPI0RST"
+.LASF2130:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF3066:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF501:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF2960:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1340:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF755:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2494:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF1408:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF2133:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF478:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF1724:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF1037:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF2271:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF2823:
+ .string "_SIZET_ "
+.LASF1339:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF2626:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1116:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF439:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF2899:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2018:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF581:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2675:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF1226:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3195:
+ .string "ControlStatus"
+.LASF2761:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF1531:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1783:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF341:
+ .string "SYSTEM_GD32VF103_H "
+.LASF1516:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF498:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF459:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF2919:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF452:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF2273:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2779:
+ .string "WWDGT WWDGT_BASE"
+.LASF413:
+ .string "_UINT32_T_DECLARED "
+.LASF1278:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF2785:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF3070:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF674:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF3096:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2148:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF2787:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF2696:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF3123:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF435:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1115:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF1553:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF3257:
+ .string "gpio_bit_reset"
+.LASF1017:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF993:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF1619:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF2016:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF3015:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF386:
+ .string "short +1"
+.LASF3162:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF2891:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF2527:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF702:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF2723:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF2704:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF1014:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF678:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF1955:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2651:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF467:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF3112:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF512:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF2709:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2509:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF1761:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2559:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF3053:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1555:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF511:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1000:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2277:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF1833:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1144:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF1963:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF2702:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF1513:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF421:
+ .string "_UINTPTR_T_DECLARED "
+.LASF2994:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF3043:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF2020:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF424:
+ .string "__int_least32_t_defined 1"
+.LASF2859:
+ .string "_RISCV_CONST_H "
+.LASF2253:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF3116:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF2144:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1176:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF2803:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1042:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2327:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1627:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF2264:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF1866:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2255:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2251:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF3139:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF2456:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2070:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF1816:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF669:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF3127:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF2275:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF3181:
+ .string "short int"
+.LASF3146:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF551:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1230:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF1851:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1610:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF2305:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2047:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF2298:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF1342:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1441:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF2931:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF548:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF3174:
+ .string "PCF_LOCATION1_MASK ((uint32_t)0x00200000U)"
+.LASF350:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2375:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF3233:
+ .string "gpio_event_output_disable"
+.LASF1642:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2477:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF2221:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF1836:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF899:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF1999:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF2715:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1324:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF759:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1258:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF762:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF1687:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF795:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF465:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF666:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF532:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1237:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF946:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2095:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF927:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF1491:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF958:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF1864:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF1056:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF1888:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF2488:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF1603:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF642:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF1931:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF813:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2195:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF2875:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2021:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF904:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF639:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF2129:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1262:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2295:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2632:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF2525:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF2854:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1676:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF364:
+ .string "__have_long32 1"
+.LASF892:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF1337:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1241:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF2819:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF1100:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF801:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF1901:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF3145:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF1958:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF1797:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF1683:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF948:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3192:
+ .string "uint32_t"
+.LASF3176:
+ .string "AFIO_PCF1_FIELDS ((uint32_t)0x80000000U)"
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF2757:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1696:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF401:
+ .string "__LEAST8 \"hh\""
+.LASF1568:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1263:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1149:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF1852:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF2043:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF2485:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF2430:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF814:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2312:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF3040:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2492:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF2290:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1156:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF1406:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF1063:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF2552:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF3093:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2617:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF1847:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF2624:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF860:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF2982:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF2385:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF1170:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF2294:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF2169:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2493:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF1320:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF2985:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF1729:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF2805:
+ .string "_GCC_PTRDIFF_T "
+.LASF3001:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF2945:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF1461:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2235:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2268:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1083:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF829:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2006:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1534:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF387:
+ .string "__int20 +2"
+.LASF343:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF552:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF1633:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF2238:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF2952:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2200:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF3119:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF2885:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF2120:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2357:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF2913:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2260:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF3101:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF800:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF930:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF880:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF1918:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2686:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF1297:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF3131:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF806:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1020:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2122:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF3234:
+ .string "gpio_event_output_enable"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF2331:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1646:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF1731:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1183:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2533:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF2927:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2257:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF3050:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2285:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF2935:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF3229:
+ .string "RCU_USART0RST"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF942:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF431:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF2882:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2698:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2278:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF3084:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF2449:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1695:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF784:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF2060:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2359:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF1912:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF3255:
+ .string "gpio_bit_write"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF1748:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF1095:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF962:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1085:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1345:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF3262:
+ .string "temp_mode"
+.LASF1133:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF2466:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF362:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1522:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF1875:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF2561:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF427:
+ .string "__int_fast16_t_defined 1"
+.LASF2900:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF1080:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF1861:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1671:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF2540:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF567:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1674:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF869:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2354:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF970:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2196:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF539:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2388:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF2455:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF3224:
+ .string "RCU_GPIOERST"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF363:
+ .string "__have_longlong64 1"
+.LASF852:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF3097:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF895:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF2707:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF1386:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2172:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF1667:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF2930:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1059:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1184:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2167:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1821:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF2163:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2319:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF2684:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF1728:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF2790:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1503:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2660:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1175:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1966:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF2979:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2442:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1108:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF821:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF2573:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF388:
+ .string "__int20__ +2"
+.LASF1310:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF3238:
+ .string "output_pin"
+.LASF1624:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1640:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF859:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF1211:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1521:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2025:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1570:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF618:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF1974:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF3011:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF1446:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF1595:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1498:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2254:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF2390:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF2062:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF654:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1621:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF1790:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF1854:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF1892:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2135:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF1736:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF883:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF2867:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF414:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF1880:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF540:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF2755:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2269:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2346:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF2282:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF357:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF549:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF905:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF830:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF1479:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF2368:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF923:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF3058:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF2010:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2074:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF872:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF1940:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2024:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF1511:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF854:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF1623:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2432:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF2743:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1422:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1208:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF533:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF2971:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF565:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF3089:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1067:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF3155:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF1968:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2038:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF3062:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF1255:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF3203:
+ .string "RCU_TIMER5RST"
+.LASF2650:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF1150:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2713:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1500:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF3175:
+ .string "PCF_LOCATION2_MASK ((uint32_t)0x00100000U)"
+.LASF995:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF1939:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1240:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF2845:
+ .string "__need_NULL"
+.LASF2512:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1538:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2439:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF2964:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2379:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF1802:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2103:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF542:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2574:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF1936:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2609:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF3102:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF360:
+ .string "__XSI_VISIBLE 0"
+.LASF2126:
+ .string "GD32VF103_RTC_H "
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2536:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2217:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF526:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF1924:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF2023:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF925:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2064:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2663:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF1826:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF2005:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF665:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2087:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2892:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF2611:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1872:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF3047:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF3021:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF2013:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF606:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF834:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2491:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF1993:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1132:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2399:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1630:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF529:
+ .string "ADC0 ADC_BASE"
+.LASF1515:
+ .string "FMC_CTL_START BIT(6)"
+.LASF1076:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF1362:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF1747:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2338:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF573:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF2077:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF2951:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF1613:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF416:
+ .string "_UINT64_T_DECLARED "
+.LASF504:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF2740:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF2111:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF508:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1469:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF3087:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF1897:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF966:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF2904:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF3177:
+ .string "GPIO_OUTPUT_PORT_OFFSET ((uint32_t)4U)"
+.LASF2957:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF2652:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF1745:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2543:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1697:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF1685:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2591:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1585:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1123:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1679:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1368:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF1746:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF2847:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF1542:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF1283:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF3033:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF866:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF3028:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF1626:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF374:
+ .string "_SYS__INTSUP_H "
+.LASF913:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2289:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF2520:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2066:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2231:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF2718:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF799:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF1855:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF2188:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF3193:
+ .string "DISABLE"
+.LASF1800:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF1589:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF1829:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF390:
+ .string "long +4"
+.LASF1266:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1072:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF2970:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF2726:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF1867:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF1971:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1616:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF1130:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1942:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF2661:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF1759:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF590:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF446:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF404:
+ .string "__LEAST64 \"ll\""
+.LASF681:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2564:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2483:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF912:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2079:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2570:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF889:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1296:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF1952:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF1777:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF3035:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2369:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF607:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF3044:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF2230:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF558:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF3010:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF582:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF2569:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2727:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF394:
+ .string "__INT16 \"h\""
+.LASF2474:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2045:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF3198:
+ .string "RCU_USBFSRST"
+.LASF957:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF3182:
+ .string "__uint8_t"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2184:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF601:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1129:
+ .string "DAC1 (1U)"
+.LASF680:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF2849:
+ .string "TIMER_MSIP 0xFFC"
+.LASF2843:
+ .string "NULL"
+.LASF782:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF1347:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF2292:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF331:
+ .string "__I volatile const"
+.LASF1611:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF1003:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2567:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF936:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2877:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF3003:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF649:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF2826:
+ .string "__wchar_t__ "
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF1973:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1093:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF3249:
+ .string "gpio_output_port_get"
+.LASF2706:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF978:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1602:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF846:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF2926:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1364:
+ .string "EXTI EXTI_BASE"
+.LASF1758:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF1722:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF3069:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1338:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF1744:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF643:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF793:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF1843:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF1972:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF688:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF3172:
+ .string "PCF_POSITION_MASK ((uint32_t)0x000F0000U)"
+.LASF514:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2040:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF689:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF2059:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF773:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF1664:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2629:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF2081:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF968:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2160:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF1784:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF1634:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF1103:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1106:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2423:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1574:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF766:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF1484:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF613:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF438:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF2949:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF781:
+ .string "CAN0 CAN_BASE"
+.LASF400:
+ .string "__FAST64 \"ll\""
+.LASF1134:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1587:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1054:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF1641:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF2600:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF988:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF1427:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF2728:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1617:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1040:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF1715:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2487:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF2093:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF1004:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2088:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1107:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF959:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF3167:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF2895:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2507:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2480:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF977:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF3197:
+ .string "FlagStatus"
+.LASF2818:
+ .string "_SIZE_T_DEFINED "
+.LASF2499:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF437:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF1393:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF1573:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF1997:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF1740:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF1726:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2646:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1592:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF395:
+ .string "__INT32 \"l\""
+.LASF761:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1293:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF1562:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF2099:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF347:
+ .string "__NEWLIB__ 4"
+.LASF2942:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2443:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF2839:
+ .string "_GCC_WCHAR_T "
+.LASF1267:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF1157:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF1904:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF1801:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF3039:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF351:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2438:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2490:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF2681:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF365:
+ .string "___int8_t_defined 1"
+.LASF3083:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF2703:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF3220:
+ .string "RCU_GPIOARST"
+.LASF460:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF932:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2365:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF954:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2475:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF1738:
+ .string "GD32VF103_DBG_H "
+.LASF440:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2175:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF2753:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF3128:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1097:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF1720:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2673:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF947:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF845:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF2416:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF1944:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF3230:
+ .string "long double"
+.LASF2804:
+ .string "___int_ptrdiff_t_h "
+.LASF1499:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1582:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2799:
+ .string "_T_PTRDIFF_ "
+.LASF1769:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF1649:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF2297:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF2342:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF1504:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1584:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF2107:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF340:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF481:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF2794:
+ .string "N200_FUNC_H "
+.LASF2983:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF788:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF2916:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2601:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1739:
+ .string "DBG DBG_BASE"
+.LASF2340:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF2821:
+ .string "___int_size_t_h "
+.LASF1868:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF1459:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2555:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2431:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF2161:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1564:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1125:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF2486:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF3104:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF809:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF1580:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF1768:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF874:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF1430:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF1147:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF2283:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2085:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF2586:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2083:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF1812:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF525:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2627:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF1932:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF661:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF2645:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF3199:
+ .string "RCU_TIMER1RST"
+.LASF1670:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF602:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2464:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF2778:
+ .string "GD32VF103_WWDGT_H "
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF2724:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF922:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2378:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF933:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF455:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF937:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF3132:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF1597:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2303:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF3045:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF3160:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF2241:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF2002:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF911:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1566:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF1309:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF918:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF820:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF1834:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF1788:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF490:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1359:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF1956:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF596:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1675:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF2323:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1678:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1681:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1560:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF338:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF3008:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2009:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1543:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF1102:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1242:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1512:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1677:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF1318:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2664:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF2495:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF629:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2394:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF3215:
+ .string "RCU_CAN1RST"
+.LASF2997:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF1879:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF3020:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF2717:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF2835:
+ .string "_WCHAR_T_DEFINED "
+.LASF1753:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF382:
+ .string "long"
+.LASF2855:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2541:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF1928:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF1274:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2403:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF2770:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF356:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF3142:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1174:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2127:
+ .string "RTC RTC_BASE"
+.LASF952:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF3071:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF1473:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1121:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF1546:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1839:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1012:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF1937:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF999:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF2961:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1444:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1288:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF786:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2710:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1209:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF1945:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF368:
+ .string "___int64_t_defined 1"
+.LASF2250:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1057:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF1965:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF1778:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF3074:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF1260:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF456:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF1367:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF1291:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF3029:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF1477:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2243:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF677:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF953:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1559:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF1785:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2092:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2501:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF1970:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1333:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2523:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2630:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF2766:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2114:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2240:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF2974:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1244:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2237:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1557:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF3183:
+ .string "__uint16_t"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF3157:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF1733:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2481:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2197:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2489:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF1466:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1228:
+ .string "DMA0 (DMA_BASE)"
+.LASF2386:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF556:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF1979:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1636:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF448:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF425:
+ .string "__int_least64_t_defined 1"
+.LASF432:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1280:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF1064:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF408:
+ .string "__int8_t_defined 1"
+.LASF1254:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF3054:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1299:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF973:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF1112:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF451:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF1353:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2155:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF491:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2395:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF1989:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF3022:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF352:
+ .string "__ATFILE_VISIBLE 0"
+.LASF1923:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2222:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF668:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1335:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1654:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF2991:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF812:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF3263:
+ .string "gpio_afio_deinit"
+.LASF851:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF3149:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF507:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1140:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1550:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2587:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF979:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF574:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2602:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF1261:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1464:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF950:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF1128:
+ .string "DAC0 (0U)"
+.LASF969:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2134:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF1926:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1563:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF2825:
+ .string "__need_size_t"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF2943:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF486:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF1986:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF617:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF2955:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF1881:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF2772:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2628:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1577:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1404:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF2685:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF768:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF1757:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF789:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1173:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2392:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF570:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2670:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF2213:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2542:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF2000:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF2692:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1576:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF2409:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF2185:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF1344:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF3124:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF2798:
+ .string "_PTRDIFF_T "
+.LASF1113:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2141:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1598:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF2832:
+ .string "_WCHAR_T_ "
+.LASF2037:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF2450:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1497:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF330:
+ .string "GD32VF103_H "
+.LASF563:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF497:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2579:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF1098:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF1750:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF1909:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2631:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2333:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2153:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1606:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF774:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1081:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3222:
+ .string "RCU_GPIOCRST"
+.LASF843:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF1798:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF779:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF960:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1934:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF2461:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF1047:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1290:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2745:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF2258:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF3122:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2156:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF1935:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2138:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1558:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF1060:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF616:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF1830:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF3173:
+ .string "PCF_SWJCFG_MASK ((uint32_t)0xF0FFFFFFU)"
+.LASF566:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF1894:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2680:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF2284:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2073:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1082:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF593:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2326:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF1962:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF2764:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF833:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF371:
+ .string "___int_least32_t_defined 1"
+.LASF1389:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF1536:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF1895:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2245:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF557:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1525:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1201:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF2858:
+ .string "N200_ECLIC_H "
+.LASF2362:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2545:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF3100:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF571:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF2694:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF2917:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF583:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF3013:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2980:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF450:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF2946:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF2459:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF2683:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF2768:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1535:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF1050:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF383:
+ .string "signed +0"
+.LASF1322:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF430:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1541:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF685:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2534:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF1142:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF1163:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF3037:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF353:
+ .string "__BSD_VISIBLE 0"
+.LASF1249:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1245:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF1865:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF1539:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF2402:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF411:
+ .string "__int16_t_defined 1"
+.LASF2635:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF652:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF1185:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF3256:
+ .string "bit_value"
+.LASF2035:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2344:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF1041:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF1482:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF1109:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF2465:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF1044:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF1921:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF1902:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF2720:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF2751:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF3118:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2410:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF797:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2178:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1708:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF1425:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF1981:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF2030:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF1647:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2575:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF2863:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2515:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2242:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF1990:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF398:
+ .string "__FAST16 "
+.LASF1077:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF805:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF2700:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF1786:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF1631:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF2317:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF1590:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1203:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF500:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF1110:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF1789:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2110:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF2159:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF949:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF534:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF757:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF3223:
+ .string "RCU_GPIODRST"
+.LASF2316:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF825:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1628:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF1533:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1684:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF1502:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF863:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF2265:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF3125:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF2924:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2057:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF2816:
+ .string "_BSD_SIZE_T_ "
+.LASF2187:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF472:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF1794:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF355:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF2164:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF2042:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1665:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF429:
+ .string "__int_fast64_t_defined 1"
+.LASF1657:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF938:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF1820:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF2838:
+ .string "__INT_WCHAR_T_H "
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF2807:
+ .string "__need_ptrdiff_t"
+.LASF577:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF1509:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF3169:
+ .string "AFIO_EXTI_SOURCE_MASK ((uint8_t)0x03U)"
+.LASF1287:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2158:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2585:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2055:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF1754:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1336:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF1651:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF422:
+ .string "__int_least8_t_defined 1"
+.LASF951:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF3012:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF2387:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1005:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF1919:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF418:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2712:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2215:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF2252:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF955:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1402:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF406:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF1137:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2364:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF1572:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF2497:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2337:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF2921:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF2615:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF644:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1073:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF1876:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF1239:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF1705:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF945:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2310:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1366:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1091:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF1860:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF2984:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1205:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF1991:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1159:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF764:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF1507:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF2909:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF3236:
+ .string "gpio_event_output_config"
+.LASF2644:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2695:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1713:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2518:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF419:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1486:
+ .string "FMC FMC_BASE"
+.LASF3202:
+ .string "RCU_TIMER4RST"
+.LASF2506:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF2973:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF750:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1660:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF1643:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF1815:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF903:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2370:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF2027:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF1862:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2374:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF2965:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF998:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1673:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF3005:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF2737:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF868:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2426:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF664:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1352:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2049:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF1698:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF1774:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2123:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF2425:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF3057:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF3064:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF2526:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF1779:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2806:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF436:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF965:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF1470:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2498:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF1207:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2528:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2676:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1561:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF858:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2551:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF3184:
+ .string "short unsigned int"
+.LASF742:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF901:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF2933:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1146:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2313:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2511:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF2848:
+ .string "N200_TIMER_H "
+.LASF1145:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF576:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF2850:
+ .string "TIMER_MSIP_size 0x4"
+.LASF3207:
+ .string "RCU_SPI2RST"
+.LASF2793:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF2638:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF3152:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF2468:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF1321:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1547:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF897:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF3153:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF412:
+ .string "_INT32_T_DECLARED "
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF2958:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF1908:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF3026:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF718:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1275:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2211:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF2330:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1620:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF399:
+ .string "__FAST32 "
+.LASF1251:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF730:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF2995:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF3266:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF468:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2349:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF775:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF824:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF3214:
+ .string "RCU_CAN0RST"
+.LASF2719:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2146:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF3041:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1069:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF1605:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF578:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2578:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1052:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF2288:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2566:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2341:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF376:
+ .string "signed"
+.LASF975:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF2227:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF553:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF354:
+ .string "__GNU_VISIBLE 0"
+.LASF2610:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2098:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF2928:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1442:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1544:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2353:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF2879:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF1898:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1273:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF1905:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF3251:
+ .string "gpio_input_port_get"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1181:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF2908:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2069:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF1925:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2565:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF1365:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF676:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF402:
+ .string "__LEAST16 \"h\""
+.LASF2502:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF2598:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF2396:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF1873:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF1248:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF2742:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF1710:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1198:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF2914:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF2878:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF1964:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1319:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF2749:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF2773:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2682:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2339:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF2978:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF476:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF1899:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF1355:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF924:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF1751:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF850:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF1520:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF2343:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF550:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF2967:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2318:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2012:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF1614:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2472:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1313:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2691:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2467:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF580:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF2612:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF888:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF2550:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2190:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF3259:
+ .string "gpio_init"
+.LASF1124:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF819:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF1349:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF3189:
+ .string "long long unsigned int"
+.LASF1764:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF1984:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2335:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF987:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1314:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF857:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF1120:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF474:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF785:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF1995:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1519:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1281:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF900:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF1540:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1690:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF3110:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF2654:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF941:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF725:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3180:
+ .string "unsigned char"
+.LASF1407:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF2748:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2382:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2234:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1089:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF332:
+ .string "__O volatile"
+.LASF2557:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF787:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF3250:
+ .string "gpio_output_bit_get"
+.LASF2989:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF2937:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2434:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF2950:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1672:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2479:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF640:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF3237:
+ .string "output_port"
+.LASF2299:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2015:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF2874:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF2986:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF2584:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF3002:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF1845:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1462:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF3144:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF3025:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF3106:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF3099:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF464:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2429:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF1718:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF2306:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2413:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1701:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1027:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2263:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2189:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF3136:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF2623:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF842:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF348:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1285:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2052:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF579:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF403:
+ .string "__LEAST32 \"l\""
+.LASF1508:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF1369:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1510:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2969:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF2482:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF2311:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1039:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2233:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF2840:
+ .string "_WCHAR_T_DECLARED "
+.LASF597:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2452:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF2932:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF1688:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF894:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF1350:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF1946:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF2414:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF2853:
+ .string "TIMER_MTIME 0x0"
+.LASF2897:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF487:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF972:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2593:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1295:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF832:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF656:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF521:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1119:
+ .string "CRC CRC_BASE"
+.LASF1395:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF849:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF886:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF2693:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF2929:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF560:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF876:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF915:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF2814:
+ .string "__SIZE_T "
+.LASF2206:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF3163:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF349:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF3129:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF345:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1346:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF2910:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF1101:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF3232:
+ .string "gpio_periph"
+.LASF494:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2391:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF1819:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2315:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2677:
+ .string "USART_STAT_TC BIT(6)"
+.LASF1488:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2460:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF2771:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF1882:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF3126:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1136:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF2019:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF2851:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2371:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2198:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2653:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF909:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF499:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1548:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF2905:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF3079:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF1976:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF864:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF2699:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF1793:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF1825:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF2769:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF816:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2356:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF620:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF2091:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF2224:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF3240:
+ .string "gpio_exti_source_select"
+.LASF3121:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF2948:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2604:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1682:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF445:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF3103:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF1913:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF967:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF732:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF935:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF1818:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF1343:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF3088:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF1666:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1270:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2510:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF519:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2625:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF1529:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF2125:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2583:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF738:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2366:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF3147:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF1953:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF870:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF2046:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF2870:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2514:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF342:
+ .string "_STDINT_H "
+.LASF1431:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF420:
+ .string "_INTPTR_T_DECLARED "
+.LASF1126:
+ .string "GD32VF103_DAC_H "
+.LASF2563:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1604:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1025:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF2036:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF2102:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF2521:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF2094:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF2746:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2500:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1480:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1214:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF1907:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2688:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF2136:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF1168:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF963:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF1006:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF2760:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF1702:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2239:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2097:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF726:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF3168:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF731:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1009:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2535:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1712:
+ .string "FWDGT FWDGT_BASE"
+.LASF1423:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3186:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF2972:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1653:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF2721:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2041:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF475:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF931:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1271:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2139:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2622:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF3248:
+ .string "temp_mask"
+.LASF2058:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF3138:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF877:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF804:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF1887:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF2508:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF3213:
+ .string "RCU_I2C1RST"
+.LASF2643:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF794:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF483:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF2936:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF3161:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF1807:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF929:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF2894:
+ .string "AFIO AFIO_BASE"
+.LASF1356:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF844:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF3009:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2350:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF2836:
+ .string "_WCHAR_T_H "
+.LASF2469:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF1752:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2209:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF2639:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF545:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2182:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF964:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF585:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF1938:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF2738:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF2813:
+ .string "_T_SIZE "
+.LASF482:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1689:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF3061:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2248:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF509:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF647:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF2577:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF2801:
+ .string "__PTRDIFF_T "
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF1304:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF765:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF2642:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2347:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF496:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF3212:
+ .string "RCU_I2C0RST"
+.LASF2674:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF826:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF1737:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2128:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF810:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF462:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1591:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF1716:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF672:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF2962:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2436:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF811:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1846:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF1231:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2462:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2554:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2657:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF1495:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF1766:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF865:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF2034:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF2118:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2547:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF1517:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF891:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF910:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF3150:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF645:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF3073:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF503:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF535:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF1780:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF3030:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF2820:
+ .string "_SIZE_T_DECLARED "
+.LASF2440:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF608:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF763:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2068:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF2808:
+ .string "__size_t__ "
+.LASF2308:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF604:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2556:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF2072:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF1644:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF2915:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF691:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF2999:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2668:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF1282:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF1238:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF2301:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF1691:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF506:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF943:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1384:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF3108:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2560:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF466:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1467:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF2862:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1061:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF3226:
+ .string "RCU_ADC1RST"
+.LASF2920:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF1743:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1625:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF1920:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF667:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF916:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF3243:
+ .string "remap"
+.LASF790:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1711:
+ .string "GD32VF103_FWDGT_H "
+.LASF3211:
+ .string "RCU_UART4RST"
+.LASF1148:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF1387:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF426:
+ .string "__int_fast8_t_defined 1"
+.LASF621:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2621:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF1803:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2529:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1284:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF2901:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2307:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1026:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF2797:
+ .string "_ANSI_STDDEF_H "
+.LASF3036:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF441:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF2828:
+ .string "_WCHAR_T "
+.LASF3235:
+ .string "gpio_pin_lock"
+.LASF2143:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF839:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF3148:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF3023:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2274:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1583:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF1332:
+ .string "__SEV eclic_send_event"
+.LASF1135:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF838:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2690:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1021:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF1599:
+ .string "GD32VF103_I2C_H "
+.LASF2140:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2562:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1351:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2104:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF3016:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF3095:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF2116:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2032:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF1858:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF485:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF2940:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2249:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF333:
+ .string "__IO volatile"
+.LASF711:
+ .string "GD32VF103_BKP_H "
+.LASF1978:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2199:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF2976:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF1828:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF2817:
+ .string "_SIZE_T_DEFINED_ "
+.LASF737:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF3019:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF1883:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2329:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2061:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF1250:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF1842:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2377:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF2883:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF741:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2697:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF2739:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2001:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF653:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF2708:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF3241:
+ .string "source"
+.LASF2777:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF1180:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF2993:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF2109:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2324:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF1948:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF396:
+ .string "__INT64 \"ll\""
+.LASF1699:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF2868:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF1127:
+ .string "DAC DAC_BASE"
+.LASF2833:
+ .string "_BSD_WCHAR_T_ "
+.LASF976:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF407:
+ .string "_UINT8_T_DECLARED "
+.LASF3158:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF994:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2212:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF2782:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1078:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1264:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2291:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF1755:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2228:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1927:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF729:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF660:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2444:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1440:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF719:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1015:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF584:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF1655:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2531:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF803:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF447:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1307:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF3265:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_gpio.c"
+.LASF1717:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF3221:
+ .string "RCU_GPIOBRST"
+.LASF610:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF740:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF3244:
+ .string "newvalue"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2599:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1709:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF991:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1586:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF559:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF561:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1010:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF3239:
+ .string "lock"
+.LASF728:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF555:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2165:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF746:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF818:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF1869:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF2876:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF335:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF2149:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF599:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1635:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF469:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF391:
+ .string "_INTPTR_EQ_INT "
+.LASF2458:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2063:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF1857:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF898:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF329:
+ .string "GD32VF103_GPIO_H "
+.LASF1396:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF3117:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF2834:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2051:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF1153:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF522:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF1725:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF692:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF3227:
+ .string "RCU_TIMER0RST"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF1915:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF2505:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF1490:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF2532:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF2194:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF380:
+ .string "__int20"
+.LASF2618:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF1782:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF734:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF739:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF3052:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2115:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF798:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1325:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF1910:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF2736:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF1086:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF2947:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF1787:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1253:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2183:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF591:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2437:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF2415:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1139:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF3133:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2421:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF3094:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF2734:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF523:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF2208:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF2733:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF2166:
+ .string "GD32VF103_SPI_H "
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1844:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF1118:
+ .string "GD32VF103_CRC_H "
+.LASF752:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1581:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1279:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF1637:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF2735:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2300:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1298:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1645:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1575:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF1405:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF2841:
+ .string "_BSD_WCHAR_T_"
+.LASF1814:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF3098:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF1906:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1210:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF2809:
+ .string "__SIZE_T__ "
+.LASF1703:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF1719:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF3156:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF1929:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF1878:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF2065:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF1903:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF3090:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2204:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1334:
+ .string "EXMC (EXMC_BASE)"
+.LASF1051:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF385:
+ .string "char +0"
+.LASF3000:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF2888:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF1008:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1460:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF2376:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF751:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF513:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF1792:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2080:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2192:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF3171:
+ .string "LSB_16BIT_MASK ((uint16_t)0xFFFFU)"
+.LASF2783:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1813:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF1950:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1494:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF934:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF2580:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF2276:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF568:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF2581:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF370:
+ .string "___int_least16_t_defined 1"
+.LASF2588:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF1259:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2687:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2078:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF2872:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF2594:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1514:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1074:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF808:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF1775:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF926:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF2744:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF2871:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF2750:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF1967:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF1474:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF2524:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF3216:
+ .string "RCU_BKPIRST"
+.LASF562:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF367:
+ .string "___int32_t_defined 1"
+.LASF1810:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1182:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF2911:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2576:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF1884:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2003:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF1489:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF1856:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF3059:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2613:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF2903:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF493:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF2776:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF1732:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF2981:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2229:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF2352:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2640:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF423:
+ .string "__int_least16_t_defined 1"
+.LASF1169:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2067:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF2831:
+ .string "__WCHAR_T "
+.LASF409:
+ .string "_INT16_T_DECLARED "
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1046:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF919:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF528:
+ .string "GD32VF103_ADC_H "
+.LASF2417:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF1996:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF3185:
+ .string "long int"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF1957:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1609:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2302:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2017:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF1363:
+ .string "GD32VF103_EXTI_H "
+.LASF378:
+ .string "char"
+.LASF3046:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF1341:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF3209:
+ .string "RCU_USART2RST"
+.LASF1916:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF881:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2428:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF392:
+ .string "_INT32_EQ_LONG "
+.LASF1070:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF1648:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF2039:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2589:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF536:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF1385:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF908:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF1765:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF598:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2096:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF1808:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2597:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF3017:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF686:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF2603:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF3085:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF687:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF1961:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2714:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2516:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2203:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF2732:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2351:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF2405:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2537:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF663:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF3143:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF3201:
+ .string "RCU_TIMER3RST"
+.LASF1528:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1104:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF517:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1615:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF2082:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF2716:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF2827:
+ .string "__WCHAR_T__ "
+.LASF2113:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1011:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF2484:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1043:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF2907:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1445:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2007:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2106:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF1837:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2309:
+ .string "GD32VF103_TIMER_H "
+.LASF1018:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF1756:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF2796:
+ .string "_STDDEF_H_ "
+.LASF722:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF2884:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF2406:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF2966:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF3006:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF1805:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF990:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF1799:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF2304:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF1917:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF921:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF479:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF856:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF1016:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF862:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1565:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF2788:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF3072:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF1941:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF1478:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1023:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF3091:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF2453:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2054:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF564:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF2056:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF1235:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF815:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF3042:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2325:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2656:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF2050:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF2287:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF807:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1471:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1421:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF831:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF996:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF1659:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF531:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF721:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF2752:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF2959:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1594:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1167:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF2689:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF3206:
+ .string "RCU_SPI1RST"
+.LASF1045:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF956:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF2411:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF3164:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF1742:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF650:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1141:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2147:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1172:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF720:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF1977:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF1781:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1552:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF1331:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF2361:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF453:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1638:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF1707:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1579:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF3027:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF736:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF2866:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF884:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF1982:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2451:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF2860:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF3063:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2244:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF896:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF2667:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF710:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF753:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2784:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF1554:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF1863:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF715:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF2898:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1049:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF384:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1256:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF2992:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2205:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2119:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF2725:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF879:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF675:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF1893:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF594:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF2553:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF3194:
+ .string "ENABLE"
+.LASF1202:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF2320:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF417:
+ .string "__int64_t_defined 1"
+.LASF724:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF1823:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF2605:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF379:
+ .string "short"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1465:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1524:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF772:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2648:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2084:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF992:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF2791:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3264:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1518:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF2503:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF871:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF735:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1013:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF1741:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF3113:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2424:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF2956:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF2186:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2266:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF592:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF939:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF3065:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF1840:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF359:
+ .string "__SVID_VISIBLE 0"
+.LASF1824:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2393:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF2953:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF748:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF1247:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1099:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF1960:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF1607:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF2419:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF1983:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF823:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF1947:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF723:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF940:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF3231:
+ .string "bit_status"
+.LASF3111:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF3082:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF1227:
+ .string "GD32VF103_DMA_H "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF1158:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF1734:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2322:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF1088:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF1730:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2420:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF1669:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF754:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2090:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF1796:
+ .string "RCU RCU_BASE"
+.LASF2470:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2355:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2544:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF3048:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1763:
+ .string "PMU PMU_BASE"
+.LASF747:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2336:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2267:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF619:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF369:
+ .string "___int_least8_t_defined 1"
+.LASF1998:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF1900:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF802:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF670:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1622:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2281:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF3034:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF397:
+ .string "__FAST8 "
+.LASF1773:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF648:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3086:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF572:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF2998:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF630:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF3049:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF2033:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF530:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF760:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2207:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF1164:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF2124:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2121:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2633:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF2478:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF1114:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1065:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2101:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1233:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2672:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF2634:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1593:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF2048:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF1749:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1370:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF2108:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF1680:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF2619:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF3067:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF520:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF2154:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF546:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF2177:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF3060:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF1988:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF906:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF3075:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF518:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2262:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF1506:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2137:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF428:
+ .string "__int_fast32_t_defined 1"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF595:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF2912:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF1838:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF3179:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF334:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF3137:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF1874:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF1809:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1001:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2381:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF393:
+ .string "__INT8 \"hh\""
+.LASF2008:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF2864:
+ .string "ECLICINTCTLBITS 4"
+.LASF1487:
+ .string "OB OB_BASE"
+.LASF3190:
+ .string "uint8_t"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF2754:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF853:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF1143:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF2259:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF434:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF1483:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF541:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF3258:
+ .string "gpio_bit_set"
+.LASF1066:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF3004:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF2902:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2293:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF3038:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF1770:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2519:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF2977:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF1771:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF2647:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF2944:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF1426:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2202:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF3196:
+ .string "RESET"
+.LASF389:
+ .string "int +2"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF1762:
+ .string "GD32VF103_PMU_H "
+.LASF3245:
+ .string "remap1"
+.LASF3246:
+ .string "remap2"
+.LASF2004:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2226:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF2730:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF2131:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1084:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1062:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF875:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF461:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF997:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2389:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF2548:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF3068:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1162:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1496:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF2887:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF515:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF3130:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF2117:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF983:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2011:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF454:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1835:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF756:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF1727:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF2767:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF443:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2232:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF2517:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF2923:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2669:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF646:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF837:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2616:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1269:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1246:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1257:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2679:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF586:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF855:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF745:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF3120:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF1055:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF3208:
+ .string "RCU_USART1RST"
+.LASF377:
+ .string "unsigned"
+.LASF477:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1639:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF524:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF1155:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF2471:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2328:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF2759:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2071:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF1527:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2014:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1485:
+ .string "GD32VF103_FMC_H "
+.LASF2408:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF2658:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF3191:
+ .string "uint16_t"
+.LASF2620:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF2606:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF2762:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF717:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2145:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF1171:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF480:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF733:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF1767:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF3115:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1650:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF336:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1022:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF1403:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF2607:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF638:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF543:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF744:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2210:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF1891:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF3031:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1608:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF339:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF1914:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF907:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF671:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF2214:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF2022:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF1992:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1545:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF2802:
+ .string "_PTRDIFF_T_ "
+.LASF1804:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF484:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF2925:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF651:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF2367:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF716:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF848:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1122:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF1523:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF1094:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2384:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2179:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF3135:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF1871:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2711:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF2614:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF1048:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF2345:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF2400:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF2582:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2433:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2513:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF743:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF817:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF1806:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF971:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1229:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF2173:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2363:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2671:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1038:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1772:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF1959:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF433:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2348:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF2162:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF1200:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF2852:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF1272:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF867:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF587:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2044:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF463:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1700:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF1969:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1360:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1002:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF2781:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF2810:
+ .string "_SIZE_T "
+.LASF1286:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF1832:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2397:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF575:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2218:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1152:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF2655:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF796:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF673:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2100:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF346:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF1668:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2441:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF882:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF3076:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1658:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF989:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF2763:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF1475:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF410:
+ .string "_UINT16_T_DECLARED "
+.LASF1853:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF887:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF2988:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF1131:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF2963:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF3204:
+ .string "RCU_TIMER6RST"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF2407:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF2401:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF902:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF1870:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF457:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF2896:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF944:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF1236:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF3107:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF605:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF1954:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2662:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF2756:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF344:
+ .string "_SYS_FEATURES_H "
+.LASF840:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF2996:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF1079:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF600:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF655:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2457:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF778:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF2571:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF449:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2774:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2837:
+ .string "___int_wchar_t_h "
+.LASF3165:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF1943:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF1569:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF3141:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF2856:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF712:
+ .string "BKP BKP_BASE"
+.LASF1232:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF1166:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1177:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1058:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2422:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2247:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF2142:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2171:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF3225:
+ .string "RCU_ADC0RST"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF603:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2504:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1443:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF1791:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF381:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1468:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1532:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF489:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF3210:
+ .string "RCU_UART3RST"
+.LASF1024:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2789:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF488:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF847:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF1723:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF2741:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF502:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF3051:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF554:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF3166:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF1714:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF2296:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF1053:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2332:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF3078:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF1087:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF2844:
+ .string "NULL ((void *)0)"
+.LASF444:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1661:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1476:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1111:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF1811:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1596:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2191:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF2360:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF1317:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1199:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF3170:
+ .string "AFIO_EXTI_SOURCE_FIELDS ((uint8_t)0x04U)"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF928:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF3024:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF792:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF2939:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1105:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1305:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF1265:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2372:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1151:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF505:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF2822:
+ .string "_GCC_SIZE_T "
+.LASF2968:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF2665:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF1571:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF2880:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF375:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF777:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1234:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF2842:
+ .string "__need_wchar_t"
+.LASF3055:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF974:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF3140:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF3205:
+ .string "RCU_WWDGTRST"
+.LASF3159:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1505:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2380:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2705:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1493:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2454:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF2795:
+ .string "_STDDEF_H "
+.LASF1303:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1686:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF2811:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2279:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF2800:
+ .string "_T_PTRDIFF "
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1492:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF684:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1019:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF361:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2168:
+ .string "SPI1 SPI_BASE"
+.LASF2132:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF2815:
+ .string "_SIZE_T_ "
+.LASF2075:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2272:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF2530:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1204:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2076:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2089:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF783:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF3261:
+ .string "speed"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF569:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF2934:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2404:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2549:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2592:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF2990:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF890:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF2558:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF641:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF3254:
+ .string "data"
+.LASF3114:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1632:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2236:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF2987:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF1930:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2031:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF822:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF544:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF337:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF1463:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1252:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF1075:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF714:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF2812:
+ .string "_T_SIZE_ "
+.LASF2246:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF2729:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF2596:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF2889:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF1985:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF1885:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF473:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2463:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF492:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF2659:
+ .string "USART1 USART_BASE"
+.LASF2954:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF2270:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF442:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1831:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF538:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF2373:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF3260:
+ .string "mode"
+.LASF713:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1848:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF1090:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF3092:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF1850:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF1383:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2105:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1530:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2383:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1068:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF770:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF1206:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1618:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF2857:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF2256:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2636:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1629:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF2201:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF1693:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1415:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF3081:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF2775:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF2522:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1179:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF2220:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1600:
+ .string "I2C0 I2C_BASE"
+.LASF405:
+ .string "_SYS__STDINT_H "
+.LASF1186:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF3188:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2427:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF1706:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2321:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF2176:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF701:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF1692:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF3134:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF1071:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF1949:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF2906:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF516:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF1526:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF2112:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2418:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF873:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF3218:
+ .string "RCU_DACRST"
+.LASF1886:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF3151:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF3077:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF878:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF682:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF2765:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF3032:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2223:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1138:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF2918:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF458:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1294:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF2412:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF589:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF1289:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2151:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2053:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF2873:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1556:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF780:
+ .string "GD32VF103_CAN_H "
+.LASF961:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF1292:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1388:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF749:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF1652:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF2286:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF1911:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF2029:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF3056:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF2568:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF3018:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF1896:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1213:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF2941:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF2747:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF1890:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF2886:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1663:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF2786:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF893:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF2758:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1243:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF1036:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2180:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2590:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF1007:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF1501:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1578:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF2225:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1032:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF588:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF841:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF2496:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF3247:
+ .string "temp_reg"
+.LASF2780:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF1817:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF1994:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF679:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1028:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2398:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1301:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2152:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF2938:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF2829:
+ .string "_T_WCHAR_ "
+.LASF1760:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2028:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF1933:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF2546:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF1326:
+ .string "GD32VF103_ECLIC_H "
+.LASF1704:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF495:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF470:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1481:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF1776:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF791:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF1822:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF1841:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2846:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF1161:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF2824:
+ .string "__size_t "
+.LASF2261:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF358:
+ .string "__POSIX_VISIBLE 199009"
+.LASF3253:
+ .string "gpio_port_write"
+.LASF1849:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF1951:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF3154:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1424:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF2869:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2445:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF2473:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF2701:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF836:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1795:
+ .string "GD32VF103_RCU_H "
+.LASF2314:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF373:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1601:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF1827:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF3217:
+ .string "RCU_PMURST"
+.LASF547:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF1877:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF3242:
+ .string "gpio_pin_remap_config"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF2890:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2637:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF1975:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF920:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF1537:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2722:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1276:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF769:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF527:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2358:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF3014:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2446:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF372:
+ .string "___int_least64_t_defined 1"
+.LASF2666:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF3109:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF861:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1348:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF3080:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF2792:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF2893:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF3219:
+ .string "RCU_AFRST"
+.LASF2865:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF2448:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2539:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1092:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1117:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2447:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1154:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF1735:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF3105:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1567:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF471:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF917:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF662:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF1268:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF1551:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF3200:
+ .string "RCU_TIMER2RST"
+.LASF2086:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF2538:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF2861:
+ .string "_AT(T,X) ((T)(X))"
+.LASF3178:
+ .string "unsigned int"
+.LASF2174:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1662:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF1987:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF3252:
+ .string "gpio_input_bit_get"
+.LASF1612:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF771:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2334:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF415:
+ .string "_INT64_T_DECLARED "
+.LASF2476:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF2975:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2572:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF2649:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1160:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF2922:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1549:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1300:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c
new file mode 100644
index 0000000000..3eee3dab7e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c
@@ -0,0 +1,728 @@
+/*!
+ \file gd32vf103_i2c.c
+ \brief I2C driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_i2c.h"
+
+/* I2C register bit mask */
+#define I2CCLK_MAX ((uint32_t)0x00000036U) /*!< i2cclk maximum value */
+#define I2CCLK_MIN ((uint32_t)0x00000002U) /*!< i2cclk minimum value */
+#define I2C_FLAG_MASK ((uint32_t)0x0000FFFFU) /*!< i2c flag mask */
+#define I2C_ADDRESS_MASK ((uint32_t)0x000003FFU) /*!< i2c address mask */
+#define I2C_ADDRESS2_MASK ((uint32_t)0x000000FEU) /*!< the second i2c address mask */
+
+/* I2C register bit offset */
+#define STAT1_PECV_OFFSET ((uint32_t)8U) /* bit offset of PECV in I2C_STAT1 */
+
+/*!
+ \brief reset I2C
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval none
+ */
+void i2c_deinit(uint32_t i2c_periph)
+{
+ switch (i2c_periph) {
+ case I2C0:
+ /* reset I2C0 */
+ rcu_periph_reset_enable(RCU_I2C0RST);
+ rcu_periph_reset_disable(RCU_I2C0RST);
+ break;
+ case I2C1:
+ /* reset I2C1 */
+ rcu_periph_reset_enable(RCU_I2C1RST);
+ rcu_periph_reset_disable(RCU_I2C1RST);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure I2C clock
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] clkspeed: I2C clock speed, supports standard mode (up to 100 kHz), fast mode (up to 400 kHz)
+ and fast mode plus (up to 1MHz)
+ \param[in] dutycyc: duty cycle in fast mode or fast mode plus
+ only one parameter can be selected which is shown as below:
+ \arg I2C_DTCY_2: T_low/T_high=2
+ \arg I2C_DTCY_16_9: T_low/T_high=16/9
+ \param[out] none
+ \retval none
+ */
+void i2c_clock_config(uint32_t i2c_periph, uint32_t clkspeed, uint32_t dutycyc)
+{
+ uint32_t pclk1, clkc, freq, risetime;
+ uint32_t temp;
+
+ pclk1 = rcu_clock_freq_get(CK_APB1);
+ /* I2C peripheral clock frequency */
+ freq = (uint32_t) (pclk1 / 1000000U);
+ if (freq >= I2CCLK_MAX) {
+ freq = I2CCLK_MAX;
+ }
+ temp = I2C_CTL1(i2c_periph);
+ temp &= ~I2C_CTL1_I2CCLK;
+ temp |= freq;
+
+ I2C_CTL1(i2c_periph) = temp;
+
+ if (100000U >= clkspeed) {
+ /* the maximum SCL rise time is 1000ns in standard mode */
+ risetime = (uint32_t) ((pclk1 / 1000000U) + 1U);
+ if (risetime >= I2CCLK_MAX) {
+ I2C_RT(i2c_periph) = I2CCLK_MAX;
+ } else if (risetime <= I2CCLK_MIN) {
+ I2C_RT(i2c_periph) = I2CCLK_MIN;
+ } else {
+ I2C_RT(i2c_periph) = risetime;
+ }
+ clkc = (uint32_t) (pclk1 / (clkspeed * 2U));
+ if (clkc < 0x04U) {
+ /* the CLKC in standard mode minmum value is 4 */
+ clkc = 0x04U;
+ }
+ I2C_CKCFG(i2c_periph) |= (I2C_CKCFG_CLKC & clkc);
+
+ } else if (400000U >= clkspeed) {
+ /* the maximum SCL rise time is 300ns in fast mode */
+ I2C_RT(i2c_periph) = (uint32_t) (((freq * (uint32_t) 300U)/(uint32_t)1000U)+(uint32_t)1U);
+ if (I2C_DTCY_2 == dutycyc){
+ /* I2C duty cycle is 2 */
+ clkc = (uint32_t) (pclk1 / (clkspeed * 3U));
+ I2C_CKCFG(i2c_periph) &= ~I2C_CKCFG_DTCY;
+ } else {
+ /* I2C duty cycle is 16/9 */
+ clkc = (uint32_t) (pclk1 / (clkspeed * 25U));
+ I2C_CKCFG(i2c_periph) |= I2C_CKCFG_DTCY;
+ }
+ if (0U == (clkc & I2C_CKCFG_CLKC)) {
+ /* the CLKC in fast mode minmum value is 1 */
+ clkc |= 0x0001U;
+ }
+ I2C_CKCFG(i2c_periph) |= I2C_CKCFG_FAST;
+ I2C_CKCFG(i2c_periph) |= clkc;
+ } else {
+ /* fast mode plus, the maximum SCL rise time is 120ns */
+ I2C_RT (i2c_periph) = (uint32_t) (((freq * (uint32_t) 120U) / (uint32_t) 1000U)+(uint32_t) 1U);
+ if (I2C_DTCY_2 == dutycyc) {
+ /* I2C duty cycle is 2 */
+ clkc = (uint32_t) (pclk1 / (clkspeed * 3U));
+ I2C_CKCFG(i2c_periph) &= ~I2C_CKCFG_DTCY;
+ } else {
+ /* I2C duty cycle is 16/9 */
+ clkc = (uint32_t) (pclk1 / (clkspeed * 25U));
+ I2C_CKCFG(i2c_periph) |= I2C_CKCFG_DTCY;
+ }
+ /* enable fast mode */
+ I2C_CKCFG(i2c_periph) |= I2C_CKCFG_FAST;
+ I2C_CKCFG(i2c_periph) |= clkc;
+ /* enable I2C fast mode plus */
+ I2C_FMPCFG(i2c_periph) |= I2C_FMPCFG_FMPEN;
+ }
+}
+
+/*!
+ \brief configure I2C address
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] mode:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_I2CMODE_ENABLE: I2C mode
+ \arg I2C_SMBUSMODE_ENABLE: SMBus mode
+ \param[in] addformat: 7bits or 10bits
+ only one parameter can be selected which is shown as below:
+ \arg I2C_ADDFORMAT_7BITS: 7bits
+ \arg I2C_ADDFORMAT_10BITS: 10bits
+ \param[in] addr: I2C address
+ \param[out] none
+ \retval none
+ */
+void i2c_mode_addr_config(uint32_t i2c_periph, uint32_t mode,uint32_t addformat, uint32_t addr)
+{
+ /* SMBus/I2C mode selected */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_SMBEN);
+ ctl |= mode;
+ I2C_CTL0(i2c_periph) = ctl;
+ /* configure address */
+ addr = addr & I2C_ADDRESS_MASK;
+ I2C_SADDR0(i2c_periph) = (addformat | addr);
+}
+
+/*!
+ \brief SMBus type selection
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] type:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_SMBUS_DEVICE: device
+ \arg I2C_SMBUS_HOST: host
+ \param[out] none
+ \retval none
+ */
+void i2c_smbus_type_config(uint32_t i2c_periph, uint32_t type)
+{
+ if (I2C_SMBUS_HOST == type) {
+ I2C_CTL0(i2c_periph) |= I2C_CTL0_SMBSEL;
+ } else {
+ I2C_CTL0(i2c_periph) &= ~(I2C_CTL0_SMBSEL);
+ }
+}
+
+/*!
+ \brief whether or not to send an ACK
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] ack:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_ACK_ENABLE: ACK will be sent
+ \arg I2C_ACK_DISABLE: ACK will not be sent
+ \param[out] none
+ \retval none
+ */
+void i2c_ack_config(uint32_t i2c_periph, uint32_t ack)
+{
+ if (I2C_ACK_ENABLE == ack) {
+ I2C_CTL0(i2c_periph) |= I2C_CTL0_ACKEN;
+ } else {
+ I2C_CTL0(i2c_periph) &= ~(I2C_CTL0_ACKEN);
+ }
+}
+
+/*!
+ \brief configure I2C POAP position
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] pos:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_ACKPOS_CURRENT: whether to send ACK or not for the current
+ \arg I2C_ACKPOS_NEXT: whether to send ACK or not for the next byte
+ \param[out] none
+ \retval none
+ */
+void i2c_ackpos_config(uint32_t i2c_periph, uint32_t pos)
+{
+ /* configure I2C POAP position */
+ if (I2C_ACKPOS_NEXT == pos) {
+ I2C_CTL0(i2c_periph) |= I2C_CTL0_POAP;
+ } else {
+ I2C_CTL0(i2c_periph) &= ~(I2C_CTL0_POAP);
+ }
+}
+
+/*!
+ \brief master sends slave address
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] addr: slave address
+ \param[in] trandirection: transmitter or receiver
+ only one parameter can be selected which is shown as below:
+ \arg I2C_TRANSMITTER: transmitter
+ \arg I2C_RECEIVER: receiver
+ \param[out] none
+ \retval none
+ */
+void i2c_master_addressing(uint32_t i2c_periph, uint32_t addr,uint32_t trandirection)
+{
+ /* master is a transmitter or a receiver */
+ if (I2C_TRANSMITTER == trandirection) {
+ addr = addr & I2C_TRANSMITTER;
+ } else {
+ addr = addr | I2C_RECEIVER;
+ }
+ /* send slave address */
+ I2C_DATA(i2c_periph) = addr;
+}
+
+/*!
+ \brief enable dual-address mode
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] dualaddr: the second address in dual-address mode
+ \param[out] none
+ \retval none
+*/
+void i2c_dualaddr_enable(uint32_t i2c_periph, uint32_t dualaddr)
+{
+ /* configure address */
+ dualaddr = dualaddr & I2C_ADDRESS2_MASK;
+ I2C_SADDR1(i2c_periph) = (I2C_SADDR1_DUADEN | dualaddr);
+}
+
+/*!
+ \brief disable dual-address mode
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval none
+*/
+void i2c_dualaddr_disable(uint32_t i2c_periph)
+{
+ I2C_SADDR1(i2c_periph) &= ~(I2C_SADDR1_DUADEN);
+}
+
+/*!
+ \brief enable I2C
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval none
+ */
+void i2c_enable(uint32_t i2c_periph)
+{
+ I2C_CTL0(i2c_periph) |= I2C_CTL0_I2CEN;
+}
+
+/*!
+ \brief disable I2C
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval none
+ */
+void i2c_disable(uint32_t i2c_periph)
+{
+ I2C_CTL0(i2c_periph) &= ~(I2C_CTL0_I2CEN);
+}
+
+/*!
+ \brief generate a START condition on I2C bus
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval none
+ */
+void i2c_start_on_bus(uint32_t i2c_periph)
+{
+ I2C_CTL0(i2c_periph) |= I2C_CTL0_START;
+}
+
+/*!
+ \brief generate a STOP condition on I2C bus
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval none
+ */
+void i2c_stop_on_bus(uint32_t i2c_periph)
+{
+ I2C_CTL0(i2c_periph) |= I2C_CTL0_STOP;
+}
+
+/*!
+ \brief I2C transmit data function
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] data: data of transmission
+ \param[out] none
+ \retval none
+ */
+void i2c_data_transmit(uint32_t i2c_periph, uint8_t data)
+{
+ I2C_DATA(i2c_periph) = DATA_TRANS(data);
+}
+
+/*!
+ \brief I2C receive data function
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval data of received
+ */
+uint8_t i2c_data_receive(uint32_t i2c_periph)
+{
+ return (uint8_t) DATA_RECV(I2C_DATA(i2c_periph));
+}
+
+/*!
+ \brief enable I2C DMA mode
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] dmastate:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_DMA_ON: DMA mode enable
+ \arg I2C_DMA_OFF: DMA mode disable
+ \param[out] none
+ \retval none
+ */
+void i2c_dma_enable(uint32_t i2c_periph, uint32_t dmastate)
+{
+ /* configure I2C DMA function */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL1(i2c_periph);
+ ctl &= ~(I2C_CTL1_DMAON);
+ ctl |= dmastate;
+ I2C_CTL1(i2c_periph) = ctl;
+}
+
+/*!
+ \brief configure whether next DMA EOT is DMA last transfer or not
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] dmalast:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_DMALST_ON: next DMA EOT is the last transfer
+ \arg I2C_DMALST_OFF: next DMA EOT is not the last transfer
+ \param[out] none
+ \retval none
+ */
+void i2c_dma_last_transfer_config(uint32_t i2c_periph, uint32_t dmalast)
+{
+ /* configure DMA last transfer */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL1(i2c_periph);
+ ctl &= ~(I2C_CTL1_DMALST);
+ ctl |= dmalast;
+ I2C_CTL1(i2c_periph) = ctl;
+}
+
+/*!
+ \brief whether to stretch SCL low when data is not ready in slave mode
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] stretchpara:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_SCLSTRETCH_ENABLE: SCL stretching is enabled
+ \arg I2C_SCLSTRETCH_DISABLE: SCL stretching is disabled
+ \param[out] none
+ \retval none
+ */
+void i2c_stretch_scl_low_config(uint32_t i2c_periph, uint32_t stretchpara)
+{
+ /* configure I2C SCL strerching enable or disable */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_SS);
+ ctl |= stretchpara;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief whether or not to response to a general call
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] gcallpara:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_GCEN_ENABLE: slave will response to a general call
+ \arg I2C_GCEN_DISABLE: slave will not response to a general call
+ \param[out] none
+ \retval none
+ */
+void i2c_slave_response_to_gcall_config(uint32_t i2c_periph, uint32_t gcallpara)
+{
+ /* configure slave response to a general call enable or disable */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_GCEN);
+ ctl |= gcallpara;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief software reset I2C
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] sreset:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_SRESET_SET: I2C is under reset
+ \arg I2C_SRESET_RESET: I2C is not under reset
+ \param[out] none
+ \retval none
+ */
+void i2c_software_reset_config(uint32_t i2c_periph, uint32_t sreset)
+{
+ /* modify CTL0 and configure software reset I2C state */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_SRESET);
+ ctl |= sreset;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief I2C PEC calculation on or off
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] pecpara:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_PEC_ENABLE: PEC calculation on
+ \arg I2C_PEC_DISABLE: PEC calculation off
+ \param[out] none
+ \retval none
+ */
+void i2c_pec_enable(uint32_t i2c_periph, uint32_t pecstate)
+{
+ /* on/off PEC calculation */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_PECEN);
+ ctl |= pecstate;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief I2C whether to transfer PEC value
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] pecpara:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_PECTRANS_ENABLE: transfer PEC
+ \arg I2C_PECTRANS_DISABLE: not transfer PEC
+ \param[out] none
+ \retval none
+ */
+void i2c_pec_transfer_enable(uint32_t i2c_periph, uint32_t pecpara)
+{
+ /* whether to transfer PEC */
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_PECTRANS);
+ ctl |= pecpara;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief get packet error checking value
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[out] none
+ \retval PEC value
+ */
+uint8_t i2c_pec_value_get(uint32_t i2c_periph)
+{
+ return (uint8_t) ((I2C_STAT1(i2c_periph) & I2C_STAT1_PECV)>> STAT1_PECV_OFFSET);
+}
+
+/*!
+ \brief I2C issue alert through SMBA pin
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] smbuspara:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_SALTSEND_ENABLE: issue alert through SMBA pin
+ \arg I2C_SALTSEND_DISABLE: not issue alert through SMBA pin
+ \param[out] none
+ \retval none
+ */
+void i2c_smbus_issue_alert(uint32_t i2c_periph, uint32_t smbuspara)
+{
+ /* issue alert through SMBA pin configure*/
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_SALT);
+ ctl |= smbuspara;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief enable or disable I2C ARP protocol in SMBus switch
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] arpstate:
+ only one parameter can be selected which is shown as below:
+ \arg I2C_ARP_ENABLE: enable ARP
+ \arg I2C_ARP_DISABLE: disable ARP
+ \param[out] none
+ \retval none
+ */
+void i2c_smbus_arp_enable(uint32_t i2c_periph, uint32_t arpstate)
+{
+ /* enable or disable I2C ARP protocol*/
+ uint32_t ctl = 0U;
+
+ ctl = I2C_CTL0(i2c_periph);
+ ctl &= ~(I2C_CTL0_ARPEN);
+ ctl |= arpstate;
+ I2C_CTL0(i2c_periph) = ctl;
+}
+
+/*!
+ \brief check I2C flag is set or not
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] flag: I2C flags, refer to i2c_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg I2C_FLAG_SBSEND: start condition send out
+ \arg I2C_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode
+ \arg I2C_FLAG_BTC: byte transmission finishes
+ \arg I2C_FLAG_ADD10SEND: header of 10-bit address is sent in master mode
+ \arg I2C_FLAG_STPDET: stop condition detected in slave mode
+ \arg I2C_FLAG_RBNE: I2C_DATA is not Empty during receiving
+ \arg I2C_FLAG_TBE: I2C_DATA is empty during transmitting
+ \arg I2C_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus
+ \arg I2C_FLAG_LOSTARB: arbitration lost in master mode
+ \arg I2C_FLAG_AERR: acknowledge error
+ \arg I2C_FLAG_OUERR: overrun or underrun situation occurs in slave mode
+ \arg I2C_FLAG_PECERR: PEC error when receiving data
+ \arg I2C_FLAG_SMBTO: timeout signal in SMBus mode
+ \arg I2C_FLAG_SMBALT: SMBus alert status
+ \arg I2C_FLAG_MASTER: a flag indicating whether I2C block is in master or slave mode
+ \arg I2C_FLAG_I2CBSY: busy flag
+ \arg I2C_FLAG_TR: whether the I2C is a transmitter or a receiver
+ \arg I2C_FLAG_RXGC: general call address (00h) received
+ \arg I2C_FLAG_DEFSMB: default address of SMBus device
+ \arg I2C_FLAG_HSTSMB: SMBus host header detected in slave mode
+ \arg I2C_FLAG_DUMODF: dual flag in slave mode indicating which address is matched in dual-address mode
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+ */
+FlagStatus i2c_flag_get(uint32_t i2c_periph, i2c_flag_enum flag)
+{
+ if (RESET != (I2C_REG_VAL(i2c_periph, flag) & BIT(I2C_BIT_POS(flag)))) {
+ return SET;
+ } else {
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear I2C flag
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] flag: I2C flags, refer to i2c_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg I2C_FLAG_SMBALT: SMBus Alert status
+ \arg I2C_FLAG_SMBTO: timeout signal in SMBus mode
+ \arg I2C_FLAG_PECERR: PEC error when receiving data
+ \arg I2C_FLAG_OUERR: over-run or under-run situation occurs in slave mode
+ \arg I2C_FLAG_AERR: acknowledge error
+ \arg I2C_FLAG_LOSTARB: arbitration lost in master mode
+ \arg I2C_FLAG_BERR: a bus error
+ \arg I2C_FLAG_ADDSEND: cleared by reading I2C_STAT0 and reading I2C_STAT1
+ \param[out] none
+ \retval none
+ */
+void i2c_flag_clear(uint32_t i2c_periph, i2c_flag_enum flag)
+{
+ if (I2C_FLAG_ADDSEND == flag) {
+ /* read I2C_STAT0 and then read I2C_STAT1 to clear ADDSEND */
+ I2C_STAT0(i2c_periph);
+ I2C_STAT1(i2c_periph);
+ } else {
+ I2C_REG_VAL(i2c_periph, flag) &= ~BIT(I2C_BIT_POS(flag));
+ }
+}
+
+/*!
+ \brief enable I2C interrupt
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] interrupt: I2C interrupts, refer to i2c_interrupt_enum
+ only one parameter can be selected which is shown as below:
+ \arg I2C_INT_ERR: error interrupt enable
+ \arg I2C_INT_EV: event interrupt enable
+ \arg I2C_INT_BUF: buffer interrupt enable
+ \param[out] none
+ \retval none
+ */
+void i2c_interrupt_enable(uint32_t i2c_periph, i2c_interrupt_enum interrupt)
+{
+ I2C_REG_VAL(i2c_periph, interrupt) |= BIT(I2C_BIT_POS(interrupt));
+}
+
+/*!
+ \brief disable I2C interrupt
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] interrupt: I2C interrupts, refer to i2c_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg I2C_INT_ERR: error interrupt enable
+ \arg I2C_INT_EV: event interrupt enable
+ \arg I2C_INT_BUF: buffer interrupt enable
+ \param[out] none
+ \retval none
+ */
+void i2c_interrupt_disable(uint32_t i2c_periph, i2c_interrupt_enum interrupt)
+{
+ I2C_REG_VAL(i2c_periph, interrupt) &= ~BIT(I2C_BIT_POS(interrupt));
+}
+
+/*!
+ \brief check I2C interrupt flag
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] int_flag: I2C interrupt flags, refer to i2c_interrupt_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg I2C_INT_FLAG_SBSEND: start condition sent out in master mode interrupt flag
+ \arg I2C_INT_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode interrupt flag
+ \arg I2C_INT_FLAG_BTC: byte transmission finishes
+ \arg I2C_INT_FLAG_ADD10SEND: header of 10-bit address is sent in master mode interrupt flag
+ \arg I2C_INT_FLAG_STPDET: stop condition detected in slave mode interrupt flag
+ \arg I2C_INT_FLAG_RBNE: I2C_DATA is not Empty during receiving interrupt flag
+ \arg I2C_INT_FLAG_TBE: I2C_DATA is empty during transmitting interrupt flag
+ \arg I2C_INT_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus interrupt flag
+ \arg I2C_INT_FLAG_LOSTARB: arbitration lost in master mode interrupt flag
+ \arg I2C_INT_FLAG_AERR: acknowledge error interrupt flag
+ \arg I2C_INT_FLAG_OUERR: over-run or under-run situation occurs in slave mode interrupt flag
+ \arg I2C_INT_FLAG_PECERR: PEC error when receiving data interrupt flag
+ \arg I2C_INT_FLAG_SMBTO: timeout signal in SMBus mode interrupt flag
+ \arg I2C_INT_FLAG_SMBALT: SMBus Alert status interrupt flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+ */
+FlagStatus i2c_interrupt_flag_get(uint32_t i2c_periph,i2c_interrupt_flag_enum int_flag)
+{
+ uint32_t intenable = 0U, flagstatus = 0U, bufie;
+
+ /* check BUFIE */
+ bufie = I2C_CTL1(i2c_periph) & I2C_CTL1_BUFIE;
+
+ /* get the interrupt enable bit status */
+ intenable = (I2C_REG_VAL(i2c_periph, int_flag) & BIT(I2C_BIT_POS(int_flag)));
+ /* get the corresponding flag bit status */
+ flagstatus = (I2C_REG_VAL2(i2c_periph, int_flag)& BIT(I2C_BIT_POS2(int_flag)));
+
+ if ((I2C_INT_FLAG_RBNE == int_flag) || (I2C_INT_FLAG_TBE == int_flag)) {
+ if (intenable && bufie) {
+ intenable = 1U;
+ } else {
+ intenable = 0U;
+ }
+ }
+ if ((0U != flagstatus) && (0U != intenable)) {
+ return SET;
+ } else {
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear I2C interrupt flag
+ \param[in] i2c_periph: I2Cx(x=0,1)
+ \param[in] int_flag: I2C interrupt flags, refer to i2c_interrupt_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg I2C_INT_FLAG_ADDSEND: address is sent in master mode or received and matches in slave mode interrupt flag
+ \arg I2C_INT_FLAG_BERR: a bus error occurs indication a unexpected start or stop condition on I2C bus interrupt flag
+ \arg I2C_INT_FLAG_LOSTARB: arbitration lost in master mode interrupt flag
+ \arg I2C_INT_FLAG_AERR: acknowledge error interrupt flag
+ \arg I2C_INT_FLAG_OUERR: over-run or under-run situation occurs in slave mode interrupt flag
+ \arg I2C_INT_FLAG_PECERR: PEC error when receiving data interrupt flag
+ \arg I2C_INT_FLAG_SMBTO: timeout signal in SMBus mode interrupt flag
+ \arg I2C_INT_FLAG_SMBALT: SMBus Alert status interrupt flag
+ \param[out] none
+ \retval none
+ */
+void i2c_interrupt_flag_clear(uint32_t i2c_periph,i2c_interrupt_flag_enum int_flag)
+{
+ if (I2C_INT_FLAG_ADDSEND == int_flag) {
+ /* read I2C_STAT0 and then read I2C_STAT1 to clear ADDSEND */
+ I2C_STAT0(i2c_periph);
+ I2C_STAT1(i2c_periph);
+ } else {
+ I2C_REG_VAL2(i2c_periph, int_flag) &= ~BIT(I2C_BIT_POS2(int_flag));
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c
new file mode 100644
index 0000000000..458e64223a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c
@@ -0,0 +1,271 @@
+/*!
+ \file gd32vf103_pmu.c
+ \brief PMU driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_pmu.h"
+#include "riscv_encoding.h"
+
+/*!
+ \brief reset PMU register
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void pmu_deinit(void)
+{
+ /* reset PMU */
+ rcu_periph_reset_enable(RCU_PMURST);
+ rcu_periph_reset_disable(RCU_PMURST);
+}
+
+/*!
+ \brief select low voltage detector threshold
+ \param[in] lvdt_n:
+ only one parameter can be selected which is shown as below:
+ \arg PMU_LVDT_0: voltage threshold is 2.2V
+ \arg PMU_LVDT_1: voltage threshold is 2.3V
+ \arg PMU_LVDT_2: voltage threshold is 2.4V
+ \arg PMU_LVDT_3: voltage threshold is 2.5V
+ \arg PMU_LVDT_4: voltage threshold is 2.6V
+ \arg PMU_LVDT_5: voltage threshold is 2.7V
+ \arg PMU_LVDT_6: voltage threshold is 2.8V
+ \arg PMU_LVDT_7: voltage threshold is 2.9V
+ \param[out] none
+ \retval none
+*/
+void pmu_lvd_select(uint32_t lvdt_n)
+{
+ /* disable LVD */
+ PMU_CTL &= ~PMU_CTL_LVDEN;
+ /* clear LVDT bits */
+ PMU_CTL &= ~PMU_CTL_LVDT;
+ /* set LVDT bits according to lvdt_n */
+ PMU_CTL |= lvdt_n;
+ /* enable LVD */
+ PMU_CTL |= PMU_CTL_LVDEN;
+}
+
+/*!
+ \brief disable PMU lvd
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void pmu_lvd_disable(void)
+{
+ /* disable LVD */
+ PMU_CTL &= ~PMU_CTL_LVDEN;
+}
+
+/*!
+ \brief PMU work at sleep mode
+ \param[in] sleepmodecmd:
+ only one parameter can be selected which is shown as below:
+ \arg WFI_CMD: use WFI command
+ \arg WFE_CMD: use WFE command
+ \param[out] none
+ \retval none
+*/
+void pmu_to_sleepmode(uint8_t sleepmodecmd)
+{
+ /* clear sleepdeep bit of RISC-V system control register */
+ clear_csr(0x811U, 0x1U);
+
+ /* select WFI or WFE command to enter sleep mode */
+ if(WFI_CMD == sleepmodecmd){
+ __WFI();
+ }else{
+ clear_csr(mstatus, MSTATUS_MIE);
+ set_csr(0x810U, 0x1U);
+ __WFI();
+ clear_csr(0x810U, 0x1U);
+ set_csr(mstatus, MSTATUS_MIE);
+ }
+}
+
+/*!
+ \brief PMU work at deepsleep mode
+ \param[in] ldo:
+ only one parameter can be selected which is shown as below:
+ \arg PMU_LDO_NORMAL: LDO work at normal power mode when pmu enter deepsleep mode
+ \arg PMU_LDO_LOWPOWER: LDO work at low power mode when pmu enter deepsleep mode
+ \param[in] deepsleepmodecmd:
+ only one parameter can be selected which is shown as below:
+ \arg WFI_CMD: use WFI command
+ \arg WFE_CMD: use WFE command
+ \param[out] none
+ \retval none
+*/
+void pmu_to_deepsleepmode(uint32_t ldo,uint8_t deepsleepmodecmd)
+{
+ /* clear stbmod and ldolp bits */
+ PMU_CTL &= ~((uint32_t)(PMU_CTL_STBMOD | PMU_CTL_LDOLP));
+ /* set ldolp bit according to pmu_ldo */
+ PMU_CTL |= ldo;
+ /* set CSR_SLEEPVALUE bit of RISC-V system control register */
+ set_csr(0x811U, 0x1U);
+ /* select WFI or WFE command to enter deepsleep mode */
+ if(WFI_CMD == deepsleepmodecmd){
+ __WFI();
+ }else{
+ clear_csr(mstatus, MSTATUS_MIE);
+ set_csr(0x810U, 0x1U);
+ __WFI();
+ clear_csr(0x810U, 0x1U);
+ set_csr(mstatus, MSTATUS_MIE);
+ }
+ /* reset sleepdeep bit of RISC-V system control register */
+ clear_csr(0x811U, 0x1U);
+}
+
+/*!
+ \brief pmu work at standby mode
+ \param[in] standbymodecmd:
+ only one parameter can be selected which is shown as below:
+ \arg WFI_CMD: use WFI command
+ \arg WFE_CMD: use WFE command
+ \param[out] none
+ \retval none
+*/
+void pmu_to_standbymode(uint8_t standbymodecmd)
+{
+ /* set CSR_SLEEPVALUE bit of RISC-V system control register */
+ set_csr(0x811U, 0x1U);
+
+ /* set stbmod bit */
+ PMU_CTL |= PMU_CTL_STBMOD;
+
+ /* reset wakeup flag */
+ PMU_CTL |= PMU_CTL_WURST;
+
+ /* select WFI or WFE command to enter standby mode */
+ if(WFI_CMD == standbymodecmd){
+ __WFI();
+ }else{
+ clear_csr(mstatus, MSTATUS_MIE);
+ set_csr(0x810U, 0x1U);
+ __WFI();
+ clear_csr(0x810U, 0x1U);
+ set_csr(mstatus, MSTATUS_MIE);
+ }
+ clear_csr(0x811U, 0x1U);
+}
+
+/*!
+ \brief enable wakeup pin
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void pmu_wakeup_pin_enable(void)
+{
+ PMU_CS |= PMU_CS_WUPEN;
+}
+
+/*!
+ \brief disable wakeup pin
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void pmu_wakeup_pin_disable(void)
+{
+ PMU_CS &= ~PMU_CS_WUPEN;
+}
+
+/*!
+ \brief enable write access to the registers in backup domain
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void pmu_backup_write_enable(void)
+{
+ PMU_CTL |= PMU_CTL_BKPWEN;
+}
+
+/*!
+ \brief disable write access to the registers in backup domain
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void pmu_backup_write_disable(void)
+{
+ PMU_CTL &= ~PMU_CTL_BKPWEN;
+}
+
+/*!
+ \brief get flag state
+ \param[in] flag:
+ only one parameter can be selected which is shown as below:
+ \arg PMU_FLAG_WAKEUP: wakeup flag
+ \arg PMU_FLAG_STANDBY: standby flag
+ \arg PMU_FLAG_LVD: lvd flag
+ \param[out] none
+ \retval FlagStatus SET or RESET
+*/
+FlagStatus pmu_flag_get(uint32_t flag)
+{
+ if(PMU_CS & flag){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear flag bit
+ \param[in] flag_reset:
+ only one parameter can be selected which is shown as below:
+ \arg PMU_FLAG_RESET_WAKEUP: reset wakeup flag
+ \arg PMU_FLAG_RESET_STANDBY: reset standby flag
+ \param[out] none
+ \retval none
+*/
+void pmu_flag_clear(uint32_t flag_reset)
+{
+ switch(flag_reset){
+ case PMU_FLAG_RESET_WAKEUP:
+ /* reset wakeup flag */
+ PMU_CTL |= PMU_CTL_WURST;
+ break;
+ case PMU_FLAG_RESET_STANDBY:
+ /* reset standby flag */
+ PMU_CTL |= PMU_CTL_STBRST;
+ break;
+ default :
+ break;
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c
new file mode 100644
index 0000000000..e2248a1e5b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c
@@ -0,0 +1,1111 @@
+/*!
+ \file gd32vf103_rcu.c
+ \brief RCU driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_rcu.h"
+
+/* define clock source */
+#define SEL_IRC8M ((uint16_t)0U)
+#define SEL_HXTAL ((uint16_t)1U)
+#define SEL_PLL ((uint16_t)2U)
+
+/* define startup timeout count */
+#define OSC_STARTUP_TIMEOUT ((uint32_t)0xFFFFFU)
+#define LXTAL_STARTUP_TIMEOUT ((uint32_t)0x3FFFFFFU)
+
+/*!
+ \brief deinitialize the RCU
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rcu_deinit(void)
+{
+ /* enable IRC8M */
+ RCU_CTL |= RCU_CTL_IRC8MEN;
+ rcu_osci_stab_wait(RCU_IRC8M);
+ /* reset CTL register */
+ RCU_CTL &= ~(RCU_CTL_HXTALEN | RCU_CTL_CKMEN | RCU_CTL_PLLEN);
+ RCU_CTL &= ~RCU_CTL_HXTALBPS;
+ RCU_CTL &= ~(RCU_CTL_PLL1EN | RCU_CTL_PLL2EN);
+ /* reset CFG0 register */
+ RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC |
+ RCU_CFG0_ADCPSC | RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0_LSB | RCU_CFG0_PLLMF |
+ RCU_CFG0_USBFSPSC | RCU_CFG0_CKOUT0SEL | RCU_CFG0_ADCPSC_2 | RCU_CFG0_PLLMF_4);
+ /* reset INT and CFG1 register */
+ RCU_INT = 0x00ff0000U;
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0 | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PLL2MF |
+ RCU_CFG1_PREDV0SEL | RCU_CFG1_I2S1SEL | RCU_CFG1_I2S2SEL);
+}
+
+/*!
+ \brief enable the peripherals clock
+ \param[in] periph: RCU peripherals, refer to rcu_periph_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_GPIOx (x=A,B,C,D,E): GPIO ports clock
+ \arg RCU_AF : alternate function clock
+ \arg RCU_CRC: CRC clock
+ \arg RCU_DMAx (x=0,1): DMA clock
+ \arg RCU_USBFS: USBFS clock
+ \arg RCU_EXMC: EXMC clock
+ \arg RCU_TIMERx (x=0,1,2,3,4,5,6): TIMER clock
+ \arg RCU_WWDGT: WWDGT clock
+ \arg RCU_SPIx (x=0,1,2): SPI clock
+ \arg RCU_USARTx (x=0,1,2): USART clock
+ \arg RCU_UARTx (x=3,4): UART clock
+ \arg RCU_I2Cx (x=0,1): I2C clock
+ \arg RCU_CANx (x=0,1): CAN clock
+ \arg RCU_PMU: PMU clock
+ \arg RCU_DAC: DAC clock
+ \arg RCU_RTC: RTC clock
+ \arg RCU_ADCx (x=0,1): ADC clock
+ \arg RCU_BKPI: BKP interface clock
+ \param[out] none
+ \retval none
+*/
+void rcu_periph_clock_enable(rcu_periph_enum periph)
+{
+ RCU_REG_VAL(periph) |= BIT(RCU_BIT_POS(periph));
+}
+
+/*!
+ \brief disable the peripherals clock
+ \param[in] periph: RCU peripherals, refer to rcu_periph_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_GPIOx (x=A,B,C,D,E): GPIO ports clock
+ \arg RCU_AF: alternate function clock
+ \arg RCU_CRC: CRC clock
+ \arg RCU_DMAx (x=0,1): DMA clock
+ \arg RCU_USBFS: USBFS clock
+ \arg RCU_EXMC: EXMC clock
+ \arg RCU_TIMERx (x=0,1,2,3,4,5,6): TIMER clock
+ \arg RCU_WWDGT: WWDGT clock
+ \arg RCU_SPIx (x=0,1,2): SPI clock
+ \arg RCU_USARTx (x=0,1,2): USART clock
+ \arg RCU_UARTx (x=3,4): UART clock
+ \arg RCU_I2Cx (x=0,1): I2C clock
+ \arg RCU_CANx (x=0,1): CAN clock
+ \arg RCU_PMU: PMU clock
+ \arg RCU_DAC: DAC clock
+ \arg RCU_RTC: RTC clock
+ \arg RCU_ADCx (x=0,1): ADC clock
+ \arg RCU_BKPI: BKP interface clock
+ \param[out] none
+ \retval none
+*/
+void rcu_periph_clock_disable(rcu_periph_enum periph)
+{
+ RCU_REG_VAL(periph) &= ~BIT(RCU_BIT_POS(periph));
+}
+
+/*!
+ \brief enable the peripherals clock when sleep mode
+ \param[in] periph: RCU peripherals, refer to rcu_periph_sleep_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_FMC_SLP: FMC clock
+ \arg RCU_SRAM_SLP: SRAM clock
+ \param[out] none
+ \retval none
+*/
+void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph)
+{
+ RCU_REG_VAL(periph) |= BIT(RCU_BIT_POS(periph));
+}
+
+/*!
+ \brief disable the peripherals clock when sleep mode
+ \param[in] periph: RCU peripherals, refer to rcu_periph_sleep_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_FMC_SLP: FMC clock
+ \arg RCU_SRAM_SLP: SRAM clock
+ \param[out] none
+ \retval none
+*/
+void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph)
+{
+ RCU_REG_VAL(periph) &= ~BIT(RCU_BIT_POS(periph));
+}
+
+/*!
+ \brief reset the peripherals
+ \param[in] periph_reset: RCU peripherals reset, refer to rcu_periph_reset_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_GPIOxRST (x=A,B,C,D,E): reset GPIO ports
+ \arg RCU_AFRST : reset alternate function clock
+ \arg RCU_USBFSRST: reset USBFS
+ \arg RCU_TIMERxRST (x=0,1,2,3,4,5,6): reset TIMER
+ \arg RCU_WWDGTRST: reset WWDGT
+ \arg RCU_SPIxRST (x=0,1,2): reset SPI
+ \arg RCU_USARTxRST (x=0,1,2): reset USART
+ \arg RCU_UARTxRST (x=3,4): reset UART
+ \arg RCU_I2CxRST (x=0,1): reset I2C
+ \arg RCU_CANxRST (x=0,1): reset CAN
+ \arg RCU_PMURST: reset PMU
+ \arg RCU_DACRST: reset DAC
+ \arg RCU_ADCxRST (x=0,1): reset ADC
+ \arg RCU_BKPIRST: reset BKPI
+ \param[out] none
+ \retval none
+*/
+void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset)
+{
+ RCU_REG_VAL(periph_reset) |= BIT(RCU_BIT_POS(periph_reset));
+}
+
+/*!
+ \brief disable reset the peripheral
+ \param[in] periph_reset: RCU peripherals reset, refer to rcu_periph_reset_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_GPIOxRST (x=A,B,C,D,E): reset GPIO ports
+ \arg RCU_AFRST : reset alternate function clock
+ \arg RCU_USBFSRST: reset USBFS
+ \arg RCU_TIMERxRST (x=0,1,2,3,4,5,6): reset TIMER
+ \arg RCU_WWDGTRST: reset WWDGT
+ \arg RCU_SPIxRST (x=0,1,2): reset SPI
+ \arg RCU_USARTxRST (x=0,1,2): reset USART
+ \arg RCU_UARTxRST (x=3,4): reset UART
+ \arg RCU_I2CxRST (x=0,1): reset I2C
+ \arg RCU_CANxRST (x=0,1): reset CAN
+ \arg RCU_PMURST: reset PMU
+ \arg RCU_DACRST: reset DAC
+ \arg RCU_ADCxRST (x=0,1): reset ADC
+ \arg RCU_BKPIRST: reset BKPI
+ \param[out] none
+ \retval none
+*/
+void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset)
+{
+ RCU_REG_VAL(periph_reset) &= ~BIT(RCU_BIT_POS(periph_reset));
+}
+
+/*!
+ \brief reset the BKP domain
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rcu_bkp_reset_enable(void)
+{
+ RCU_BDCTL |= RCU_BDCTL_BKPRST;
+}
+
+/*!
+ \brief disable the BKP domain reset
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rcu_bkp_reset_disable(void)
+{
+ RCU_BDCTL &= ~RCU_BDCTL_BKPRST;
+}
+
+/*!
+ \brief configure the system clock source
+ \param[in] ck_sys: system clock source select
+ only one parameter can be selected which is shown as below:
+ \arg RCU_CKSYSSRC_IRC8M: select CK_IRC8M as the CK_SYS source
+ \arg RCU_CKSYSSRC_HXTAL: select CK_HXTAL as the CK_SYS source
+ \arg RCU_CKSYSSRC_PLL: select CK_PLL as the CK_SYS source
+ \param[out] none
+ \retval none
+*/
+void rcu_system_clock_source_config(uint32_t ck_sys)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG0;
+ /* reset the SCS bits and set according to ck_sys */
+ reg &= ~RCU_CFG0_SCS;
+ RCU_CFG0 = (reg | ck_sys);
+}
+
+/*!
+ \brief get the system clock source
+ \param[in] none
+ \param[out] none
+ \retval which clock is selected as CK_SYS source
+ \arg RCU_SCSS_IRC8M: CK_IRC8M is selected as the CK_SYS source
+ \arg RCU_SCSS_HXTAL: CK_HXTAL is selected as the CK_SYS source
+ \arg RCU_SCSS_PLL: CK_PLL is selected as the CK_SYS source
+*/
+uint32_t rcu_system_clock_source_get(void)
+{
+ return (RCU_CFG0 & RCU_CFG0_SCSS);
+}
+
+/*!
+ \brief configure the AHB clock prescaler selection
+ \param[in] ck_ahb: AHB clock prescaler selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_AHB_CKSYS_DIVx, x=1, 2, 4, 8, 16, 64, 128, 256, 512
+ \param[out] none
+ \retval none
+*/
+void rcu_ahb_clock_config(uint32_t ck_ahb)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG0;
+
+ /* reset the AHBPSC bits and set according to ck_ahb */
+ reg &= ~RCU_CFG0_AHBPSC;
+ RCU_CFG0 = (reg | ck_ahb);
+}
+
+/*!
+ \brief configure the APB1 clock prescaler selection
+ \param[in] ck_apb1: APB1 clock prescaler selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_APB1_CKAHB_DIV1: select CK_AHB as CK_APB1
+ \arg RCU_APB1_CKAHB_DIV2: select CK_AHB/2 as CK_APB1
+ \arg RCU_APB1_CKAHB_DIV4: select CK_AHB/4 as CK_APB1
+ \arg RCU_APB1_CKAHB_DIV8: select CK_AHB/8 as CK_APB1
+ \arg RCU_APB1_CKAHB_DIV16: select CK_AHB/16 as CK_APB1
+ \param[out] none
+ \retval none
+*/
+void rcu_apb1_clock_config(uint32_t ck_apb1)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG0;
+
+ /* reset the APB1PSC and set according to ck_apb1 */
+ reg &= ~RCU_CFG0_APB1PSC;
+ RCU_CFG0 = (reg | ck_apb1);
+}
+
+/*!
+ \brief configure the APB2 clock prescaler selection
+ \param[in] ck_apb2: APB2 clock prescaler selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_APB2_CKAHB_DIV1: select CK_AHB as CK_APB2
+ \arg RCU_APB2_CKAHB_DIV2: select CK_AHB/2 as CK_APB2
+ \arg RCU_APB2_CKAHB_DIV4: select CK_AHB/4 as CK_APB2
+ \arg RCU_APB2_CKAHB_DIV8: select CK_AHB/8 as CK_APB2
+ \arg RCU_APB2_CKAHB_DIV16: select CK_AHB/16 as CK_APB2
+ \param[out] none
+ \retval none
+*/
+void rcu_apb2_clock_config(uint32_t ck_apb2)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG0;
+
+ /* reset the APB2PSC and set according to ck_apb2 */
+ reg &= ~RCU_CFG0_APB2PSC;
+ RCU_CFG0 = (reg | ck_apb2);
+}
+
+/*!
+ \brief configure the CK_OUT0 clock source
+ \param[in] ckout0_src: CK_OUT0 clock source selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_CKOUT0SRC_NONE: no clock selected
+ \arg RCU_CKOUT0SRC_CKSYS: system clock selected
+ \arg RCU_CKOUT0SRC_IRC8M: high speed 8M internal oscillator clock selected
+ \arg RCU_CKOUT0SRC_HXTAL: HXTAL selected
+ \arg RCU_CKOUT0SRC_CKPLL_DIV2: CK_PLL/2 selected
+ \arg RCU_CKOUT0SRC_CKPLL1: CK_PLL1 selected
+ \arg RCU_CKOUT0SRC_CKPLL2_DIV2: CK_PLL2/2 selected
+ \arg RCU_CKOUT0SRC_EXT1: EXT1 selected
+ \arg RCU_CKOUT0SRC_CKPLL2: PLL2 selected
+ \param[out] none
+ \retval none
+*/
+void rcu_ckout0_config(uint32_t ckout0_src)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG0;
+
+ /* reset the CKOUT0SRC, set according to ckout0_src */
+ reg &= ~RCU_CFG0_CKOUT0SEL;
+ RCU_CFG0 = (reg | ckout0_src);
+}
+
+/*!
+ \brief configure the main PLL clock
+ \param[in] pll_src: PLL clock source selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PLLSRC_IRC8M_DIV2: IRC8M/2 clock selected as source clock of PLL
+ \arg RCU_PLLSRC_HXTAL: HXTAL selected as source clock of PLL
+ \param[in] pll_mul: PLL clock multiplication factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PLL_MULx (x = 2..14, 6.5, 16..32)
+ \param[out] none
+ \retval none
+*/
+void rcu_pll_config(uint32_t pll_src, uint32_t pll_mul)
+{
+ uint32_t reg = 0U;
+
+ reg = RCU_CFG0;
+
+ /* PLL clock source and multiplication factor configuration */
+ reg &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ reg |= (pll_src | pll_mul);
+
+ RCU_CFG0 = reg;
+}
+
+/*!
+ \brief configure the PREDV0 division factor and clock source
+ \param[in] predv0_source: PREDV0 input clock source selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PREDV0SRC_HXTAL: HXTAL selected as PREDV0 input source clock
+ \arg RCU_PREDV0SRC_CKPLL1: CK_PLL1 selected as PREDV0 input source clock
+ \param[in] predv0_div: PREDV0 division factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PREDV0_DIVx, x = 1..16
+ \param[out] none
+ \retval none
+*/
+void rcu_predv0_config(uint32_t predv0_source, uint32_t predv0_div)
+{
+ uint32_t reg = 0U;
+
+ reg = RCU_CFG1;
+ /* reset PREDV0SEL and PREDV0 bits */
+ reg &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV0);
+ /* set the PREDV0SEL and PREDV0 division factor */
+ reg |= (predv0_source | predv0_div);
+
+ RCU_CFG1 = reg;
+}
+
+/*!
+ \brief configure the PREDV1 division factor
+ \param[in] predv1_div: PREDV1 division factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PREDV1_DIVx, x = 1..16
+ \param[out] none
+ \retval none
+*/
+void rcu_predv1_config(uint32_t predv1_div)
+{
+ uint32_t reg = 0U;
+
+ reg = RCU_CFG1;
+ /* reset the PREDV1 bits */
+ reg &= ~RCU_CFG1_PREDV1;
+ /* set the PREDV1 division factor */
+ reg |= predv1_div;
+
+ RCU_CFG1 = reg;
+}
+
+/*!
+ \brief configure the PLL1 clock
+ \param[in] pll_mul: PLL clock multiplication factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PLL1_MULx (x = 8..16, 20)
+ \param[out] none
+ \retval none
+*/
+void rcu_pll1_config(uint32_t pll_mul)
+{
+ RCU_CFG1 &= ~RCU_CFG1_PLL1MF;
+ RCU_CFG1 |= pll_mul;
+}
+
+/*!
+ \brief configure the PLL2 clock
+ \param[in] pll_mul: PLL clock multiplication factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_PLL2_MULx (x = 8..16, 20)
+ \param[out] none
+ \retval none
+*/
+void rcu_pll2_config(uint32_t pll_mul)
+{
+ RCU_CFG1 &= ~RCU_CFG1_PLL2MF;
+ RCU_CFG1 |= pll_mul;
+}
+
+/*!
+ \brief configure the ADC prescaler factor
+ \param[in] adc_psc: ADC prescaler factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_CKADC_CKAPB2_DIV2: ADC prescaler select CK_APB2/2
+ \arg RCU_CKADC_CKAPB2_DIV4: ADC prescaler select CK_APB2/4
+ \arg RCU_CKADC_CKAPB2_DIV6: ADC prescaler select CK_APB2/6
+ \arg RCU_CKADC_CKAPB2_DIV8: ADC prescaler select CK_APB2/8
+ \arg RCU_CKADC_CKAPB2_DIV12: ADC prescaler select CK_APB2/12
+ \arg RCU_CKADC_CKAPB2_DIV16: ADC prescaler select CK_APB2/16
+ \param[out] none
+ \retval none
+*/
+void rcu_adc_clock_config(uint32_t adc_psc)
+{
+ uint32_t reg0;
+
+ /* reset the ADCPSC bits */
+ reg0 = RCU_CFG0;
+ reg0 &= ~(RCU_CFG0_ADCPSC_2 | RCU_CFG0_ADCPSC);
+
+ /* set the ADC prescaler factor */
+ switch(adc_psc){
+ case RCU_CKADC_CKAPB2_DIV2:
+ case RCU_CKADC_CKAPB2_DIV4:
+ case RCU_CKADC_CKAPB2_DIV6:
+ case RCU_CKADC_CKAPB2_DIV8:
+ reg0 |= (adc_psc << 14);
+ break;
+
+ case RCU_CKADC_CKAPB2_DIV12:
+ case RCU_CKADC_CKAPB2_DIV16:
+ adc_psc &= ~BIT(2);
+ reg0 |= (adc_psc << 14 | RCU_CFG0_ADCPSC_2);
+ break;
+
+ default:
+ break;
+ }
+
+ /* set the register */
+ RCU_CFG0 = reg0;
+}
+
+/*!
+ \brief configure the USBFS prescaler factor
+ \param[in] usb_psc: USB prescaler factor
+ only one parameter can be selected which is shown as below:
+ \arg RCU_CKUSB_CKPLL_DIV1_5: USBFS prescaler select CK_PLL/1.5
+ \arg RCU_CKUSB_CKPLL_DIV1: USBFS prescaler select CK_PLL/1
+ \arg RCU_CKUSB_CKPLL_DIV2_5: USBFS prescaler select CK_PLL/2.5
+ \arg RCU_CKUSB_CKPLL_DIV2: USBFS prescaler select CK_PLL/2
+ \param[out] none
+ \retval none
+*/
+void rcu_usb_clock_config(uint32_t usb_psc)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG0;
+
+ /* configure the USBFS prescaler factor */
+ reg &= ~RCU_CFG0_USBFSPSC;
+ RCU_CFG0 = (reg | usb_psc);
+}
+
+/*!
+ \brief configure the RTC clock source selection
+ \param[in] rtc_clock_source: RTC clock source selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_RTCSRC_NONE: no clock selected
+ \arg RCU_RTCSRC_LXTAL: CK_LXTAL selected as RTC source clock
+ \arg RCU_RTCSRC_IRC40K: CK_IRC40K selected as RTC source clock
+ \arg RCU_RTCSRC_HXTAL_DIV_128: CK_HXTAL/128 selected as RTC source clock
+ \param[out] none
+ \retval none
+*/
+void rcu_rtc_clock_config(uint32_t rtc_clock_source)
+{
+ uint32_t reg;
+
+ reg = RCU_BDCTL;
+ /* reset the RTCSRC bits and set according to rtc_clock_source */
+ reg &= ~RCU_BDCTL_RTCSRC;
+ RCU_BDCTL = (reg | rtc_clock_source);
+}
+
+/*!
+ \brief configure the I2S1 clock source selection
+ \param[in] i2s_clock_source: I2S1 clock source selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_I2S1SRC_CKSYS: System clock selected as I2S1 source clock
+ \arg RCU_I2S1SRC_CKPLL2_MUL2: CK_PLL2x2 selected as I2S1 source clock
+ \param[out] none
+ \retval none
+*/
+void rcu_i2s1_clock_config(uint32_t i2s_clock_source)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG1;
+ /* reset the I2S1SEL bit and set according to i2s_clock_source */
+ reg &= ~RCU_CFG1_I2S1SEL;
+ RCU_CFG1 = (reg | i2s_clock_source);
+}
+
+/*!
+ \brief configure the I2S2 clock source selection
+ \param[in] i2s_clock_source: I2S2 clock source selection
+ only one parameter can be selected which is shown as below:
+ \arg RCU_I2S2SRC_CKSYS: system clock selected as I2S2 source clock
+ \arg RCU_I2S2SRC_CKPLL2_MUL2: CK_PLL2x2 selected as I2S2 source clock
+ \param[out] none
+ \retval none
+*/
+void rcu_i2s2_clock_config(uint32_t i2s_clock_source)
+{
+ uint32_t reg;
+
+ reg = RCU_CFG1;
+ /* reset the I2S2SEL bit and set according to i2s_clock_source */
+ reg &= ~RCU_CFG1_I2S2SEL;
+ RCU_CFG1 = (reg | i2s_clock_source);
+}
+
+/*!
+ \brief get the clock stabilization and periphral reset flags
+ \param[in] flag: the clock stabilization and periphral reset flags, refer to rcu_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_FLAG_IRC8MSTB: IRC8M stabilization flag
+ \arg RCU_FLAG_HXTALSTB: HXTAL stabilization flag
+ \arg RCU_FLAG_PLLSTB: PLL stabilization flag
+ \arg RCU_FLAG_PLL1STB: PLL1 stabilization flag
+ \arg RCU_FLAG_PLL2STB: PLL2 stabilization flag
+ \arg RCU_FLAG_LXTALSTB: LXTAL stabilization flag
+ \arg RCU_FLAG_IRC40KSTB: IRC40K stabilization flag
+ \arg RCU_FLAG_EPRST: external PIN reset flag
+ \arg RCU_FLAG_PORRST: power reset flag
+ \arg RCU_FLAG_SWRST: software reset flag
+ \arg RCU_FLAG_FWDGTRST: free watchdog timer reset flag
+ \arg RCU_FLAG_WWDGTRST: window watchdog timer reset flag
+ \arg RCU_FLAG_LPRST: low-power reset flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus rcu_flag_get(rcu_flag_enum flag)
+{
+ /* get the rcu flag */
+ if(RESET != (RCU_REG_VAL(flag) & BIT(RCU_BIT_POS(flag)))){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear all the reset flag
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rcu_all_reset_flag_clear(void)
+{
+ RCU_RSTSCK |= RCU_RSTSCK_RSTFC;
+}
+
+/*!
+ \brief get the clock stabilization interrupt and ckm flags
+ \param[in] int_flag: interrupt and ckm flags, refer to rcu_int_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_INT_FLAG_IRC40KSTB: IRC40K stabilization interrupt flag
+ \arg RCU_INT_FLAG_LXTALSTB: LXTAL stabilization interrupt flag
+ \arg RCU_INT_FLAG_IRC8MSTB: IRC8M stabilization interrupt flag
+ \arg RCU_INT_FLAG_HXTALSTB: HXTAL stabilization interrupt flag
+ \arg RCU_INT_FLAG_PLLSTB: PLL stabilization interrupt flag
+ \arg RCU_INT_FLAG_PLL1STB: PLL1 stabilization interrupt flag
+ \arg RCU_INT_FLAG_PLL2STB: PLL2 stabilization interrupt flag
+ \arg RCU_INT_FLAG_CKM: HXTAL clock stuck interrupt flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag)
+{
+ /* get the rcu interrupt flag */
+ if(RESET != (RCU_REG_VAL(int_flag) & BIT(RCU_BIT_POS(int_flag)))){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear the interrupt flags
+ \param[in] int_flag_clear: clock stabilization and stuck interrupt flags clear, refer to rcu_int_flag_clear_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_INT_FLAG_IRC40KSTB_CLR: IRC40K stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_LXTALSTB_CLR: LXTAL stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_IRC8MSTB_CLR: IRC8M stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_HXTALSTB_CLR: HXTAL stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_PLLSTB_CLR: PLL stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_PLL1STB_CLR: PLL1 stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_PLL2STB_CLR: PLL2 stabilization interrupt flag clear
+ \arg RCU_INT_FLAG_CKM_CLR: clock stuck interrupt flag clear
+ \param[out] none
+ \retval none
+*/
+void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag_clear)
+{
+ RCU_REG_VAL(int_flag_clear) |= BIT(RCU_BIT_POS(int_flag_clear));
+}
+
+/*!
+ \brief enable the stabilization interrupt
+ \param[in] stab_int: clock stabilization interrupt, refer to rcu_int_enum
+ Only one parameter can be selected which is shown as below:
+ \arg RCU_INT_IRC40KSTB: IRC40K stabilization interrupt enable
+ \arg RCU_INT_LXTALSTB: LXTAL stabilization interrupt enable
+ \arg RCU_INT_IRC8MSTB: IRC8M stabilization interrupt enable
+ \arg RCU_INT_HXTALSTB: HXTAL stabilization interrupt enable
+ \arg RCU_INT_PLLSTB: PLL stabilization interrupt enable
+ \arg RCU_INT_PLL1STB: PLL1 stabilization interrupt enable
+ \arg RCU_INT_PLL2STB: PLL2 stabilization interrupt enable
+ \param[out] none
+ \retval none
+*/
+void rcu_interrupt_enable(rcu_int_enum stab_int)
+{
+ RCU_REG_VAL(stab_int) |= BIT(RCU_BIT_POS(stab_int));
+}
+
+/*!
+ \brief disable the stabilization interrupt
+ \param[in] stab_int: clock stabilization interrupt, refer to rcu_int_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_INT_IRC40KSTB: IRC40K stabilization interrupt enable
+ \arg RCU_INT_LXTALSTB: LXTAL stabilization interrupt enable
+ \arg RCU_INT_IRC8MSTB: IRC8M stabilization interrupt enable
+ \arg RCU_INT_HXTALSTB: HXTAL stabilization interrupt enable
+ \arg RCU_INT_PLLSTB: PLL stabilization interrupt enable
+ \arg RCU_INT_PLL1STB: PLL1 stabilization interrupt enable
+ \arg RCU_INT_PLL2STB: PLL2 stabilization interrupt enable
+ \param[out] none
+ \retval none
+*/
+void rcu_interrupt_disable(rcu_int_enum stab_int)
+{
+ RCU_REG_VAL(stab_int) &= ~BIT(RCU_BIT_POS(stab_int));
+}
+
+/*!
+ \brief wait for oscillator stabilization flags is SET or oscillator startup is timeout
+ \param[in] osci: oscillator types, refer to rcu_osci_type_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_HXTAL: high speed crystal oscillator(HXTAL)
+ \arg RCU_LXTAL: low speed crystal oscillator(LXTAL)
+ \arg RCU_IRC8M: internal 8M RC oscillators(IRC8M)
+ \arg RCU_IRC40K: internal 40K RC oscillator(IRC40K)
+ \arg RCU_PLL_CK: phase locked loop(PLL)
+ \arg RCU_PLL1_CK: phase locked loop 1
+ \arg RCU_PLL2_CK: phase locked loop 2
+ \param[out] none
+ \retval ErrStatus: SUCCESS or ERROR
+*/
+ErrStatus rcu_osci_stab_wait(rcu_osci_type_enum osci)
+{
+ uint32_t stb_cnt = 0U;
+ ErrStatus reval = ERROR;
+ FlagStatus osci_stat = RESET;
+
+ switch(osci){
+ /* wait HXTAL stable */
+ case RCU_HXTAL:
+ while((RESET == osci_stat) && (HXTAL_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_HXTALSTB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_HXTALSTB)){
+ reval = SUCCESS;
+ }
+ break;
+
+ /* wait LXTAL stable */
+ case RCU_LXTAL:
+ while((RESET == osci_stat) && (LXTAL_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_LXTALSTB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_LXTALSTB)){
+ reval = SUCCESS;
+ }
+ break;
+
+ /* wait IRC8M stable */
+ case RCU_IRC8M:
+ while((RESET == osci_stat) && (IRC8M_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_IRC8MSTB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_IRC8MSTB)){
+ reval = SUCCESS;
+ }
+ break;
+
+ /* wait IRC40K stable */
+ case RCU_IRC40K:
+ while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_IRC40KSTB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_IRC40KSTB)){
+ reval = SUCCESS;
+ }
+ break;
+
+ /* wait PLL stable */
+ case RCU_PLL_CK:
+ while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_PLLSTB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_PLLSTB)){
+ reval = SUCCESS;
+ }
+ break;
+ /* wait PLL1 stable */
+ case RCU_PLL1_CK:
+ while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_PLL1STB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_PLL1STB)){
+ reval = SUCCESS;
+ }
+ break;
+ /* wait PLL2 stable */
+ case RCU_PLL2_CK:
+ while((RESET == osci_stat) && (OSC_STARTUP_TIMEOUT != stb_cnt)){
+ osci_stat = rcu_flag_get(RCU_FLAG_PLL2STB);
+ stb_cnt++;
+ }
+
+ /* check whether flag is set or not */
+ if(RESET != rcu_flag_get(RCU_FLAG_PLL2STB)){
+ reval = SUCCESS;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* return value */
+ return reval;
+}
+
+/*!
+ \brief turn on the oscillator
+ \param[in] osci: oscillator types, refer to rcu_osci_type_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_HXTAL: high speed crystal oscillator(HXTAL)
+ \arg RCU_LXTAL: low speed crystal oscillator(LXTAL)
+ \arg RCU_IRC8M: internal 8M RC oscillators(IRC8M)
+ \arg RCU_IRC40K: internal 40K RC oscillator(IRC40K)
+ \arg RCU_PLL_CK: phase locked loop(PLL)
+ \arg RCU_PLL1_CK: phase locked loop 1
+ \arg RCU_PLL2_CK: phase locked loop 2
+ \param[out] none
+ \retval none
+*/
+void rcu_osci_on(rcu_osci_type_enum osci)
+{
+ RCU_REG_VAL(osci) |= BIT(RCU_BIT_POS(osci));
+}
+
+/*!
+ \brief turn off the oscillator
+ \param[in] osci: oscillator types, refer to rcu_osci_type_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_HXTAL: high speed crystal oscillator(HXTAL)
+ \arg RCU_LXTAL: low speed crystal oscillator(LXTAL)
+ \arg RCU_IRC8M: internal 8M RC oscillators(IRC8M)
+ \arg RCU_IRC40K: internal 40K RC oscillator(IRC40K)
+ \arg RCU_PLL_CK: phase locked loop(PLL)
+ \arg RCU_PLL1_CK: phase locked loop 1
+ \arg RCU_PLL2_CK: phase locked loop 2
+ \param[out] none
+ \retval none
+*/
+void rcu_osci_off(rcu_osci_type_enum osci)
+{
+ RCU_REG_VAL(osci) &= ~BIT(RCU_BIT_POS(osci));
+}
+
+/*!
+ \brief enable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it
+ \param[in] osci: oscillator types, refer to rcu_osci_type_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_HXTAL: high speed crystal oscillator(HXTAL)
+ \arg RCU_LXTAL: low speed crystal oscillator(LXTAL)
+ \param[out] none
+ \retval none
+*/
+void rcu_osci_bypass_mode_enable(rcu_osci_type_enum osci)
+{
+ uint32_t reg;
+
+ switch(osci){
+ /* enable HXTAL to bypass mode */
+ case RCU_HXTAL:
+ reg = RCU_CTL;
+ RCU_CTL &= ~RCU_CTL_HXTALEN;
+ RCU_CTL = (reg | RCU_CTL_HXTALBPS);
+ break;
+ /* enable LXTAL to bypass mode */
+ case RCU_LXTAL:
+ reg = RCU_BDCTL;
+ RCU_BDCTL &= ~RCU_BDCTL_LXTALEN;
+ RCU_BDCTL = (reg | RCU_BDCTL_LXTALBPS);
+ break;
+ case RCU_IRC8M:
+ case RCU_IRC40K:
+ case RCU_PLL_CK:
+ case RCU_PLL1_CK:
+ case RCU_PLL2_CK:
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief disable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it
+ \param[in] osci: oscillator types, refer to rcu_osci_type_enum
+ only one parameter can be selected which is shown as below:
+ \arg RCU_HXTAL: high speed crystal oscillator(HXTAL)
+ \arg RCU_LXTAL: low speed crystal oscillator(LXTAL)
+ \param[out] none
+ \retval none
+*/
+void rcu_osci_bypass_mode_disable(rcu_osci_type_enum osci)
+{
+ uint32_t reg;
+
+ switch(osci){
+ /* disable HXTAL to bypass mode */
+ case RCU_HXTAL:
+ reg = RCU_CTL;
+ RCU_CTL &= ~RCU_CTL_HXTALEN;
+ RCU_CTL = (reg & ~RCU_CTL_HXTALBPS);
+ break;
+ /* disable LXTAL to bypass mode */
+ case RCU_LXTAL:
+ reg = RCU_BDCTL;
+ RCU_BDCTL &= ~RCU_BDCTL_LXTALEN;
+ RCU_BDCTL = (reg & ~RCU_BDCTL_LXTALBPS);
+ break;
+ case RCU_IRC8M:
+ case RCU_IRC40K:
+ case RCU_PLL_CK:
+ case RCU_PLL1_CK:
+ case RCU_PLL2_CK:
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief enable the HXTAL clock monitor
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+
+void rcu_hxtal_clock_monitor_enable(void)
+{
+ RCU_CTL |= RCU_CTL_CKMEN;
+}
+
+/*!
+ \brief disable the HXTAL clock monitor
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rcu_hxtal_clock_monitor_disable(void)
+{
+ RCU_CTL &= ~RCU_CTL_CKMEN;
+}
+
+/*!
+ \brief set the IRC8M adjust value
+ \param[in] irc8m_adjval: IRC8M adjust value, must be between 0 and 0x1F
+ \param[out] none
+ \retval none
+*/
+void rcu_irc8m_adjust_value_set(uint32_t irc8m_adjval)
+{
+ uint32_t reg;
+
+ reg = RCU_CTL;
+ /* reset the IRC8MADJ bits and set according to irc8m_adjval */
+ reg &= ~RCU_CTL_IRC8MADJ;
+ RCU_CTL = (reg | ((irc8m_adjval & 0x1FU) << 3));
+}
+
+/*!
+ \brief deep-sleep mode voltage select
+ \param[in] dsvol: deep sleep mode voltage
+ only one parameter can be selected which is shown as below:
+ \arg RCU_DEEPSLEEP_V_1_2: the core voltage is 1.2V
+ \arg RCU_DEEPSLEEP_V_1_1: the core voltage is 1.1V
+ \arg RCU_DEEPSLEEP_V_1_0: the core voltage is 1.0V
+ \arg RCU_DEEPSLEEP_V_0_9: the core voltage is 0.9V
+ \param[out] none
+ \retval none
+*/
+void rcu_deepsleep_voltage_set(uint32_t dsvol)
+{
+ dsvol &= RCU_DSV_DSLPVS;
+ RCU_DSV = dsvol;
+}
+
+/*!
+ \brief get the system clock, bus and peripheral clock frequency
+ \param[in] clock: the clock frequency which to get
+ only one parameter can be selected which is shown as below:
+ \arg CK_SYS: system clock frequency
+ \arg CK_AHB: AHB clock frequency
+ \arg CK_APB1: APB1 clock frequency
+ \arg CK_APB2: APB2 clock frequency
+ \param[out] none
+ \retval clock frequency of system, AHB, APB1, APB2
+*/
+uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock)
+{
+ uint32_t sws, ck_freq = 0U;
+ uint32_t cksys_freq, ahb_freq, apb1_freq, apb2_freq;
+ uint32_t pllsel, predv0sel, pllmf,ck_src, idx, clk_exp;
+ uint32_t predv0, predv1, pll1mf;
+
+ /* exponent of AHB, APB1 and APB2 clock divider */
+ uint8_t ahb_exp[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
+ uint8_t apb1_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4};
+ uint8_t apb2_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4};
+
+ sws = GET_BITS(RCU_CFG0, 2, 3);
+ switch(sws){
+ /* IRC8M is selected as CK_SYS */
+ case SEL_IRC8M:
+ cksys_freq = IRC8M_VALUE;
+ break;
+ /* HXTAL is selected as CK_SYS */
+ case SEL_HXTAL:
+ cksys_freq = HXTAL_VALUE;
+ break;
+ /* PLL is selected as CK_SYS */
+ case SEL_PLL:
+ /* PLL clock source selection, HXTAL or IRC8M/2 */
+ pllsel = (RCU_CFG0 & RCU_CFG0_PLLSEL);
+
+ if(RCU_PLLSRC_HXTAL == pllsel) {
+ /* PLL clock source is HXTAL */
+ ck_src = HXTAL_VALUE;
+
+ predv0sel = (RCU_CFG1 & RCU_CFG1_PREDV0SEL);
+ /* source clock use PLL1 */
+ if(RCU_PREDV0SRC_CKPLL1 == predv0sel){
+ predv1 = (uint32_t)((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U;
+ pll1mf = (uint32_t)((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U;
+ if(17U == pll1mf){
+ pll1mf = 20U;
+ }
+ ck_src = (ck_src / predv1) * pll1mf;
+ }
+ predv0 = (RCU_CFG1 & RCU_CFG1_PREDV0) + 1U;
+ ck_src /= predv0;
+ }else{
+ /* PLL clock source is IRC8M/2 */
+ ck_src = IRC8M_VALUE/2U;
+ }
+
+ /* PLL multiplication factor */
+ pllmf = GET_BITS(RCU_CFG0, 18, 21);
+ if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
+ pllmf |= 0x10U;
+ }
+ if(pllmf < 15U){
+ pllmf += 2U;
+ }else{
+ pllmf += 1U;
+ }
+
+ cksys_freq = ck_src * pllmf;
+
+ if(15U == pllmf){
+ /* PLL source clock multiply by 6.5 */
+ cksys_freq = ck_src * 6U + ck_src / 2U;
+ }
+
+ break;
+ /* IRC8M is selected as CK_SYS */
+ default:
+ cksys_freq = IRC8M_VALUE;
+ break;
+ }
+
+ /* calculate AHB clock frequency */
+ idx = GET_BITS(RCU_CFG0, 4, 7);
+ clk_exp = ahb_exp[idx];
+ ahb_freq = cksys_freq >> clk_exp;
+
+ /* calculate APB1 clock frequency */
+ idx = GET_BITS(RCU_CFG0, 8, 10);
+ clk_exp = apb1_exp[idx];
+ apb1_freq = ahb_freq >> clk_exp;
+
+ /* calculate APB2 clock frequency */
+ idx = GET_BITS(RCU_CFG0, 11, 13);
+ clk_exp = apb2_exp[idx];
+ apb2_freq = ahb_freq >> clk_exp;
+
+ /* return the clocks frequency */
+ switch(clock){
+ case CK_SYS:
+ ck_freq = cksys_freq;
+ break;
+ case CK_AHB:
+ ck_freq = ahb_freq;
+ break;
+ case CK_APB1:
+ ck_freq = apb1_freq;
+ break;
+ case CK_APB2:
+ ck_freq = apb2_freq;
+ break;
+ default:
+ break;
+ }
+ return ck_freq;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.s
new file mode 100644
index 0000000000..422603f91a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.s
@@ -0,0 +1,21714 @@
+ .file "gd32vf103_rcu.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl rcu_deinit
+ .type rcu_deinit, @function
+rcu_deinit:
+.LFB2:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_rcu.c"
+ .loc 1 54 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw ra,12(sp)
+ sw s0,8(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 56 89
+ li a5,1073876992
+ lw a4,0(a5)
+ li a5,1073876992
+ ori a4,a4,1
+ sw a4,0(a5)
+ .loc 1 57 5
+ li a0,0
+ call rcu_osci_stab_wait
+ .loc 1 59 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-17367040
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 60 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-262144
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 61 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-335544320
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 63 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ li a4,-1073741824
+ addi a4,a4,12
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 67 6
+ li a5,1073876992
+ addi a5,a5,8
+ .loc 1 67 89
+ li a4,16711680
+ sw a4,0(a5)
+ .loc 1 68 89
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ li a4,-524288
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 70 1
+ nop
+ lw ra,12(sp)
+ .cfi_restore 1
+ lw s0,8(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE2:
+ .size rcu_deinit, .-rcu_deinit
+ .align 1
+ .globl rcu_periph_clock_enable
+ .type rcu_periph_clock_enable, @function
+rcu_periph_clock_enable:
+.LFB3:
+ .loc 1 98 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 99 111
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 99 164
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 99 115
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 99 111
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 100 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE3:
+ .size rcu_periph_clock_enable, .-rcu_periph_clock_enable
+ .align 1
+ .globl rcu_periph_clock_disable
+ .type rcu_periph_clock_disable, @function
+rcu_periph_clock_disable:
+.LFB4:
+ .loc 1 128 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 129 111
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 129 165
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 129 116
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 129 114
+ not a5,a5
+ .loc 1 129 111
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 130 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE4:
+ .size rcu_periph_clock_disable, .-rcu_periph_clock_disable
+ .align 1
+ .globl rcu_periph_clock_sleep_enable
+ .type rcu_periph_clock_sleep_enable, @function
+rcu_periph_clock_sleep_enable:
+.LFB5:
+ .loc 1 142 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 143 111
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 143 164
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 143 115
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 143 111
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 144 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size rcu_periph_clock_sleep_enable, .-rcu_periph_clock_sleep_enable
+ .align 1
+ .globl rcu_periph_clock_sleep_disable
+ .type rcu_periph_clock_sleep_disable, @function
+rcu_periph_clock_sleep_disable:
+.LFB6:
+ .loc 1 156 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 157 111
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 157 165
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 157 116
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 157 114
+ not a5,a5
+ .loc 1 157 111
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 158 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size rcu_periph_clock_sleep_disable, .-rcu_periph_clock_sleep_disable
+ .align 1
+ .globl rcu_periph_reset_enable
+ .type rcu_periph_reset_enable, @function
+rcu_periph_reset_enable:
+.LFB7:
+ .loc 1 182 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 183 117
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 183 176
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 183 121
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 183 117
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 184 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE7:
+ .size rcu_periph_reset_enable, .-rcu_periph_reset_enable
+ .align 1
+ .globl rcu_periph_reset_disable
+ .type rcu_periph_reset_disable, @function
+rcu_periph_reset_disable:
+.LFB8:
+ .loc 1 208 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 209 117
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 209 177
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 209 122
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 209 120
+ not a5,a5
+ .loc 1 209 117
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 210 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE8:
+ .size rcu_periph_reset_disable, .-rcu_periph_reset_disable
+ .align 1
+ .globl rcu_bkp_reset_enable
+ .type rcu_bkp_reset_enable, @function
+rcu_bkp_reset_enable:
+.LFB9:
+ .loc 1 219 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 220 89
+ li a5,1073876992
+ addi a5,a5,32
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,32
+ li a4,65536
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 221 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE9:
+ .size rcu_bkp_reset_enable, .-rcu_bkp_reset_enable
+ .align 1
+ .globl rcu_bkp_reset_disable
+ .type rcu_bkp_reset_disable, @function
+rcu_bkp_reset_disable:
+.LFB10:
+ .loc 1 230 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 231 89
+ li a5,1073876992
+ addi a5,a5,32
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,32
+ li a4,-65536
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 232 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE10:
+ .size rcu_bkp_reset_disable, .-rcu_bkp_reset_disable
+ .align 1
+ .globl rcu_system_clock_source_config
+ .type rcu_system_clock_source_config, @function
+rcu_system_clock_source_config:
+.LFB11:
+ .loc 1 245 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 248 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 248 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 250 9
+ lw a5,-20(s0)
+ andi a5,a5,-4
+ sw a5,-20(s0)
+ .loc 1 251 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 251 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 251 89
+ sw a4,0(a5)
+ .loc 1 252 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE11:
+ .size rcu_system_clock_source_config, .-rcu_system_clock_source_config
+ .align 1
+ .globl rcu_system_clock_source_get
+ .type rcu_system_clock_source_get, @function
+rcu_system_clock_source_get:
+.LFB12:
+ .loc 1 264 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 265 97
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ andi a5,a5,12
+ .loc 1 266 1
+ mv a0,a5
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE12:
+ .size rcu_system_clock_source_get, .-rcu_system_clock_source_get
+ .align 1
+ .globl rcu_ahb_clock_config
+ .type rcu_ahb_clock_config, @function
+rcu_ahb_clock_config:
+.LFB13:
+ .loc 1 277 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 280 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 280 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 283 9
+ lw a5,-20(s0)
+ andi a5,a5,-241
+ sw a5,-20(s0)
+ .loc 1 284 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 284 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 284 89
+ sw a4,0(a5)
+ .loc 1 285 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE13:
+ .size rcu_ahb_clock_config, .-rcu_ahb_clock_config
+ .align 1
+ .globl rcu_apb1_clock_config
+ .type rcu_apb1_clock_config, @function
+rcu_apb1_clock_config:
+.LFB14:
+ .loc 1 300 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 303 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 303 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 306 9
+ lw a5,-20(s0)
+ andi a5,a5,-1793
+ sw a5,-20(s0)
+ .loc 1 307 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 307 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 307 89
+ sw a4,0(a5)
+ .loc 1 308 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE14:
+ .size rcu_apb1_clock_config, .-rcu_apb1_clock_config
+ .align 1
+ .globl rcu_apb2_clock_config
+ .type rcu_apb2_clock_config, @function
+rcu_apb2_clock_config:
+.LFB15:
+ .loc 1 323 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 326 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 326 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 329 9
+ lw a4,-20(s0)
+ li a5,-16384
+ addi a5,a5,2047
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 330 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 330 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 330 89
+ sw a4,0(a5)
+ .loc 1 331 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE15:
+ .size rcu_apb2_clock_config, .-rcu_apb2_clock_config
+ .align 1
+ .globl rcu_ckout0_config
+ .type rcu_ckout0_config, @function
+rcu_ckout0_config:
+.LFB16:
+ .loc 1 350 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 353 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 353 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 356 9
+ lw a4,-20(s0)
+ li a5,-251658240
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 357 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 357 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 357 89
+ sw a4,0(a5)
+ .loc 1 358 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE16:
+ .size rcu_ckout0_config, .-rcu_ckout0_config
+ .align 1
+ .globl rcu_pll_config
+ .type rcu_pll_config, @function
+rcu_pll_config:
+.LFB17:
+ .loc 1 373 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 374 14
+ sw zero,-20(s0)
+ .loc 1 376 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 376 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 379 9
+ lw a4,-20(s0)
+ li a5,-540868608
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 380 21
+ lw a4,-36(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ .loc 1 380 9
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 382 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 382 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 383 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE17:
+ .size rcu_pll_config, .-rcu_pll_config
+ .align 1
+ .globl rcu_predv0_config
+ .type rcu_predv0_config, @function
+rcu_predv0_config:
+.LFB18:
+ .loc 1 398 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 399 14
+ sw zero,-20(s0)
+ .loc 1 401 12
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 401 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 403 9
+ lw a4,-20(s0)
+ li a5,-65536
+ addi a5,a5,-16
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 405 27
+ lw a4,-36(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ .loc 1 405 9
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 407 6
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 407 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 408 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE18:
+ .size rcu_predv0_config, .-rcu_predv0_config
+ .align 1
+ .globl rcu_predv1_config
+ .type rcu_predv1_config, @function
+rcu_predv1_config:
+.LFB19:
+ .loc 1 419 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 420 14
+ sw zero,-20(s0)
+ .loc 1 422 12
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 422 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 424 9
+ lw a5,-20(s0)
+ andi a5,a5,-241
+ sw a5,-20(s0)
+ .loc 1 426 9
+ lw a4,-20(s0)
+ lw a5,-36(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 428 6
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 428 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 429 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE19:
+ .size rcu_predv1_config, .-rcu_predv1_config
+ .align 1
+ .globl rcu_pll1_config
+ .type rcu_pll1_config, @function
+rcu_pll1_config:
+.LFB20:
+ .loc 1 440 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 441 89
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ li a4,-4096
+ addi a4,a4,255
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 442 89
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 443 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE20:
+ .size rcu_pll1_config, .-rcu_pll1_config
+ .align 1
+ .globl rcu_pll2_config
+ .type rcu_pll2_config, @function
+rcu_pll2_config:
+.LFB21:
+ .loc 1 454 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 455 89
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ li a4,-61440
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 456 89
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ lw a4,-20(s0)
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 457 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE21:
+ .size rcu_pll2_config, .-rcu_pll2_config
+ .align 1
+ .globl rcu_adc_clock_config
+ .type rcu_adc_clock_config, @function
+rcu_adc_clock_config:
+.LFB22:
+ .loc 1 473 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 477 13
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 477 10
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 478 10
+ lw a4,-20(s0)
+ li a5,-268484608
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 481 5
+ lw a4,-36(s0)
+ li a5,7
+ beq a4,a5,.L23
+ lw a4,-36(s0)
+ li a5,7
+ bgtu a4,a5,.L27
+ lw a4,-36(s0)
+ li a5,3
+ bleu a4,a5,.L25
+ lw a4,-36(s0)
+ li a5,5
+ beq a4,a5,.L23
+ .loc 1 496 13
+ j .L27
+.L25:
+ .loc 1 486 30
+ lw a5,-36(s0)
+ slli a5,a5,14
+ .loc 1 486 18
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 487 13
+ j .L26
+.L23:
+ .loc 1 491 21
+ lw a5,-36(s0)
+ andi a5,a5,-5
+ sw a5,-36(s0)
+ .loc 1 492 30
+ lw a5,-36(s0)
+ slli a4,a5,14
+ .loc 1 492 18
+ lw a5,-20(s0)
+ or a4,a4,a5
+ li a5,268435456
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 493 13
+ j .L26
+.L27:
+ .loc 1 496 13
+ nop
+.L26:
+ .loc 1 500 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 500 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 501 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE22:
+ .size rcu_adc_clock_config, .-rcu_adc_clock_config
+ .align 1
+ .globl rcu_usb_clock_config
+ .type rcu_usb_clock_config, @function
+rcu_usb_clock_config:
+.LFB23:
+ .loc 1 515 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 518 12
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 518 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 521 9
+ lw a4,-20(s0)
+ li a5,-12582912
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 522 6
+ li a5,1073876992
+ addi a5,a5,4
+ .loc 1 522 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 522 89
+ sw a4,0(a5)
+ .loc 1 523 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE23:
+ .size rcu_usb_clock_config, .-rcu_usb_clock_config
+ .align 1
+ .globl rcu_rtc_clock_config
+ .type rcu_rtc_clock_config, @function
+rcu_rtc_clock_config:
+.LFB24:
+ .loc 1 537 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 540 12
+ li a5,1073876992
+ addi a5,a5,32
+ .loc 1 540 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 542 9
+ lw a5,-20(s0)
+ andi a5,a5,-769
+ sw a5,-20(s0)
+ .loc 1 543 6
+ li a5,1073876992
+ addi a5,a5,32
+ .loc 1 543 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 543 89
+ sw a4,0(a5)
+ .loc 1 544 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE24:
+ .size rcu_rtc_clock_config, .-rcu_rtc_clock_config
+ .align 1
+ .globl rcu_i2s1_clock_config
+ .type rcu_i2s1_clock_config, @function
+rcu_i2s1_clock_config:
+.LFB25:
+ .loc 1 556 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 559 12
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 559 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 561 9
+ lw a4,-20(s0)
+ li a5,-131072
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 562 6
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 562 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 562 89
+ sw a4,0(a5)
+ .loc 1 563 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE25:
+ .size rcu_i2s1_clock_config, .-rcu_i2s1_clock_config
+ .align 1
+ .globl rcu_i2s2_clock_config
+ .type rcu_i2s2_clock_config, @function
+rcu_i2s2_clock_config:
+.LFB26:
+ .loc 1 575 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 578 12
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 578 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 580 9
+ lw a4,-20(s0)
+ li a5,-262144
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 581 6
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 581 96
+ lw a3,-20(s0)
+ lw a4,-36(s0)
+ or a4,a3,a4
+ .loc 1 581 89
+ sw a4,0(a5)
+ .loc 1 582 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE26:
+ .size rcu_i2s2_clock_config, .-rcu_i2s2_clock_config
+ .align 1
+ .globl rcu_flag_get
+ .type rcu_flag_get, @function
+rcu_flag_get:
+.LFB27:
+ .loc 1 605 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 607 113
+ lw a5,-20(s0)
+ srli a4,a5,6
+ .loc 1 607 42
+ li a5,1073876992
+ add a5,a4,a5
+ .loc 1 607 20
+ lw a4,0(a5)
+ .loc 1 607 172
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 607 14
+ srl a5,a4,a5
+ andi a5,a5,1
+ .loc 1 607 7
+ beq a5,zero,.L33
+ .loc 1 608 16
+ li a5,1
+ j .L34
+.L33:
+ .loc 1 610 16
+ li a5,0
+.L34:
+ .loc 1 612 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE27:
+ .size rcu_flag_get, .-rcu_flag_get
+ .align 1
+ .globl rcu_all_reset_flag_clear
+ .type rcu_all_reset_flag_clear, @function
+rcu_all_reset_flag_clear:
+.LFB28:
+ .loc 1 621 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 622 89
+ li a5,1073876992
+ addi a5,a5,36
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,36
+ li a4,16777216
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 623 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE28:
+ .size rcu_all_reset_flag_clear, .-rcu_all_reset_flag_clear
+ .align 1
+ .globl rcu_interrupt_flag_get
+ .type rcu_interrupt_flag_get, @function
+rcu_interrupt_flag_get:
+.LFB29:
+ .loc 1 641 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 643 117
+ lw a5,-20(s0)
+ srli a4,a5,6
+ .loc 1 643 42
+ li a5,1073876992
+ add a5,a4,a5
+ .loc 1 643 20
+ lw a4,0(a5)
+ .loc 1 643 180
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 643 14
+ srl a5,a4,a5
+ andi a5,a5,1
+ .loc 1 643 7
+ beq a5,zero,.L37
+ .loc 1 644 16
+ li a5,1
+ j .L38
+.L37:
+ .loc 1 646 16
+ li a5,0
+.L38:
+ .loc 1 648 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE29:
+ .size rcu_interrupt_flag_get, .-rcu_interrupt_flag_get
+ .align 1
+ .globl rcu_interrupt_flag_clear
+ .type rcu_interrupt_flag_clear, @function
+rcu_interrupt_flag_clear:
+.LFB30:
+ .loc 1 666 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 667 119
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 667 180
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 667 123
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 667 119
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 668 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE30:
+ .size rcu_interrupt_flag_clear, .-rcu_interrupt_flag_clear
+ .align 1
+ .globl rcu_interrupt_enable
+ .type rcu_interrupt_enable, @function
+rcu_interrupt_enable:
+.LFB31:
+ .loc 1 685 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 686 113
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 686 168
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 686 117
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 686 113
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 687 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE31:
+ .size rcu_interrupt_enable, .-rcu_interrupt_enable
+ .align 1
+ .globl rcu_interrupt_disable
+ .type rcu_interrupt_disable, @function
+rcu_interrupt_disable:
+.LFB32:
+ .loc 1 704 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 705 113
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 705 169
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 705 118
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 705 116
+ not a5,a5
+ .loc 1 705 113
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 706 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE32:
+ .size rcu_interrupt_disable, .-rcu_interrupt_disable
+ .align 1
+ .globl rcu_osci_stab_wait
+ .type rcu_osci_stab_wait, @function
+rcu_osci_stab_wait:
+.LFB33:
+ .loc 1 723 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 724 14
+ sw zero,-20(s0)
+ .loc 1 725 15
+ sw zero,-24(s0)
+ .loc 1 726 16
+ sw zero,-28(s0)
+ .loc 1 728 5
+ lw a4,-36(s0)
+ li a5,4096
+ addi a5,a5,-1792
+ beq a4,a5,.L66
+ lw a4,-36(s0)
+ li a5,4096
+ addi a5,a5,-1792
+ bgtu a4,a5,.L83
+ lw a4,-36(s0)
+ li a5,28
+ bgtu a4,a5,.L45
+ lw a4,-36(s0)
+ li a5,28
+ bgtu a4,a5,.L83
+ lw a5,-36(s0)
+ slli a4,a5,2
+ lla a5,.L47
+ add a5,a4,a5
+ lw a4,0(a5)
+ lla a5,.L47
+ add a5,a4,a5
+ jr a5
+ .section .rodata
+ .align 2
+ .align 2
+.L47:
+ .word .L62-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L53-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L83-.L47
+ .word .L70-.L47
+ .word .L83-.L47
+ .word .L74-.L47
+ .word .L83-.L47
+ .word .L78-.L47
+ .text
+.L45:
+ lw a5,-36(s0)
+ addi a5,a5,-2048
+ beq a5,zero,.L58
+ .loc 1 819 9
+ j .L83
+.L55:
+ .loc 1 732 25
+ li a0,17
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 733 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L53:
+ .loc 1 731 14
+ lw a5,-28(s0)
+ bne a5,zero,.L54
+ .loc 1 731 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,65536
+ addi a5,a5,-1
+ bne a4,a5,.L55
+.L54:
+ .loc 1 737 21
+ li a0,17
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 737 11
+ beq a5,zero,.L84
+ .loc 1 738 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 740 9
+ j .L84
+.L60:
+ .loc 1 745 25
+ li a5,4096
+ addi a0,a5,-2047
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 746 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L58:
+ .loc 1 744 14
+ lw a5,-28(s0)
+ bne a5,zero,.L59
+ .loc 1 744 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,67108864
+ addi a5,a5,-1
+ bne a4,a5,.L60
+.L59:
+ .loc 1 750 21
+ li a5,4096
+ addi a0,a5,-2047
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 750 11
+ beq a5,zero,.L85
+ .loc 1 751 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 753 9
+ j .L85
+.L64:
+ .loc 1 758 25
+ li a0,1
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 759 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L62:
+ .loc 1 757 14
+ lw a5,-28(s0)
+ bne a5,zero,.L63
+ .loc 1 757 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,1280
+ bne a4,a5,.L64
+.L63:
+ .loc 1 763 21
+ li a0,1
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 763 11
+ beq a5,zero,.L86
+ .loc 1 764 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 766 9
+ j .L86
+.L68:
+ .loc 1 771 25
+ li a5,4096
+ addi a0,a5,-1791
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 772 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L66:
+ .loc 1 770 14
+ lw a5,-28(s0)
+ bne a5,zero,.L67
+ .loc 1 770 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,1048576
+ addi a5,a5,-1
+ bne a4,a5,.L68
+.L67:
+ .loc 1 776 21
+ li a5,4096
+ addi a0,a5,-1791
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 776 11
+ beq a5,zero,.L87
+ .loc 1 777 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 779 9
+ j .L87
+.L72:
+ .loc 1 784 25
+ li a0,25
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 785 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L70:
+ .loc 1 783 14
+ lw a5,-28(s0)
+ bne a5,zero,.L71
+ .loc 1 783 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,1048576
+ addi a5,a5,-1
+ bne a4,a5,.L72
+.L71:
+ .loc 1 789 21
+ li a0,25
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 789 11
+ beq a5,zero,.L88
+ .loc 1 790 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 792 9
+ j .L88
+.L76:
+ .loc 1 796 25
+ li a0,27
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 797 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L74:
+ .loc 1 795 14
+ lw a5,-28(s0)
+ bne a5,zero,.L75
+ .loc 1 795 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,1048576
+ addi a5,a5,-1
+ bne a4,a5,.L76
+.L75:
+ .loc 1 801 21
+ li a0,27
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 801 11
+ beq a5,zero,.L89
+ .loc 1 802 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 804 9
+ j .L89
+.L80:
+ .loc 1 808 25
+ li a0,29
+ call rcu_flag_get
+ sw a0,-28(s0)
+ .loc 1 809 20
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+.L78:
+ .loc 1 807 14
+ lw a5,-28(s0)
+ bne a5,zero,.L79
+ .loc 1 807 36 discriminator 1
+ lw a4,-20(s0)
+ li a5,1048576
+ addi a5,a5,-1
+ bne a4,a5,.L80
+.L79:
+ .loc 1 813 21
+ li a0,29
+ call rcu_flag_get
+ mv a5,a0
+ .loc 1 813 11
+ beq a5,zero,.L90
+ .loc 1 814 19
+ li a5,1
+ sw a5,-24(s0)
+ .loc 1 816 9
+ j .L90
+.L83:
+ .loc 1 819 9
+ nop
+ j .L57
+.L84:
+ .loc 1 740 9
+ nop
+ j .L57
+.L85:
+ .loc 1 753 9
+ nop
+ j .L57
+.L86:
+ .loc 1 766 9
+ nop
+ j .L57
+.L87:
+ .loc 1 779 9
+ nop
+ j .L57
+.L88:
+ .loc 1 792 9
+ nop
+ j .L57
+.L89:
+ .loc 1 804 9
+ nop
+ j .L57
+.L90:
+ .loc 1 816 9
+ nop
+.L57:
+ .loc 1 823 12
+ lw a5,-24(s0)
+ .loc 1 824 1
+ mv a0,a5
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE33:
+ .size rcu_osci_stab_wait, .-rcu_osci_stab_wait
+ .align 1
+ .globl rcu_osci_on
+ .type rcu_osci_on, @function
+rcu_osci_on:
+.LFB34:
+ .loc 1 841 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 842 109
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 842 160
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 842 113
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 842 109
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 843 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE34:
+ .size rcu_osci_on, .-rcu_osci_on
+ .align 1
+ .globl rcu_osci_off
+ .type rcu_osci_off, @function
+rcu_osci_off:
+.LFB35:
+ .loc 1 860 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 861 109
+ lw a5,-20(s0)
+ srli a4,a5,6
+ li a5,1073876992
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 861 161
+ lw a5,-20(s0)
+ andi a5,a5,31
+ .loc 1 861 114
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 861 112
+ not a5,a5
+ .loc 1 861 109
+ lw a3,-20(s0)
+ srli a2,a3,6
+ li a3,1073876992
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 862 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE35:
+ .size rcu_osci_off, .-rcu_osci_off
+ .align 1
+ .globl rcu_osci_bypass_mode_enable
+ .type rcu_osci_bypass_mode_enable, @function
+rcu_osci_bypass_mode_enable:
+.LFB36:
+ .loc 1 874 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 877 5
+ lw a4,-36(s0)
+ li a5,4096
+ addi a5,a5,-1792
+ beq a4,a5,.L101
+ lw a4,-36(s0)
+ li a5,4096
+ addi a5,a5,-1792
+ bgtu a4,a5,.L102
+ lw a4,-36(s0)
+ li a5,28
+ bgtu a4,a5,.L96
+ lw a4,-36(s0)
+ li a5,28
+ bgtu a4,a5,.L102
+ lw a5,-36(s0)
+ slli a4,a5,2
+ lla a5,.L97
+ add a5,a4,a5
+ lw a4,0(a5)
+ lla a5,.L97
+ add a5,a4,a5
+ jr a5
+ .section .rodata
+ .align 2
+ .align 2
+.L97:
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L98-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .word .L102-.L97
+ .text
+.L96:
+ lw a5,-36(s0)
+ addi a5,a5,-2048
+ beq a5,zero,.L99
+ .loc 1 897 9
+ j .L102
+.L98:
+ .loc 1 880 16
+ li a5,1073876992
+ .loc 1 880 13
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 881 93
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-65536
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 882 10
+ li a5,1073876992
+ .loc 1 882 100
+ lw a3,-20(s0)
+ li a4,262144
+ or a4,a3,a4
+ .loc 1 882 93
+ sw a4,0(a5)
+ .loc 1 883 9
+ j .L100
+.L99:
+ .loc 1 886 16
+ li a5,1073876992
+ addi a5,a5,32
+ .loc 1 886 13
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 887 93
+ li a5,1073876992
+ addi a5,a5,32
+ lw a4,0(a5)
+ li a5,1073876992
+ addi a5,a5,32
+ andi a4,a4,-2
+ sw a4,0(a5)
+ .loc 1 888 10
+ li a5,1073876992
+ addi a5,a5,32
+ .loc 1 888 100
+ lw a4,-20(s0)
+ ori a4,a4,4
+ .loc 1 888 93
+ sw a4,0(a5)
+ .loc 1 889 9
+ j .L100
+.L101:
+ .loc 1 895 9
+ nop
+ j .L103
+.L102:
+ .loc 1 897 9
+ nop
+.L100:
+.L103:
+ .loc 1 899 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE36:
+ .size rcu_osci_bypass_mode_enable, .-rcu_osci_bypass_mode_enable
+ .align 1
+ .globl rcu_osci_bypass_mode_disable
+ .type rcu_osci_bypass_mode_disable, @function
+rcu_osci_bypass_mode_disable:
+.LFB37:
+ .loc 1 911 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 914 5
+ lw a4,-36(s0)
+ li a5,4096
+ addi a5,a5,-1792
+ beq a4,a5,.L112
+ lw a4,-36(s0)
+ li a5,4096
+ addi a5,a5,-1792
+ bgtu a4,a5,.L113
+ lw a4,-36(s0)
+ li a5,28
+ bgtu a4,a5,.L107
+ lw a4,-36(s0)
+ li a5,28
+ bgtu a4,a5,.L113
+ lw a5,-36(s0)
+ slli a4,a5,2
+ lla a5,.L108
+ add a5,a4,a5
+ lw a4,0(a5)
+ lla a5,.L108
+ add a5,a4,a5
+ jr a5
+ .section .rodata
+ .align 2
+ .align 2
+.L108:
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L109-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .word .L113-.L108
+ .text
+.L107:
+ lw a5,-36(s0)
+ addi a5,a5,-2048
+ beq a5,zero,.L110
+ .loc 1 934 9
+ j .L113
+.L109:
+ .loc 1 917 16
+ li a5,1073876992
+ .loc 1 917 13
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 918 93
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-65536
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 919 10
+ li a5,1073876992
+ .loc 1 919 100
+ lw a3,-20(s0)
+ li a4,-262144
+ addi a4,a4,-1
+ and a4,a3,a4
+ .loc 1 919 93
+ sw a4,0(a5)
+ .loc 1 920 9
+ j .L111
+.L110:
+ .loc 1 923 16
+ li a5,1073876992
+ addi a5,a5,32
+ .loc 1 923 13
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 924 93
+ li a5,1073876992
+ addi a5,a5,32
+ lw a4,0(a5)
+ li a5,1073876992
+ addi a5,a5,32
+ andi a4,a4,-2
+ sw a4,0(a5)
+ .loc 1 925 10
+ li a5,1073876992
+ addi a5,a5,32
+ .loc 1 925 100
+ lw a4,-20(s0)
+ andi a4,a4,-5
+ .loc 1 925 93
+ sw a4,0(a5)
+ .loc 1 926 9
+ j .L111
+.L112:
+ .loc 1 932 9
+ nop
+ j .L114
+.L113:
+ .loc 1 934 9
+ nop
+.L111:
+.L114:
+ .loc 1 936 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE37:
+ .size rcu_osci_bypass_mode_disable, .-rcu_osci_bypass_mode_disable
+ .align 1
+ .globl rcu_hxtal_clock_monitor_enable
+ .type rcu_hxtal_clock_monitor_enable, @function
+rcu_hxtal_clock_monitor_enable:
+.LFB38:
+ .loc 1 946 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 947 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,524288
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 948 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE38:
+ .size rcu_hxtal_clock_monitor_enable, .-rcu_hxtal_clock_monitor_enable
+ .align 1
+ .globl rcu_hxtal_clock_monitor_disable
+ .type rcu_hxtal_clock_monitor_disable, @function
+rcu_hxtal_clock_monitor_disable:
+.LFB39:
+ .loc 1 957 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 958 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-524288
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 959 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE39:
+ .size rcu_hxtal_clock_monitor_disable, .-rcu_hxtal_clock_monitor_disable
+ .align 1
+ .globl rcu_irc8m_adjust_value_set
+ .type rcu_irc8m_adjust_value_set, @function
+rcu_irc8m_adjust_value_set:
+.LFB40:
+ .loc 1 968 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 971 12
+ li a5,1073876992
+ .loc 1 971 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 973 9
+ lw a5,-20(s0)
+ andi a5,a5,-249
+ sw a5,-20(s0)
+ .loc 1 974 122
+ lw a5,-36(s0)
+ slli a5,a5,3
+ andi a3,a5,255
+ .loc 1 974 6
+ li a5,1073876992
+ .loc 1 974 96
+ lw a4,-20(s0)
+ or a4,a3,a4
+ .loc 1 974 89
+ sw a4,0(a5)
+ .loc 1 975 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE40:
+ .size rcu_irc8m_adjust_value_set, .-rcu_irc8m_adjust_value_set
+ .align 1
+ .globl rcu_deepsleep_voltage_set
+ .type rcu_deepsleep_voltage_set, @function
+rcu_deepsleep_voltage_set:
+.LFB41:
+ .loc 1 989 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 990 11
+ lw a5,-20(s0)
+ andi a5,a5,3
+ sw a5,-20(s0)
+ .loc 1 991 6
+ li a5,1073876992
+ addi a5,a5,52
+ .loc 1 991 89
+ lw a4,-20(s0)
+ sw a4,0(a5)
+ .loc 1 992 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE41:
+ .size rcu_deepsleep_voltage_set, .-rcu_deepsleep_voltage_set
+ .section .rodata
+ .align 2
+.LC0:
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .ascii "\001\002\003\004\006\007\b\t"
+ .text
+ .align 1
+ .globl rcu_clock_freq_get
+ .type rcu_clock_freq_get, @function
+rcu_clock_freq_get:
+.LFB42:
+ .loc 1 1006 1
+ .cfi_startproc
+ addi sp,sp,-128
+ .cfi_def_cfa_offset 128
+ sw s0,124(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,128
+ .cfi_def_cfa 8, 0
+ sw a0,-116(s0)
+ .loc 1 1007 19
+ sw zero,-20(s0)
+ .loc 1 1013 13
+ lla a5,.LC0
+ lw a2,0(a5)
+ lw a3,4(a5)
+ lw a4,8(a5)
+ lw a5,12(a5)
+ sw a2,-92(s0)
+ sw a3,-88(s0)
+ sw a4,-84(s0)
+ sw a5,-80(s0)
+ .loc 1 1014 13
+ sw zero,-100(s0)
+ li a5,67305472
+ addi a5,a5,513
+ sw a5,-96(s0)
+ .loc 1 1015 13
+ sw zero,-108(s0)
+ li a5,67305472
+ addi a5,a5,513
+ sw a5,-104(s0)
+ .loc 1 1017 15
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 1017 172
+ srli a5,a5,2
+ .loc 1 1017 9
+ andi a5,a5,3
+ sw a5,-40(s0)
+ .loc 1 1018 5
+ lw a4,-40(s0)
+ li a5,2
+ beq a4,a5,.L120
+ lw a4,-40(s0)
+ li a5,2
+ bgtu a4,a5,.L121
+ lw a5,-40(s0)
+ beq a5,zero,.L122
+ lw a4,-40(s0)
+ li a5,1
+ beq a4,a5,.L123
+ j .L121
+.L122:
+ .loc 1 1021 20
+ li a5,7999488
+ addi a5,a5,512
+ sw a5,-24(s0)
+ .loc 1 1022 9
+ j .L124
+.L123:
+ .loc 1 1025 20
+ li a5,7999488
+ addi a5,a5,512
+ sw a5,-24(s0)
+ .loc 1 1026 9
+ j .L124
+.L120:
+ .loc 1 1030 20
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ .loc 1 1030 16
+ li a5,65536
+ and a5,a4,a5
+ sw a5,-44(s0)
+ .loc 1 1032 11
+ lw a4,-44(s0)
+ li a5,65536
+ bne a4,a5,.L125
+ .loc 1 1034 20
+ li a5,7999488
+ addi a5,a5,512
+ sw a5,-32(s0)
+ .loc 1 1036 27
+ li a5,1073876992
+ addi a5,a5,44
+ lw a4,0(a5)
+ .loc 1 1036 23
+ li a5,65536
+ and a5,a4,a5
+ sw a5,-48(s0)
+ .loc 1 1038 15
+ lw a4,-48(s0)
+ li a5,65536
+ bne a4,a5,.L126
+ .loc 1 1039 39
+ li a5,1073876992
+ addi a5,a5,44
+ lw a5,0(a5)
+ .loc 1 1039 26
+ srli a5,a5,4
+ andi a5,a5,15
+ .loc 1 1039 24
+ addi a5,a5,1
+ sw a5,-52(s0)
+ .loc 1 1040 39
+ li a5,1073876992
+ addi a5,a5,44
+ lw a5,0(a5)
+ .loc 1 1040 26
+ srli a5,a5,8
+ andi a5,a5,15
+ .loc 1 1040 24
+ addi a5,a5,2
+ sw a5,-36(s0)
+ .loc 1 1041 19
+ lw a4,-36(s0)
+ li a5,17
+ bne a4,a5,.L127
+ .loc 1 1042 28
+ li a5,20
+ sw a5,-36(s0)
+.L127:
+ .loc 1 1044 34
+ lw a4,-32(s0)
+ lw a5,-52(s0)
+ divu a5,a4,a5
+ .loc 1 1044 24
+ lw a4,-36(s0)
+ mul a5,a4,a5
+ sw a5,-32(s0)
+.L126:
+ .loc 1 1046 24
+ li a5,1073876992
+ addi a5,a5,44
+ lw a5,0(a5)
+ .loc 1 1046 107
+ andi a5,a5,15
+ .loc 1 1046 20
+ addi a5,a5,1
+ sw a5,-56(s0)
+ .loc 1 1047 20
+ lw a4,-32(s0)
+ lw a5,-56(s0)
+ divu a5,a4,a5
+ sw a5,-32(s0)
+ j .L128
+.L125:
+ .loc 1 1050 20
+ li a5,4001792
+ addi a5,a5,-1792
+ sw a5,-32(s0)
+.L128:
+ .loc 1 1054 21
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 1054 180
+ srli a5,a5,18
+ .loc 1 1054 15
+ andi a5,a5,15
+ sw a5,-28(s0)
+ .loc 1 1055 14
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ .loc 1 1055 97
+ li a5,536870912
+ and a5,a4,a5
+ .loc 1 1055 11
+ beq a5,zero,.L129
+ .loc 1 1056 19
+ lw a5,-28(s0)
+ ori a5,a5,16
+ sw a5,-28(s0)
+.L129:
+ .loc 1 1058 11
+ lw a4,-28(s0)
+ li a5,14
+ bgtu a4,a5,.L130
+ .loc 1 1059 19
+ lw a5,-28(s0)
+ addi a5,a5,2
+ sw a5,-28(s0)
+ j .L131
+.L130:
+ .loc 1 1061 19
+ lw a5,-28(s0)
+ addi a5,a5,1
+ sw a5,-28(s0)
+.L131:
+ .loc 1 1064 20
+ lw a4,-32(s0)
+ lw a5,-28(s0)
+ mul a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 1066 11
+ lw a4,-28(s0)
+ li a5,15
+ bne a4,a5,.L140
+ .loc 1 1068 33
+ lw a4,-32(s0)
+ mv a5,a4
+ slli a5,a5,1
+ add a5,a5,a4
+ slli a5,a5,1
+ mv a4,a5
+ .loc 1 1068 47
+ lw a5,-32(s0)
+ srli a5,a5,1
+ .loc 1 1068 24
+ add a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 1071 9
+ j .L140
+.L121:
+ .loc 1 1074 20
+ li a5,7999488
+ addi a5,a5,512
+ sw a5,-24(s0)
+ .loc 1 1075 9
+ j .L124
+.L140:
+ .loc 1 1071 9
+ nop
+.L124:
+ .loc 1 1079 15
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 1079 172
+ srli a5,a5,4
+ .loc 1 1079 9
+ andi a5,a5,15
+ sw a5,-60(s0)
+ .loc 1 1080 22
+ lw a5,-60(s0)
+ addi a4,s0,-16
+ add a5,a4,a5
+ lbu a5,-76(a5)
+ .loc 1 1080 13
+ sw a5,-64(s0)
+ .loc 1 1081 14
+ lw a5,-64(s0)
+ lw a4,-24(s0)
+ srl a5,a4,a5
+ sw a5,-68(s0)
+ .loc 1 1084 15
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 1084 173
+ srli a5,a5,8
+ .loc 1 1084 9
+ andi a5,a5,7
+ sw a5,-60(s0)
+ .loc 1 1085 23
+ lw a5,-60(s0)
+ addi a4,s0,-16
+ add a5,a4,a5
+ lbu a5,-84(a5)
+ .loc 1 1085 13
+ sw a5,-64(s0)
+ .loc 1 1086 15
+ lw a5,-64(s0)
+ lw a4,-68(s0)
+ srl a5,a4,a5
+ sw a5,-72(s0)
+ .loc 1 1089 15
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 1089 174
+ srli a5,a5,11
+ .loc 1 1089 9
+ andi a5,a5,7
+ sw a5,-60(s0)
+ .loc 1 1090 23
+ lw a5,-60(s0)
+ addi a4,s0,-16
+ add a5,a4,a5
+ lbu a5,-92(a5)
+ .loc 1 1090 13
+ sw a5,-64(s0)
+ .loc 1 1091 15
+ lw a5,-64(s0)
+ lw a4,-68(s0)
+ srl a5,a4,a5
+ sw a5,-76(s0)
+ .loc 1 1094 5
+ lw a4,-116(s0)
+ li a5,3
+ beq a4,a5,.L133
+ lw a4,-116(s0)
+ li a5,3
+ bgtu a4,a5,.L141
+ lw a4,-116(s0)
+ li a5,2
+ beq a4,a5,.L135
+ lw a4,-116(s0)
+ li a5,2
+ bgtu a4,a5,.L141
+ lw a5,-116(s0)
+ beq a5,zero,.L136
+ lw a4,-116(s0)
+ li a5,1
+ beq a4,a5,.L137
+ .loc 1 1108 9
+ j .L141
+.L136:
+ .loc 1 1096 17
+ lw a5,-24(s0)
+ sw a5,-20(s0)
+ .loc 1 1097 9
+ j .L138
+.L137:
+ .loc 1 1099 17
+ lw a5,-68(s0)
+ sw a5,-20(s0)
+ .loc 1 1100 9
+ j .L138
+.L135:
+ .loc 1 1102 17
+ lw a5,-72(s0)
+ sw a5,-20(s0)
+ .loc 1 1103 9
+ j .L138
+.L133:
+ .loc 1 1105 17
+ lw a5,-76(s0)
+ sw a5,-20(s0)
+ .loc 1 1106 9
+ j .L138
+.L141:
+ .loc 1 1108 9
+ nop
+.L138:
+ .loc 1 1110 12
+ lw a5,-20(s0)
+ .loc 1 1111 1
+ mv a0,a5
+ lw s0,124(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 128
+ addi sp,sp,128
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE42:
+ .size rcu_clock_freq_get, .-rcu_clock_freq_get
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .file 4 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0xda8
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF3406
+ .byte 0xc
+ .4byte .LASF3407
+ .4byte .LASF3408
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3174
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3175
+ .byte 0x3
+ .4byte .LASF3178
+ .byte 0x2
+ .byte 0x2b
+ .byte 0x17
+ .4byte 0x43
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF3176
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF3177
+ .byte 0x3
+ .4byte .LASF3179
+ .byte 0x2
+ .byte 0x39
+ .byte 0x1c
+ .4byte 0x5d
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF3180
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF3181
+ .byte 0x3
+ .4byte .LASF3182
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x77
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3183
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF3184
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF3185
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF3186
+ .byte 0x3
+ .byte 0x18
+ .byte 0x13
+ .4byte 0x37
+ .byte 0x3
+ .4byte .LASF3187
+ .byte 0x3
+ .byte 0x24
+ .byte 0x14
+ .4byte 0x51
+ .byte 0x3
+ .4byte .LASF3188
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x6b
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x4
+ .byte 0xb5
+ .byte 0xe
+ .4byte 0xd2
+ .byte 0x6
+ .4byte .LASF3189
+ .byte 0
+ .byte 0x7
+ .string "SET"
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3190
+ .byte 0x4
+ .byte 0xb5
+ .byte 0x28
+ .4byte 0xb7
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x4
+ .byte 0xb6
+ .byte 0xe
+ .4byte 0xf9
+ .byte 0x6
+ .4byte .LASF3191
+ .byte 0
+ .byte 0x6
+ .4byte .LASF3192
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3193
+ .byte 0x4
+ .byte 0xb6
+ .byte 0x2c
+ .4byte 0xde
+ .byte 0x8
+ .4byte 0x93
+ .4byte 0x115
+ .byte 0x9
+ .4byte 0x29
+ .byte 0x7
+ .byte 0
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF3194
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x106
+ .byte 0xe
+ .4byte 0x22f
+ .byte 0xb
+ .4byte .LASF3195
+ .2byte 0x500
+ .byte 0xb
+ .4byte .LASF3196
+ .2byte 0x501
+ .byte 0xb
+ .4byte .LASF3197
+ .2byte 0x506
+ .byte 0xb
+ .4byte .LASF3198
+ .2byte 0x508
+ .byte 0xb
+ .4byte .LASF3199
+ .2byte 0x50c
+ .byte 0xb
+ .4byte .LASF3200
+ .2byte 0x700
+ .byte 0xb
+ .4byte .LASF3201
+ .2byte 0x701
+ .byte 0xb
+ .4byte .LASF3202
+ .2byte 0x702
+ .byte 0xb
+ .4byte .LASF3203
+ .2byte 0x703
+ .byte 0xb
+ .4byte .LASF3204
+ .2byte 0x704
+ .byte 0xb
+ .4byte .LASF3205
+ .2byte 0x705
+ .byte 0xb
+ .4byte .LASF3206
+ .2byte 0x70b
+ .byte 0xb
+ .4byte .LASF3207
+ .2byte 0x70e
+ .byte 0xb
+ .4byte .LASF3208
+ .2byte 0x70f
+ .byte 0xb
+ .4byte .LASF3209
+ .2byte 0x711
+ .byte 0xb
+ .4byte .LASF3210
+ .2byte 0x712
+ .byte 0xb
+ .4byte .LASF3211
+ .2byte 0x713
+ .byte 0xb
+ .4byte .LASF3212
+ .2byte 0x714
+ .byte 0xb
+ .4byte .LASF3213
+ .2byte 0x715
+ .byte 0xb
+ .4byte .LASF3214
+ .2byte 0x716
+ .byte 0xb
+ .4byte .LASF3215
+ .2byte 0x719
+ .byte 0xb
+ .4byte .LASF3216
+ .2byte 0x71a
+ .byte 0xb
+ .4byte .LASF3217
+ .2byte 0x71b
+ .byte 0xb
+ .4byte .LASF3218
+ .2byte 0x71c
+ .byte 0xb
+ .4byte .LASF3219
+ .2byte 0x71d
+ .byte 0xb
+ .4byte .LASF3220
+ .2byte 0x80f
+ .byte 0xb
+ .4byte .LASF3221
+ .2byte 0x600
+ .byte 0xb
+ .4byte .LASF3222
+ .2byte 0x602
+ .byte 0xb
+ .4byte .LASF3223
+ .2byte 0x603
+ .byte 0xb
+ .4byte .LASF3224
+ .2byte 0x604
+ .byte 0xb
+ .4byte .LASF3225
+ .2byte 0x605
+ .byte 0xb
+ .4byte .LASF3226
+ .2byte 0x606
+ .byte 0xb
+ .4byte .LASF3227
+ .2byte 0x609
+ .byte 0xb
+ .4byte .LASF3228
+ .2byte 0x60a
+ .byte 0xb
+ .4byte .LASF3229
+ .2byte 0x60b
+ .byte 0xb
+ .4byte .LASF3230
+ .2byte 0x60c
+ .byte 0xb
+ .4byte .LASF3231
+ .2byte 0x60e
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3232
+ .byte 0x5
+ .2byte 0x12f
+ .byte 0x3
+ .4byte 0x11c
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x132
+ .byte 0xe
+ .4byte 0x25a
+ .byte 0xb
+ .4byte .LASF3233
+ .2byte 0x502
+ .byte 0xb
+ .4byte .LASF3234
+ .2byte 0x504
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3235
+ .byte 0x5
+ .2byte 0x136
+ .byte 0x3
+ .4byte 0x23c
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x139
+ .byte 0xe
+ .4byte 0x357
+ .byte 0xb
+ .4byte .LASF3236
+ .2byte 0xa0c
+ .byte 0xb
+ .4byte .LASF3237
+ .2byte 0x400
+ .byte 0xb
+ .4byte .LASF3238
+ .2byte 0x401
+ .byte 0xb
+ .4byte .LASF3239
+ .2byte 0x402
+ .byte 0xb
+ .4byte .LASF3240
+ .2byte 0x403
+ .byte 0xb
+ .4byte .LASF3241
+ .2byte 0x404
+ .byte 0xb
+ .4byte .LASF3242
+ .2byte 0x405
+ .byte 0xb
+ .4byte .LASF3243
+ .2byte 0x40b
+ .byte 0xb
+ .4byte .LASF3244
+ .2byte 0x40e
+ .byte 0xb
+ .4byte .LASF3245
+ .2byte 0x40f
+ .byte 0xb
+ .4byte .LASF3246
+ .2byte 0x411
+ .byte 0xb
+ .4byte .LASF3247
+ .2byte 0x412
+ .byte 0xb
+ .4byte .LASF3248
+ .2byte 0x413
+ .byte 0xb
+ .4byte .LASF3249
+ .2byte 0x414
+ .byte 0xb
+ .4byte .LASF3250
+ .2byte 0x415
+ .byte 0xb
+ .4byte .LASF3251
+ .2byte 0x416
+ .byte 0xb
+ .4byte .LASF3252
+ .2byte 0x419
+ .byte 0xb
+ .4byte .LASF3253
+ .2byte 0x41a
+ .byte 0xb
+ .4byte .LASF3254
+ .2byte 0x41b
+ .byte 0xb
+ .4byte .LASF3255
+ .2byte 0x41c
+ .byte 0xb
+ .4byte .LASF3256
+ .2byte 0x41d
+ .byte 0xb
+ .4byte .LASF3257
+ .2byte 0x300
+ .byte 0xb
+ .4byte .LASF3258
+ .2byte 0x302
+ .byte 0xb
+ .4byte .LASF3259
+ .2byte 0x303
+ .byte 0xb
+ .4byte .LASF3260
+ .2byte 0x304
+ .byte 0xb
+ .4byte .LASF3261
+ .2byte 0x305
+ .byte 0xb
+ .4byte .LASF3262
+ .2byte 0x306
+ .byte 0xb
+ .4byte .LASF3263
+ .2byte 0x309
+ .byte 0xb
+ .4byte .LASF3264
+ .2byte 0x30a
+ .byte 0xb
+ .4byte .LASF3265
+ .2byte 0x30b
+ .byte 0xb
+ .4byte .LASF3266
+ .2byte 0x30c
+ .byte 0xb
+ .4byte .LASF3267
+ .2byte 0x30e
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3268
+ .byte 0x5
+ .2byte 0x15d
+ .byte 0x3
+ .4byte 0x267
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x160
+ .byte 0xe
+ .4byte 0x3ca
+ .byte 0x6
+ .4byte .LASF3269
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3270
+ .byte 0x11
+ .byte 0x6
+ .4byte .LASF3271
+ .byte 0x19
+ .byte 0x6
+ .4byte .LASF3272
+ .byte 0x1b
+ .byte 0x6
+ .4byte .LASF3273
+ .byte 0x1d
+ .byte 0xb
+ .4byte .LASF3274
+ .2byte 0x801
+ .byte 0xb
+ .4byte .LASF3275
+ .2byte 0x901
+ .byte 0xb
+ .4byte .LASF3276
+ .2byte 0x91a
+ .byte 0xb
+ .4byte .LASF3277
+ .2byte 0x91b
+ .byte 0xb
+ .4byte .LASF3278
+ .2byte 0x91c
+ .byte 0xb
+ .4byte .LASF3279
+ .2byte 0x91d
+ .byte 0xb
+ .4byte .LASF3280
+ .2byte 0x91e
+ .byte 0xb
+ .4byte .LASF3281
+ .2byte 0x91f
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3282
+ .byte 0x5
+ .2byte 0x170
+ .byte 0x3
+ .4byte 0x364
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x173
+ .byte 0xe
+ .4byte 0x41f
+ .byte 0xb
+ .4byte .LASF3283
+ .2byte 0x200
+ .byte 0xb
+ .4byte .LASF3284
+ .2byte 0x201
+ .byte 0xb
+ .4byte .LASF3285
+ .2byte 0x202
+ .byte 0xb
+ .4byte .LASF3286
+ .2byte 0x203
+ .byte 0xb
+ .4byte .LASF3287
+ .2byte 0x204
+ .byte 0xb
+ .4byte .LASF3288
+ .2byte 0x205
+ .byte 0xb
+ .4byte .LASF3289
+ .2byte 0x206
+ .byte 0xb
+ .4byte .LASF3290
+ .2byte 0x207
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3291
+ .byte 0x5
+ .2byte 0x17c
+ .byte 0x3
+ .4byte 0x3d7
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x17f
+ .byte 0xe
+ .4byte 0x474
+ .byte 0xb
+ .4byte .LASF3292
+ .2byte 0x210
+ .byte 0xb
+ .4byte .LASF3293
+ .2byte 0x211
+ .byte 0xb
+ .4byte .LASF3294
+ .2byte 0x212
+ .byte 0xb
+ .4byte .LASF3295
+ .2byte 0x213
+ .byte 0xb
+ .4byte .LASF3296
+ .2byte 0x214
+ .byte 0xb
+ .4byte .LASF3297
+ .2byte 0x215
+ .byte 0xb
+ .4byte .LASF3298
+ .2byte 0x216
+ .byte 0xb
+ .4byte .LASF3299
+ .2byte 0x217
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3300
+ .byte 0x5
+ .2byte 0x188
+ .byte 0x3
+ .4byte 0x42c
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x18b
+ .byte 0xe
+ .4byte 0x4c2
+ .byte 0xb
+ .4byte .LASF3301
+ .2byte 0x208
+ .byte 0xb
+ .4byte .LASF3302
+ .2byte 0x209
+ .byte 0xb
+ .4byte .LASF3303
+ .2byte 0x20a
+ .byte 0xb
+ .4byte .LASF3304
+ .2byte 0x20b
+ .byte 0xb
+ .4byte .LASF3305
+ .2byte 0x20c
+ .byte 0xb
+ .4byte .LASF3306
+ .2byte 0x20d
+ .byte 0xb
+ .4byte .LASF3307
+ .2byte 0x20e
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3308
+ .byte 0x5
+ .2byte 0x193
+ .byte 0x3
+ .4byte 0x481
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x196
+ .byte 0xe
+ .4byte 0x50b
+ .byte 0x6
+ .4byte .LASF3309
+ .byte 0x10
+ .byte 0xb
+ .4byte .LASF3310
+ .2byte 0x800
+ .byte 0x6
+ .4byte .LASF3311
+ .byte 0
+ .byte 0xb
+ .4byte .LASF3312
+ .2byte 0x900
+ .byte 0x6
+ .4byte .LASF3313
+ .byte 0x18
+ .byte 0x6
+ .4byte .LASF3314
+ .byte 0x1a
+ .byte 0x6
+ .4byte .LASF3315
+ .byte 0x1c
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3316
+ .byte 0x5
+ .2byte 0x19e
+ .byte 0x3
+ .4byte 0x4cf
+ .byte 0xa
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x1a1
+ .byte 0xe
+ .4byte 0x540
+ .byte 0x6
+ .4byte .LASF3317
+ .byte 0
+ .byte 0x6
+ .4byte .LASF3318
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3319
+ .byte 0x2
+ .byte 0x6
+ .4byte .LASF3320
+ .byte 0x3
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3321
+ .byte 0x5
+ .2byte 0x1a6
+ .byte 0x3
+ .4byte 0x518
+ .byte 0xd
+ .4byte .LASF3350
+ .byte 0x1
+ .2byte 0x3ed
+ .byte 0xa
+ .4byte 0xab
+ .4byte .LFB42
+ .4byte .LFE42-.LFB42
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x6a0
+ .byte 0xe
+ .4byte .LASF3338
+ .byte 0x1
+ .2byte 0x3ed
+ .byte 0x31
+ .4byte 0x540
+ .byte 0x3
+ .byte 0x91
+ .byte 0x8c,0x7f
+ .byte 0xf
+ .string "sws"
+ .byte 0x1
+ .2byte 0x3ef
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0x10
+ .4byte .LASF3322
+ .byte 0x1
+ .2byte 0x3ef
+ .byte 0x13
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x10
+ .4byte .LASF3323
+ .byte 0x1
+ .2byte 0x3f0
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x10
+ .4byte .LASF3324
+ .byte 0x1
+ .2byte 0x3f0
+ .byte 0x1a
+ .4byte 0xab
+ .byte 0x3
+ .byte 0x91
+ .byte 0xbc,0x7f
+ .byte 0x10
+ .4byte .LASF3325
+ .byte 0x1
+ .2byte 0x3f0
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x3
+ .byte 0x91
+ .byte 0xb8,0x7f
+ .byte 0x10
+ .4byte .LASF3326
+ .byte 0x1
+ .2byte 0x3f0
+ .byte 0x2f
+ .4byte 0xab
+ .byte 0x3
+ .byte 0x91
+ .byte 0xb4,0x7f
+ .byte 0x10
+ .4byte .LASF3327
+ .byte 0x1
+ .2byte 0x3f1
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x54
+ .byte 0x10
+ .4byte .LASF3328
+ .byte 0x1
+ .2byte 0x3f1
+ .byte 0x16
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x50
+ .byte 0x10
+ .4byte .LASF3329
+ .byte 0x1
+ .2byte 0x3f1
+ .byte 0x21
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0x10
+ .4byte .LASF3330
+ .byte 0x1
+ .2byte 0x3f1
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0xf
+ .string "idx"
+ .byte 0x1
+ .2byte 0x3f1
+ .byte 0x2f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x44
+ .byte 0x10
+ .4byte .LASF3331
+ .byte 0x1
+ .2byte 0x3f1
+ .byte 0x34
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x40
+ .byte 0x10
+ .4byte .LASF3332
+ .byte 0x1
+ .2byte 0x3f2
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x48
+ .byte 0x10
+ .4byte .LASF3333
+ .byte 0x1
+ .2byte 0x3f2
+ .byte 0x16
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x4c
+ .byte 0x10
+ .4byte .LASF3334
+ .byte 0x1
+ .2byte 0x3f2
+ .byte 0x1e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x10
+ .4byte .LASF3335
+ .byte 0x1
+ .2byte 0x3f5
+ .byte 0xd
+ .4byte 0x6a0
+ .byte 0x3
+ .byte 0x91
+ .byte 0xa4,0x7f
+ .byte 0x10
+ .4byte .LASF3336
+ .byte 0x1
+ .2byte 0x3f6
+ .byte 0xd
+ .4byte 0x105
+ .byte 0x3
+ .byte 0x91
+ .byte 0x9c,0x7f
+ .byte 0x10
+ .4byte .LASF3337
+ .byte 0x1
+ .2byte 0x3f7
+ .byte 0xd
+ .4byte 0x105
+ .byte 0x3
+ .byte 0x91
+ .byte 0x94,0x7f
+ .byte 0
+ .byte 0x8
+ .4byte 0x93
+ .4byte 0x6b0
+ .byte 0x9
+ .4byte 0x29
+ .byte 0xf
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3340
+ .byte 0x1
+ .2byte 0x3dc
+ .byte 0x6
+ .4byte .LFB41
+ .4byte .LFE41-.LFB41
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x6d8
+ .byte 0xe
+ .4byte .LASF3339
+ .byte 0x1
+ .2byte 0x3dc
+ .byte 0x29
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3341
+ .byte 0x1
+ .2byte 0x3c7
+ .byte 0x6
+ .4byte .LFB40
+ .4byte .LFE40-.LFB40
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x710
+ .byte 0xe
+ .4byte .LASF3342
+ .byte 0x1
+ .2byte 0x3c7
+ .byte 0x2a
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x3c9
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3343
+ .byte 0x1
+ .2byte 0x3bc
+ .byte 0x6
+ .4byte .LFB39
+ .4byte .LFE39-.LFB39
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x12
+ .4byte .LASF3344
+ .byte 0x1
+ .2byte 0x3b1
+ .byte 0x6
+ .4byte .LFB38
+ .4byte .LFE38-.LFB38
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x11
+ .4byte .LASF3345
+ .byte 0x1
+ .2byte 0x38e
+ .byte 0x6
+ .4byte .LFB37
+ .4byte .LFE37-.LFB37
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x76e
+ .byte 0xe
+ .4byte .LASF3346
+ .byte 0x1
+ .2byte 0x38e
+ .byte 0x36
+ .4byte 0x50b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x390
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3347
+ .byte 0x1
+ .2byte 0x369
+ .byte 0x6
+ .4byte .LFB36
+ .4byte .LFE36-.LFB36
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x7a6
+ .byte 0xe
+ .4byte .LASF3346
+ .byte 0x1
+ .2byte 0x369
+ .byte 0x35
+ .4byte 0x50b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x36b
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3348
+ .byte 0x1
+ .2byte 0x35b
+ .byte 0x6
+ .4byte .LFB35
+ .4byte .LFE35-.LFB35
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x7ce
+ .byte 0xe
+ .4byte .LASF3346
+ .byte 0x1
+ .2byte 0x35b
+ .byte 0x26
+ .4byte 0x50b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3349
+ .byte 0x1
+ .2byte 0x348
+ .byte 0x6
+ .4byte .LFB34
+ .4byte .LFE34-.LFB34
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x7f6
+ .byte 0xe
+ .4byte .LASF3346
+ .byte 0x1
+ .2byte 0x348
+ .byte 0x25
+ .4byte 0x50b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x13
+ .4byte .LASF3351
+ .byte 0x1
+ .2byte 0x2d2
+ .byte 0xb
+ .4byte 0xf9
+ .4byte .LFB33
+ .4byte .LFE33-.LFB33
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x852
+ .byte 0xe
+ .4byte .LASF3346
+ .byte 0x1
+ .2byte 0x2d2
+ .byte 0x31
+ .4byte 0x50b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x10
+ .4byte .LASF3352
+ .byte 0x1
+ .2byte 0x2d4
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x10
+ .4byte .LASF3353
+ .byte 0x1
+ .2byte 0x2d5
+ .byte 0xf
+ .4byte 0xf9
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x10
+ .4byte .LASF3354
+ .byte 0x1
+ .2byte 0x2d6
+ .byte 0x10
+ .4byte 0xd2
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3355
+ .byte 0x1
+ .2byte 0x2bf
+ .byte 0x6
+ .4byte .LFB32
+ .4byte .LFE32-.LFB32
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x87a
+ .byte 0xe
+ .4byte .LASF3356
+ .byte 0x1
+ .2byte 0x2bf
+ .byte 0x29
+ .4byte 0x4c2
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3357
+ .byte 0x1
+ .2byte 0x2ac
+ .byte 0x6
+ .4byte .LFB31
+ .4byte .LFE31-.LFB31
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x8a2
+ .byte 0xe
+ .4byte .LASF3356
+ .byte 0x1
+ .2byte 0x2ac
+ .byte 0x28
+ .4byte 0x4c2
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3358
+ .byte 0x1
+ .2byte 0x299
+ .byte 0x6
+ .4byte .LFB30
+ .4byte .LFE30-.LFB30
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x8ca
+ .byte 0xe
+ .4byte .LASF3359
+ .byte 0x1
+ .2byte 0x299
+ .byte 0x37
+ .4byte 0x474
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xd
+ .4byte .LASF3360
+ .byte 0x1
+ .2byte 0x280
+ .byte 0xc
+ .4byte 0xd2
+ .4byte .LFB29
+ .4byte .LFE29-.LFB29
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x8f6
+ .byte 0xe
+ .4byte .LASF3361
+ .byte 0x1
+ .2byte 0x280
+ .byte 0x35
+ .4byte 0x41f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x12
+ .4byte .LASF3362
+ .byte 0x1
+ .2byte 0x26c
+ .byte 0x6
+ .4byte .LFB28
+ .4byte .LFE28-.LFB28
+ .byte 0x1
+ .byte 0x9c
+ .byte 0xd
+ .4byte .LASF3363
+ .byte 0x1
+ .2byte 0x25c
+ .byte 0xc
+ .4byte 0xd2
+ .4byte .LFB27
+ .4byte .LFE27-.LFB27
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x935
+ .byte 0xe
+ .4byte .LASF3364
+ .byte 0x1
+ .2byte 0x25c
+ .byte 0x27
+ .4byte 0x3ca
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3365
+ .byte 0x1
+ .2byte 0x23e
+ .byte 0x6
+ .4byte .LFB26
+ .4byte .LFE26-.LFB26
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x96d
+ .byte 0xe
+ .4byte .LASF3366
+ .byte 0x1
+ .2byte 0x23e
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x240
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3367
+ .byte 0x1
+ .2byte 0x22b
+ .byte 0x6
+ .4byte .LFB25
+ .4byte .LFE25-.LFB25
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x9a5
+ .byte 0xe
+ .4byte .LASF3366
+ .byte 0x1
+ .2byte 0x22b
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x22d
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3368
+ .byte 0x1
+ .2byte 0x218
+ .byte 0x6
+ .4byte .LFB24
+ .4byte .LFE24-.LFB24
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x9dd
+ .byte 0xe
+ .4byte .LASF3369
+ .byte 0x1
+ .2byte 0x218
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x21a
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3370
+ .byte 0x1
+ .2byte 0x202
+ .byte 0x6
+ .4byte .LFB23
+ .4byte .LFE23-.LFB23
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa15
+ .byte 0xe
+ .4byte .LASF3371
+ .byte 0x1
+ .2byte 0x202
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x204
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3372
+ .byte 0x1
+ .2byte 0x1d8
+ .byte 0x6
+ .4byte .LFB22
+ .4byte .LFE22-.LFB22
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa4d
+ .byte 0xe
+ .4byte .LASF3373
+ .byte 0x1
+ .2byte 0x1d8
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x10
+ .4byte .LASF3374
+ .byte 0x1
+ .2byte 0x1da
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3375
+ .byte 0x1
+ .2byte 0x1c5
+ .byte 0x6
+ .4byte .LFB21
+ .4byte .LFE21-.LFB21
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa75
+ .byte 0xe
+ .4byte .LASF3376
+ .byte 0x1
+ .2byte 0x1c5
+ .byte 0x1f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3377
+ .byte 0x1
+ .2byte 0x1b7
+ .byte 0x6
+ .4byte .LFB20
+ .4byte .LFE20-.LFB20
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa9d
+ .byte 0xe
+ .4byte .LASF3376
+ .byte 0x1
+ .2byte 0x1b7
+ .byte 0x1f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3378
+ .byte 0x1
+ .2byte 0x1a2
+ .byte 0x6
+ .4byte .LFB19
+ .4byte .LFE19-.LFB19
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xad5
+ .byte 0xe
+ .4byte .LASF3379
+ .byte 0x1
+ .2byte 0x1a2
+ .byte 0x21
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x1a4
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3380
+ .byte 0x1
+ .2byte 0x18d
+ .byte 0x6
+ .4byte .LFB18
+ .4byte .LFE18-.LFB18
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xb1d
+ .byte 0xe
+ .4byte .LASF3381
+ .byte 0x1
+ .2byte 0x18d
+ .byte 0x21
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xe
+ .4byte .LASF3382
+ .byte 0x1
+ .2byte 0x18d
+ .byte 0x39
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x18f
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3383
+ .byte 0x1
+ .2byte 0x174
+ .byte 0x6
+ .4byte .LFB17
+ .4byte .LFE17-.LFB17
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xb65
+ .byte 0xe
+ .4byte .LASF3384
+ .byte 0x1
+ .2byte 0x174
+ .byte 0x1e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xe
+ .4byte .LASF3376
+ .byte 0x1
+ .2byte 0x174
+ .byte 0x30
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x176
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3385
+ .byte 0x1
+ .2byte 0x15d
+ .byte 0x6
+ .4byte .LFB16
+ .4byte .LFE16-.LFB16
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xb9d
+ .byte 0xe
+ .4byte .LASF3386
+ .byte 0x1
+ .2byte 0x15d
+ .byte 0x21
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x15f
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3387
+ .byte 0x1
+ .2byte 0x142
+ .byte 0x6
+ .4byte .LFB15
+ .4byte .LFE15-.LFB15
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xbd5
+ .byte 0xe
+ .4byte .LASF3388
+ .byte 0x1
+ .2byte 0x142
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x144
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3389
+ .byte 0x1
+ .2byte 0x12b
+ .byte 0x6
+ .4byte .LFB14
+ .4byte .LFE14-.LFB14
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xc0d
+ .byte 0xe
+ .4byte .LASF3390
+ .byte 0x1
+ .2byte 0x12b
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x12d
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x11
+ .4byte .LASF3391
+ .byte 0x1
+ .2byte 0x114
+ .byte 0x6
+ .4byte .LFB13
+ .4byte .LFE13-.LFB13
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xc45
+ .byte 0xe
+ .4byte .LASF3392
+ .byte 0x1
+ .2byte 0x114
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xf
+ .string "reg"
+ .byte 0x1
+ .2byte 0x116
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF3409
+ .byte 0x1
+ .2byte 0x107
+ .byte 0xa
+ .4byte 0xab
+ .4byte .LFB12
+ .4byte .LFE12-.LFB12
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x15
+ .4byte .LASF3393
+ .byte 0x1
+ .byte 0xf4
+ .byte 0x6
+ .4byte .LFB11
+ .4byte .LFE11-.LFB11
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xc91
+ .byte 0x16
+ .4byte .LASF3394
+ .byte 0x1
+ .byte 0xf4
+ .byte 0x2e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x17
+ .string "reg"
+ .byte 0x1
+ .byte 0xf6
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x18
+ .4byte .LASF3395
+ .byte 0x1
+ .byte 0xe5
+ .byte 0x6
+ .4byte .LFB10
+ .4byte .LFE10-.LFB10
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x18
+ .4byte .LASF3396
+ .byte 0x1
+ .byte 0xda
+ .byte 0x6
+ .4byte .LFB9
+ .4byte .LFE9-.LFB9
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x15
+ .4byte .LASF3397
+ .byte 0x1
+ .byte 0xcf
+ .byte 0x6
+ .4byte .LFB8
+ .4byte .LFE8-.LFB8
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xcdb
+ .byte 0x16
+ .4byte .LASF3398
+ .byte 0x1
+ .byte 0xcf
+ .byte 0x35
+ .4byte 0x357
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x15
+ .4byte .LASF3399
+ .byte 0x1
+ .byte 0xb5
+ .byte 0x6
+ .4byte .LFB7
+ .4byte .LFE7-.LFB7
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xd01
+ .byte 0x16
+ .4byte .LASF3398
+ .byte 0x1
+ .byte 0xb5
+ .byte 0x34
+ .4byte 0x357
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x15
+ .4byte .LASF3400
+ .byte 0x1
+ .byte 0x9b
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xd27
+ .byte 0x16
+ .4byte .LASF3401
+ .byte 0x1
+ .byte 0x9b
+ .byte 0x3b
+ .4byte 0x25a
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x15
+ .4byte .LASF3402
+ .byte 0x1
+ .byte 0x8d
+ .byte 0x6
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xd4d
+ .byte 0x16
+ .4byte .LASF3401
+ .byte 0x1
+ .byte 0x8d
+ .byte 0x3a
+ .4byte 0x25a
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x15
+ .4byte .LASF3403
+ .byte 0x1
+ .byte 0x7f
+ .byte 0x6
+ .4byte .LFB4
+ .4byte .LFE4-.LFB4
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xd73
+ .byte 0x16
+ .4byte .LASF3401
+ .byte 0x1
+ .byte 0x7f
+ .byte 0x2f
+ .4byte 0x22f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x15
+ .4byte .LASF3404
+ .byte 0x1
+ .byte 0x61
+ .byte 0x6
+ .4byte .LFB3
+ .4byte .LFE3-.LFB3
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xd99
+ .byte 0x16
+ .4byte .LASF3401
+ .byte 0x1
+ .byte 0x61
+ .byte 0x2e
+ .4byte 0x22f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x19
+ .4byte .LASF3405
+ .byte 0x1
+ .byte 0x35
+ .byte 0x6
+ .4byte .LFB2
+ .4byte .LFE2-.LFB2
+ .byte 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x1
+ .byte 0x1
+ .byte 0x49
+ .byte 0x13
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x21
+ .byte 0
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2f
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0x5
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xd
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xe
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xf
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x10
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x11
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x12
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x13
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x14
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x15
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x16
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x17
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x18
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x19
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .byte 0x3
+ .byte 0x24
+ .byte 0x5
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .file 6 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x6
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF341
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x7
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF342
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF343
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x8
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF344
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x9
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 11 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xb
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .file 12 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xc
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF528
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xd
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .byte 0x3
+ .byte 0x36
+ .byte 0x5
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x20
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2744
+ .file 33 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2808
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3169
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3170
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3171
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3172
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3173
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF339
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF340
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF348
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF349
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF360
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF371
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF372
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF373
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF374
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF403
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF404
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF382
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF381
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF420
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF421
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF489
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF490
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF525
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF526
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF709
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF710
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF778
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF779
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1116
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1117
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1124
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1125
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1225
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1226
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1324
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1325
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1331
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1332
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1361
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1362
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1483
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1484
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1597
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1598
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1878
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1879
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1990
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1991
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2017
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2018
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2041
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2042
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2074
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2075
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2115
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2258
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2405
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2445
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2588
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2607
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2727
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2743
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2756
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2774
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF2790
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF2791
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF2792
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF2794
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2797
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2807
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF2813
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2833
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF2838
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.42.bd9ae9b75aa7104f9af29b88d3470990,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2937
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF3001
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3003
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF3057
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF3073
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF3074
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF3086
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF3104
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF3120
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF3121
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF3124
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF3127
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF3137
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF3138
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF3143
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF3163
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2169:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1588:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF2681:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF366:
+ .string "___int16_t_defined 1"
+.LASF3023:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF758:
+ .string "BKP_DATA BITS(0,15)"
+.LASF885:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1937:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF3366:
+ .string "i2s_clock_source"
+.LASF1718:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF3352:
+ .string "stb_cnt"
+.LASF2628:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF1401:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF835:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1277:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2131:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2932:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF2902:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF2100:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF2780:
+ .string "_T_WCHAR "
+.LASF2002:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF537:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1975:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF3343:
+ .string "rcu_hxtal_clock_monitor_disable"
+.LASF2558:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2166:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF2480:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2143:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF510:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF824:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF2385:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF914:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF2230:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2965:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF2120:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2545:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF2427:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF1472:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1096:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF3286:
+ .string "RCU_INT_FLAG_HXTALSTB"
+.LASF3183:
+ .string "long unsigned int"
+.LASF727:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1769:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF2600:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF2080:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF1777:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF501:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1671:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1340:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF755:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2444:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF2083:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF478:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF2005:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF1037:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF2221:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF2773:
+ .string "_SIZET_ "
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF2576:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1116:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF439:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1610:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF1721:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF3061:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF581:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2625:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF1226:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF2833:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF2226:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF3142:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF2067:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF1739:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF2064:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF341:
+ .string "SYSTEM_GD32VF103_H "
+.LASF1516:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF459:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1048:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF3217:
+ .string "RCU_BKPI"
+.LASF452:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF1369:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1773:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF2729:
+ .string "WWDGT WWDGT_BASE"
+.LASF413:
+ .string "_UINT32_T_DECLARED "
+.LASF1278:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF784:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1781:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF674:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1807:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF1580:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF2737:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF2646:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF435:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1115:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF1553:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1017:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF993:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF1900:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF2593:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF1726:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF386:
+ .string "short +1"
+.LASF1873:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1602:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF2477:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF702:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF2673:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF2654:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF1014:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF678:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2403:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2246:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF2601:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF467:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1823:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF3306:
+ .string "RCU_INT_PLL1STB"
+.LASF512:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF2659:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2459:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2453:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF2042:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2509:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF1764:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1555:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF2203:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1000:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2227:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF3383:
+ .string "rcu_pll_config"
+.LASF2876:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1144:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF3409:
+ .string "rcu_system_clock_source_get"
+.LASF3006:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF2652:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF1513:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF421:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1705:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF1754:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF3063:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1732:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF2809:
+ .string "_RISCV_CONST_H "
+.LASF2094:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1176:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF2753:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1042:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2277:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1908:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF2995:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF2214:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2909:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF3338:
+ .string "clock"
+.LASF2201:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF303:
+ .string "__riscv 1"
+.LASF2856:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF2107:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1850:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF1131:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF3113:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF2859:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF669:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2225:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF3177:
+ .string "short int"
+.LASF1857:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF551:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1230:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2894:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1891:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF3374:
+ .string "reg0"
+.LASF3090:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF2248:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF1342:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1441:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF1642:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF548:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF350:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2325:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF1923:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2171:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF2879:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF864:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2665:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1324:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2164:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF2562:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF1258:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF762:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF1968:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF795:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF465:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF666:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF532:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1237:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF946:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF3138:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF3268:
+ .string "rcu_periph_reset_enum"
+.LASF958:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF1139:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1056:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF3119:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF1617:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF2438:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF451:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF3276:
+ .string "RCU_FLAG_EPRST"
+.LASF642:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2974:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF813:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2145:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF2825:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF3064:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF904:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF639:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF2079:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1262:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2245:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2582:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF2475:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF2804:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1957:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF364:
+ .string "__have_long32 1"
+.LASF2769:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF1100:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF801:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2944:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1856:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF2840:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF1964:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF948:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3375:
+ .string "rcu_pll2_config"
+.LASF3188:
+ .string "uint32_t"
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF2244:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF1977:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF401:
+ .string "__LEAST8 \"hh\""
+.LASF1568:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1263:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1149:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2895:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF1339:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF2435:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF814:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2262:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1751:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2442:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF2240:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1156:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF1406:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF3019:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF1063:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF2502:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2567:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF2574:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF860:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF2335:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF1170:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF1834:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF2119:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2443:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF1320:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF1696:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF2010:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF3342:
+ .string "irc8m_adjval"
+.LASF3231:
+ .string "RCU_USART0"
+.LASF3209:
+ .string "RCU_USART1"
+.LASF3210:
+ .string "RCU_USART2"
+.LASF1712:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF1656:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF1461:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2185:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2218:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1083:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF829:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2208:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1534:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF387:
+ .string "__int20 +2"
+.LASF343:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF1914:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF2188:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1663:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2150:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF3316:
+ .string "rcu_osci_type_enum"
+.LASF1830:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1491:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2121:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF2307:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2210:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1812:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF800:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF930:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF880:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF2961:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2636:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF1297:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1842:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF806:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1020:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF3165:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF2281:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF1875:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF1927:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF3097:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1183:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2483:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF1837:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1638:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2207:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1761:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2235:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF1646:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF3267:
+ .string "RCU_USART0RST"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF942:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF431:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF2832:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2648:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2228:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF2399:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF970:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF488:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF3103:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2467:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF2309:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2955:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF2029:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF1095:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF962:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1085:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1345:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1795:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1133:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF2416:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF362:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1522:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF437:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF2511:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF3136:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF427:
+ .string "__int_fast16_t_defined 1"
+.LASF1611:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF2350:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF3284:
+ .string "RCU_INT_FLAG_LXTALSTB"
+.LASF2904:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1952:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF2490:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF567:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1955:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF869:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2304:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF2653:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF2146:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF539:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2405:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF3262:
+ .string "RCU_GPIOERST"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF852:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF1808:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF895:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF2657:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF3273:
+ .string "RCU_FLAG_PLL2STB"
+.LASF1948:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1641:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1059:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1184:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2117:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1147:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF2113:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF3308:
+ .string "rcu_int_enum"
+.LASF2634:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF2009:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF3376:
+ .string "pll_mul"
+.LASF2740:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1503:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2610:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF1175:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF3009:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF1690:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2392:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1108:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF821:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF2523:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF2046:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF388:
+ .string "__int20__ +2"
+.LASF3398:
+ .string "periph_reset"
+.LASF1310:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1905:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1921:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF859:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF1211:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1521:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF3068:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1570:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF618:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF3303:
+ .string "RCU_INT_IRC8MSTB"
+.LASF3223:
+ .string "RCU_GPIOB"
+.LASF3224:
+ .string "RCU_GPIOC"
+.LASF3225:
+ .string "RCU_GPIOD"
+.LASF1722:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF1446:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF3332:
+ .string "predv0"
+.LASF3333:
+ .string "predv1"
+.LASF1595:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1498:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2204:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF1122:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF3105:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF605:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF1902:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF2910:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2897:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF2935:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2085:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF3380:
+ .string "rcu_predv0_config"
+.LASF1767:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF2679:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF414:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF2923:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF540:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF2705:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2219:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2296:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF2232:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF3353:
+ .string "reval"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF357:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF549:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF905:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF961:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF3059:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1479:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1557:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF923:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF3053:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF3117:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF872:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF1804:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF2983:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2024:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF2340:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF854:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF3281:
+ .string "RCU_FLAG_LPRST"
+.LASF1904:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2382:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF2693:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF3341:
+ .string "rcu_irc8m_adjust_value_set"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1422:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1208:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF533:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1682:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF565:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1800:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1067:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1866:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF3011:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF3081:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1255:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF2249:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF3241:
+ .string "RCU_TIMER5RST"
+.LASF1150:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2663:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1500:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF995:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2783:
+ .string "_BSD_WCHAR_T_ "
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1240:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF2795:
+ .string "__need_NULL"
+.LASF2462:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1538:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2389:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1675:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2329:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF2845:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2929:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF542:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2524:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2979:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2559:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF360:
+ .string "__XSI_VISIBLE 0"
+.LASF2076:
+ .string "GD32VF103_RTC_H "
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2486:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2167:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF526:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF2967:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF3066:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF925:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF1625:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF2613:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF2869:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF3048:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF665:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF3130:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF2561:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2915:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF3359:
+ .string "int_flag_clear"
+.LASF3056:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF606:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF834:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2441:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF3036:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1132:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2349:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1911:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF529:
+ .string "ADC0 ADC_BASE"
+.LASF1515:
+ .string "FMC_CTL_START BIT(6)"
+.LASF3086:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF1076:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF1362:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF1080:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF2028:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2288:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF573:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF3120:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF1894:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF416:
+ .string "_UINT64_T_DECLARED "
+.LASF504:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF2690:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF1337:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF2971:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF508:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1469:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1630:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF1798:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF3401:
+ .string "periph"
+.LASF966:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1615:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF430:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1668:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF2602:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF2026:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2493:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1978:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF1966:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2541:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1585:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1123:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1960:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF2863:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1368:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF2802:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF2797:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF1542:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF1283:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF683:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF2269:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF866:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF2639:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF1907:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF374:
+ .string "_SYS__INTSUP_H "
+.LASF913:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2239:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF2470:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF3109:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2181:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF2668:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF799:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF2898:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF2380:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF810:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF2843:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF1589:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF2872:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF2255:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF390:
+ .string "long +4"
+.LASF1266:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF3397:
+ .string "rcu_periph_reset_disable"
+.LASF1072:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF2676:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2707:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF3229:
+ .string "RCU_TIMER0"
+.LASF3014:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1897:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF2985:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF2611:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF2040:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF590:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF446:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF404:
+ .string "__LEAST64 \"ll\""
+.LASF681:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2514:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF2433:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF912:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF3122:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2520:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF3334:
+ .string "pll1mf"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF3314:
+ .string "RCU_PLL1_CK"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF889:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1296:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF1289:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2058:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1746:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF2319:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF2870:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF607:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1531:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1755:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF2180:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF558:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF1821:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF1370:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF2519:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2677:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF394:
+ .string "__INT16 \"h\""
+.LASF2424:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF3088:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF3236:
+ .string "RCU_USBFSRST"
+.LASF2052:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF2922:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF3178:
+ .string "__uint8_t"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2134:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF2964:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF601:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1129:
+ .string "DAC1 (1U)"
+.LASF680:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF2799:
+ .string "TIMER_MSIP 0xFFC"
+.LASF2793:
+ .string "NULL"
+.LASF782:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF3154:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF3370:
+ .string "rcu_usb_clock_config"
+.LASF1347:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF2242:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF2986:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF331:
+ .string "__I volatile const"
+.LASF1892:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF1003:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2517:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF936:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2827:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF1714:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF649:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF2776:
+ .string "__wchar_t__ "
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF3016:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1093:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF2656:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF3280:
+ .string "RCU_FLAG_WWDGTRST"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF978:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1883:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF846:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1637:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1364:
+ .string "EXTI EXTI_BASE"
+.LASF2039:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF2003:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1780:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1338:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF2025:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF643:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF2886:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF3318:
+ .string "CK_AHB"
+.LASF3015:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF688:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF514:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF3083:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF689:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF3102:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF773:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF2579:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF3124:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF968:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2110:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2065:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF1915:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF1103:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1106:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2373:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1574:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF381:
+ .string "__int20__"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF766:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF1484:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF3317:
+ .string "CK_SYS"
+.LASF613:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF438:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1660:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF3357:
+ .string "rcu_interrupt_enable"
+.LASF400:
+ .string "__FAST64 \"ll\""
+.LASF1134:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF3114:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF1587:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF865:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF1054:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1922:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF988:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF1427:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF2678:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1898:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1040:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF1996:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2437:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF1799:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF1004:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF3131:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1846:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF959:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF2020:
+ .string "DBG DBG_BASE"
+.LASF1606:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2457:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2430:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF3364:
+ .string "flag"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF977:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF3190:
+ .string "FlagStatus"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF2768:
+ .string "_SIZE_T_DEFINED "
+.LASF2449:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF2030:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF3385:
+ .string "rcu_ckout0_config"
+.LASF3043:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF1573:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF3040:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF2021:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF2007:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2596:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1592:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF395:
+ .string "__INT32 \"l\""
+.LASF761:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1293:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1562:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF3038:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF492:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF347:
+ .string "__NEWLIB__ 4"
+.LASF1653:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2393:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF2789:
+ .string "_GCC_WCHAR_T "
+.LASF1267:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF2947:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF2844:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1750:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF351:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF1507:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2388:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2440:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF3235:
+ .string "rcu_periph_sleep_enum"
+.LASF2631:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF365:
+ .string "___int8_t_defined 1"
+.LASF1460:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF2338:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF3258:
+ .string "RCU_GPIOARST"
+.LASF460:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2977:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF932:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2315:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF954:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2425:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF2019:
+ .string "GD32VF103_DBG_H "
+.LASF440:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2125:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF3216:
+ .string "RCU_CAN1"
+.LASF2703:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF1839:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1097:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF3213:
+ .string "RCU_I2C0"
+.LASF3214:
+ .string "RCU_I2C1"
+.LASF828:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF2001:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2623:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF947:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF1945:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2366:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF3347:
+ .string "rcu_osci_bypass_mode_enable"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF3278:
+ .string "RCU_FLAG_SWRST"
+.LASF2987:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF3194:
+ .string "long double"
+.LASF2754:
+ .string "___int_ptrdiff_t_h "
+.LASF1499:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1582:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2749:
+ .string "_T_PTRDIFF_ "
+.LASF2050:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF1930:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF2247:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF2292:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF1504:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1584:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF2919:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF3150:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF3289:
+ .string "RCU_INT_FLAG_PLL2STB"
+.LASF481:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF3282:
+ .string "rcu_flag_enum"
+.LASF1171:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF2744:
+ .string "N200_FUNC_H "
+.LASF1694:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF788:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1627:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2551:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF1710:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2122:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF2771:
+ .string "___int_size_t_h "
+.LASF2374:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF1459:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2505:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2381:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF3331:
+ .string "clk_exp"
+.LASF2111:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1564:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1125:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF3313:
+ .string "RCU_PLL_CK"
+.LASF2436:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1815:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF3302:
+ .string "RCU_INT_LXTALSTB"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF809:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF2290:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF2049:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF874:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF2012:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF3156:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF2233:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF3128:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF3232:
+ .string "rcu_periph_enum"
+.LASF2711:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF2536:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF3126:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF2855:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF525:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2577:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2975:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF661:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF3222:
+ .string "RCU_GPIOA"
+.LASF2595:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF3226:
+ .string "RCU_GPIOE"
+.LASF3237:
+ .string "RCU_TIMER1RST"
+.LASF1951:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF602:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF2835:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2414:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF2728:
+ .string "GD32VF103_WWDGT_H "
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF2674:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF922:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2328:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF3169:
+ .string "SEL_IRC8M ((uint16_t)0U)"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF933:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF455:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF1597:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2253:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1756:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF1871:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF2191:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF3045:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF911:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1566:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF1309:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF918:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF820:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF2877:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF3198:
+ .string "RCU_EXMC"
+.LASF2069:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF490:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1359:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2999:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF596:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1956:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF2560:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1959:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1962:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1560:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF338:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF1719:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF3052:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1543:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF1102:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1242:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1512:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1958:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF1318:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2614:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF2925:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2445:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF629:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2812:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF3253:
+ .string "RCU_CAN1RST"
+.LASF1708:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF1731:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF3325:
+ .string "apb1_freq"
+.LASF2034:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF382:
+ .string "long"
+.LASF2805:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2491:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2907:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF1482:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF1274:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2353:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF2720:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF356:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF1853:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1174:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2077:
+ .string "RTC RTC_BASE"
+.LASF952:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF1473:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1121:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF2882:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1546:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1969:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF1012:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2980:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF999:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF1672:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1444:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1288:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF786:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2660:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1209:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2988:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF3350:
+ .string "rcu_clock_freq_get"
+.LASF368:
+ .string "___int64_t_defined 1"
+.LASF2200:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1057:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF3321:
+ .string "rcu_clock_freq_enum"
+.LASF3008:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2059:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF3404:
+ .string "rcu_periph_clock_enable"
+.LASF358:
+ .string "__POSIX_VISIBLE 199009"
+.LASF1260:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF1286:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF456:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF2890:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF1367:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF640:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF1740:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF1477:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2193:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF677:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF953:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1559:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF2066:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF3135:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2451:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF3013:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1333:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2473:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2580:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF2716:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF3157:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF3304:
+ .string "RCU_INT_HXTALSTB"
+.LASF2190:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1244:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2187:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1680:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF781:
+ .string "CAN0 CAN_BASE"
+.LASF2448:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF3179:
+ .string "__uint16_t"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF1868:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF2014:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2431:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2147:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2439:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF1466:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1228:
+ .string "DMA0 (DMA_BASE)"
+.LASF2336:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF556:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF3022:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF3297:
+ .string "RCU_INT_FLAG_PLL1STB_CLR"
+.LASF1917:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF3067:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF448:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF1820:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF432:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1280:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF1064:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF408:
+ .string "__int8_t_defined 1"
+.LASF1254:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1765:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1299:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF3319:
+ .string "CK_APB1"
+.LASF3320:
+ .string "CK_APB2"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF1112:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF1353:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2105:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF491:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2345:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF3327:
+ .string "pllsel"
+.LASF3032:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1733:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF352:
+ .string "__ATFILE_VISIBLE 0"
+.LASF598:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2172:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF668:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1335:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1935:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF1098:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF1702:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF812:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF892:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF851:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF1860:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF507:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1140:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1699:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF2537:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF979:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF574:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2552:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF1094:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1261:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1464:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF950:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF1128:
+ .string "DAC0 (0U)"
+.LASF969:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2084:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF886:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF1563:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF2775:
+ .string "__need_size_t"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1654:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF486:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF3029:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF617:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF1666:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF1321:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF2722:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2578:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1577:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1404:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF2635:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF768:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF2038:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF789:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1173:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2342:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF334:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2620:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF2060:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2492:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF2318:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF1576:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF2359:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF2862:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2135:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF1344:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2748:
+ .string "_PTRDIFF_T "
+.LASF1113:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2091:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1598:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF2782:
+ .string "_WCHAR_T_ "
+.LASF3080:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF2400:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1497:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF330:
+ .string "GD32VF103_H "
+.LASF563:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF497:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2529:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2900:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF3372:
+ .string "rcu_adc_clock_config"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2031:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF2831:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF2581:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2283:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2103:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1887:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF774:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1081:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3260:
+ .string "RCU_GPIOCRST"
+.LASF843:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF2841:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF779:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF960:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1790:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF3360:
+ .string "rcu_interrupt_flag_get"
+.LASF1047:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1290:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2695:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF1833:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2106:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2978:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2088:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1558:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF1060:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF616:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF2873:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF566:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF1744:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF2630:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF3227:
+ .string "RCU_ADC0"
+.LASF3228:
+ .string "RCU_ADC1"
+.LASF1011:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF3163:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF3116:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1082:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF593:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2276:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF3005:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF2714:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF3288:
+ .string "RCU_INT_FLAG_PLL1STB"
+.LASF833:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF371:
+ .string "___int_least32_t_defined 1"
+.LASF1389:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF1536:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF2938:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2195:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF557:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1525:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1201:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF2808:
+ .string "N200_ECLIC_H "
+.LASF2312:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2495:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1811:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF2159:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF3396:
+ .string "rcu_bkp_reset_enable"
+.LASF489:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF1628:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF583:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF450:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1657:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF2409:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF2830:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF2924:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF2572:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF2718:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1843:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF1050:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF383:
+ .string "signed +0"
+.LASF1322:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF3390:
+ .string "ck_apb1"
+.LASF3388:
+ .string "ck_apb2"
+.LASF685:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2484:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF1142:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF3403:
+ .string "rcu_periph_clock_disable"
+.LASF1163:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF1748:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF3351:
+ .string "rcu_osci_stab_wait"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF424:
+ .string "__int_least32_t_defined 1"
+.LASF1249:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1245:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF412:
+ .string "_INT32_T_DECLARED "
+.LASF1539:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF2352:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF411:
+ .string "__int16_t_defined 1"
+.LASF2926:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF2585:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF652:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF1185:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF3104:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF3078:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2294:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF3381:
+ .string "predv0_source"
+.LASF1893:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF3400:
+ .string "rcu_periph_clock_sleep_disable"
+.LASF1041:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF996:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF522:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF1109:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF2415:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF3121:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF1044:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF2791:
+ .string "_BSD_WCHAR_T_"
+.LASF2945:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF2670:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF934:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF2701:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF1829:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2360:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF797:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2128:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1989:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF1425:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF3024:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF3073:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF1928:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2525:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF2813:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF2918:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2465:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2192:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF3033:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF398:
+ .string "__FAST16 "
+.LASF1077:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF2650:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF2356:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF1912:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF2267:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF1590:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF2940:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1203:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF500:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF1110:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF2070:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF3153:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF2109:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF949:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF534:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF757:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF3261:
+ .string "RCU_GPIODRST"
+.LASF3311:
+ .string "RCU_IRC8M"
+.LASF825:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1909:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF1214:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF3266:
+ .string "RCU_SPI0RST"
+.LASF3272:
+ .string "RCU_FLAG_PLL1STB"
+.LASF1502:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF863:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF2215:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF1635:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF3100:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF2344:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF2766:
+ .string "_BSD_SIZE_T_ "
+.LASF2137:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF472:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF2075:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF1533:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2114:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF3085:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1946:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2293:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF429:
+ .string "__int_fast64_t_defined 1"
+.LASF1938:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF1691:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF3378:
+ .string "rcu_predv1_config"
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF2788:
+ .string "__INT_WCHAR_T_H "
+.LASF3362:
+ .string "rcu_all_reset_flag_clear"
+.LASF2564:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2757:
+ .string "__need_ptrdiff_t"
+.LASF577:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF1509:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1287:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2108:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2535:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF3098:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF2035:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1336:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF1932:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF422:
+ .string "__int_least8_t_defined 1"
+.LASF951:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF1723:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF2337:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1005:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF418:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2662:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2165:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF2202:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF955:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1402:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF406:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF1137:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2314:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF1572:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF2447:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2287:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF1632:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF644:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF2860:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF1178:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1073:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF883:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF1239:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF1986:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF945:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2260:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1366:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1091:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF2903:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1695:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1878:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF3393:
+ .string "rcu_system_clock_source_config"
+.LASF3034:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1159:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF764:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF1620:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2594:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2645:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1994:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2468:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF419:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1794:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF3240:
+ .string "RCU_TIMER4RST"
+.LASF2456:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1684:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF750:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1941:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF1924:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF3315:
+ .string "RCU_PLL2_CK"
+.LASF903:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1205:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2644:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF3070:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2905:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2324:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1676:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF998:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1954:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1716:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF3195:
+ .string "RCU_DMA0"
+.LASF3196:
+ .string "RCU_DMA1"
+.LASF2687:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF868:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2376:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF664:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF3293:
+ .string "RCU_INT_FLAG_LXTALSTB_CLR"
+.LASF1352:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF3092:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF1979:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF2055:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2098:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF3166:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF3018:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF2375:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1768:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1775:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF3208:
+ .string "RCU_SPI2"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF1803:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF2756:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF3171:
+ .string "SEL_PLL ((uint16_t)2U)"
+.LASF436:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF965:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF713:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF2367:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF1207:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2478:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2626:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1561:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF858:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2501:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF3180:
+ .string "short unsigned int"
+.LASF742:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF901:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1644:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1146:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2263:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2461:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF2798:
+ .string "N200_TIMER_H "
+.LASF1145:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF576:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF2800:
+ .string "TIMER_MSIP_size 0x4"
+.LASF3245:
+ .string "RCU_SPI2RST"
+.LASF2743:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF3361:
+ .string "int_flag"
+.LASF1863:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF2418:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF3348:
+ .string "rcu_osci_off"
+.LASF805:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF1547:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF897:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1864:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF3051:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1669:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2951:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF1737:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF718:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1275:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2161:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF2280:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1901:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF399:
+ .string "__FAST32 "
+.LASF1251:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF730:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF1706:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF2527:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF3408:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF3129:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF468:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2299:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF2680:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF775:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF2937:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF3294:
+ .string "RCU_INT_FLAG_IRC8MSTB_CLR"
+.LASF3252:
+ .string "RCU_CAN0RST"
+.LASF2669:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2096:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1752:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1069:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF1886:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF578:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2528:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1052:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF2238:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2516:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2291:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF2220:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF376:
+ .string "signed"
+.LASF975:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF2406:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2177:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF553:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF354:
+ .string "__GNU_VISIBLE 0"
+.LASF3211:
+ .string "RCU_UART3"
+.LASF3212:
+ .string "RCU_UART4"
+.LASF3141:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1639:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1442:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1544:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2303:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1252:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF3324:
+ .string "ahb_freq"
+.LASF1273:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2948:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1181:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1619:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF3112:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF2411:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF2968:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF2458:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF2515:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF1365:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF676:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF3186:
+ .string "uint8_t"
+.LASF1541:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF2163:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2548:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF2346:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2916:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF1248:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF2692:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF1991:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1198:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF2828:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF3007:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1319:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF2699:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF2723:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2632:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2289:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1788:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF476:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2942:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2717:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF924:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF2032:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF850:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF1520:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1825:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF550:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1678:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2268:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF3055:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF1895:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2422:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1313:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2641:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2417:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF3329:
+ .string "pllmf"
+.LASF1157:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF888:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF2500:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2140:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF1124:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF3363:
+ .string "rcu_flag_get"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF819:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF1349:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF3185:
+ .string "long long unsigned int"
+.LASF3027:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2285:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF987:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1314:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF857:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF1120:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF474:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF329:
+ .string "GD32VF103_RCU_H "
+.LASF785:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF2071:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF1519:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1281:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF900:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF1540:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1971:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2604:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF941:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF725:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3176:
+ .string "unsigned char"
+.LASF1407:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF2698:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF3076:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF2332:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2184:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF2839:
+ .string "RCU RCU_BASE"
+.LASF1089:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF332:
+ .string "__O volatile"
+.LASF2507:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF787:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF1973:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF2858:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1700:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1648:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2384:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1661:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1953:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2429:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2591:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF3058:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF2824:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1697:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF2534:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF3291:
+ .string "rcu_int_flag_enum"
+.LASF1713:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF2888:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1462:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF3368:
+ .string "rcu_rtc_clock_config"
+.LASF1817:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF464:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2379:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF1999:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF2256:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2363:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF3371:
+ .string "usb_psc"
+.LASF1982:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1027:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2213:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2139:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF3389:
+ .string "rcu_apb1_clock_config"
+.LASF1847:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF2573:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF842:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF348:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1285:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF3095:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF340:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF471:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF579:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF403:
+ .string "__LEAST32 \"l\""
+.LASF582:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1508:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF2550:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF1510:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2432:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF2261:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF3283:
+ .string "RCU_INT_FLAG_IRC40KSTB"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1039:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2183:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF2790:
+ .string "_WCHAR_T_DECLARED "
+.LASF597:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2402:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1643:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF3379:
+ .string "predv1_div"
+.LASF894:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF1350:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF2989:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF3107:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2364:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF2803:
+ .string "TIMER_MTIME 0x0"
+.LASF1683:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1608:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF487:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF972:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2543:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1295:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF832:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF656:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF521:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1119:
+ .string "CRC CRC_BASE"
+.LASF1395:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF849:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF2643:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF363:
+ .string "__have_longlong64 1"
+.LASF560:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF3199:
+ .string "RCU_USBFS"
+.LASF876:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF3301:
+ .string "RCU_INT_IRC40KSTB"
+.LASF915:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF2764:
+ .string "__SIZE_T "
+.LASF2156:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF1874:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF3079:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF349:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF1742:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1840:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF345:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1346:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1621:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF1101:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1836:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF494:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2341:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF760:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2265:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2627:
+ .string "USART_STAT_TC BIT(6)"
+.LASF1488:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2410:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF2721:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF1387:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF3279:
+ .string "RCU_FLAG_FWDGTRST"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1136:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF3234:
+ .string "RCU_FMC_SLP"
+.LASF3062:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF2801:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2321:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2148:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2603:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF909:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF499:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1548:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF1616:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF1879:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF2124:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF2649:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF2074:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF2868:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF2719:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF816:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2306:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF620:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF1918:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF2174:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1832:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF1659:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2554:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1814:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2956:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF967:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF732:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF935:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF2861:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF2931:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF1343:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF1947:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1270:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2460:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF519:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2575:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF3355:
+ .string "rcu_interrupt_disable"
+.LASF1529:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF3168:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2533:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF738:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2316:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF2996:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF870:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF3193:
+ .string "ErrStatus"
+.LASF2820:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF3369:
+ .string "rtc_clock_source"
+.LASF2464:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF3346:
+ .string "osci"
+.LASF1431:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF420:
+ .string "_INTPTR_T_DECLARED "
+.LASF1126:
+ .string "GD32VF103_DAC_H "
+.LASF2513:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1885:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1025:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF2874:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF355:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF1965:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF2471:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF3137:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF2696:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2450:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1480:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF3265:
+ .string "RCU_TIMER0RST"
+.LASF2950:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2638:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF2086:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF1168:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF2997:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF963:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF2710:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF1983:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2189:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF3140:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF726:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF731:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1009:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2485:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1993:
+ .string "FWDGT FWDGT_BASE"
+.LASF1423:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3182:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF899:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF1934:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF2671:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF1065:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF475:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF931:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1271:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2089:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF3101:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF2908:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF3310:
+ .string "RCU_LXTAL"
+.LASF1849:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF877:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF2847:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF804:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2930:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF3251:
+ .string "RCU_I2C1RST"
+.LASF794:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF483:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1647:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF2850:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF929:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1605:
+ .string "AFIO AFIO_BASE"
+.LASF1356:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF844:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1720:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2300:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF2786:
+ .string "_WCHAR_T_H "
+.LASF2419:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF2033:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2589:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF545:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2132:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF964:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF585:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF3344:
+ .string "rcu_hxtal_clock_monitor_enable"
+.LASF989:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF3271:
+ .string "RCU_FLAG_PLLSTB"
+.LASF2688:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF2763:
+ .string "_T_SIZE "
+.LASF482:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF780:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1970:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1772:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2198:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF3147:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF509:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF3395:
+ .string "rcu_bkp_reset_disable"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF1784:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF2751:
+ .string "__PTRDIFF_T "
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF3197:
+ .string "RCU_CRC"
+.LASF1304:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF765:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF2592:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2297:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF496:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF3250:
+ .string "RCU_I2C0RST"
+.LASF2624:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF826:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF2018:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2078:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF462:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1591:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF3146:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF1997:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF672:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF1673:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2386:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF811:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1130:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1231:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2412:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2504:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2607:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF1495:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF2047:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF3077:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF3161:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2497:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF1517:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF891:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF1677:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF910:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF2750:
+ .string "_T_PTRDIFF "
+.LASF1861:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF645:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF503:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF535:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF2061:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF2476:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF1741:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF2770:
+ .string "_SIZE_T_DECLARED "
+.LASF2144:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF608:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF763:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF3111:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF827:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF2758:
+ .string "__size_t__ "
+.LASF2258:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF604:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF3298:
+ .string "RCU_INT_FLAG_PLL2STB_CLR"
+.LASF2506:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF3115:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF1925:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF3290:
+ .string "RCU_INT_FLAG_CKM"
+.LASF691:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF2618:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF1282:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF1238:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF3326:
+ .string "apb2_freq"
+.LASF1972:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF506:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF943:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1384:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1819:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2510:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF466:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1467:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF1061:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF3264:
+ .string "RCU_ADC1RST"
+.LASF1631:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF1906:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF2963:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF667:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF916:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF790:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1992:
+ .string "GD32VF103_FWDGT_H "
+.LASF3339:
+ .string "dsvol"
+.LASF3249:
+ .string "RCU_UART4RST"
+.LASF1148:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF426:
+ .string "__int_fast8_t_defined 1"
+.LASF621:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2571:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF342:
+ .string "_STDINT_H "
+.LASF2846:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2479:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1284:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1612:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2257:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1026:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF2747:
+ .string "_ANSI_STDDEF_H "
+.LASF1747:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF2998:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF441:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF1511:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF2778:
+ .string "_WCHAR_T "
+.LASF2093:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF839:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF2817:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF1859:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF2864:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1734:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2224:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1583:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF1332:
+ .string "__SEV eclic_send_event"
+.LASF1135:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF838:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2640:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1021:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF1880:
+ .string "GD32VF103_I2C_H "
+.LASF2090:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2512:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1351:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF3010:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1727:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF3233:
+ .string "RCU_SRAM_SLP"
+.LASF3145:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1806:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF3159:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF3075:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF2901:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF485:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF1651:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2199:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF2588:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF711:
+ .string "GD32VF103_BKP_H "
+.LASF3354:
+ .string "osci_stat"
+.LASF3021:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2149:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF1687:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF2871:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF2767:
+ .string "_SIZE_T_DEFINED_ "
+.LASF737:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1730:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF3387:
+ .string "rcu_apb2_clock_config"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF3017:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF2279:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2045:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF1250:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2885:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2327:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF1066:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF353:
+ .string "__BSD_VISIBLE 0"
+.LASF741:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2647:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF2689:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF3044:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF653:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF2658:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF2727:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF1180:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1704:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF1291:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1107:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF1872:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF2274:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF2991:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF396:
+ .string "__INT64 \"ll\""
+.LASF1980:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF2818:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF1127:
+ .string "DAC DAC_BASE"
+.LASF1474:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF976:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF407:
+ .string "_UINT8_T_DECLARED "
+.LASF994:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2162:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF2732:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1078:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1264:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2241:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF2036:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2178:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1550:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF729:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF660:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2394:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1440:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF719:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1015:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF584:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF2586:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF2481:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF803:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF447:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1307:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1006:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1998:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF3259:
+ .string "RCU_GPIOBRST"
+.LASF610:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF740:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2549:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1990:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF991:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1586:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF559:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF2266:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF561:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1010:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF728:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF1841:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF555:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2115:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF746:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF818:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2912:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF2826:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF335:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF1858:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF2099:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF599:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1916:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF3356:
+ .string "stab_int"
+.LASF391:
+ .string "_INTPTR_EQ_INT "
+.LASF2408:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF3106:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF3089:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF1241:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF898:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF1599:
+ .string "GD32VF103_GPIO_H "
+.LASF1396:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1828:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF2784:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF3094:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF1153:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF2941:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1810:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF2006:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF692:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF3189:
+ .string "RESET"
+.LASF2958:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF2455:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF1186:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF2667:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF2482:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF380:
+ .string "__int20"
+.LASF2568:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2063:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF734:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF739:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1763:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF3158:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF798:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1325:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2953:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF2686:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF1086:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1658:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF2068:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1253:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2133:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF591:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2387:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF2365:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF1844:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2371:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF2684:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF523:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF2158:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF2683:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF2116:
+ .string "GD32VF103_SPI_H "
+.LASF333:
+ .string "__IO volatile"
+.LASF2887:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF1118:
+ .string "GD32VF103_CRC_H "
+.LASF752:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1581:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1279:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF957:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF2685:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2250:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF3218:
+ .string "RCU_PMU"
+.LASF1298:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1926:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1575:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF1405:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF3367:
+ .string "rcu_i2s1_clock_config"
+.LASF2857:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF3084:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF2949:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF3134:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1210:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF2759:
+ .string "__SIZE_T__ "
+.LASF1984:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF2000:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1867:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2972:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF2921:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF3108:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2946:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1801:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2154:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1334:
+ .string "EXMC (EXMC_BASE)"
+.LASF1051:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF385:
+ .string "char +0"
+.LASF1711:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF1155:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF1008:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF445:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF2326:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF3246:
+ .string "RCU_USART1RST"
+.LASF751:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF513:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF2073:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF3123:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2142:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF1430:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF2733:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1758:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF2993:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1494:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF1785:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF2530:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF1662:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF568:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF2531:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF370:
+ .string "___int_least16_t_defined 1"
+.LASF2538:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF1259:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2637:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF469:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF2822:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF3191:
+ .string "ERROR"
+.LASF2544:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1514:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1074:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF808:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF2056:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF926:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF2694:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF2821:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF2700:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF3287:
+ .string "RCU_INT_FLAG_PLLSTB"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF1936:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2474:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF3254:
+ .string "RCU_BKPIRST"
+.LASF562:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF367:
+ .string "___int32_t_defined 1"
+.LASF3269:
+ .string "RCU_FLAG_IRC8MSTB"
+.LASF2853:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1182:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2320:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF1622:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF2633:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2526:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF2927:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF3046:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF1489:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF3373:
+ .string "adc_psc"
+.LASF2899:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1770:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2563:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF1614:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF2962:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF3099:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF2027:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF1490:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF493:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF2726:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF2013:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1692:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2179:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF2302:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2590:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF423:
+ .string "__int_least16_t_defined 1"
+.LASF1169:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF3110:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF2781:
+ .string "__WCHAR_T "
+.LASF409:
+ .string "_INT16_T_DECLARED "
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1046:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF2138:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF919:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF1724:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF938:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF2712:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF3322:
+ .string "ck_freq"
+.LASF3181:
+ .string "long int"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF3000:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1890:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2252:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF3060:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF3336:
+ .string "apb1_exp"
+.LASF1363:
+ .string "GD32VF103_EXTI_H "
+.LASF378:
+ .string "char"
+.LASF1757:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF1341:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF3247:
+ .string "RCU_USART2RST"
+.LASF2959:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF881:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2378:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF392:
+ .string "_INT32_EQ_LONG "
+.LASF1070:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF1929:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF3082:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2539:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF1385:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF908:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF1709:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF3139:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF2851:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2547:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2553:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF1796:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF3330:
+ .string "ck_src"
+.LASF687:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF3004:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2664:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2466:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2153:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF2682:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2301:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF2355:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2487:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF663:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF1854:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF3239:
+ .string "RCU_TIMER3RST"
+.LASF1528:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1104:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF1152:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF1896:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF3125:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF2666:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF2777:
+ .string "__WCHAR_T__ "
+.LASF552:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF1685:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF2434:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1043:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1618:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1445:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF3050:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF3149:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF2880:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2259:
+ .string "GD32VF103_TIMER_H "
+.LASF1018:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2037:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF2746:
+ .string "_STDDEF_H_ "
+.LASF722:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF2834:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF3299:
+ .string "RCU_INT_FLAG_CKM_CLR"
+.LASF841:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF1717:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF2848:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF990:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF2842:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF2254:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2960:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF921:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF479:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF856:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF1016:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF862:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1565:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF2738:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1783:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2984:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF1478:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1023:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1802:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF2891:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF564:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF3200:
+ .string "RCU_TIMER1"
+.LASF3201:
+ .string "RCU_TIMER2"
+.LASF3202:
+ .string "RCU_TIMER3"
+.LASF3203:
+ .string "RCU_TIMER4"
+.LASF3204:
+ .string "RCU_TIMER5"
+.LASF3205:
+ .string "RCU_TIMER6"
+.LASF815:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1753:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2275:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2606:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF3093:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF2237:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF807:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1471:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1421:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF831:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF1681:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF1940:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF531:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF721:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF2702:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF1670:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1594:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1167:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF3244:
+ .string "RCU_SPI1RST"
+.LASF1470:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF1045:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF956:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF3386:
+ .string "ckout0_src"
+.LASF2361:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF2023:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF650:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1141:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2097:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1172:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF720:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF3020:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF2062:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1545:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF1331:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF2311:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF453:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1919:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF3358:
+ .string "rcu_interrupt_flag_clear"
+.LASF1988:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1579:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1738:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF736:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF2816:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF884:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF3025:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2401:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF2810:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1774:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2194:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF896:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF2617:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF710:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF753:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2734:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF1554:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF973:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF715:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1609:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1049:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF384:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF3382:
+ .string "predv0_div"
+.LASF2642:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1703:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2155:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2889:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF3162:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF2675:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF879:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF675:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF2936:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF594:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF2503:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF1202:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF2270:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF417:
+ .string "__int64_t_defined 1"
+.LASF724:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF2866:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF2555:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF3292:
+ .string "RCU_INT_FLAG_IRC40KSTB_CLR"
+.LASF379:
+ .string "short"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1465:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1524:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF772:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2598:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF3127:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF992:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF2741:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3406:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1518:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF749:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF871:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF735:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1013:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF2022:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF3307:
+ .string "RCU_INT_PLL2STB"
+.LASF1824:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF1667:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF3173:
+ .string "LXTAL_STARTUP_TIMEOUT ((uint32_t)0x3FFFFFFU)"
+.LASF2136:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2216:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF592:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF939:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1776:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF2883:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF359:
+ .string "__SVID_VISIBLE 0"
+.LASF2867:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2343:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1664:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF748:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF1247:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1099:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF3003:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF2969:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1888:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF2369:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF3026:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF823:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2990:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF723:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF940:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF1822:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF2546:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF1256:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1227:
+ .string "GD32VF103_DMA_H "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF2966:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF1158:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF2015:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2272:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF1088:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF2011:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2370:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF1950:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF754:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF3133:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF2420:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2305:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2494:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF2044:
+ .string "PMU PMU_BASE"
+.LASF747:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2286:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2217:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF619:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF369:
+ .string "___int_least8_t_defined 1"
+.LASF3041:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF2943:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF802:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF670:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1903:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2231:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1745:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF2054:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF648:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1797:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF3365:
+ .string "rcu_i2s2_clock_config"
+.LASF572:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF630:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF1760:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1486:
+ .string "FMC FMC_BASE"
+.LASF530:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF2157:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF1164:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF3167:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF3164:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2428:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF1114:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF3144:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF759:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1233:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2622:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF2584:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1593:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF3091:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF3407:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_rcu.c"
+.LASF1759:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1961:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF2569:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF1778:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF520:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF2104:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF546:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF2127:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1771:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF3323:
+ .string "cksys_freq"
+.LASF1793:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF3031:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF906:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1786:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF518:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2212:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF2906:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF1506:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2087:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF428:
+ .string "__int_fast32_t_defined 1"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF595:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF1623:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF3335:
+ .string "ahb_exp"
+.LASF3175:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2391:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF1848:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF3277:
+ .string "RCU_FLAG_PORRST"
+.LASF2917:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF2852:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1001:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2331:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF393:
+ .string "__INT8 \"hh\""
+.LASF1393:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF2814:
+ .string "ECLICINTCTLBITS 4"
+.LASF1487:
+ .string "OB OB_BASE"
+.LASF498:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF2704:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF853:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF1143:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF2209:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF434:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF1483:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF541:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF3402:
+ .string "rcu_periph_clock_sleep_enable"
+.LASF1715:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1613:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2243:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF1749:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF1976:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF2051:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2469:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1688:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF3399:
+ .string "rcu_periph_reset_enable"
+.LASF2597:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF1655:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF1426:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2152:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF389:
+ .string "int +2"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF3151:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF3047:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2176:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF2273:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2081:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1084:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1062:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF875:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF461:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF997:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3206:
+ .string "RCU_WWDGT"
+.LASF2339:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1537:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2498:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1779:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1162:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1496:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF2837:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF3220:
+ .string "RCU_RTC"
+.LASF515:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF744:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF3160:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF983:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2878:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF454:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1813:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF756:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF2008:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF443:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2182:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF3391:
+ .string "rcu_ahb_clock_config"
+.LASF2205:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF1634:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2619:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF646:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF837:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2566:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1269:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1246:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1257:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2629:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF586:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF855:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF745:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1831:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF1055:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF517:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF377:
+ .string "unsigned"
+.LASF477:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1920:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF524:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF2234:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF2421:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2278:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF2709:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2271:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF1527:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF3057:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1485:
+ .string "GD32VF103_FMC_H "
+.LASF2358:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF2608:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF3187:
+ .string "uint16_t"
+.LASF2570:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF2556:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF3285:
+ .string "RCU_INT_FLAG_IRC8MSTB"
+.LASF717:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2095:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF2785:
+ .string "_WCHAR_T_DEFINED "
+.LASF480:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF733:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF2048:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1826:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1931:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF336:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1355:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF1403:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF2557:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF638:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF3152:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF1535:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF543:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF2583:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2160:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF3039:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF2934:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF1889:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF339:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF1736:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF2957:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF907:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF671:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF1022:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF3065:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF3035:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1689:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF2752:
+ .string "_PTRDIFF_T_ "
+.LASF2713:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF484:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF3296:
+ .string "RCU_INT_FLAG_PLLSTB_CLR"
+.LASF1636:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF651:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF3170:
+ .string "SEL_HXTAL ((uint16_t)1U)"
+.LASF2317:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF716:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF848:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1884:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1523:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF1782:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2334:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2129:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF2914:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2661:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF2295:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF571:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF3300:
+ .string "rcu_int_flag_clear_enum"
+.LASF2532:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2383:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2463:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF743:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF817:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF2017:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF2849:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF971:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1229:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF2123:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2313:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2621:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1038:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2053:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF3002:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF433:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2298:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF3337:
+ .string "apb2_exp"
+.LASF2112:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF1200:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF3345:
+ .string "rcu_osci_bypass_mode_disable"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF654:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1272:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF867:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF3221:
+ .string "RCU_AF"
+.LASF587:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF3087:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF463:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1981:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF3012:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1360:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1002:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF2731:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF2760:
+ .string "_SIZE_T "
+.LASF397:
+ .string "__FAST8 "
+.LASF3069:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF2875:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF3405:
+ .string "rcu_deinit"
+.LASF575:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2168:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF2605:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF3377:
+ .string "rcu_pll1_config"
+.LASF673:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF3143:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF346:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF1949:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF793:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF882:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1787:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1939:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1728:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF1475:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF410:
+ .string "_UINT16_T_DECLARED "
+.LASF2896:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF887:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF2423:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1674:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF3242:
+ .string "RCU_TIMER6RST"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF2351:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF902:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2913:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF3270:
+ .string "RCU_FLAG_HXTALSTB"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF457:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF1607:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF944:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF1236:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1818:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF3054:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF1383:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2612:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF2706:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF2881:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF344:
+ .string "_SYS_FEATURES_H "
+.LASF840:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1707:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF1079:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF600:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF655:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2407:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF2521:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF3192:
+ .string "SUCCESS"
+.LASF449:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2724:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2787:
+ .string "___int_wchar_t_h "
+.LASF1876:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF1569:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1852:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF2806:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF712:
+ .string "BKP BKP_BASE"
+.LASF1232:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF686:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF1166:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1177:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1058:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2372:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2197:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF2829:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2092:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2952:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF3263:
+ .string "RCU_ADC0RST"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF603:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2454:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1443:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF2072:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF528:
+ .string "GD32VF103_ADC_H "
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1468:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1532:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF830:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF3248:
+ .string "RCU_UART3RST"
+.LASF1024:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2739:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF2043:
+ .string "GD32VF103_PMU_H "
+.LASF3328:
+ .string "predv0sel"
+.LASF847:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF2004:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF2691:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF502:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF511:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF554:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1877:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF1995:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF1805:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF1053:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2282:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF1789:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF1087:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF2794:
+ .string "NULL ((void *)0)"
+.LASF444:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1942:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1476:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1111:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF2854:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1596:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2141:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF2310:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF1317:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1199:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF2264:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF3312:
+ .string "RCU_IRC40K"
+.LASF845:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF928:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1735:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF792:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF1650:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1105:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1305:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF1265:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2322:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1151:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF505:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF2772:
+ .string "_GCC_SIZE_T "
+.LASF1679:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF2615:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF1571:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF778:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF375:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF777:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1234:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF2792:
+ .string "__need_wchar_t"
+.LASF1766:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF974:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1851:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF3243:
+ .string "RCU_WWDGTRST"
+.LASF1870:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1505:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2330:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2655:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1493:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2404:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF2745:
+ .string "_STDDEF_H "
+.LASF1303:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1967:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF2761:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2229:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF1869:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1492:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF2970:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF684:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1019:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF361:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2118:
+ .string "SPI1 SPI_BASE"
+.LASF2082:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF2765:
+ .string "_SIZE_T_ "
+.LASF3118:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2222:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1204:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF1408:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF3132:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF783:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF3155:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF569:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1645:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2354:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2499:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2542:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF1701:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF890:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF2508:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF641:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF3001:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1913:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2186:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1698:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2973:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF3074:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF822:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF544:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF337:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF1463:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF3275:
+ .string "RCU_FLAG_IRC40KSTB"
+.LASF1075:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF714:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF3384:
+ .string "pll_src"
+.LASF2762:
+ .string "_T_SIZE_ "
+.LASF2196:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF1809:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF1600:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF3028:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2928:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF473:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2413:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1603:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF402:
+ .string "__LEAST16 \"h\""
+.LASF2609:
+ .string "USART1 USART_BASE"
+.LASF3207:
+ .string "RCU_SPI1"
+.LASF1665:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF442:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1855:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF538:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF2323:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF3392:
+ .string "ck_ahb"
+.LASF1827:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1090:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF1235:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF2893:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF536:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF3148:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1530:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2333:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1068:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF770:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF1206:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1899:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF2807:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF2206:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2347:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1910:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF2151:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF3394:
+ .string "ck_sys"
+.LASF1974:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1415:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF2725:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF2472:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1386:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF1179:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF2982:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF2170:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1881:
+ .string "I2C0 I2C_BASE"
+.LASF405:
+ .string "_SYS__STDINT_H "
+.LASF3215:
+ .string "RCU_CAN0"
+.LASF3184:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2981:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF2377:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF1987:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF3340:
+ .string "rcu_deepsleep_voltage_set"
+.LASF2126:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF701:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF2565:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1845:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF2838:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF1071:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF2992:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF3096:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF516:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF1526:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF570:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF2368:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF873:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF3256:
+ .string "RCU_DACRST"
+.LASF1792:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF878:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF682:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF2715:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1743:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2173:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1138:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1629:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF458:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1294:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF3049:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF2362:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF589:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF1762:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF3309:
+ .string "RCU_HXTAL"
+.LASF2390:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2101:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF927:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF2823:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1556:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1624:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF1292:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1388:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF1933:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF2236:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF2954:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF2735:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF3072:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF2518:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1729:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2939:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1213:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1652:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF2697:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2933:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF2836:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1944:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF2736:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF893:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF2708:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1243:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF1036:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2130:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2540:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1862:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1007:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF3230:
+ .string "RCU_SPI0"
+.LASF1501:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1578:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF2175:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1032:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF588:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF2357:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF2446:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2251:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF2730:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF647:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF3037:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF679:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF1835:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF1028:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2348:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1301:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2223:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2102:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF1649:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF2779:
+ .string "_T_WCHAR_ "
+.LASF2041:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF3071:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF2976:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1640:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF1326:
+ .string "GD32VF103_ECLIC_H "
+.LASF1985:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF495:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF470:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1481:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF3042:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF2057:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF791:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF2865:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2884:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2796:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF1161:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF2774:
+ .string "__size_t "
+.LASF2211:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF3349:
+ .string "rcu_osci_on"
+.LASF3274:
+ .string "RCU_FLAG_LXTALSTB"
+.LASF2892:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2755:
+ .string "_GCC_PTRDIFF_T "
+.LASF2994:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1865:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1424:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF2819:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2395:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1626:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF2651:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF836:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1693:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF373:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1882:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF796:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF3255:
+ .string "RCU_PMURST"
+.LASF547:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2920:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1601:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2587:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF937:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF920:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF1838:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF2672:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF3295:
+ .string "RCU_INT_FLAG_HXTALSTB_CLR"
+.LASF1276:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2452:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF769:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF527:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2308:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF1725:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2396:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF372:
+ .string "___int_least64_t_defined 1"
+.LASF2616:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF861:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1348:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF1791:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF2742:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF3305:
+ .string "RCU_INT_PLLSTB"
+.LASF1604:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF3257:
+ .string "RCU_AFRST"
+.LASF2815:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF3219:
+ .string "RCU_DAC"
+.LASF2398:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2489:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1092:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1117:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2397:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1154:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF2016:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1816:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1567:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF1963:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF917:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF662:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF580:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF1268:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF1551:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF3238:
+ .string "RCU_TIMER2RST"
+.LASF1302:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF1552:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF2488:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF2911:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF2811:
+ .string "_AT(T,X) ((T)(X))"
+.LASF3174:
+ .string "unsigned int"
+.LASF1943:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF3030:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF425:
+ .string "__int_least64_t_defined 1"
+.LASF2496:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF771:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2284:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF415:
+ .string "_INT64_T_DECLARED "
+.LASF2426:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF3172:
+ .string "OSC_STARTUP_TIMEOUT ((uint32_t)0xFFFFFU)"
+.LASF1686:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2522:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF2599:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1160:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1633:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1549:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1300:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c
new file mode 100644
index 0000000000..b568315e96
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c
@@ -0,0 +1,274 @@
+/*!
+ \file gd32vf103_rtc.c
+ \brief RTC driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_rtc.h"
+
+/* RTC register high / low bits mask */
+#define RTC_HIGH_BITS_MASK ((uint32_t)0x000F0000U) /* RTC high bits mask */
+#define RTC_LOW_BITS_MASK ((uint32_t)0x0000FFFFU) /* RTC low bits mask */
+
+/* RTC register high bits offset */
+#define RTC_HIGH_BITS_OFFSET ((uint32_t)16U)
+
+/*!
+ \brief enter RTC configuration mode
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rtc_configuration_mode_enter(void)
+{
+ RTC_CTL |= RTC_CTL_CMF;
+}
+
+/*!
+ \brief exit RTC configuration mode
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rtc_configuration_mode_exit(void)
+{
+ RTC_CTL &= ~RTC_CTL_CMF;
+}
+
+/*!
+ \brief set RTC counter value
+ \param[in] cnt: RTC counter value
+ \param[out] none
+ \retval none
+*/
+void rtc_counter_set(uint32_t cnt)
+{
+ rtc_configuration_mode_enter();
+ /* set the RTC counter high bits */
+ RTC_CNTH = (cnt >> RTC_HIGH_BITS_OFFSET);
+ /* set the RTC counter low bits */
+ RTC_CNTL = (cnt & RTC_LOW_BITS_MASK);
+ rtc_configuration_mode_exit();
+}
+
+/*!
+ \brief set RTC prescaler value
+ \param[in] psc: RTC prescaler value
+ \param[out] none
+ \retval none
+*/
+void rtc_prescaler_set(uint32_t psc)
+{
+ rtc_configuration_mode_enter();
+ /* set the RTC prescaler high bits */
+ RTC_PSCH = ((psc & RTC_HIGH_BITS_MASK) >> RTC_HIGH_BITS_OFFSET);
+ /* set the RTC prescaler low bits */
+ RTC_PSCL = (psc & RTC_LOW_BITS_MASK);
+ rtc_configuration_mode_exit();
+}
+
+/*!
+ \brief wait RTC last write operation finished flag set
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rtc_lwoff_wait(void)
+{
+ /* loop until LWOFF flag is set */
+ while(RESET == (RTC_CTL & RTC_CTL_LWOFF)){
+ }
+}
+
+/*!
+ \brief wait RTC registers synchronized flag set
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void rtc_register_sync_wait(void)
+{
+ /* clear RSYNF flag */
+ RTC_CTL &= ~RTC_CTL_RSYNF;
+ /* loop until RSYNF flag is set */
+ while(RESET == (RTC_CTL & RTC_CTL_RSYNF)){
+ }
+}
+
+/*!
+ \brief set RTC alarm value
+ \param[in] alarm: RTC alarm value
+ \param[out] none
+ \retval none
+*/
+void rtc_alarm_config(uint32_t alarm)
+{
+ rtc_configuration_mode_enter();
+ /* set the alarm high bits */
+ RTC_ALRMH = (alarm >> RTC_HIGH_BITS_OFFSET);
+ /* set the alarm low bits */
+ RTC_ALRML = (alarm & RTC_LOW_BITS_MASK);
+ rtc_configuration_mode_exit();
+}
+
+/*!
+ \brief get RTC counter value
+ \param[in] none
+ \param[out] none
+ \retval RTC counter value
+*/
+uint32_t rtc_counter_get(void)
+{
+ uint32_t temp = 0x0U;
+
+ temp = RTC_CNTL;
+ temp |= (RTC_CNTH << RTC_HIGH_BITS_OFFSET);
+ return temp;
+}
+
+/*!
+ \brief get RTC divider value
+ \param[in] none
+ \param[out] none
+ \retval RTC divider value
+*/
+uint32_t rtc_divider_get(void)
+{
+ uint32_t temp = 0x00U;
+
+ temp = ((RTC_DIVH & RTC_DIVH_DIV) << RTC_HIGH_BITS_OFFSET);
+ temp |= RTC_DIVL;
+ return temp;
+}
+
+/*!
+ \brief get RTC flag status
+ \param[in] flag: specify which flag status to get
+ only one parameter can be selected which is shown as below:
+ \arg RTC_FLAG_SECOND: second interrupt flag
+ \arg RTC_FLAG_ALARM: alarm interrupt flag
+ \arg RTC_FLAG_OVERFLOW: overflow interrupt flag
+ \arg RTC_FLAG_RSYN: registers synchronized flag
+ \arg RTC_FLAG_LWOF: last write operation finished flag
+ \param[out] none
+ \retval SET or RESET
+*/
+FlagStatus rtc_flag_get(uint32_t flag)
+{
+ if(RESET != (RTC_CTL & flag)){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear RTC flag status
+ \param[in] flag: specify which flag status to clear
+ one or more parameters can be selected which are shown as below:
+ \arg RTC_FLAG_SECOND: second interrupt flag
+ \arg RTC_FLAG_ALARM: alarm interrupt flag
+ \arg RTC_FLAG_OVERFLOW: overflow interrupt flag
+ \arg RTC_FLAG_RSYN: registers synchronized flag
+ \param[out] none
+ \retval none
+*/
+void rtc_flag_clear(uint32_t flag)
+{
+ /* clear RTC flag */
+ RTC_CTL &= ~flag;
+}
+
+/*!
+ \brief get RTC interrupt flag status
+ \param[in] flag: specify which flag status to get
+ only one parameter can be selected which is shown as below:
+ \arg RTC_INT_FLAG_SECOND: second interrupt flag
+ \arg RTC_INT_FLAG_ALARM: alarm interrupt flag
+ \arg RTC_INT_FLAG_OVERFLOW: overflow interrupt flag
+ \param[out] none
+ \retval SET or RESET
+*/
+FlagStatus rtc_interrupt_flag_get(uint32_t flag)
+{
+ if(RESET != (RTC_CTL & flag)){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear RTC interrupt flag status
+ \param[in] flag: specify which flag status to clear
+ one or more parameters can be selected which are shown as below:
+ \arg RTC_INT_FLAG_SECOND: second interrupt flag
+ \arg RTC_INT_FLAG_ALARM: alarm interrupt flag
+ \arg RTC_INT_FLAG_OVERFLOW: overflow interrupt flag
+ \param[out] none
+ \retval none
+*/
+void rtc_interrupt_flag_clear(uint32_t flag)
+{
+ /* clear RTC interrupt flag */
+ RTC_CTL &= ~flag;
+}
+
+/*!
+ \brief enable RTC interrupt
+ \param[in] interrupt: specify which interrupt to enbale
+ one or more parameters can be selected which are shown as below:
+ \arg RTC_INT_SECOND: second interrupt
+ \arg RTC_INT_ALARM: alarm interrupt
+ \arg RTC_INT_OVERFLOW: overflow interrupt
+ \param[out] none
+ \retval none
+*/
+void rtc_interrupt_enable(uint32_t interrupt)
+{
+ RTC_INTEN |= interrupt;
+}
+
+/*!
+ \brief disable RTC interrupt
+ \param[in] interrupt: specify which interrupt to disbale
+ one or more parameters can be selected which are shown as below:
+ \arg RTC_INT_SECOND: second interrupt
+ \arg RTC_INT_ALARM: alarm interrupt
+ \arg RTC_INT_OVERFLOW: overflow interrupt
+ \param[out] none
+ \retval none
+*/
+void rtc_interrupt_disable(uint32_t interrupt)
+{
+ RTC_INTEN &= ~interrupt;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c
new file mode 100644
index 0000000000..4b8864441e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c
@@ -0,0 +1,767 @@
+/*!
+ \file gd32vf103_spi.c
+ \brief SPI driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_spi.h"
+
+/* SPI/I2S parameter initialization mask */
+#define SPI_INIT_MASK ((uint32_t)0x00003040U) /*!< SPI parameter initialization mask */
+#define I2S_INIT_MASK ((uint32_t)0x0000F047U) /*!< I2S parameter initialization mask */
+
+/* I2S clock source selection, multiplication and division mask */
+#define I2S1_CLOCK_SEL ((uint32_t)0x00020000U) /* I2S1 clock source selection */
+#define I2S2_CLOCK_SEL ((uint32_t)0x00040000U) /* I2S2 clock source selection */
+#define I2S_CLOCK_MUL_MASK ((uint32_t)0x0000F000U) /* I2S clock multiplication mask */
+#define I2S_CLOCK_DIV_MASK ((uint32_t)0x000000F0U) /* I2S clock division mask */
+
+/* default value and offset */
+#define SPI_I2SPSC_DEFAULT_VALUE ((uint32_t)0x00000002U) /* default value of SPI_I2SPSC register */
+#define RCU_CFG1_PREDV1_OFFSET 4U /* PREDV1 offset in RCU_CFG1 */
+#define RCU_CFG1_PLL2MF_OFFSET 12U /* PLL2MF offset in RCU_CFG1 */
+
+/*!
+ \brief reset SPI and I2S
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_i2s_deinit(uint32_t spi_periph)
+{
+ switch(spi_periph){
+ case SPI0:
+ /* reset SPI0 */
+ rcu_periph_reset_enable(RCU_SPI0RST);
+ rcu_periph_reset_disable(RCU_SPI0RST);
+ break;
+ case SPI1:
+ /* reset SPI1 and I2S1 */
+ rcu_periph_reset_enable(RCU_SPI1RST);
+ rcu_periph_reset_disable(RCU_SPI1RST);
+ break;
+ case SPI2:
+ /* reset SPI2 and I2S2 */
+ rcu_periph_reset_enable(RCU_SPI2RST);
+ rcu_periph_reset_disable(RCU_SPI2RST);
+ break;
+ default :
+ break;
+ }
+}
+
+/*!
+ \brief initialize the parameters of SPI struct with the default values
+ \param[in] spi_struct: SPI parameter stuct
+ \param[out] none
+ \retval none
+*/
+void spi_struct_para_init(spi_parameter_struct* spi_struct)
+{
+ /* set the SPI struct with the default values */
+ spi_struct->device_mode = SPI_SLAVE;
+ spi_struct->trans_mode = SPI_TRANSMODE_FULLDUPLEX;
+ spi_struct->frame_size = SPI_FRAMESIZE_8BIT;
+ spi_struct->nss = SPI_NSS_HARD;
+ spi_struct->clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
+ spi_struct->prescale = SPI_PSC_2;
+}
+
+/*!
+ \brief initialize SPI parameter
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] spi_struct: SPI parameter initialization stuct members of the structure
+ and the member values are shown as below:
+ device_mode: SPI_MASTER, SPI_SLAVE
+ trans_mode: SPI_TRANSMODE_FULLDUPLEX, SPI_TRANSMODE_RECEIVEONLY,
+ SPI_TRANSMODE_BDRECEIVE, SPI_TRANSMODE_BDTRANSMIT
+ frame_size: SPI_FRAMESIZE_16BIT, SPI_FRAMESIZE_8BIT
+ nss: SPI_NSS_SOFT, SPI_NSS_HARD
+ endian: SPI_ENDIAN_MSB, SPI_ENDIAN_LSB
+ clock_polarity_phase: SPI_CK_PL_LOW_PH_1EDGE, SPI_CK_PL_HIGH_PH_1EDGE
+ SPI_CK_PL_LOW_PH_2EDGE, SPI_CK_PL_HIGH_PH_2EDGE
+ prescale: SPI_PSC_n (n=2,4,8,16,32,64,128,256)
+ \param[out] none
+ \retval none
+*/
+void spi_init(uint32_t spi_periph, spi_parameter_struct* spi_struct)
+{
+ uint32_t reg = 0U;
+ reg = SPI_CTL0(spi_periph);
+ reg &= SPI_INIT_MASK;
+
+ /* select SPI as master or slave */
+ reg |= spi_struct->device_mode;
+ /* select SPI transfer mode */
+ reg |= spi_struct->trans_mode;
+ /* select SPI frame size */
+ reg |= spi_struct->frame_size;
+ /* select SPI NSS use hardware or software */
+ reg |= spi_struct->nss;
+ /* select SPI LSB or MSB */
+ reg |= spi_struct->endian;
+ /* select SPI polarity and phase */
+ reg |= spi_struct->clock_polarity_phase;
+ /* select SPI prescale to adjust transmit speed */
+ reg |= spi_struct->prescale;
+
+ /* write to SPI_CTL0 register */
+ SPI_CTL0(spi_periph) = (uint32_t)reg;
+
+ SPI_I2SCTL(spi_periph) &= (uint32_t)(~SPI_I2SCTL_I2SSEL);
+}
+
+/*!
+ \brief enable SPI
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_enable(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_SPIEN;
+}
+
+/*!
+ \brief disable SPI
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_disable(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_SPIEN);
+}
+
+/*!
+ \brief initialize I2S parameter
+ \param[in] spi_periph: SPIx(x=1,2)
+ \param[in] mode: I2S operation mode
+ only one parameter can be selected which is shown as below:
+ \arg I2S_MODE_SLAVETX: I2S slave transmit mode
+ \arg I2S_MODE_SLAVERX: I2S slave receive mode
+ \arg I2S_MODE_MASTERTX: I2S master transmit mode
+ \arg I2S_MODE_MASTERRX: I2S master receive mode
+ \param[in] standard: I2S standard
+ only one parameter can be selected which is shown as below:
+ \arg I2S_STD_PHILLIPS: I2S phillips standard
+ \arg I2S_STD_MSB: I2S MSB standard
+ \arg I2S_STD_LSB: I2S LSB standard
+ \arg I2S_STD_PCMSHORT: I2S PCM short standard
+ \arg I2S_STD_PCMLONG: I2S PCM long standard
+ \param[in] ckpl: I2S idle state clock polarity
+ only one parameter can be selected which is shown as below:
+ \arg I2S_CKPL_LOW: I2S clock polarity low level
+ \arg I2S_CKPL_HIGH: I2S clock polarity high level
+ \param[out] none
+ \retval none
+*/
+void i2s_init(uint32_t spi_periph, uint32_t mode, uint32_t standard, uint32_t ckpl)
+{
+ uint32_t reg = 0U;
+ reg = SPI_I2SCTL(spi_periph);
+ reg &= I2S_INIT_MASK;
+
+ /* enable I2S mode */
+ reg |= (uint32_t)SPI_I2SCTL_I2SSEL;
+ /* select I2S mode */
+ reg |= (uint32_t)mode;
+ /* select I2S standard */
+ reg |= (uint32_t)standard;
+ /* select I2S polarity */
+ reg |= (uint32_t)ckpl;
+
+ /* write to SPI_I2SCTL register */
+ SPI_I2SCTL(spi_periph) = (uint32_t)reg;
+}
+
+/*!
+ \brief configure I2S prescaler
+ \param[in] spi_periph: SPIx(x=1,2)
+ \param[in] audiosample: I2S audio sample rate
+ only one parameter can be selected which is shown as below:
+ \arg I2S_AUDIOSAMPLE_8K: audio sample rate is 8KHz
+ \arg I2S_AUDIOSAMPLE_11K: audio sample rate is 11KHz
+ \arg I2S_AUDIOSAMPLE_16K: audio sample rate is 16KHz
+ \arg I2S_AUDIOSAMPLE_22K: audio sample rate is 22KHz
+ \arg I2S_AUDIOSAMPLE_32K: audio sample rate is 32KHz
+ \arg I2S_AUDIOSAMPLE_44K: audio sample rate is 44KHz
+ \arg I2S_AUDIOSAMPLE_48K: audio sample rate is 48KHz
+ \arg I2S_AUDIOSAMPLE_96K: audio sample rate is 96KHz
+ \arg I2S_AUDIOSAMPLE_192K: audio sample rate is 192KHz
+ \param[in] frameformat: I2S data length and channel length
+ only one parameter can be selected which is shown as below:
+ \arg I2S_FRAMEFORMAT_DT16B_CH16B: I2S data length is 16 bit and channel length is 16 bit
+ \arg I2S_FRAMEFORMAT_DT16B_CH32B: I2S data length is 16 bit and channel length is 32 bit
+ \arg I2S_FRAMEFORMAT_DT24B_CH32B: I2S data length is 24 bit and channel length is 32 bit
+ \arg I2S_FRAMEFORMAT_DT32B_CH32B: I2S data length is 32 bit and channel length is 32 bit
+ \param[in] mckout: I2S master clock output
+ only one parameter can be selected which is shown as below:
+ \arg I2S_MCKOUT_ENABLE: I2S master clock output enable
+ \arg I2S_MCKOUT_DISABLE: I2S master clock output disable
+ \param[out] none
+ \retval none
+*/
+void i2s_psc_config(uint32_t spi_periph, uint32_t audiosample, uint32_t frameformat, uint32_t mckout)
+{
+ uint32_t i2sdiv = 2U, i2sof = 0U;
+ uint32_t clks = 0U;
+ uint32_t i2sclock = 0U;
+
+ /* deinit SPI_I2SPSC register */
+ SPI_I2SPSC(spi_periph) = SPI_I2SPSC_DEFAULT_VALUE;
+
+ /* get the I2S clock source */
+ if(SPI1 == ((uint32_t)spi_periph)){
+ /* I2S1 clock source selection */
+ clks = I2S1_CLOCK_SEL;
+ }else{
+ /* I2S2 clock source selection */
+ clks = I2S2_CLOCK_SEL;
+ }
+
+ if(0U != (RCU_CFG1 & clks)){
+ /* get RCU PLL2 clock multiplication factor */
+ clks = (uint32_t)((RCU_CFG1 & I2S_CLOCK_MUL_MASK) >> RCU_CFG1_PLL2MF_OFFSET);
+
+ if((clks > 5U) && (clks < 15U)){
+ /* multiplier is between 8 and 16 */
+ clks += 2U;
+ }else{
+ if(15U == clks){
+ /* multiplier is 20 */
+ clks = 20U;
+ }
+ }
+
+ /* get the PREDV1 value */
+ i2sclock = (uint32_t)(((RCU_CFG1 & I2S_CLOCK_DIV_MASK) >> RCU_CFG1_PREDV1_OFFSET) + 1U);
+ /* calculate I2S clock based on PLL2 and PREDV1 */
+ i2sclock = (uint32_t)((HXTAL_VALUE / i2sclock) * clks * 2U);
+ }else{
+ /* get system clock */
+ i2sclock = rcu_clock_freq_get(CK_SYS);
+ }
+
+ /* config the prescaler depending on the mclk output state, the frame format and audio sample rate */
+ if(I2S_MCKOUT_ENABLE == mckout){
+ clks = (uint32_t)(((i2sclock / 256U) * 10U) / audiosample);
+ }else{
+ if(I2S_FRAMEFORMAT_DT16B_CH16B == frameformat){
+ clks = (uint32_t)(((i2sclock / 32U) *10U ) / audiosample);
+ }else{
+ clks = (uint32_t)(((i2sclock / 64U) *10U ) / audiosample);
+ }
+ }
+
+ /* remove the floating point */
+ clks = (clks + 5U) / 10U;
+ i2sof = (clks & 0x00000001U);
+ i2sdiv = ((clks - i2sof) / 2U);
+ i2sof = (i2sof << 8U);
+
+ /* set the default values */
+ if((i2sdiv < 2U) || (i2sdiv > 255U)){
+ i2sdiv = 2U;
+ i2sof = 0U;
+ }
+ /* configure SPI_I2SPSC */
+ SPI_I2SPSC(spi_periph) = (uint32_t)(i2sdiv | i2sof | mckout);
+
+ /* clear SPI_I2SCTL_DTLEN and SPI_I2SCTL_CHLEN bits */
+ SPI_I2SCTL(spi_periph) &= (uint32_t)(~(SPI_I2SCTL_DTLEN | SPI_I2SCTL_CHLEN));
+ /* configure data frame format */
+ SPI_I2SCTL(spi_periph) |= (uint32_t)frameformat;
+}
+
+/*!
+ \brief enable I2S
+ \param[in] spi_periph: SPIx(x=1,2)
+ \param[out] none
+ \retval none
+*/
+void i2s_enable(uint32_t spi_periph)
+{
+ SPI_I2SCTL(spi_periph) |= (uint32_t)SPI_I2SCTL_I2SEN;
+}
+
+/*!
+ \brief disable I2S
+ \param[in] spi_periph: SPIx(x=1,2)
+ \param[out] none
+ \retval none
+*/
+void i2s_disable(uint32_t spi_periph)
+{
+ SPI_I2SCTL(spi_periph) &= (uint32_t)(~SPI_I2SCTL_I2SEN);
+}
+
+/*!
+ \brief enable SPI NSS output
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_nss_output_enable(uint32_t spi_periph)
+{
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_NSSDRV;
+}
+
+/*!
+ \brief disable SPI NSS output
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_nss_output_disable(uint32_t spi_periph)
+{
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_NSSDRV);
+}
+
+/*!
+ \brief SPI NSS pin high level in software mode
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_nss_internal_high(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_SWNSS;
+}
+
+/*!
+ \brief SPI NSS pin low level in software mode
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_nss_internal_low(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_SWNSS);
+}
+
+/*!
+ \brief enable SPI DMA send or receive
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] dma: SPI DMA mode
+ only one parameter can be selected which is shown as below:
+ \arg SPI_DMA_TRANSMIT: SPI transmit data using DMA
+ \arg SPI_DMA_RECEIVE: SPI receive data using DMA
+ \param[out] none
+ \retval none
+*/
+void spi_dma_enable(uint32_t spi_periph, uint8_t dma)
+{
+ if(SPI_DMA_TRANSMIT == dma){
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_DMATEN;
+ }else{
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_DMAREN;
+ }
+}
+
+/*!
+ \brief disable SPI DMA send or receive
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] dma: SPI DMA mode
+ only one parameter can be selected which is shown as below:
+ \arg SPI_DMA_TRANSMIT: SPI transmit data using DMA
+ \arg SPI_DMA_RECEIVE: SPI receive data using DMA
+ \param[out] none
+ \retval none
+*/
+void spi_dma_disable(uint32_t spi_periph, uint8_t dma)
+{
+ if(SPI_DMA_TRANSMIT == dma){
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_DMATEN);
+ }else{
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_DMAREN);
+ }
+}
+
+/*!
+ \brief configure SPI/I2S data frame format
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] frame_format: SPI frame size
+ only one parameter can be selected which is shown as below:
+ \arg SPI_FRAMESIZE_16BIT: SPI frame size is 16 bits
+ \arg SPI_FRAMESIZE_8BIT: SPI frame size is 8 bits
+ \param[out] none
+ \retval none
+*/
+void spi_i2s_data_frame_format_config(uint32_t spi_periph, uint16_t frame_format)
+{
+ /* clear SPI_CTL0_FF16 bit */
+ SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_FF16);
+ /* configure SPI_CTL0_FF16 bit */
+ SPI_CTL0(spi_periph) |= (uint32_t)frame_format;
+}
+
+/*!
+ \brief SPI transmit data
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] data: 16-bit data
+ \param[out] none
+ \retval none
+*/
+void spi_i2s_data_transmit(uint32_t spi_periph, uint16_t data)
+{
+ SPI_DATA(spi_periph) = (uint32_t)data;
+}
+
+/*!
+ \brief SPI receive data
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval 16-bit data
+*/
+uint16_t spi_i2s_data_receive(uint32_t spi_periph)
+{
+ return ((uint16_t)SPI_DATA(spi_periph));
+}
+
+/*!
+ \brief configure SPI bidirectional transfer direction
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] transfer_direction: SPI transfer direction
+ only one parameter can be selected which is shown as below:
+ \arg SPI_BIDIRECTIONAL_TRANSMIT: SPI work in transmit-only mode
+ \arg SPI_BIDIRECTIONAL_RECEIVE: SPI work in receive-only mode
+ \param[out] none
+ \retval none
+*/
+void spi_bidirectional_transfer_config(uint32_t spi_periph, uint32_t transfer_direction)
+{
+ if(SPI_BIDIRECTIONAL_TRANSMIT == transfer_direction){
+ /* set the transmit-only mode */
+ SPI_CTL0(spi_periph) |= (uint32_t)SPI_BIDIRECTIONAL_TRANSMIT;
+ }else{
+ /* set the receive-only mode */
+ SPI_CTL0(spi_periph) &= SPI_BIDIRECTIONAL_RECEIVE;
+ }
+}
+
+/*!
+ \brief set SPI CRC polynomial
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] crc_poly: CRC polynomial value
+ \param[out] none
+ \retval none
+*/
+void spi_crc_polynomial_set(uint32_t spi_periph,uint16_t crc_poly)
+{
+ /* enable SPI CRC */
+ SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_CRCEN;
+
+ /* set SPI CRC polynomial */
+ SPI_CRCPOLY(spi_periph) = (uint32_t)crc_poly;
+}
+
+/*!
+ \brief get SPI CRC polynomial
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval 16-bit CRC polynomial
+*/
+uint16_t spi_crc_polynomial_get(uint32_t spi_periph)
+{
+ return ((uint16_t)SPI_CRCPOLY(spi_periph));
+}
+
+/*!
+ \brief turn on CRC function
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_crc_on(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_CRCEN;
+}
+
+/*!
+ \brief turn off CRC function
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_crc_off(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) &= (uint32_t)(~SPI_CTL0_CRCEN);
+}
+
+/*!
+ \brief SPI next data is CRC value
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_crc_next(uint32_t spi_periph)
+{
+ SPI_CTL0(spi_periph) |= (uint32_t)SPI_CTL0_CRCNT;
+}
+
+/*!
+ \brief get SPI CRC send value or receive value
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] crc: SPI crc value
+ only one parameter can be selected which is shown as below:
+ \arg SPI_CRC_TX: get transmit crc value
+ \arg SPI_CRC_RX: get receive crc value
+ \param[out] none
+ \retval 16-bit CRC value
+*/
+uint16_t spi_crc_get(uint32_t spi_periph,uint8_t crc)
+{
+ if(SPI_CRC_TX == crc){
+ return ((uint16_t)(SPI_TCRC(spi_periph)));
+ }else{
+ return ((uint16_t)(SPI_RCRC(spi_periph)));
+ }
+}
+
+/*!
+ \brief enable SPI TI mode
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_ti_mode_enable(uint32_t spi_periph)
+{
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_TMOD;
+}
+
+/*!
+ \brief disable SPI TI mode
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_ti_mode_disable(uint32_t spi_periph)
+{
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_TMOD);
+}
+
+/*!
+ \brief enable SPI NSS pulse mode
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_nssp_mode_enable(uint32_t spi_periph)
+{
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_NSSP;
+}
+
+/*!
+ \brief disable SPI NSS pulse mode
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_nssp_mode_disable(uint32_t spi_periph)
+{
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_NSSP);
+}
+
+
+/*!
+ \brief enable SPI and I2S interrupt
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] interrupt: SPI/I2S interrupt
+ only one parameter can be selected which is shown as below:
+ \arg SPI_I2S_INT_TBE: transmit buffer empty interrupt
+ \arg SPI_I2S_INT_RBNE: receive buffer not empty interrupt
+ \arg SPI_I2S_INT_ERR: CRC error,configuration error,reception overrun error,
+ transmission underrun error and format error interrupt
+ \param[out] none
+ \retval none
+*/
+void spi_i2s_interrupt_enable(uint32_t spi_periph, uint8_t interrupt)
+{
+ switch(interrupt){
+ /* SPI/I2S transmit buffer empty interrupt */
+ case SPI_I2S_INT_TBE:
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_TBEIE;
+ break;
+ /* SPI/I2S receive buffer not empty interrupt */
+ case SPI_I2S_INT_RBNE:
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_RBNEIE;
+ break;
+ /* SPI/I2S error */
+ case SPI_I2S_INT_ERR:
+ SPI_CTL1(spi_periph) |= (uint32_t)SPI_CTL1_ERRIE;
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief disable SPI and I2S interrupt
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] interrupt: SPI/I2S interrupt
+ only one parameter can be selected which is shown as below:
+ \arg SPI_I2S_INT_TBE: transmit buffer empty interrupt
+ \arg SPI_I2S_INT_RBNE: receive buffer not empty interrupt
+ \arg SPI_I2S_INT_ERR: CRC error,configuration error,reception overrun error,
+ transmission underrun error and format error interrupt
+ \param[out] none
+ \retval none
+*/
+void spi_i2s_interrupt_disable(uint32_t spi_periph, uint8_t interrupt)
+{
+ switch(interrupt){
+ /* SPI/I2S transmit buffer empty interrupt */
+ case SPI_I2S_INT_TBE:
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_TBEIE);
+ break;
+ /* SPI/I2S receive buffer not empty interrupt */
+ case SPI_I2S_INT_RBNE:
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_RBNEIE);
+ break;
+ /* SPI/I2S error */
+ case SPI_I2S_INT_ERR:
+ SPI_CTL1(spi_periph) &= (uint32_t)(~SPI_CTL1_ERRIE);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief get SPI and I2S interrupt flag status
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] interrupt: SPI/I2S interrupt flag status
+ only one parameter can be selected which is shown as below:
+ \arg SPI_I2S_INT_FLAG_TBE: transmit buffer empty interrupt flag
+ \arg SPI_I2S_INT_FLAG_RBNE: receive buffer not empty interrupt flag
+ \arg SPI_I2S_INT_FLAG_RXORERR: overrun interrupt flag
+ \arg SPI_INT_FLAG_CONFERR: config error interrupt flag
+ \arg SPI_INT_FLAG_CRCERR: CRC error interrupt flag
+ \arg I2S_INT_FLAG_TXURERR: underrun error interrupt flag
+ \arg SPI_I2S_INT_FLAG_FERR: format error interrupt flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus spi_i2s_interrupt_flag_get(uint32_t spi_periph, uint8_t interrupt)
+{
+ uint32_t reg1 = SPI_STAT(spi_periph);
+ uint32_t reg2 = SPI_CTL1(spi_periph);
+
+ switch(interrupt){
+ /* SPI/I2S transmit buffer empty interrupt */
+ case SPI_I2S_INT_FLAG_TBE:
+ reg1 = reg1 & SPI_STAT_TBE;
+ reg2 = reg2 & SPI_CTL1_TBEIE;
+ break;
+ /* SPI/I2S receive buffer not empty interrupt */
+ case SPI_I2S_INT_FLAG_RBNE:
+ reg1 = reg1 & SPI_STAT_RBNE;
+ reg2 = reg2 & SPI_CTL1_RBNEIE;
+ break;
+ /* SPI/I2S overrun interrupt */
+ case SPI_I2S_INT_FLAG_RXORERR:
+ reg1 = reg1 & SPI_STAT_RXORERR;
+ reg2 = reg2 & SPI_CTL1_ERRIE;
+ break;
+ /* SPI config error interrupt */
+ case SPI_INT_FLAG_CONFERR:
+ reg1 = reg1 & SPI_STAT_CONFERR;
+ reg2 = reg2 & SPI_CTL1_ERRIE;
+ break;
+ /* SPI CRC error interrupt */
+ case SPI_INT_FLAG_CRCERR:
+ reg1 = reg1 & SPI_STAT_CRCERR;
+ reg2 = reg2 & SPI_CTL1_ERRIE;
+ break;
+ /* I2S underrun error interrupt */
+ case I2S_INT_FLAG_TXURERR:
+ reg1 = reg1 & SPI_STAT_TXURERR;
+ reg2 = reg2 & SPI_CTL1_ERRIE;
+ break;
+ /* SPI/I2S format error interrupt */
+ case SPI_I2S_INT_FLAG_FERR:
+ reg1 = reg1 & SPI_STAT_FERR;
+ reg2 = reg2 & SPI_CTL1_ERRIE;
+ break;
+ default:
+ break;
+ }
+ /* get SPI/I2S interrupt flag status */
+ if((0U != reg1) && (0U != reg2)){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief get SPI and I2S flag status
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[in] flag: SPI/I2S flag status
+ one or more parameters can be selected which are shown as below:
+ \arg SPI_FLAG_TBE: transmit buffer empty flag
+ \arg SPI_FLAG_RBNE: receive buffer not empty flag
+ \arg SPI_FLAG_TRANS: transmit on-going flag
+ \arg SPI_FLAG_RXORERR: receive overrun error flag
+ \arg SPI_FLAG_CONFERR: mode config error flag
+ \arg SPI_FLAG_CRCERR: CRC error flag
+ \arg SPI_FLAG_FERR: format error interrupt flag
+ \arg I2S_FLAG_TBE: transmit buffer empty flag
+ \arg I2S_FLAG_RBNE: receive buffer not empty flag
+ \arg I2S_FLAG_TRANS: transmit on-going flag
+ \arg I2S_FLAG_RXORERR: overrun error flag
+ \arg I2S_FLAG_TXURERR: underrun error flag
+ \arg I2S_FLAG_CH: channel side flag
+ \arg I2S_FLAG_FERR: format error interrupt flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus spi_i2s_flag_get(uint32_t spi_periph, uint32_t flag)
+{
+ if(RESET != (SPI_STAT(spi_periph) & flag)){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear SPI CRC error flag status
+ \param[in] spi_periph: SPIx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void spi_crc_error_clear(uint32_t spi_periph)
+{
+ SPI_STAT(spi_periph) &= (uint32_t)(~SPI_FLAG_CRCERR);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c
new file mode 100644
index 0000000000..8697fd83fe
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c
@@ -0,0 +1,1967 @@
+/*!
+ \file gd32vf103_timer.c
+ \brief TIMER driver
+
+ \version 2019-06-05, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+#include "gd32vf103_timer.h"
+
+/* TIMER init parameter mask */
+#define ALIGNEDMODE_MASK ((uint32_t)0x00000060U) /*!< TIMER init parameter aligne dmode mask */
+#define COUNTERDIRECTION_MASK ((uint32_t)0x00000010U) /*!< TIMER init parameter counter direction mask */
+#define CLOCKDIVISION_MASK ((uint32_t)0x00000300U) /*!< TIMER init parameter clock division value mask */
+
+/*!
+ \brief deinit a timer
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_deinit(uint32_t timer_periph)
+{
+ switch(timer_periph){
+ case TIMER0:
+ /* reset TIMER0 */
+ rcu_periph_reset_enable(RCU_TIMER0RST);
+ rcu_periph_reset_disable(RCU_TIMER0RST);
+ break;
+ case TIMER1:
+ /* reset TIMER1 */
+ rcu_periph_reset_enable(RCU_TIMER1RST);
+ rcu_periph_reset_disable(RCU_TIMER1RST);
+ break;
+ case TIMER2:
+ /* reset TIMER2 */
+ rcu_periph_reset_enable(RCU_TIMER2RST);
+ rcu_periph_reset_disable(RCU_TIMER2RST);
+ break;
+ case TIMER3:
+ /* reset TIMER3 */
+ rcu_periph_reset_enable(RCU_TIMER3RST);
+ rcu_periph_reset_disable(RCU_TIMER3RST);
+ break;
+ case TIMER4:
+ /* reset TIMER4 */
+ rcu_periph_reset_enable(RCU_TIMER4RST);
+ rcu_periph_reset_disable(RCU_TIMER4RST);
+ break;
+ case TIMER5:
+ /* reset TIMER5 */
+ rcu_periph_reset_enable(RCU_TIMER5RST);
+ rcu_periph_reset_disable(RCU_TIMER5RST);
+ break;
+ case TIMER6:
+ /* reset TIMER6 */
+ rcu_periph_reset_enable(RCU_TIMER6RST);
+ rcu_periph_reset_disable(RCU_TIMER6RST);
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief initialize TIMER init parameter struct with a default value
+ \param[in] initpara: init parameter struct
+ \param[out] none
+ \retval none
+*/
+void timer_struct_para_init(timer_parameter_struct* initpara)
+{
+ /* initialize the init parameter struct member with the default value */
+ initpara->prescaler = 0U;
+ initpara->alignedmode = TIMER_COUNTER_EDGE;
+ initpara->counterdirection = TIMER_COUNTER_UP;
+ initpara->period = 65535U;
+ initpara->clockdivision = TIMER_CKDIV_DIV1;
+ initpara->repetitioncounter = 0U;
+}
+
+/*!
+ \brief initialize TIMER counter
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] initpara: init parameter struct
+ prescaler: prescaler value of the counter clock, 0~65535
+ alignedmode: TIMER_COUNTER_EDGE, TIMER_COUNTER_CENTER_DOWN, TIMER_COUNTER_CENTER_UP,
+ TIMER_COUNTER_CENTER_BOTH
+ counterdirection: TIMER_COUNTER_UP, TIMER_COUNTER_DOWN
+ period: counter auto reload value, 0~65535
+ clockdivision: TIMER_CKDIV_DIV1, TIMER_CKDIV_DIV2, TIMER_CKDIV_DIV4
+ repetitioncounter: counter repetition value, 0~255
+ \param[out] none
+ \retval none
+*/
+void timer_init(uint32_t timer_periph, timer_parameter_struct* initpara)
+{
+ /* configure the counter prescaler value */
+ TIMER_PSC(timer_periph) = (uint16_t)initpara->prescaler;
+
+ /* configure the counter direction and aligned mode */
+ if((TIMER0 == timer_periph) || (TIMER1 == timer_periph) || (TIMER2 == timer_periph)
+ || (TIMER3 == timer_periph) || (TIMER4 == timer_periph) ){
+ TIMER_CTL0(timer_periph) &= (~(uint32_t)(TIMER_CTL0_DIR | TIMER_CTL0_CAM));
+ TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->alignedmode & ALIGNEDMODE_MASK);
+ TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->counterdirection & COUNTERDIRECTION_MASK);
+ }else{
+ TIMER_CTL0(timer_periph) &= (uint32_t)(~ TIMER_CTL0_DIR);
+ TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->counterdirection & COUNTERDIRECTION_MASK);
+ }
+
+ /* configure the autoreload value */
+ TIMER_CAR(timer_periph) = (uint32_t)initpara->period;
+
+ if((TIMER5 != timer_periph) && (TIMER6 != timer_periph)){
+ /* reset the CKDIV bit */
+ TIMER_CTL0(timer_periph) &= (~(uint32_t)TIMER_CTL0_CKDIV);
+ TIMER_CTL0(timer_periph) |= (uint32_t)(initpara->clockdivision & CLOCKDIVISION_MASK);
+ }
+
+ if (TIMER0 == timer_periph) {
+ /* configure the repetition counter value */
+ TIMER_CREP(timer_periph) = (uint32_t)initpara->repetitioncounter;
+ }
+
+ /* generate an update event */
+ TIMER_SWEVG(timer_periph) |= (uint32_t)TIMER_SWEVG_UPG;
+}
+
+/*!
+ \brief enable a timer
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_enable(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_CEN;
+}
+
+/*!
+ \brief disable a timer
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_disable(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_CEN;
+}
+
+/*!
+ \brief enable the auto reload shadow function
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_auto_reload_shadow_enable(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_ARSE;
+}
+
+/*!
+ \brief disable the auto reload shadow function
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_auto_reload_shadow_disable(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_ARSE;
+}
+
+/*!
+ \brief enable the update event
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_update_event_enable(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_UPDIS;
+}
+
+/*!
+ \brief disable the update event
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval none
+*/
+void timer_update_event_disable(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) |= (uint32_t) TIMER_CTL0_UPDIS;
+}
+
+/*!
+ \brief set TIMER counter alignment mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] aligned:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_COUNTER_EDGE: edge-aligned mode
+ \arg TIMER_COUNTER_CENTER_DOWN: center-aligned and counting down assert mode
+ \arg TIMER_COUNTER_CENTER_UP: center-aligned and counting up assert mode
+ \arg TIMER_COUNTER_CENTER_BOTH: center-aligned and counting up/down assert mode
+ \param[out] none
+ \retval none
+*/
+void timer_counter_alignment(uint32_t timer_periph, uint16_t aligned)
+{
+ TIMER_CTL0(timer_periph) &= (uint32_t)(~TIMER_CTL0_CAM);
+ TIMER_CTL0(timer_periph) |= (uint32_t)aligned;
+}
+
+/*!
+ \brief set TIMER counter up direction
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void timer_counter_up_direction(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_DIR;
+}
+
+/*!
+ \brief set TIMER counter down direction
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void timer_counter_down_direction(uint32_t timer_periph)
+{
+ TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_DIR;
+}
+
+/*!
+ \brief configure TIMER prescaler
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] prescaler: prescaler value
+ \param[in] pscreload: prescaler reload mode
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_PSC_RELOAD_NOW: the prescaler is loaded right now
+ \arg TIMER_PSC_RELOAD_UPDATE: the prescaler is loaded at the next update event
+ \param[out] none
+ \retval none
+*/
+void timer_prescaler_config(uint32_t timer_periph, uint16_t prescaler, uint32_t pscreload)
+{
+ TIMER_PSC(timer_periph) = (uint32_t)prescaler;
+
+ if(TIMER_PSC_RELOAD_NOW == pscreload){
+ TIMER_SWEVG(timer_periph) |= (uint32_t)TIMER_SWEVG_UPG;
+ }
+}
+
+/*!
+ \brief configure TIMER repetition register value
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] repetition: the counter repetition value, 0~255
+ \param[out] none
+ \retval none
+*/
+void timer_repetition_value_config(uint32_t timer_periph, uint16_t repetition)
+{
+ TIMER_CREP(timer_periph) = (uint32_t)repetition;
+}
+
+/*!
+ \brief configure TIMER autoreload register value
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] autoreload: the counter auto-reload value
+ \param[out] none
+ \retval none
+*/
+void timer_autoreload_value_config(uint32_t timer_periph, uint16_t autoreload)
+{
+ TIMER_CAR(timer_periph) = (uint32_t)autoreload;
+}
+
+/*!
+ \brief configure TIMER counter register value
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] counter: the counter value
+ \param[out] none
+ \retval none
+*/
+void timer_counter_value_config(uint32_t timer_periph, uint16_t counter)
+{
+ TIMER_CNT(timer_periph) = (uint32_t)counter;
+}
+
+/*!
+ \brief read TIMER counter value
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval counter value
+*/
+uint32_t timer_counter_read(uint32_t timer_periph)
+{
+ uint32_t count_value = 0U;
+ count_value = TIMER_CNT(timer_periph);
+ return (count_value);
+}
+
+/*!
+ \brief read TIMER prescaler value
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[out] none
+ \retval prescaler register value
+*/
+uint16_t timer_prescaler_read(uint32_t timer_periph)
+{
+ uint16_t prescaler_value = 0U;
+ prescaler_value = (uint16_t) (TIMER_PSC(timer_periph));
+ return (prescaler_value);
+}
+
+/*!
+ \brief configure TIMER single pulse mode
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] spmode:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_SP_MODE_SINGLE: single pulse mode
+ \arg TIMER_SP_MODE_REPETITIVE: repetitive pulse mode
+ \param[out] none
+ \retval none
+*/
+void timer_single_pulse_mode_config(uint32_t timer_periph, uint32_t spmode)
+{
+ if(TIMER_SP_MODE_SINGLE == spmode){
+ TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_SPM;
+ }else if(TIMER_SP_MODE_REPETITIVE == spmode){
+ TIMER_CTL0(timer_periph) &= ~((uint32_t)TIMER_CTL0_SPM);
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief configure TIMER update source
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] update:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_UPDATE_SRC_GLOBAL: update generate by setting of UPG bit or the counter overflow/underflow,
+ or the slave mode controller trigger
+ \arg TIMER_UPDATE_SRC_REGULAR: update generate only by counter overflow/underflow
+ \param[out] none
+ \retval none
+*/
+void timer_update_source_config(uint32_t timer_periph, uint32_t update)
+{
+ if(TIMER_UPDATE_SRC_REGULAR == update){
+ TIMER_CTL0(timer_periph) |= (uint32_t)TIMER_CTL0_UPS;
+ }else if(TIMER_UPDATE_SRC_GLOBAL == update){
+ TIMER_CTL0(timer_periph) &= ~(uint32_t)TIMER_CTL0_UPS;
+ }else{
+ /* illegal parameters */
+ }
+}
+
+
+/*!
+ \brief enable the TIMER DMA
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] dma: specify which DMA to enable
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_DMA_UPD: update DMA enable, TIMERx(x=0..6)
+ \arg TIMER_DMA_CH0D: channel 0 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CH1D: channel 1 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CH2D: channel 2 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CH3D: channel 3 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CMTD: channel commutation DMA request enable, TIMERx(x=0)
+ \arg TIMER_DMA_TRGD: trigger DMA enable, TIMERx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void timer_dma_enable(uint32_t timer_periph, uint16_t dma)
+{
+ TIMER_DMAINTEN(timer_periph) |= (uint32_t) dma;
+}
+
+/*!
+ \brief disable the TIMER DMA
+ \param[in] timer_periph: TIMERxTIMERx(x=0..6)
+ \param[in] dma: specify which DMA to disbale
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_DMA_UPD: update DMA enable, TIMERx(x=0..6)
+ \arg TIMER_DMA_CH0D: channel 0 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CH1D: channel 1 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CH2D: channel 2 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CH3D: channel 3 DMA enable, TIMERx(x=0..4)
+ \arg TIMER_DMA_CMTD: channel commutation DMA request enable, TIMERx(x=0)
+ \arg TIMER_DMA_TRGD: trigger DMA enable, TIMERx(x=0..4,7)
+ \param[out] none
+ \retval none
+*/
+void timer_dma_disable(uint32_t timer_periph, uint16_t dma)
+{
+ TIMER_DMAINTEN(timer_periph) &= (~(uint32_t)(dma));
+}
+
+/*!
+ \brief channel DMA request source selection
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] dma_request: channel DMA request source selection
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_DMAREQUEST_CHANNELEVENT: DMA request of channel n is sent when channel n event occurs
+ \arg TIMER_DMAREQUEST_UPDATEEVENT: DMA request of channel n is sent when update event occurs
+ \param[out] none
+ \retval none
+*/
+void timer_channel_dma_request_source_select(uint32_t timer_periph, uint32_t dma_request)
+{
+ if(TIMER_DMAREQUEST_UPDATEEVENT == dma_request){
+ TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_DMAS;
+ }else if(TIMER_DMAREQUEST_CHANNELEVENT == dma_request){
+ TIMER_CTL1(timer_periph) &= ~(uint32_t)TIMER_CTL1_DMAS;
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief configure the TIMER DMA transfer
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] dma_baseaddr:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_DMACFG_DMATA_CTL0: DMA transfer address is TIMER_CTL0, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CTL1: DMA transfer address is TIMER_CTL1, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_SMCFG: DMA transfer address is TIMER_SMCFG, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_DMAINTEN: DMA transfer address is TIMER_DMAINTEN, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_INTF: DMA transfer address is TIMER_INTF, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_SWEVG: DMA transfer address is TIMER_SWEVG, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CHCTL0: DMA transfer address is TIMER_CHCTL0, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CHCTL1: DMA transfer address is TIMER_CHCTL1, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CHCTL2: DMA transfer address is TIMER_CHCTL2, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CNT: DMA transfer address is TIMER_CNT, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_PSC: DMA transfer address is TIMER_PSC, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CAR: DMA transfer address is TIMER_CAR, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CREP: DMA transfer address is TIMER_CREP, TIMERx(x=0)
+ \arg TIMER_DMACFG_DMATA_CH0CV: DMA transfer address is TIMER_CH0CV, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CH1CV: DMA transfer address is TIMER_CH1CV, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CH2CV: DMA transfer address is TIMER_CH2CV, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CH3CV: DMA transfer address is TIMER_CH3CV, TIMERx(x=0..4)
+ \arg TIMER_DMACFG_DMATA_CCHP: DMA transfer address is TIMER_CCHP, TIMERx(x=0)
+ \arg TIMER_DMACFG_DMATA_DMACFG: DMA transfer address is TIMER_DMACFG, TIMERx(x=0..4)
+ \param[in] dma_lenth:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_DMACFG_DMATC_xTRANSFER(x=1..6): DMA transfer x time
+ \param[out] none
+ \retval none
+*/
+void timer_dma_transfer_config(uint32_t timer_periph, uint32_t dma_baseaddr, uint32_t dma_lenth)
+{
+ TIMER_DMACFG(timer_periph) &= (~(uint32_t)(TIMER_DMACFG_DMATA | TIMER_DMACFG_DMATC));
+ TIMER_DMACFG(timer_periph) |= (uint32_t)(dma_baseaddr | dma_lenth);
+}
+
+/*!
+ \brief software generate events
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] event: the timer software event generation sources
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_EVENT_SRC_UPG: update event generation, TIMERx(x=0..6)
+ \arg TIMER_EVENT_SRC_CH0G: channel 0 capture or compare event generation, TIMERx(x=0..4)
+ \arg TIMER_EVENT_SRC_CH1G: channel 1 capture or compare event generation, TIMERx(x=0..4)
+ \arg TIMER_EVENT_SRC_CH2G: channel 2 capture or compare event generation, TIMERx(x=0..4)
+ \arg TIMER_EVENT_SRC_CH3G: channel 3 capture or compare event generation, TIMERx(x=0..4)
+ \arg TIMER_EVENT_SRC_CMTG: channel commutation event generation, TIMERx(x=0)
+ \arg TIMER_EVENT_SRC_TRGG: trigger event generation, TIMERx(x=0..4)
+ \arg TIMER_EVENT_SRC_BRKG: break event generation, TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_event_software_generate(uint32_t timer_periph, uint16_t event)
+{
+ TIMER_SWEVG(timer_periph) |= (uint32_t)event;
+}
+
+/*!
+ \brief initialize TIMER break parameter struct with a default value
+ \param[in] breakpara: TIMER break parameter struct
+ \param[out] none
+ \retval none
+*/
+void timer_break_struct_para_init(timer_break_parameter_struct* breakpara)
+{
+ /* initialize the break parameter struct member with the default value */
+ breakpara->runoffstate = TIMER_ROS_STATE_DISABLE;
+ breakpara->ideloffstate = TIMER_IOS_STATE_DISABLE;
+ breakpara->deadtime = 0U;
+ breakpara->breakpolarity = TIMER_BREAK_POLARITY_LOW;
+ breakpara->outputautostate = TIMER_OUTAUTO_DISABLE;
+ breakpara->protectmode = TIMER_CCHP_PROT_OFF;
+ breakpara->breakstate = TIMER_BREAK_DISABLE;
+}
+
+/*!
+ \brief configure TIMER break function
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] breakpara: TIMER break parameter struct
+ runoffstate: TIMER_ROS_STATE_ENABLE, TIMER_ROS_STATE_DISABLE
+ ideloffstate: TIMER_IOS_STATE_ENABLE, TIMER_IOS_STATE_DISABLE
+ deadtime: 0~255
+ breakpolarity: TIMER_BREAK_POLARITY_LOW, TIMER_BREAK_POLARITY_HIGH
+ outputautostate: TIMER_OUTAUTO_ENABLE, TIMER_OUTAUTO_DISABLE
+ protectmode: TIMER_CCHP_PROT_OFF, TIMER_CCHP_PROT_0, TIMER_CCHP_PROT_1, TIMER_CCHP_PROT_2
+ breakstate: TIMER_BREAK_ENABLE, TIMER_BREAK_DISABLE
+ \param[out] none
+ \retval none
+*/
+void timer_break_config(uint32_t timer_periph, timer_break_parameter_struct* breakpara)
+{
+ TIMER_CCHP(timer_periph) = (uint32_t)(((uint32_t)(breakpara->runoffstate)) |
+ ((uint32_t)(breakpara->ideloffstate))|
+ ((uint32_t)(breakpara->deadtime)) |
+ ((uint32_t)(breakpara->breakpolarity)) |
+ ((uint32_t)(breakpara->outputautostate)) |
+ ((uint32_t)(breakpara->protectmode)) |
+ ((uint32_t)(breakpara->breakstate)));
+}
+
+/*!
+ \brief enable TIMER break function
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_break_enable(uint32_t timer_periph)
+{
+ TIMER_CCHP(timer_periph) |= (uint32_t)TIMER_CCHP_BRKEN;
+}
+
+/*!
+ \brief disable TIMER break function
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_break_disable(uint32_t timer_periph)
+{
+ TIMER_CCHP(timer_periph) &= ~(uint32_t)TIMER_CCHP_BRKEN;
+}
+
+/*!
+ \brief enable TIMER output automatic function
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_automatic_output_enable(uint32_t timer_periph)
+{
+ TIMER_CCHP(timer_periph) |= (uint32_t)TIMER_CCHP_OAEN;
+}
+
+/*!
+ \brief disable TIMER output automatic function
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_automatic_output_disable(uint32_t timer_periph)
+{
+ TIMER_CCHP(timer_periph) &= ~(uint32_t)TIMER_CCHP_OAEN;
+}
+
+/*!
+ \brief enable or disable TIMER primary output function
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] newvalue: ENABLE or DISABLE
+ \param[out] none
+ \retval none
+*/
+void timer_primary_output_config(uint32_t timer_periph, ControlStatus newvalue)
+{
+ if(ENABLE == newvalue){
+ TIMER_CCHP(timer_periph) |= (uint32_t)TIMER_CCHP_POEN;
+ }else{
+ TIMER_CCHP(timer_periph) &= (~(uint32_t)TIMER_CCHP_POEN);
+ }
+}
+
+/*!
+ \brief enable or disable channel capture/compare control shadow register
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] newvalue: ENABLE or DISABLE
+ \param[out] none
+ \retval none
+*/
+void timer_channel_control_shadow_config(uint32_t timer_periph, ControlStatus newvalue)
+{
+ if(ENABLE == newvalue){
+ TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_CCSE;
+ }else{
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_CCSE);
+ }
+}
+
+/*!
+ \brief configure TIMER channel control shadow register update control
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] ccuctl: channel control shadow register update control
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_UPDATECTL_CCU: the shadow registers update by when CMTG bit is set
+ \arg TIMER_UPDATECTL_CCUTRI: the shadow registers update by when CMTG bit is set or an rising edge of TRGI occurs
+ \param[out] none
+ \retval none
+*/
+void timer_channel_control_shadow_update_config(uint32_t timer_periph, uint32_t ccuctl)
+{
+ if(TIMER_UPDATECTL_CCU == ccuctl){
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_CCUC);
+ }else if(TIMER_UPDATECTL_CCUTRI == ccuctl){
+ TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_CCUC;
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief initialize TIMER channel output parameter struct with a default value
+ \param[in] ocpara: TIMER channel n output parameter struct
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_struct_para_init(timer_oc_parameter_struct* ocpara)
+{
+ /* initialize the channel output parameter struct member with the default value */
+ ocpara->outputstate = TIMER_CCX_DISABLE;
+ ocpara->outputnstate = TIMER_CCXN_DISABLE;
+ ocpara->ocpolarity = TIMER_OC_POLARITY_HIGH;
+ ocpara->ocnpolarity = TIMER_OCN_POLARITY_HIGH;
+ ocpara->ocidlestate = TIMER_OC_IDLE_STATE_LOW;
+ ocpara->ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;
+}
+
+/*!
+ \brief configure TIMER channel output function
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] ocpara: TIMER channeln output parameter struct
+ outputstate: TIMER_CCX_ENABLE, TIMER_CCX_DISABLE
+ outputnstate: TIMER_CCXN_ENABLE, TIMER_CCXN_DISABLE
+ ocpolarity: TIMER_OC_POLARITY_HIGH, TIMER_OC_POLARITY_LOW
+ ocnpolarity: TIMER_OCN_POLARITY_HIGH, TIMER_OCN_POLARITY_LOW
+ ocidlestate: TIMER_OC_IDLE_STATE_LOW, TIMER_OC_IDLE_STATE_HIGH
+ ocnidlestate: TIMER_OCN_IDLE_STATE_LOW, TIMER_OCN_IDLE_STATE_HIGH
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_config(uint32_t timer_periph, uint16_t channel, timer_oc_parameter_struct* ocpara)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ /* reset the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN);
+ /* set the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->outputstate;
+ /* reset the CH0P bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0P);
+ /* set the CH0P bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->ocpolarity;
+
+ if (TIMER0 == timer_periph) {
+ /* reset the CH0NEN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NEN);
+ /* set the CH0NEN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->outputnstate;
+ /* reset the CH0NP bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NP);
+ /* set the CH0NP bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpara->ocnpolarity;
+ /* reset the ISO0 bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO0);
+ /* set the ISO0 bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)ocpara->ocidlestate;
+ /* reset the ISO0N bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO0N);
+ /* set the ISO0N bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)ocpara->ocnidlestate;
+ }
+ TIMER_CHCTL0(timer_periph) &= ~(uint32_t)TIMER_CHCTL0_CH0MS;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ /* reset the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN);
+ /* set the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputstate) << 4U);
+ /* reset the CH1P bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1P);
+ /* set the CH1P bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocpolarity) << 4U);
+
+ if (TIMER0 == timer_periph) {
+ /* reset the CH1NEN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NEN);
+ /* set the CH1NEN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputnstate) << 4U);
+ /* reset the CH1NP bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NP);
+ /* set the CH1NP bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnpolarity) << 4U);
+ /* reset the ISO1 bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO1);
+ /* set the ISO1 bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocidlestate) << 2U);
+ /* reset the ISO1N bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO1N);
+ /* set the ISO1N bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnidlestate) << 2U);
+ }
+ TIMER_CHCTL0(timer_periph) &= ~(uint32_t)TIMER_CHCTL0_CH1MS;
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ /* reset the CH2EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2EN);
+ /* set the CH2EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputstate) << 8U);
+ /* reset the CH2P bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2P);
+ /* set the CH2P bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocpolarity) << 8U);
+
+ if (TIMER0 == timer_periph) {
+ /* reset the CH2NEN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NEN);
+ /* set the CH2NEN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputnstate) << 8U);
+ /* reset the CH2NP bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NP);
+ /* set the CH2NP bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnpolarity) << 8U);
+ /* reset the ISO2 bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO2);
+ /* set the ISO2 bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocidlestate) << 4U);
+ /* reset the ISO2N bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO2N);
+ /* set the ISO2N bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocnidlestate) << 4U);
+ }
+ TIMER_CHCTL1(timer_periph) &= ~(uint32_t)TIMER_CHCTL1_CH2MS;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ /* reset the CH3EN bit */
+ TIMER_CHCTL2(timer_periph) &=(~(uint32_t)TIMER_CHCTL2_CH3EN);
+ /* set the CH3EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->outputstate) << 12U);
+ /* reset the CH3P bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3P);
+ /* set the CH3P bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocpolarity) << 12U);
+
+ if (TIMER0 == timer_periph) {
+ /* reset the ISO3 bit */
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_ISO3);
+ /* set the ISO3 bit */
+ TIMER_CTL1(timer_periph) |= (uint32_t)((uint32_t)(ocpara->ocidlestate) << 6U);
+ }
+ TIMER_CHCTL1(timer_periph) &= ~(uint32_t)TIMER_CHCTL1_CH3MS;
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel output compare mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] ocmode: channel output compare mode
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_OC_MODE_TIMING: timing mode
+ \arg TIMER_OC_MODE_ACTIVE: active mode
+ \arg TIMER_OC_MODE_INACTIVE: inactive mode
+ \arg TIMER_OC_MODE_TOGGLE: toggle mode
+ \arg TIMER_OC_MODE_LOW: force low mode
+ \arg TIMER_OC_MODE_HIGH: force high mode
+ \arg TIMER_OC_MODE_PWM0: PWM mode 0
+ \arg TIMER_OC_MODE_PWM1: PWM mode 1
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_mode_config(uint32_t timer_periph, uint16_t channel, uint16_t ocmode)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMCTL);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)ocmode;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMCTL);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(ocmode) << 8U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMCTL);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)ocmode;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMCTL);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(ocmode) << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel output pulse value
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] pulse: channel output pulse value
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_pulse_value_config(uint32_t timer_periph, uint16_t channel, uint32_t pulse)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CH0CV(timer_periph) = (uint32_t)pulse;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CH1CV(timer_periph) = (uint32_t)pulse;
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CH2CV(timer_periph) = (uint32_t)pulse;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CH3CV(timer_periph) = (uint32_t)pulse;
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel output shadow function
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] ocshadow: channel output shadow state
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_OC_SHADOW_ENABLE: channel output shadow state enable
+ \arg TIMER_OC_SHADOW_DISABLE: channel output shadow state disable
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_shadow_config(uint32_t timer_periph, uint16_t channel, uint16_t ocshadow)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMSEN);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)ocshadow;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMSEN);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(ocshadow) << 8U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMSEN);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)ocshadow;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMSEN);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(ocshadow) << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel output fast function
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] ocfast: channel output fast function
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_OC_FAST_ENABLE: channel output fast function enable
+ \arg TIMER_OC_FAST_DISABLE: channel output fast function disable
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_fast_config(uint32_t timer_periph, uint16_t channel, uint16_t ocfast)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMFEN);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)ocfast;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMFEN);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)ocfast << 8U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMFEN);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)ocfast;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMFEN);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)ocfast << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel output clear function
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] occlear: channel output clear function
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_OC_CLEAR_ENABLE: channel output clear function enable
+ \arg TIMER_OC_CLEAR_DISABLE: channel output clear function disable
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_clear_config(uint32_t timer_periph, uint16_t channel, uint16_t occlear)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0COMCEN);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)occlear;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1COMCEN);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)occlear << 8U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2COMCEN);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)occlear;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3COMCEN);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)occlear << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel output polarity
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] ocpolarity: channel output polarity
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_OC_POLARITY_HIGH: channel output polarity is high
+ \arg TIMER_OC_POLARITY_LOW: channel output polarity is low
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocpolarity)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0P);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocpolarity;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1P);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocpolarity << 4U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2P);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocpolarity << 8U);
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3P);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocpolarity << 12U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel complementary output polarity
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0))
+ \param[in] ocnpolarity: channel complementary output polarity
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_OCN_POLARITY_HIGH: channel complementary output polarity is high
+ \arg TIMER_OCN_POLARITY_LOW: channel complementary output polarity is low
+ \param[out] none
+ \retval none
+*/
+void timer_channel_complementary_output_polarity_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnpolarity)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NP);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocnpolarity;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NP);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnpolarity << 4U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NP);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnpolarity << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel enable state
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] state: TIMER channel enable state
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CCX_ENABLE: channel enable
+ \arg TIMER_CCX_DISABLE: channel disable
+ \param[out] none
+ \retval none
+*/
+void timer_channel_output_state_config(uint32_t timer_periph, uint16_t channel, uint32_t state)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)state;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)state << 4U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2EN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)state << 8U);
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3EN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)state << 12U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure TIMER channel complementary output enable state
+ \param[in] timer_periph: TIMERx(x=0)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0
+ \arg TIMER_CH_1: TIMER channel 1
+ \arg TIMER_CH_2: TIMER channel 2
+ \param[in] ocnstate: TIMER channel complementary output enable state
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CCXN_ENABLE: channel complementary enable
+ \arg TIMER_CCXN_DISABLE: channel complementary disable
+ \param[out] none
+ \retval none
+*/
+void timer_channel_complementary_output_state_config(uint32_t timer_periph, uint16_t channel, uint16_t ocnstate)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0NEN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)ocnstate;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1NEN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnstate << 4U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2NEN);
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)ocnstate << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief initialize TIMER channel input parameter struct with a default value
+ \param[in] icpara: TIMER channel intput parameter struct
+ \param[out] none
+ \retval none
+*/
+void timer_channel_input_struct_para_init(timer_ic_parameter_struct* icpara)
+{
+ /* initialize the channel input parameter struct member with the default value */
+ icpara->icpolarity = TIMER_IC_POLARITY_RISING;
+ icpara->icselection = TIMER_IC_SELECTION_DIRECTTI;
+ icpara->icprescaler = TIMER_IC_PSC_DIV1;
+ icpara->icfilter = 0U;
+}
+
+/*!
+ \brief configure TIMER input capture parameter
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] icpara: TIMER channel intput parameter struct
+ icpolarity: TIMER_IC_POLARITY_RISING, TIMER_IC_POLARITY_FALLING,
+ TIMER_IC_POLARITY_BOTH_EDGE(only for TIMER1~TIMER8)
+ icselection: TIMER_IC_SELECTION_DIRECTTI, TIMER_IC_SELECTION_INDIRECTTI,
+ TIMER_IC_SELECTION_ITS
+ icprescaler: TIMER_IC_PSC_DIV1, TIMER_IC_PSC_DIV2, TIMER_IC_PSC_DIV4,
+ TIMER_IC_PSC_DIV8
+ icfilter: 0~15
+ \param[out] none
+ \retval none
+*/
+void timer_input_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpara)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ /* reset the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN);
+
+ /* reset the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP));
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)(icpara->icpolarity);
+ /* reset the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)(icpara->icselection);
+ /* reset the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 4U);
+
+ /* set the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN;
+ break;
+
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ /* reset the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN);
+
+ /* reset the CH1P and CH1NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP));
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpara->icpolarity) << 4U);
+ /* reset the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpara->icselection) << 8U);
+ /* reset the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 12U);
+
+ /* set the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN;
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ /* reset the CH2EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH2EN);
+
+ /* reset the CH2P and CH2NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH2P | TIMER_CHCTL2_CH2NP));
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpara->icpolarity) << 8U);
+
+ /* reset the CH2MS bit */
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2MS);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icselection));
+
+ /* reset the CH2CAPFLT bit */
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2CAPFLT);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 4U);
+
+ /* set the CH2EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH2EN;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ /* reset the CH3EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH3EN);
+
+ /* reset the CH3P bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH3P));
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpara->icpolarity) << 12U);
+
+ /* reset the CH3MS bit */
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3MS);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icselection) << 8U);
+
+ /* reset the CH3CAPFLT bit */
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3CAPFLT);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)((uint32_t)(icpara->icfilter) << 12U);
+
+ /* set the CH3EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH3EN;
+ break;
+ default:
+ break;
+ }
+ /* configure TIMER channel input capture prescaler value */
+ timer_channel_input_capture_prescaler_config(timer_periph, channel, (uint16_t)(icpara->icprescaler));
+}
+
+/*!
+ \brief configure TIMER channel input capture prescaler value
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[in] prescaler: channel input capture prescaler value
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_IC_PSC_DIV1: no prescaler
+ \arg TIMER_IC_PSC_DIV2: divided by 2
+ \arg TIMER_IC_PSC_DIV4: divided by 4
+ \arg TIMER_IC_PSC_DIV8: divided by 8
+ \param[out] none
+ \retval none
+*/
+void timer_channel_input_capture_prescaler_config(uint32_t timer_periph, uint16_t channel, uint16_t prescaler)
+{
+ switch(channel){
+ /* configure TIMER_CH_0 */
+ case TIMER_CH_0:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPPSC);
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)prescaler;
+ break;
+ /* configure TIMER_CH_1 */
+ case TIMER_CH_1:
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPPSC);
+ TIMER_CHCTL0(timer_periph) |= ((uint32_t)prescaler << 8U);
+ break;
+ /* configure TIMER_CH_2 */
+ case TIMER_CH_2:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH2CAPPSC);
+ TIMER_CHCTL1(timer_periph) |= (uint32_t)prescaler;
+ break;
+ /* configure TIMER_CH_3 */
+ case TIMER_CH_3:
+ TIMER_CHCTL1(timer_periph) &= (~(uint32_t)TIMER_CHCTL1_CH3CAPPSC);
+ TIMER_CHCTL1(timer_periph) |= ((uint32_t)prescaler << 8U);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief read TIMER channel capture compare register value
+ \param[in] timer_periph: please refer to the following parameters
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0(TIMERx(x=0..4))
+ \arg TIMER_CH_1: TIMER channel 1(TIMERx(x=0..4))
+ \arg TIMER_CH_2: TIMER channel 2(TIMERx(x=0..4))
+ \arg TIMER_CH_3: TIMER channel 3(TIMERx(x=0..4))
+ \param[out] none
+ \retval channel capture compare register value
+*/
+uint32_t timer_channel_capture_value_register_read(uint32_t timer_periph, uint16_t channel)
+{
+ uint32_t count_value = 0U;
+
+ switch(channel){
+ case TIMER_CH_0:
+ /* read TIMER channel 0 capture compare register value */
+ count_value = TIMER_CH0CV(timer_periph);
+ break;
+ case TIMER_CH_1:
+ /* read TIMER channel 1 capture compare register value */
+ count_value = TIMER_CH1CV(timer_periph);
+ break;
+ case TIMER_CH_2:
+ /* read TIMER channel 2 capture compare register value */
+ count_value = TIMER_CH2CV(timer_periph);
+ break;
+ case TIMER_CH_3:
+ /* read TIMER channel 3 capture compare register value */
+ count_value = TIMER_CH3CV(timer_periph);
+ break;
+ default:
+ break;
+ }
+ return (count_value);
+}
+
+/*!
+ \brief configure TIMER input pwm capture function
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] channel:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_CH_0: TIMER channel 0
+ \arg TIMER_CH_1: TIMER channel 1
+ \param[in] icpwm: TIMER channel intput pwm parameter struct
+ icpolarity: TIMER_IC_POLARITY_RISING, TIMER_IC_POLARITY_FALLING
+ icselection: TIMER_IC_SELECTION_DIRECTTI, TIMER_IC_SELECTION_INDIRECTTI
+ icprescaler: TIMER_IC_PSC_DIV1, TIMER_IC_PSC_DIV2, TIMER_IC_PSC_DIV4,
+ TIMER_IC_PSC_DIV8
+ icfilter: 0~15
+ \param[out] none
+ \retval none
+*/
+void timer_input_pwm_capture_config(uint32_t timer_periph, uint16_t channel, timer_ic_parameter_struct* icpwm)
+{
+ uint16_t icpolarity = 0x0U;
+ uint16_t icselection = 0x0U;
+
+ /* Set channel input polarity */
+ if(TIMER_IC_POLARITY_RISING == icpwm->icpolarity){
+ icpolarity = TIMER_IC_POLARITY_FALLING;
+ }else{
+ icpolarity = TIMER_IC_POLARITY_RISING;
+ }
+ /* Set channel input mode selection */
+ if(TIMER_IC_SELECTION_DIRECTTI == icpwm->icselection){
+ icselection = TIMER_IC_SELECTION_INDIRECTTI;
+ }else{
+ icselection = TIMER_IC_SELECTION_DIRECTTI;
+ }
+
+ if(TIMER_CH_0 == channel){
+ /* reset the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN);
+ /* reset the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP));
+ /* set the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)(icpwm->icpolarity);
+ /* reset the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS);
+ /* set the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)(icpwm->icselection);
+ /* reset the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT);
+ /* set the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) |= ((uint32_t)(icpwm->icfilter) << 4U);
+ /* set the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN;
+ /* configure TIMER channel input capture prescaler value */
+ timer_channel_input_capture_prescaler_config(timer_periph, TIMER_CH_0, (uint16_t)(icpwm->icprescaler));
+
+ /* reset the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN);
+ /* reset the CH1P and CH1NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP));
+ /* set the CH1P and CH1NP bits */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)icpolarity<< 4U);
+ /* reset the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS);
+ /* set the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)icselection << 8U);
+ /* reset the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT);
+ /* set the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icfilter) << 12U);
+ /* set the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN;
+ /* configure TIMER channel input capture prescaler value */
+ timer_channel_input_capture_prescaler_config(timer_periph, TIMER_CH_1, (uint16_t)(icpwm->icprescaler));
+ }else{
+ /* reset the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN);
+ /* reset the CH1P and CH1NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP));
+ /* set the CH1P and CH1NP bits */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icpolarity) << 4U);
+ /* reset the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS);
+ /* set the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icselection) << 8U);
+ /* reset the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT);
+ /* set the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)(icpwm->icfilter) << 12U);
+ /* set the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN;
+ /* configure TIMER channel input capture prescaler value */
+ timer_channel_input_capture_prescaler_config(timer_periph, TIMER_CH_1, (uint16_t)(icpwm->icprescaler));
+
+ /* reset the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN);
+ /* reset the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP));
+ /* set the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)icpolarity;
+ /* reset the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS);
+ /* set the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)icselection;
+ /* reset the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT);
+ /* set the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) |= ((uint32_t)(icpwm->icfilter) << 4U);
+ /* set the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN;
+ /* configure TIMER channel input capture prescaler value */
+ timer_channel_input_capture_prescaler_config(timer_periph, TIMER_CH_0, (uint16_t)(icpwm->icprescaler));
+ }
+}
+
+/*!
+ \brief configure TIMER hall sensor mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] hallmode:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_HALLINTERFACE_ENABLE: TIMER hall sensor mode enable
+ \arg TIMER_HALLINTERFACE_DISABLE: TIMER hall sensor mode disable
+ \param[out] none
+ \retval none
+*/
+void timer_hall_mode_config(uint32_t timer_periph, uint32_t hallmode)
+{
+ if(TIMER_HALLINTERFACE_ENABLE == hallmode){
+ TIMER_CTL1(timer_periph) |= (uint32_t)TIMER_CTL1_TI0S;
+ }else if(TIMER_HALLINTERFACE_DISABLE == hallmode){
+ TIMER_CTL1(timer_periph) &= ~(uint32_t)TIMER_CTL1_TI0S;
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief select TIMER input trigger source
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] intrigger:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_SMCFG_TRGSEL_ITI0: internal trigger 0(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_ITI1: internal trigger 1(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_ITI2: internal trigger 2(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_ITI3: internal trigger 3(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_CI0F_ED: TI0 edge detector(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_CI0FE0: filtered TIMER input 0(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_CI1FE1: filtered TIMER input 1(TIMERx(x=0..4))
+ \arg TIMER_SMCFG_TRGSEL_ETIFP: filtered external trigger input(TIMERx(x=0..4))
+ \param[out] none
+ \retval none
+*/
+void timer_input_trigger_source_select(uint32_t timer_periph, uint32_t intrigger)
+{
+ TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_TRGS);
+ TIMER_SMCFG(timer_periph) |= (uint32_t)intrigger;
+}
+
+/*!
+ \brief select TIMER master mode output trigger source
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] outrigger:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_TRI_OUT_SRC_RESET: the UPG bit as trigger output(TIMERx(x=0..6))
+ \arg TIMER_TRI_OUT_SRC_ENABLE: the counter enable signal TIMER_CTL0_CEN as trigger output(TIMERx(x=0..6))
+ \arg TIMER_TRI_OUT_SRC_UPDATE: update event as trigger output(TIMERx(x=0..6))
+ \arg TIMER_TRI_OUT_SRC_CH0: a capture or a compare match occurred in channel 0 as trigger output TRGO(TIMERx(x=0..4))
+ \arg TIMER_TRI_OUT_SRC_O0CPRE: O0CPRE as trigger output(TIMERx(x=0..4))
+ \arg TIMER_TRI_OUT_SRC_O1CPRE: O1CPRE as trigger output(TIMERx(x=0..4))
+ \arg TIMER_TRI_OUT_SRC_O2CPRE: O2CPRE as trigger output(TIMERx(x=0..4))
+ \arg TIMER_TRI_OUT_SRC_O3CPRE: O3CPRE as trigger output(TIMERx(x=0..4))
+ \param[out] none
+ \retval none
+*/
+void timer_master_output_trigger_source_select(uint32_t timer_periph, uint32_t outrigger)
+{
+ TIMER_CTL1(timer_periph) &= (~(uint32_t)TIMER_CTL1_MMC);
+ TIMER_CTL1(timer_periph) |= (uint32_t)outrigger;
+}
+
+/*!
+ \brief select TIMER slave mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] slavemode:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_SLAVE_MODE_DISABLE: slave mode disable
+ \arg TIMER_ENCODER_MODE0: encoder mode 0
+ \arg TIMER_ENCODER_MODE1: encoder mode 1
+ \arg TIMER_ENCODER_MODE2: encoder mode 2
+ \arg TIMER_SLAVE_MODE_RESTART: restart mode
+ \arg TIMER_SLAVE_MODE_PAUSE: pause mode
+ \arg TIMER_SLAVE_MODE_EVENT: event mode
+ \arg TIMER_SLAVE_MODE_EXTERNAL0: external clock mode 0
+ \param[out] none
+ \retval none
+*/
+
+void timer_slave_mode_select(uint32_t timer_periph, uint32_t slavemode)
+{
+ TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_SMC);
+ TIMER_SMCFG(timer_periph) |= (uint32_t)slavemode;
+}
+
+/*!
+ \brief configure TIMER master slave mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] masterslave:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_MASTER_SLAVE_MODE_ENABLE: master slave mode enable
+ \arg TIMER_MASTER_SLAVE_MODE_DISABLE: master slave mode disable
+ \param[out] none
+ \retval none
+*/
+void timer_master_slave_mode_config(uint32_t timer_periph, uint32_t masterslave)
+{
+ if(TIMER_MASTER_SLAVE_MODE_ENABLE == masterslave){
+ TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SMCFG_MSM;
+ }else if(TIMER_MASTER_SLAVE_MODE_DISABLE == masterslave){
+ TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_MSM;
+ }else{
+ /* illegal parameters */
+ }
+}
+
+/*!
+ \brief configure TIMER external trigger input
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] extprescaler:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_EXT_TRI_PSC_OFF: no divided
+ \arg TIMER_EXT_TRI_PSC_DIV2: divided by 2
+ \arg TIMER_EXT_TRI_PSC_DIV4: divided by 4
+ \arg TIMER_EXT_TRI_PSC_DIV8: divided by 8
+ \param[in] extpolarity:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_ETP_FALLING: active low or falling edge active
+ \arg TIMER_ETP_RISING: active high or rising edge active
+ \param[in] extfilter: a value between 0 and 15
+ \param[out] none
+ \retval none
+*/
+void timer_external_trigger_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter)
+{
+ TIMER_SMCFG(timer_periph) &= (~(uint32_t)(TIMER_SMCFG_ETP | TIMER_SMCFG_ETPSC | TIMER_SMCFG_ETFC));
+ TIMER_SMCFG(timer_periph) |= (uint32_t)(extprescaler | extpolarity);
+ TIMER_SMCFG(timer_periph) |= (uint32_t)(extfilter << 8U);
+}
+
+/*!
+ \brief configure TIMER quadrature decoder mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] decomode:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_ENCODER_MODE0: counter counts on CI0FE0 edge depending on CI1FE1 level
+ \arg TIMER_ENCODER_MODE1: counter counts on CI1FE1 edge depending on CI0FE0 level
+ \arg TIMER_ENCODER_MODE2: counter counts on both CI0FE0 and CI1FE1 edges depending on the level of the other input
+ \param[in] ic0polarity:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_IC_POLARITY_RISING: capture rising edge
+ \arg TIMER_IC_POLARITY_FALLING: capture falling edge
+ \param[in] ic1polarity:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_IC_POLARITY_RISING: capture rising edge
+ \arg TIMER_IC_POLARITY_FALLING: capture falling edge
+ \param[out] none
+ \retval none
+*/
+void timer_quadrature_decoder_mode_config(uint32_t timer_periph, uint32_t decomode, uint16_t ic0polarity, uint16_t ic1polarity)
+{
+ /* configure the quadrature decoder mode */
+ TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_SMC);
+ TIMER_SMCFG(timer_periph) |= (uint32_t)decomode;
+ /* configure input capture selection */
+ TIMER_CHCTL0(timer_periph) &= (uint32_t)(((~(uint32_t)TIMER_CHCTL0_CH0MS)) & ((~(uint32_t)TIMER_CHCTL0_CH1MS)));
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)(TIMER_IC_SELECTION_DIRECTTI | ((uint32_t)TIMER_IC_SELECTION_DIRECTTI << 8U));
+ /* configure channel input capture polarity */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP));
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP));
+ TIMER_CHCTL2(timer_periph) |= ((uint32_t)ic0polarity | ((uint32_t)ic1polarity << 4U));
+}
+
+/*!
+ \brief configure TIMER internal clock mode
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void timer_internal_clock_config(uint32_t timer_periph)
+{
+ TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_SMC;
+}
+
+/*!
+ \brief configure TIMER the internal trigger as external clock input
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] intrigger:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_SMCFG_TRGSEL_ITI0: internal trigger 0
+ \arg TIMER_SMCFG_TRGSEL_ITI1: internal trigger 1
+ \arg TIMER_SMCFG_TRGSEL_ITI2: internal trigger 2
+ \arg TIMER_SMCFG_TRGSEL_ITI3: internal trigger 3
+ \param[out] none
+ \retval none
+*/
+void timer_internal_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t intrigger)
+{
+ timer_input_trigger_source_select(timer_periph, intrigger);
+ TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_SMC;
+ TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SLAVE_MODE_EXTERNAL0;
+}
+
+/*!
+ \brief configure TIMER the external trigger as external clock input
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] extrigger:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_SMCFG_TRGSEL_CI0F_ED: TI0 edge detector
+ \arg TIMER_SMCFG_TRGSEL_CI0FE0: filtered TIMER input 0
+ \arg TIMER_SMCFG_TRGSEL_CI1FE1: filtered TIMER input 1
+ \param[in] extpolarity:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_IC_POLARITY_RISING: active low or falling edge active
+ \arg TIMER_IC_POLARITY_FALLING: active high or rising edge active
+ \param[in] extfilter: a value between 0 and 15
+ \param[out] none
+ \retval none
+*/
+void timer_external_trigger_as_external_clock_config(uint32_t timer_periph, uint32_t extrigger, uint16_t extpolarity, uint32_t extfilter)
+{
+ if(TIMER_SMCFG_TRGSEL_CI1FE1 == extrigger){
+ /* reset the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH1EN);
+ /* reset the CH1NP bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH1P | TIMER_CHCTL2_CH1NP));
+ /* set the CH1NP bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)((uint32_t)extpolarity << 4U);
+ /* reset the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1MS);
+ /* set the CH1MS bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)((uint32_t)TIMER_IC_SELECTION_DIRECTTI << 8U);
+ /* reset the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH1CAPFLT);
+ /* set the CH1CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)(extfilter << 12U);
+ /* set the CH1EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH1EN;
+ }else{
+ /* reset the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)TIMER_CHCTL2_CH0EN);
+ /* reset the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) &= (~(uint32_t)(TIMER_CHCTL2_CH0P | TIMER_CHCTL2_CH0NP));
+ /* set the CH0P and CH0NP bits */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)extpolarity;
+ /* reset the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0MS);
+ /* set the CH0MS bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)TIMER_IC_SELECTION_DIRECTTI;
+ /* reset the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) &= (~(uint32_t)TIMER_CHCTL0_CH0CAPFLT);
+ /* reset the CH0CAPFLT bit */
+ TIMER_CHCTL0(timer_periph) |= (uint32_t)(extfilter << 4U);
+ /* set the CH0EN bit */
+ TIMER_CHCTL2(timer_periph) |= (uint32_t)TIMER_CHCTL2_CH0EN;
+ }
+ /* select TIMER input trigger source */
+ timer_input_trigger_source_select(timer_periph, extrigger);
+ /* reset the SMC bit */
+ TIMER_SMCFG(timer_periph) &= (~(uint32_t)TIMER_SMCFG_SMC);
+ /* set the SMC bit */
+ TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SLAVE_MODE_EXTERNAL0;
+}
+
+/*!
+ \brief configure TIMER the external clock mode0
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] extprescaler:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_EXT_TRI_PSC_OFF: no divided
+ \arg TIMER_EXT_TRI_PSC_DIV2: divided by 2
+ \arg TIMER_EXT_TRI_PSC_DIV4: divided by 4
+ \arg TIMER_EXT_TRI_PSC_DIV8: divided by 8
+ \param[in] extpolarity:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_ETP_FALLING: active low or falling edge active
+ \arg TIMER_ETP_RISING: active high or rising edge active
+ \param[in] extfilter: a value between 0 and 15
+ \param[out] none
+ \retval none
+*/
+void timer_external_clock_mode0_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter)
+{
+ /* configure TIMER external trigger input */
+ timer_external_trigger_config(timer_periph, extprescaler, extpolarity, extfilter);
+ /* reset the SMC bit,TRGS bit */
+ TIMER_SMCFG(timer_periph) &= (~(uint32_t)(TIMER_SMCFG_SMC | TIMER_SMCFG_TRGS));
+ /* set the SMC bit,TRGS bit */
+ TIMER_SMCFG(timer_periph) |= (uint32_t)(TIMER_SLAVE_MODE_EXTERNAL0 | TIMER_SMCFG_TRGSEL_ETIFP);
+}
+
+/*!
+ \brief configure TIMER the external clock mode1
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[in] extprescaler:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_EXT_TRI_PSC_OFF: no divided
+ \arg TIMER_EXT_TRI_PSC_DIV2: divided by 2
+ \arg TIMER_EXT_TRI_PSC_DIV4: divided by 4
+ \arg TIMER_EXT_TRI_PSC_DIV8: divided by 8
+ \param[in] extpolarity:
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_ETP_FALLING: active low or falling edge active
+ \arg TIMER_ETP_RISING: active high or rising edge active
+ \param[in] extfilter: a value between 0 and 15
+ \param[out] none
+ \retval none
+*/
+void timer_external_clock_mode1_config(uint32_t timer_periph, uint32_t extprescaler, uint32_t extpolarity, uint32_t extfilter)
+{
+ /* configure TIMER external trigger input */
+ timer_external_trigger_config(timer_periph, extprescaler, extpolarity, extfilter);
+ TIMER_SMCFG(timer_periph) |= (uint32_t)TIMER_SMCFG_SMC1;
+}
+
+/*!
+ \brief disable TIMER the external clock mode1
+ \param[in] timer_periph: TIMERx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void timer_external_clock_mode1_disable(uint32_t timer_periph)
+{
+ TIMER_SMCFG(timer_periph) &= ~(uint32_t)TIMER_SMCFG_SMC1;
+}
+
+/*!
+ \brief enable the TIMER interrupt
+ \param[in] timer_periph: please refer to the following parameters
+ \param[in] interrupt: specify which interrupt to enable
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_INT_UP: update interrupt enable, TIMERx(x=0..6)
+ \arg TIMER_INT_CH0: channel 0 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CH1: channel 1 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CH2: channel 2 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CH3: channel 3 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CMT: commutation interrupt enable, TIMERx(x=0)
+ \arg TIMER_INT_TRG: trigger interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_BRK: break interrupt enable, TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_interrupt_enable(uint32_t timer_periph, uint32_t interrupt)
+{
+ TIMER_DMAINTEN(timer_periph) |= (uint32_t) interrupt;
+}
+
+/*!
+ \brief disable the TIMER interrupt
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] interrupt: specify which interrupt to disbale
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_INT_UP: update interrupt enable, TIMERx(x=0..6)
+ \arg TIMER_INT_CH0: channel 0 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CH1: channel 1 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CH2: channel 2 interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_CH3: channel 3 interrupt enable , TIMERx(x=0..4)
+ \arg TIMER_INT_CMT: commutation interrupt enable, TIMERx(x=0)
+ \arg TIMER_INT_TRG: trigger interrupt enable, TIMERx(x=0..4)
+ \arg TIMER_INT_BRK: break interrupt enable, TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_interrupt_disable(uint32_t timer_periph, uint32_t interrupt)
+{
+ TIMER_DMAINTEN(timer_periph) &= (~(uint32_t)interrupt);
+}
+
+/*!
+ \brief get timer interrupt flag
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] interrupt: the timer interrupt bits
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_INT_FLAG_UP: update interrupt flag, TIMERx(x=0..6)
+ \arg TIMER_INT_FLAG_CH0: channel 0 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CH1: channel 1 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CH2: channel 2 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CH3: channel 3 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CMT: channel commutation interrupt flag, TIMERx(x=0)
+ \arg TIMER_INT_FLAG_TRG: trigger interrupt flag, TIMERx(x=0)
+ \arg TIMER_INT_FLAG_BRK: break interrupt flag, TIMERx(x=0)
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus timer_interrupt_flag_get(uint32_t timer_periph, uint32_t interrupt)
+{
+ uint32_t val;
+ val = (TIMER_DMAINTEN(timer_periph) & interrupt);
+ if((RESET != (TIMER_INTF(timer_periph) & interrupt)) && (RESET != val)){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear TIMER interrupt flag
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] interrupt: the timer interrupt bits
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_INT_FLAG_UP: update interrupt flag, TIMERx(x=0..6)
+ \arg TIMER_INT_FLAG_CH0: channel 0 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CH1: channel 1 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CH2: channel 2 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CH3: channel 3 interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_CMT: channel commutation interrupt flag, TIMERx(x=0)
+ \arg TIMER_INT_FLAG_TRG: trigger interrupt flag, TIMERx(x=0..4)
+ \arg TIMER_INT_FLAG_BRK: break interrupt flag, TIMERx(x=0)
+ \param[out] none
+ \retval none
+*/
+void timer_interrupt_flag_clear(uint32_t timer_periph, uint32_t interrupt)
+{
+ TIMER_INTF(timer_periph) = (~(uint32_t)interrupt);
+}
+
+/*!
+ \brief get TIMER flags
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] flag: the timer interrupt flags
+ only one parameter can be selected which is shown as below:
+ \arg TIMER_FLAG_UP: update flag, TIMERx(x=0..6)
+ \arg TIMER_FLAG_CH0: channel 0 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH1: channel 1 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH2: channel 2 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH3: channel 3 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CMT: channel commutation flag, TIMERx(x=0)
+ \arg TIMER_FLAG_TRG: trigger flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_BRK: break flag, TIMERx(x=0)
+ \arg TIMER_FLAG_CH0O: channel 0 overcapture flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH1O: channel 1 overcapture flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH2O: channel 2 overcapture flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH3O: channel 3 overcapture flag, TIMERx(x=0..4)
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus timer_flag_get(uint32_t timer_periph, uint32_t flag)
+{
+ if(RESET != (TIMER_INTF(timer_periph) & flag)){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear TIMER flags
+ \param[in] timer_periph: TIMERx(x=0..6)
+ \param[in] flag: the timer interrupt flags
+ one or more parameters can be selected which are shown as below:
+ \arg TIMER_FLAG_UP: update flag, TIMERx(x=0..6)
+ \arg TIMER_FLAG_CH0: channel 0 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH1: channel 1 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH2: channel 2 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH3: channel 3 flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CMT: channel commutation flag, TIMERx(x=0)
+ \arg TIMER_FLAG_TRG: trigger flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_BRK: break flag, TIMERx(x=0)
+ \arg TIMER_FLAG_CH0O: channel 0 overcapture flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH1O: channel 1 overcapture flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH2O: channel 2 overcapture flag, TIMERx(x=0..4)
+ \arg TIMER_FLAG_CH3O: channel 3 overcapture flag, TIMERx(x=0..4)
+ \param[out] none
+ \retval none
+*/
+void timer_flag_clear(uint32_t timer_periph, uint32_t flag)
+{
+ TIMER_INTF(timer_periph) = (~(uint32_t)flag);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c
new file mode 100644
index 0000000000..e30e26f8aa
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c
@@ -0,0 +1,766 @@
+/*!
+ \file gd32vf103_usart.c
+ \brief USART driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2019-09-18, V1.0.1, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_usart.h"
+
+/*!
+ \brief reset USART/UART
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_deinit(uint32_t usart_periph)
+{
+ switch(usart_periph){
+ case USART0:
+ /* reset USART0 */
+ rcu_periph_reset_enable(RCU_USART0RST);
+ rcu_periph_reset_disable(RCU_USART0RST);
+ break;
+ case USART1:
+ /* reset USART1 */
+ rcu_periph_reset_enable(RCU_USART1RST);
+ rcu_periph_reset_disable(RCU_USART1RST);
+ break;
+ case USART2:
+ /* reset USART2 */
+ rcu_periph_reset_enable(RCU_USART2RST);
+ rcu_periph_reset_disable(RCU_USART2RST);
+ break;
+ case UART3:
+ /* reset UART3 */
+ rcu_periph_reset_enable(RCU_UART3RST);
+ rcu_periph_reset_disable(RCU_UART3RST);
+ break;
+ case UART4:
+ /* reset UART4 */
+ rcu_periph_reset_enable(RCU_UART4RST);
+ rcu_periph_reset_disable(RCU_UART4RST);
+ break;
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief configure USART baud rate value
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] baudval: baud rate value
+ \param[out] none
+ \retval none
+*/
+void usart_baudrate_set(uint32_t usart_periph, uint32_t baudval)
+{
+ uint32_t uclk=0U, intdiv=0U, fradiv=0U, udiv=0U;
+ switch(usart_periph){
+ /* get clock frequency */
+ case USART0:
+ /* get USART0 clock */
+ uclk=rcu_clock_freq_get(CK_APB2);
+ break;
+ case USART1:
+ /* get USART1 clock */
+ uclk=rcu_clock_freq_get(CK_APB1);
+ break;
+ case USART2:
+ /* get USART2 clock */
+ uclk=rcu_clock_freq_get(CK_APB1);
+ break;
+ case UART3:
+ /* get UART3 clock */
+ uclk=rcu_clock_freq_get(CK_APB1);
+ break;
+ case UART4:
+ /* get UART4 clock */
+ uclk=rcu_clock_freq_get(CK_APB1);
+ break;
+ default:
+ break;
+ }
+ /* oversampling by 16, configure the value of USART_BAUD */
+ udiv = (uclk+baudval/2U)/baudval;
+ intdiv = udiv & (0x0000fff0U);
+ fradiv = udiv & (0x0000000fU);
+ USART_BAUD(usart_periph) = ((USART_BAUD_FRADIV | USART_BAUD_INTDIV) & (intdiv | fradiv));
+}
+
+/*!
+ \brief configure USART parity
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] paritycfg: configure USART parity
+ only one parameter can be selected which is shown as below:
+ \arg USART_PM_NONE: no parity
+ \arg USART_PM_ODD: odd parity
+ \arg USART_PM_EVEN: even parity
+ \param[out] none
+ \retval none
+*/
+void usart_parity_config(uint32_t usart_periph, uint32_t paritycfg)
+{
+ /* clear USART_CTL0 PM,PCEN bits */
+ USART_CTL0(usart_periph) &= ~(USART_CTL0_PM | USART_CTL0_PCEN);
+ /* configure USART parity mode */
+ USART_CTL0(usart_periph) |= paritycfg ;
+}
+
+/*!
+ \brief configure USART word length
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] wlen: USART word length configure
+ only one parameter can be selected which is shown as below:
+ \arg USART_WL_8BIT: 8 bits
+ \arg USART_WL_9BIT: 9 bits
+ \param[out] none
+ \retval none
+*/
+void usart_word_length_set(uint32_t usart_periph, uint32_t wlen)
+{
+ /* clear USART_CTL0 WL bit */
+ USART_CTL0(usart_periph) &= ~USART_CTL0_WL;
+ /* configure USART word length */
+ USART_CTL0(usart_periph) |= wlen;
+}
+
+/*!
+ \brief configure USART stop bit length
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] stblen: USART stop bit configure
+ only one parameter can be selected which is shown as below:
+ \arg USART_STB_1BIT: 1 bit
+ \arg USART_STB_0_5BIT: 0.5 bit, not available for UARTx(x=3,4)
+ \arg USART_STB_2BIT: 2 bits
+ \arg USART_STB_1_5BIT: 1.5 bits, not available for UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_stop_bit_set(uint32_t usart_periph, uint32_t stblen)
+{
+ /* clear USART_CTL1 STB bits */
+ USART_CTL1(usart_periph) &= ~USART_CTL1_STB;
+ /* configure USART stop bits */
+ USART_CTL1(usart_periph) |= stblen;
+}
+
+/*!
+ \brief enable USART
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_enable(uint32_t usart_periph)
+{
+ USART_CTL0(usart_periph) |= USART_CTL0_UEN;
+}
+
+/*!
+ \brief disable USART
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_disable(uint32_t usart_periph)
+{
+ USART_CTL0(usart_periph) &= ~(USART_CTL0_UEN);
+}
+
+/*!
+ \brief configure USART transmitter
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] txconfig: enable or disable USART transmitter
+ only one parameter can be selected which is shown as below:
+ \arg USART_TRANSMIT_ENABLE: enable USART transmission
+ \arg USART_TRANSMIT_DISABLE: disable USART transmission
+ \param[out] none
+ \retval none
+*/
+void usart_transmit_config(uint32_t usart_periph, uint32_t txconfig)
+{
+ uint32_t ctl = 0U;
+
+ ctl = USART_CTL0(usart_periph);
+ ctl &= ~USART_CTL0_TEN;
+ ctl |= txconfig;
+ /* configure transfer mode */
+ USART_CTL0(usart_periph) = ctl;
+}
+
+/*!
+ \brief configure USART receiver
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] rxconfig: enable or disable USART receiver
+ only one parameter can be selected which is shown as below:
+ \arg USART_RECEIVE_ENABLE: enable USART reception
+ \arg USART_RECEIVE_DISABLE: disable USART reception
+ \param[out] none
+ \retval none
+*/
+void usart_receive_config(uint32_t usart_periph, uint32_t rxconfig)
+{
+ uint32_t ctl = 0U;
+
+ ctl = USART_CTL0(usart_periph);
+ ctl &= ~USART_CTL0_REN;
+ ctl |= rxconfig;
+ /* configure receiver mode */
+ USART_CTL0(usart_periph) = ctl;
+}
+
+/*!
+ \brief USART transmit data function
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] data: data of transmission
+ \param[out] none
+ \retval none
+*/
+void usart_data_transmit(uint32_t usart_periph, uint32_t data)
+{
+ USART_DATA(usart_periph) = USART_DATA_DATA & data;
+}
+
+/*!
+ \brief USART receive data function
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval data of received
+*/
+uint16_t usart_data_receive(uint32_t usart_periph)
+{
+ return (uint16_t)(GET_BITS(USART_DATA(usart_periph), 0U, 8U));
+}
+
+/*!
+ \brief configure the address of the USART in wake up by address match mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] addr: address of USART/UART
+ \param[out] none
+ \retval none
+*/
+void usart_address_config(uint32_t usart_periph, uint8_t addr)
+{
+ USART_CTL1(usart_periph) &= ~(USART_CTL1_ADDR);
+ USART_CTL1(usart_periph) |= (USART_CTL1_ADDR & addr);
+}
+
+/*!
+ \brief receiver in mute mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_mute_mode_enable(uint32_t usart_periph)
+{
+ USART_CTL0(usart_periph) |= USART_CTL0_RWU;
+}
+
+/*!
+ \brief receiver in active mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_mute_mode_disable(uint32_t usart_periph)
+{
+ USART_CTL0(usart_periph) &= ~(USART_CTL0_RWU);
+}
+
+/*!
+ \brief configure wakeup method in mute mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] wmethod: two methods be used to enter or exit the mute mode
+ only one parameter can be selected which is shown as below:
+ \arg USART_WM_IDLE: idle line
+ \arg USART_WM_ADDR: address mask
+ \param[out] none
+ \retval none
+*/
+void usart_mute_mode_wakeup_config(uint32_t usart_periph, uint32_t wmethod)
+{
+ USART_CTL0(usart_periph) &= ~(USART_CTL0_WM);
+ USART_CTL0(usart_periph) |= wmethod;
+}
+
+/*!
+ \brief enable LIN mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_lin_mode_enable(uint32_t usart_periph)
+{
+ USART_CTL1(usart_periph) |= USART_CTL1_LMEN;
+}
+
+/*!
+ \brief disable LIN mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_lin_mode_disable(uint32_t usart_periph)
+{
+ USART_CTL1(usart_periph) &= ~(USART_CTL1_LMEN);
+}
+
+/*!
+ \brief configure lin break frame length
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] lblen: lin break frame length
+ only one parameter can be selected which is shown as below:
+ \arg USART_LBLEN_10B: 10 bits
+ \arg USART_LBLEN_11B: 11 bits
+ \param[out] none
+ \retval none
+*/
+void usart_lin_break_detection_length_config(uint32_t usart_periph, uint32_t lblen)
+{
+ USART_CTL1(usart_periph) &= ~(USART_CTL1_LBLEN);
+ USART_CTL1(usart_periph) |= (USART_CTL1_LBLEN & lblen);
+}
+
+/*!
+ \brief send break frame
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_send_break(uint32_t usart_periph)
+{
+ USART_CTL0(usart_periph) |= USART_CTL0_SBKCMD;
+}
+
+/*!
+ \brief enable half duplex mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_halfduplex_enable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) |= USART_CTL2_HDEN;
+}
+
+/*!
+ \brief disable half duplex mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_halfduplex_disable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) &= ~(USART_CTL2_HDEN);
+}
+
+/*!
+ \brief enable CK pin in synchronous mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void usart_synchronous_clock_enable(uint32_t usart_periph)
+{
+ USART_CTL1(usart_periph) |= USART_CTL1_CKEN;
+}
+
+/*!
+ \brief disable CK pin in synchronous mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void usart_synchronous_clock_disable(uint32_t usart_periph)
+{
+ USART_CTL1(usart_periph) &= ~(USART_CTL1_CKEN);
+}
+
+/*!
+ \brief configure USART synchronous mode parameters
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[in] clen: CK length
+ only one parameter can be selected which is shown as below:
+ \arg USART_CLEN_NONE: there are 7 CK pulses for an 8 bit frame and 8 CK pulses for a 9 bit frame
+ \arg USART_CLEN_EN: there are 8 CK pulses for an 8 bit frame and 9 CK pulses for a 9 bit frame
+ \param[in] cph: clock phase
+ only one parameter can be selected which is shown as below:
+ \arg USART_CPH_1CK: first clock transition is the first data capture edge
+ \arg USART_CPH_2CK: second clock transition is the first data capture edge
+ \param[in] cpl: clock polarity
+ only one parameter can be selected which is shown as below:
+ \arg USART_CPL_LOW: steady low value on CK pin
+ \arg USART_CPL_HIGH: steady high value on CK pin
+ \param[out] none
+ \retval none
+*/
+void usart_synchronous_clock_config(uint32_t usart_periph, uint32_t clen, uint32_t cph, uint32_t cpl)
+{
+ uint32_t ctl = 0U;
+
+ /* read USART_CTL1 register */
+ ctl = USART_CTL1(usart_periph);
+ ctl &= ~(USART_CTL1_CLEN | USART_CTL1_CPH | USART_CTL1_CPL);
+ /* set CK length, CK phase, CK polarity */
+ ctl |= (USART_CTL1_CLEN & clen) | (USART_CTL1_CPH & cph) | (USART_CTL1_CPL & cpl);
+
+ USART_CTL1(usart_periph) = ctl;
+}
+
+/*!
+ \brief configure guard time value in smartcard mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[in] gaut: guard time value
+ \param[out] none
+ \retval none
+*/
+void usart_guard_time_config(uint32_t usart_periph,uint32_t gaut)
+{
+ USART_GP(usart_periph) &= ~(USART_GP_GUAT);
+ USART_GP(usart_periph) |= (USART_GP_GUAT & ((gaut)<<8));
+}
+
+/*!
+ \brief enable smartcard mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void usart_smartcard_mode_enable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) |= USART_CTL2_SCEN;
+}
+
+/*!
+ \brief disable smartcard mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void usart_smartcard_mode_disable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) &= ~(USART_CTL2_SCEN);
+}
+
+/*!
+ \brief enable NACK in smartcard mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void usart_smartcard_mode_nack_enable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) |= USART_CTL2_NKEN;
+}
+
+/*!
+ \brief disable NACK in smartcard mode
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[out] none
+ \retval none
+*/
+void usart_smartcard_mode_nack_disable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) &= ~(USART_CTL2_NKEN);
+}
+
+/*!
+ \brief enable IrDA mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_irda_mode_enable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) |= USART_CTL2_IREN;
+}
+
+/*!
+ \brief disable IrDA mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[out] none
+ \retval none
+*/
+void usart_irda_mode_disable(uint32_t usart_periph)
+{
+ USART_CTL2(usart_periph) &= ~(USART_CTL2_IREN);
+}
+
+/*!
+ \brief configure the peripheral clock prescaler in USART IrDA low-power mode
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] psc: 0x00-0xFF
+ \param[out] none
+ \retval none
+*/
+void usart_prescaler_config(uint32_t usart_periph, uint8_t psc)
+{
+ USART_GP(usart_periph) &= ~(USART_GP_PSC);
+ USART_GP(usart_periph) |= psc;
+}
+
+/*!
+ \brief configure IrDA low-power
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] irlp: IrDA low-power or normal
+ only one parameter can be selected which is shown as below:
+ \arg USART_IRLP_LOW: low-power
+ \arg USART_IRLP_NORMAL: normal
+ \param[out] none
+ \retval none
+*/
+void usart_irda_lowpower_config(uint32_t usart_periph, uint32_t irlp)
+{
+ USART_CTL2(usart_periph) &= ~(USART_CTL2_IRLP);
+ USART_CTL2(usart_periph) |= (USART_CTL2_IRLP & irlp);
+}
+
+/*!
+ \brief configure hardware flow control RTS
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[in] rtsconfig: enable or disable RTS
+ only one parameter can be selected which is shown as below:
+ \arg USART_RTS_ENABLE: enable RTS
+ \arg USART_RTS_DISABLE: disable RTS
+ \param[out] none
+ \retval none
+*/
+void usart_hardware_flow_rts_config(uint32_t usart_periph, uint32_t rtsconfig)
+{
+ uint32_t ctl = 0U;
+
+ ctl = USART_CTL2(usart_periph);
+ ctl &= ~USART_CTL2_RTSEN;
+ ctl |= rtsconfig;
+ /* configure RTS */
+ USART_CTL2(usart_periph) = ctl;
+}
+
+/*!
+ \brief configure hardware flow control CTS
+ \param[in] usart_periph: USARTx(x=0,1,2)
+ \param[in] ctsconfig: enable or disable CTS
+ only one parameter can be selected which is shown as below:
+ \arg USART_CTS_ENABLE: enable CTS
+ \arg USART_CTS_DISABLE: disable CTS
+ \param[out] none
+ \retval none
+*/
+void usart_hardware_flow_cts_config(uint32_t usart_periph, uint32_t ctsconfig)
+{
+ uint32_t ctl = 0U;
+
+ ctl = USART_CTL2(usart_periph);
+ ctl &= ~USART_CTL2_CTSEN;
+ ctl |= ctsconfig;
+ /* configure CTS */
+ USART_CTL2(usart_periph) = ctl;
+}
+
+/*!
+ \brief configure USART DMA reception
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3)
+ \param[in] dmacmd: enable or disable DMA for reception
+ only one parameter can be selected which is shown as below:
+ \arg USART_DENR_ENABLE: DMA enable for reception
+ \arg USART_DENR_DISABLE: DMA disable for reception
+ \param[out] none
+ \retval none
+*/
+void usart_dma_receive_config(uint32_t usart_periph, uint32_t dmacmd)
+{
+ uint32_t ctl = 0U;
+
+ ctl = USART_CTL2(usart_periph);
+ ctl &= ~USART_CTL2_DENR;
+ ctl |= dmacmd;
+ /* configure DMA reception */
+ USART_CTL2(usart_periph) = ctl;
+}
+
+/*!
+ \brief configure USART DMA transmission
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3)
+ \param[in] dmacmd: enable or disable DMA for transmission
+ only one parameter can be selected which is shown as below:
+ \arg USART_DENT_ENABLE: DMA enable for transmission
+ \arg USART_DENT_DISABLE: DMA disable for transmission
+ \param[out] none
+ \retval none
+*/
+void usart_dma_transmit_config(uint32_t usart_periph, uint32_t dmacmd)
+{
+ uint32_t ctl = 0U;
+
+ ctl = USART_CTL2(usart_periph);
+ ctl &= ~USART_CTL2_DENT;
+ ctl |= dmacmd;
+ /* configure DMA transmission */
+ USART_CTL2(usart_periph) = ctl;
+}
+
+/*!
+ \brief get flag in STAT register
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] flag: USART flags, refer to usart_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg USART_FLAG_CTS: CTS change flag
+ \arg USART_FLAG_LBD: LIN break detected flag
+ \arg USART_FLAG_TBE: transmit data buffer empty
+ \arg USART_FLAG_TC: transmission complete
+ \arg USART_FLAG_RBNE: read data buffer not empty
+ \arg USART_FLAG_IDLE: IDLE frame detected flag
+ \arg USART_FLAG_ORERR: overrun error
+ \arg USART_FLAG_NERR: noise error flag
+ \arg USART_FLAG_FERR: frame error flag
+ \arg USART_FLAG_PERR: parity error flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus usart_flag_get(uint32_t usart_periph, usart_flag_enum flag)
+{
+ if(RESET != (USART_REG_VAL(usart_periph, flag) & BIT(USART_BIT_POS(flag)))){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear flag in STAT register
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] flag: USART flags, refer to usart_flag_enum
+ only one parameter can be selected which is shown as below:
+ \arg USART_FLAG_CTS: CTS change flag
+ \arg USART_FLAG_LBD: LIN break detected flag
+ \arg USART_FLAG_TC: transmission complete
+ \arg USART_FLAG_RBNE: read data buffer not empty
+ \param[out] none
+ \retval none
+*/
+void usart_flag_clear(uint32_t usart_periph, usart_flag_enum flag)
+{
+ USART_REG_VAL(usart_periph, flag) &= ~BIT(USART_BIT_POS(flag));
+}
+
+/*!
+ \brief enable USART interrupt
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] interrupt
+ only one parameter can be selected which is shown as below:
+ \arg USART_INT_PERR: parity error interrupt
+ \arg USART_INT_TBE: transmitter buffer empty interrupt
+ \arg USART_INT_TC: transmission complete interrupt
+ \arg USART_INT_RBNE: read data buffer not empty interrupt and overrun error interrupt
+ \arg USART_INT_IDLE: IDLE line detected interrupt
+ \arg USART_INT_LBD: LIN break detected interrupt
+ \arg USART_INT_ERR: error interrupt
+ \arg USART_INT_CTS: CTS interrupt
+ \param[out] none
+ \retval none
+*/
+void usart_interrupt_enable(uint32_t usart_periph, uint32_t interrupt)
+{
+ USART_REG_VAL(usart_periph, interrupt) |= BIT(USART_BIT_POS(interrupt));
+}
+
+/*!
+ \brief disable USART interrupt
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] interrupt
+ only one parameter can be selected which is shown as below:
+ \arg USART_INT_PERR: parity error interrupt
+ \arg USART_INT_TBE: transmitter buffer empty interrupt
+ \arg USART_INT_TC: transmission complete interrupt
+ \arg USART_INT_RBNE: read data buffer not empty interrupt and overrun error interrupt
+ \arg USART_INT_IDLE: IDLE line detected interrupt
+ \arg USART_INT_LBD: LIN break detected interrupt
+ \arg USART_INT_ERR: error interrupt
+ \arg USART_INT_CTS: CTS interrupt
+ \param[out] none
+ \retval none
+*/
+void usart_interrupt_disable(uint32_t usart_periph, uint32_t interrupt)
+{
+ USART_REG_VAL(usart_periph, interrupt) &= ~BIT(USART_BIT_POS(interrupt));
+}
+
+/*!
+ \brief get USART interrupt and flag status
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] int_flag
+ only one parameter can be selected which is shown as below:
+ \arg USART_INT_FLAG_PERR: parity error interrupt and flag
+ \arg USART_INT_FLAG_TBE: transmitter buffer empty interrupt and flag
+ \arg USART_INT_FLAG_TC: transmission complete interrupt and flag
+ \arg USART_INT_FLAG_RBNE: read data buffer not empty interrupt and flag
+ \arg USART_INT_FLAG_RBNE_ORERR: read data buffer not empty interrupt and overrun error flag
+ \arg USART_INT_FLAG_IDLE: IDLE line detected interrupt and flag
+ \arg USART_INT_FLAG_LBD: LIN break detected interrupt and flag
+ \arg USART_INT_FLAG_CTS: CTS interrupt and flag
+ \arg USART_INT_FLAG_ERR_ORERR: error interrupt and overrun error
+ \arg USART_INT_FLAG_ERR_NERR: error interrupt and noise error flag
+ \arg USART_INT_FLAG_ERR_FERR: error interrupt and frame error flag
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus usart_interrupt_flag_get(uint32_t usart_periph, uint32_t int_flag)
+{
+ uint32_t intenable = 0U, flagstatus = 0U;
+ /* get the interrupt enable bit status */
+ intenable = (USART_REG_VAL(usart_periph, int_flag) & BIT(USART_BIT_POS(int_flag)));
+ /* get the corresponding flag bit status */
+ flagstatus = (USART_REG_VAL2(usart_periph, int_flag) & BIT(USART_BIT_POS2(int_flag)));
+
+ if(flagstatus && intenable){
+ return SET;
+ }else{
+ return RESET;
+ }
+}
+
+/*!
+ \brief clear USART interrupt flag in STAT register
+ \param[in] usart_periph: USARTx(x=0,1,2)/UARTx(x=3,4)
+ \param[in] int_flag: USART interrupt flag
+ only one parameter can be selected which is shown as below:
+ \arg USART_INT_FLAG_CTS: CTS change flag
+ \arg USART_INT_FLAG_LBD: LIN break detected flag
+ \arg USART_INT_FLAG_TC: transmission complete
+ \arg USART_INT_FLAG_RBNE: read data buffer not empty
+ \param[out] none
+ \retval none
+*/
+void usart_interrupt_flag_clear(uint32_t usart_periph, uint32_t int_flag)
+{
+ USART_REG_VAL2(usart_periph, int_flag) &= ~BIT(USART_BIT_POS2(int_flag));
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_usart.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_usart.s
new file mode 100644
index 0000000000..096f2cdf4b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_usart.s
@@ -0,0 +1,20500 @@
+ .file "gd32vf103_usart.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl usart_deinit
+ .type usart_deinit, @function
+usart_deinit:
+.LFB2:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_usart.c"
+ .loc 1 46 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 47 5
+ lw a4,-20(s0)
+ li a5,1073823744
+ addi a5,a5,-2048
+ beq a4,a5,.L2
+ lw a4,-20(s0)
+ li a5,1073823744
+ addi a5,a5,-2048
+ bgtu a4,a5,.L9
+ lw a4,-20(s0)
+ li a5,1073762304
+ beq a4,a5,.L4
+ lw a4,-20(s0)
+ li a5,1073762304
+ bgtu a4,a5,.L9
+ lw a4,-20(s0)
+ li a5,1073762304
+ addi a5,a5,-1024
+ beq a4,a5,.L5
+ lw a4,-20(s0)
+ li a5,1073762304
+ addi a5,a5,-1024
+ bgtu a4,a5,.L9
+ lw a4,-20(s0)
+ li a5,1073758208
+ addi a5,a5,1024
+ beq a4,a5,.L6
+ lw a4,-20(s0)
+ li a5,1073762304
+ addi a5,a5,-2048
+ beq a4,a5,.L7
+ .loc 1 74 9
+ j .L9
+.L2:
+ .loc 1 50 9
+ li a0,782
+ call rcu_periph_reset_enable
+ .loc 1 51 9
+ li a0,782
+ call rcu_periph_reset_disable
+ .loc 1 52 9
+ j .L8
+.L6:
+ .loc 1 55 9
+ li a0,1041
+ call rcu_periph_reset_enable
+ .loc 1 56 9
+ li a0,1041
+ call rcu_periph_reset_disable
+ .loc 1 57 9
+ j .L8
+.L7:
+ .loc 1 60 9
+ li a0,1042
+ call rcu_periph_reset_enable
+ .loc 1 61 9
+ li a0,1042
+ call rcu_periph_reset_disable
+ .loc 1 62 9
+ j .L8
+.L5:
+ .loc 1 65 9
+ li a0,1043
+ call rcu_periph_reset_enable
+ .loc 1 66 9
+ li a0,1043
+ call rcu_periph_reset_disable
+ .loc 1 67 9
+ j .L8
+.L4:
+ .loc 1 70 9
+ li a0,1044
+ call rcu_periph_reset_enable
+ .loc 1 71 9
+ li a0,1044
+ call rcu_periph_reset_disable
+ .loc 1 72 9
+ j .L8
+.L9:
+ .loc 1 74 9
+ nop
+.L8:
+ .loc 1 76 1
+ nop
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE2:
+ .size usart_deinit, .-usart_deinit
+ .align 1
+ .globl usart_baudrate_set
+ .type usart_baudrate_set, @function
+usart_baudrate_set:
+.LFB3:
+ .loc 1 86 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 87 14
+ sw zero,-20(s0)
+ .loc 1 87 23
+ sw zero,-24(s0)
+ .loc 1 87 34
+ sw zero,-28(s0)
+ .loc 1 87 45
+ sw zero,-32(s0)
+ .loc 1 88 5
+ lw a4,-36(s0)
+ li a5,1073823744
+ addi a5,a5,-2048
+ beq a4,a5,.L11
+ lw a4,-36(s0)
+ li a5,1073823744
+ addi a5,a5,-2048
+ bgtu a4,a5,.L18
+ lw a4,-36(s0)
+ li a5,1073762304
+ beq a4,a5,.L13
+ lw a4,-36(s0)
+ li a5,1073762304
+ bgtu a4,a5,.L18
+ lw a4,-36(s0)
+ li a5,1073762304
+ addi a5,a5,-1024
+ beq a4,a5,.L14
+ lw a4,-36(s0)
+ li a5,1073762304
+ addi a5,a5,-1024
+ bgtu a4,a5,.L18
+ lw a4,-36(s0)
+ li a5,1073758208
+ addi a5,a5,1024
+ beq a4,a5,.L15
+ lw a4,-36(s0)
+ li a5,1073762304
+ addi a5,a5,-2048
+ beq a4,a5,.L16
+ .loc 1 111 10
+ j .L18
+.L11:
+ .loc 1 92 15
+ li a0,3
+ call rcu_clock_freq_get
+ sw a0,-20(s0)
+ .loc 1 93 10
+ j .L17
+.L15:
+ .loc 1 96 15
+ li a0,2
+ call rcu_clock_freq_get
+ sw a0,-20(s0)
+ .loc 1 97 10
+ j .L17
+.L16:
+ .loc 1 100 15
+ li a0,2
+ call rcu_clock_freq_get
+ sw a0,-20(s0)
+ .loc 1 101 10
+ j .L17
+.L14:
+ .loc 1 104 15
+ li a0,2
+ call rcu_clock_freq_get
+ sw a0,-20(s0)
+ .loc 1 105 10
+ j .L17
+.L13:
+ .loc 1 108 15
+ li a0,2
+ call rcu_clock_freq_get
+ sw a0,-20(s0)
+ .loc 1 109 10
+ j .L17
+.L18:
+ .loc 1 111 10
+ nop
+.L17:
+ .loc 1 114 25
+ lw a5,-40(s0)
+ srli a4,a5,1
+ .loc 1 114 17
+ lw a5,-20(s0)
+ add a4,a4,a5
+ .loc 1 114 10
+ lw a5,-40(s0)
+ divu a5,a4,a5
+ sw a5,-32(s0)
+ .loc 1 115 12
+ lw a4,-32(s0)
+ li a5,65536
+ addi a5,a5,-16
+ and a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 116 12
+ lw a5,-32(s0)
+ andi a5,a5,15
+ sw a5,-28(s0)
+ .loc 1 117 222
+ lw a4,-24(s0)
+ lw a5,-28(s0)
+ or a4,a4,a5
+ .loc 1 117 28
+ lw a5,-36(s0)
+ addi a5,a5,8
+ .loc 1 117 7
+ mv a3,a5
+ .loc 1 117 212
+ li a5,65536
+ addi a5,a5,-1
+ and a5,a4,a5
+ .loc 1 117 72
+ sw a5,0(a3)
+ .loc 1 118 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE3:
+ .size usart_baudrate_set, .-usart_baudrate_set
+ .align 1
+ .globl usart_parity_config
+ .type usart_parity_config, @function
+usart_parity_config:
+.LFB4:
+ .loc 1 132 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 134 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,12
+ andi a5,a5,-1537
+ sw a5,0(a4)
+ .loc 1 136 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ lw a5,-24(s0)
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 137 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE4:
+ .size usart_parity_config, .-usart_parity_config
+ .align 1
+ .globl usart_word_length_set
+ .type usart_word_length_set, @function
+usart_word_length_set:
+.LFB5:
+ .loc 1 150 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 152 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ li a5,-4096
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 154 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ lw a5,-24(s0)
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 155 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size usart_word_length_set, .-usart_word_length_set
+ .align 1
+ .globl usart_stop_bit_set
+ .type usart_stop_bit_set, @function
+usart_stop_bit_set:
+.LFB6:
+ .loc 1 170 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 172 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,16
+ mv a3,a5
+ li a5,-12288
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 174 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,16
+ mv a3,a5
+ lw a5,-24(s0)
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 175 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size usart_stop_bit_set, .-usart_stop_bit_set
+ .align 1
+ .globl usart_enable
+ .type usart_enable, @function
+usart_enable:
+.LFB7:
+ .loc 1 184 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 185 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ li a5,8192
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 186 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE7:
+ .size usart_enable, .-usart_enable
+ .align 1
+ .globl usart_disable
+ .type usart_disable, @function
+usart_disable:
+.LFB8:
+ .loc 1 195 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 196 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ li a5,-8192
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 197 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE8:
+ .size usart_disable, .-usart_disable
+ .align 1
+ .globl usart_transmit_config
+ .type usart_transmit_config, @function
+usart_transmit_config:
+.LFB9:
+ .loc 1 210 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 211 14
+ sw zero,-20(s0)
+ .loc 1 213 34
+ lw a5,-36(s0)
+ addi a5,a5,12
+ .loc 1 213 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 214 9
+ lw a5,-20(s0)
+ andi a5,a5,-9
+ sw a5,-20(s0)
+ .loc 1 215 9
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 217 28
+ lw a5,-36(s0)
+ addi a5,a5,12
+ .loc 1 217 7
+ mv a4,a5
+ .loc 1 217 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 218 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE9:
+ .size usart_transmit_config, .-usart_transmit_config
+ .align 1
+ .globl usart_receive_config
+ .type usart_receive_config, @function
+usart_receive_config:
+.LFB10:
+ .loc 1 231 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 232 14
+ sw zero,-20(s0)
+ .loc 1 234 34
+ lw a5,-36(s0)
+ addi a5,a5,12
+ .loc 1 234 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 235 9
+ lw a5,-20(s0)
+ andi a5,a5,-5
+ sw a5,-20(s0)
+ .loc 1 236 9
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 238 28
+ lw a5,-36(s0)
+ addi a5,a5,12
+ .loc 1 238 7
+ mv a4,a5
+ .loc 1 238 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 239 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE10:
+ .size usart_receive_config, .-usart_receive_config
+ .align 1
+ .globl usart_data_transmit
+ .type usart_data_transmit, @function
+usart_data_transmit:
+.LFB11:
+ .loc 1 249 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 250 28
+ lw a5,-20(s0)
+ addi a5,a5,4
+ .loc 1 250 7
+ mv a4,a5
+ .loc 1 250 140
+ lw a5,-24(s0)
+ andi a5,a5,511
+ .loc 1 250 72
+ sw a5,0(a4)
+ .loc 1 251 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE11:
+ .size usart_data_transmit, .-usart_data_transmit
+ .align 1
+ .globl usart_data_receive
+ .type usart_data_receive, @function
+usart_data_receive:
+.LFB12:
+ .loc 1 260 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 261 49
+ lw a5,-20(s0)
+ addi a5,a5,4
+ .loc 1 261 27
+ lw a5,0(a5)
+ .loc 1 261 12
+ slli a5,a5,16
+ srli a5,a5,16
+ andi a5,a5,511
+ slli a5,a5,16
+ srli a5,a5,16
+ .loc 1 262 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE12:
+ .size usart_data_receive, .-usart_data_receive
+ .align 1
+ .globl usart_address_config
+ .type usart_address_config, @function
+usart_address_config:
+.LFB13:
+ .loc 1 272 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ mv a5,a1
+ sb a5,-21(s0)
+ .loc 1 273 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,16
+ andi a5,a5,-16
+ sw a5,0(a4)
+ .loc 1 274 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ .loc 1 274 142
+ lbu a5,-21(s0)
+ andi a5,a5,15
+ .loc 1 274 72
+ lw a3,-20(s0)
+ addi a3,a3,16
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 275 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE13:
+ .size usart_address_config, .-usart_address_config
+ .align 1
+ .globl usart_mute_mode_enable
+ .type usart_mute_mode_enable, @function
+usart_mute_mode_enable:
+.LFB14:
+ .loc 1 284 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 285 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,12
+ ori a5,a5,2
+ sw a5,0(a4)
+ .loc 1 286 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE14:
+ .size usart_mute_mode_enable, .-usart_mute_mode_enable
+ .align 1
+ .globl usart_mute_mode_disable
+ .type usart_mute_mode_disable, @function
+usart_mute_mode_disable:
+.LFB15:
+ .loc 1 295 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 296 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,12
+ andi a5,a5,-3
+ sw a5,0(a4)
+ .loc 1 297 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE15:
+ .size usart_mute_mode_disable, .-usart_mute_mode_disable
+ .align 1
+ .globl usart_mute_mode_wakeup_config
+ .type usart_mute_mode_wakeup_config, @function
+usart_mute_mode_wakeup_config:
+.LFB16:
+ .loc 1 310 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 311 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ li a5,-4096
+ addi a5,a5,2047
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 312 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,12
+ mv a3,a5
+ lw a5,-24(s0)
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 313 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE16:
+ .size usart_mute_mode_wakeup_config, .-usart_mute_mode_wakeup_config
+ .align 1
+ .globl usart_lin_mode_enable
+ .type usart_lin_mode_enable, @function
+usart_lin_mode_enable:
+.LFB17:
+ .loc 1 322 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 323 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,16
+ mv a3,a5
+ li a5,16384
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 324 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE17:
+ .size usart_lin_mode_enable, .-usart_lin_mode_enable
+ .align 1
+ .globl usart_lin_mode_disable
+ .type usart_lin_mode_disable, @function
+usart_lin_mode_disable:
+.LFB18:
+ .loc 1 333 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 334 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,16
+ mv a3,a5
+ li a5,-16384
+ addi a5,a5,-1
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 335 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE18:
+ .size usart_lin_mode_disable, .-usart_lin_mode_disable
+ .align 1
+ .globl usart_lin_break_detection_length_config
+ .type usart_lin_break_detection_length_config, @function
+usart_lin_break_detection_length_config:
+.LFB19:
+ .loc 1 348 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 349 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,16
+ andi a5,a5,-33
+ sw a5,0(a4)
+ .loc 1 350 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ .loc 1 350 111
+ lw a5,-24(s0)
+ andi a5,a5,32
+ .loc 1 350 72
+ lw a3,-20(s0)
+ addi a3,a3,16
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 351 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE19:
+ .size usart_lin_break_detection_length_config, .-usart_lin_break_detection_length_config
+ .align 1
+ .globl usart_send_break
+ .type usart_send_break, @function
+usart_send_break:
+.LFB20:
+ .loc 1 360 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 361 72
+ lw a5,-20(s0)
+ addi a5,a5,12
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,12
+ ori a5,a5,1
+ sw a5,0(a4)
+ .loc 1 362 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE20:
+ .size usart_send_break, .-usart_send_break
+ .align 1
+ .globl usart_halfduplex_enable
+ .type usart_halfduplex_enable, @function
+usart_halfduplex_enable:
+.LFB21:
+ .loc 1 371 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 372 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ ori a5,a5,8
+ sw a5,0(a4)
+ .loc 1 373 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE21:
+ .size usart_halfduplex_enable, .-usart_halfduplex_enable
+ .align 1
+ .globl usart_halfduplex_disable
+ .type usart_halfduplex_disable, @function
+usart_halfduplex_disable:
+.LFB22:
+ .loc 1 382 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 383 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ andi a5,a5,-9
+ sw a5,0(a4)
+ .loc 1 384 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE22:
+ .size usart_halfduplex_disable, .-usart_halfduplex_disable
+ .align 1
+ .globl usart_synchronous_clock_enable
+ .type usart_synchronous_clock_enable, @function
+usart_synchronous_clock_enable:
+.LFB23:
+ .loc 1 393 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 394 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,16
+ mv a3,a5
+ li a5,4096
+ addi a5,a5,-2048
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 395 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE23:
+ .size usart_synchronous_clock_enable, .-usart_synchronous_clock_enable
+ .align 1
+ .globl usart_synchronous_clock_disable
+ .type usart_synchronous_clock_disable, @function
+usart_synchronous_clock_disable:
+.LFB24:
+ .loc 1 404 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 405 72
+ lw a5,-20(s0)
+ addi a5,a5,16
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,16
+ mv a3,a5
+ li a5,-4096
+ addi a5,a5,2047
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 406 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE24:
+ .size usart_synchronous_clock_disable, .-usart_synchronous_clock_disable
+ .align 1
+ .globl usart_synchronous_clock_config
+ .type usart_synchronous_clock_config, @function
+usart_synchronous_clock_config:
+.LFB25:
+ .loc 1 427 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ sw a2,-44(s0)
+ sw a3,-48(s0)
+ .loc 1 428 14
+ sw zero,-20(s0)
+ .loc 1 431 34
+ lw a5,-36(s0)
+ addi a5,a5,16
+ .loc 1 431 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 432 9
+ lw a5,-20(s0)
+ andi a5,a5,-1793
+ sw a5,-20(s0)
+ .loc 1 434 48
+ lw a5,-40(s0)
+ andi a4,a5,256
+ .loc 1 434 94
+ lw a5,-44(s0)
+ andi a5,a5,512
+ .loc 1 434 56
+ or a4,a4,a5
+ .loc 1 434 140
+ lw a5,-48(s0)
+ andi a5,a5,1024
+ .loc 1 434 101
+ or a5,a4,a5
+ .loc 1 434 9
+ lw a4,-20(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 436 28
+ lw a5,-36(s0)
+ addi a5,a5,16
+ .loc 1 436 7
+ mv a4,a5
+ .loc 1 436 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 437 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE25:
+ .size usart_synchronous_clock_config, .-usart_synchronous_clock_config
+ .align 1
+ .globl usart_guard_time_config
+ .type usart_guard_time_config, @function
+usart_guard_time_config:
+.LFB26:
+ .loc 1 447 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 448 72
+ lw a5,-20(s0)
+ addi a5,a5,24
+ lw a4,0(a5)
+ lw a5,-20(s0)
+ addi a5,a5,24
+ mv a3,a5
+ li a5,-65536
+ addi a5,a5,255
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 449 72
+ lw a5,-20(s0)
+ addi a5,a5,24
+ lw a4,0(a5)
+ .loc 1 449 152
+ lw a5,-24(s0)
+ slli a3,a5,8
+ .loc 1 449 143
+ li a5,65536
+ addi a5,a5,-1
+ and a5,a3,a5
+ .loc 1 449 72
+ lw a3,-20(s0)
+ addi a3,a3,24
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 450 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE26:
+ .size usart_guard_time_config, .-usart_guard_time_config
+ .align 1
+ .globl usart_smartcard_mode_enable
+ .type usart_smartcard_mode_enable, @function
+usart_smartcard_mode_enable:
+.LFB27:
+ .loc 1 459 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 460 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ ori a5,a5,32
+ sw a5,0(a4)
+ .loc 1 461 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE27:
+ .size usart_smartcard_mode_enable, .-usart_smartcard_mode_enable
+ .align 1
+ .globl usart_smartcard_mode_disable
+ .type usart_smartcard_mode_disable, @function
+usart_smartcard_mode_disable:
+.LFB28:
+ .loc 1 470 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 471 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ andi a5,a5,-33
+ sw a5,0(a4)
+ .loc 1 472 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE28:
+ .size usart_smartcard_mode_disable, .-usart_smartcard_mode_disable
+ .align 1
+ .globl usart_smartcard_mode_nack_enable
+ .type usart_smartcard_mode_nack_enable, @function
+usart_smartcard_mode_nack_enable:
+.LFB29:
+ .loc 1 481 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 482 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ ori a5,a5,16
+ sw a5,0(a4)
+ .loc 1 483 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE29:
+ .size usart_smartcard_mode_nack_enable, .-usart_smartcard_mode_nack_enable
+ .align 1
+ .globl usart_smartcard_mode_nack_disable
+ .type usart_smartcard_mode_nack_disable, @function
+usart_smartcard_mode_nack_disable:
+.LFB30:
+ .loc 1 492 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 493 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ andi a5,a5,-17
+ sw a5,0(a4)
+ .loc 1 494 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE30:
+ .size usart_smartcard_mode_nack_disable, .-usart_smartcard_mode_nack_disable
+ .align 1
+ .globl usart_irda_mode_enable
+ .type usart_irda_mode_enable, @function
+usart_irda_mode_enable:
+.LFB31:
+ .loc 1 503 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 504 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ ori a5,a5,2
+ sw a5,0(a4)
+ .loc 1 505 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE31:
+ .size usart_irda_mode_enable, .-usart_irda_mode_enable
+ .align 1
+ .globl usart_irda_mode_disable
+ .type usart_irda_mode_disable, @function
+usart_irda_mode_disable:
+.LFB32:
+ .loc 1 514 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 515 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ andi a5,a5,-3
+ sw a5,0(a4)
+ .loc 1 516 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE32:
+ .size usart_irda_mode_disable, .-usart_irda_mode_disable
+ .align 1
+ .globl usart_prescaler_config
+ .type usart_prescaler_config, @function
+usart_prescaler_config:
+.LFB33:
+ .loc 1 526 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ mv a5,a1
+ sb a5,-21(s0)
+ .loc 1 527 72
+ lw a5,-20(s0)
+ addi a5,a5,24
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,24
+ andi a5,a5,-256
+ sw a5,0(a4)
+ .loc 1 528 72
+ lw a5,-20(s0)
+ addi a5,a5,24
+ lw a4,0(a5)
+ lbu a5,-21(s0)
+ lw a3,-20(s0)
+ addi a3,a3,24
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 529 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE33:
+ .size usart_prescaler_config, .-usart_prescaler_config
+ .align 1
+ .globl usart_irda_lowpower_config
+ .type usart_irda_lowpower_config, @function
+usart_irda_lowpower_config:
+.LFB34:
+ .loc 1 542 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 543 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a5,0(a5)
+ lw a4,-20(s0)
+ addi a4,a4,20
+ andi a5,a5,-5
+ sw a5,0(a4)
+ .loc 1 544 72
+ lw a5,-20(s0)
+ addi a5,a5,20
+ lw a4,0(a5)
+ .loc 1 544 111
+ lw a5,-24(s0)
+ andi a5,a5,4
+ .loc 1 544 72
+ lw a3,-20(s0)
+ addi a3,a3,20
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 545 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE34:
+ .size usart_irda_lowpower_config, .-usart_irda_lowpower_config
+ .align 1
+ .globl usart_hardware_flow_rts_config
+ .type usart_hardware_flow_rts_config, @function
+usart_hardware_flow_rts_config:
+.LFB35:
+ .loc 1 558 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 559 14
+ sw zero,-20(s0)
+ .loc 1 561 34
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 561 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 562 9
+ lw a5,-20(s0)
+ andi a5,a5,-257
+ sw a5,-20(s0)
+ .loc 1 563 9
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 565 28
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 565 7
+ mv a4,a5
+ .loc 1 565 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 566 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE35:
+ .size usart_hardware_flow_rts_config, .-usart_hardware_flow_rts_config
+ .align 1
+ .globl usart_hardware_flow_cts_config
+ .type usart_hardware_flow_cts_config, @function
+usart_hardware_flow_cts_config:
+.LFB36:
+ .loc 1 579 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 580 14
+ sw zero,-20(s0)
+ .loc 1 582 34
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 582 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 583 9
+ lw a5,-20(s0)
+ andi a5,a5,-513
+ sw a5,-20(s0)
+ .loc 1 584 9
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 586 28
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 586 7
+ mv a4,a5
+ .loc 1 586 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 587 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE36:
+ .size usart_hardware_flow_cts_config, .-usart_hardware_flow_cts_config
+ .align 1
+ .globl usart_dma_receive_config
+ .type usart_dma_receive_config, @function
+usart_dma_receive_config:
+.LFB37:
+ .loc 1 600 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 601 14
+ sw zero,-20(s0)
+ .loc 1 603 34
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 603 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 604 9
+ lw a5,-20(s0)
+ andi a5,a5,-65
+ sw a5,-20(s0)
+ .loc 1 605 9
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 607 28
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 607 7
+ mv a4,a5
+ .loc 1 607 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 608 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE37:
+ .size usart_dma_receive_config, .-usart_dma_receive_config
+ .align 1
+ .globl usart_dma_transmit_config
+ .type usart_dma_transmit_config, @function
+usart_dma_transmit_config:
+.LFB38:
+ .loc 1 621 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 622 14
+ sw zero,-20(s0)
+ .loc 1 624 34
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 624 9
+ lw a5,0(a5)
+ sw a5,-20(s0)
+ .loc 1 625 9
+ lw a5,-20(s0)
+ andi a5,a5,-129
+ sw a5,-20(s0)
+ .loc 1 626 9
+ lw a4,-20(s0)
+ lw a5,-40(s0)
+ or a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 628 28
+ lw a5,-36(s0)
+ addi a5,a5,20
+ .loc 1 628 7
+ mv a4,a5
+ .loc 1 628 72
+ lw a5,-20(s0)
+ sw a5,0(a4)
+ .loc 1 629 1
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE38:
+ .size usart_dma_transmit_config, .-usart_dma_transmit_config
+ .align 1
+ .globl usart_flag_get
+ .type usart_flag_get, @function
+usart_flag_get:
+.LFB39:
+ .loc 1 650 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 651 106
+ lw a5,-24(s0)
+ srli a5,a5,6
+ andi a4,a5,1023
+ .loc 1 651 42
+ lw a5,-20(s0)
+ add a5,a4,a5
+ .loc 1 651 20
+ lw a4,0(a5)
+ .loc 1 651 165
+ lw a5,-24(s0)
+ andi a5,a5,31
+ .loc 1 651 14
+ srl a5,a4,a5
+ andi a5,a5,1
+ .loc 1 651 7
+ beq a5,zero,.L56
+ .loc 1 652 16
+ li a5,1
+ j .L57
+.L56:
+ .loc 1 654 16
+ li a5,0
+.L57:
+ .loc 1 656 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE39:
+ .size usart_flag_get, .-usart_flag_get
+ .align 1
+ .globl usart_flag_clear
+ .type usart_flag_clear, @function
+usart_flag_clear:
+.LFB40:
+ .loc 1 671 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 672 102
+ lw a5,-24(s0)
+ srli a5,a5,6
+ andi a4,a5,1023
+ lw a5,-20(s0)
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 672 154
+ lw a5,-24(s0)
+ andi a5,a5,31
+ .loc 1 672 107
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 672 105
+ not a5,a5
+ .loc 1 672 102
+ lw a3,-24(s0)
+ srli a3,a3,6
+ andi a2,a3,1023
+ lw a3,-20(s0)
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 673 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE40:
+ .size usart_flag_clear, .-usart_flag_clear
+ .align 1
+ .globl usart_interrupt_enable
+ .type usart_interrupt_enable, @function
+usart_interrupt_enable:
+.LFB41:
+ .loc 1 692 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 693 107
+ lw a5,-24(s0)
+ srli a5,a5,6
+ andi a4,a5,1023
+ lw a5,-20(s0)
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 693 163
+ lw a5,-24(s0)
+ andi a5,a5,31
+ .loc 1 693 111
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 693 107
+ lw a3,-24(s0)
+ srli a3,a3,6
+ andi a2,a3,1023
+ lw a3,-20(s0)
+ add a3,a2,a3
+ or a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 694 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE41:
+ .size usart_interrupt_enable, .-usart_interrupt_enable
+ .align 1
+ .globl usart_interrupt_disable
+ .type usart_interrupt_disable, @function
+usart_interrupt_disable:
+.LFB42:
+ .loc 1 713 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 714 107
+ lw a5,-24(s0)
+ srli a5,a5,6
+ andi a4,a5,1023
+ lw a5,-20(s0)
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 714 164
+ lw a5,-24(s0)
+ andi a5,a5,31
+ .loc 1 714 112
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 714 110
+ not a5,a5
+ .loc 1 714 107
+ lw a3,-24(s0)
+ srli a3,a3,6
+ andi a2,a3,1023
+ lw a3,-20(s0)
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 715 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE42:
+ .size usart_interrupt_disable, .-usart_interrupt_disable
+ .align 1
+ .globl usart_interrupt_flag_get
+ .type usart_interrupt_flag_get, @function
+usart_interrupt_flag_get:
+.LFB43:
+ .loc 1 737 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ sw a1,-40(s0)
+ .loc 1 738 14
+ sw zero,-20(s0)
+ .loc 1 738 30
+ sw zero,-24(s0)
+ .loc 1 740 110
+ lw a5,-40(s0)
+ srli a5,a5,6
+ andi a4,a5,1023
+ .loc 1 740 42
+ lw a5,-36(s0)
+ add a5,a4,a5
+ .loc 1 740 20
+ lw a4,0(a5)
+ .loc 1 740 173
+ lw a5,-40(s0)
+ andi a5,a5,31
+ .loc 1 740 122
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 740 15
+ and a5,a4,a5
+ sw a5,-20(s0)
+ .loc 1 742 93
+ lw a5,-40(s0)
+ srli a4,a5,22
+ .loc 1 742 43
+ lw a5,-36(s0)
+ add a5,a4,a5
+ .loc 1 742 21
+ lw a4,0(a5)
+ .loc 1 742 175
+ lw a5,-40(s0)
+ srli a5,a5,16
+ andi a5,a5,31
+ .loc 1 742 106
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 742 16
+ and a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 744 7
+ lw a5,-24(s0)
+ beq a5,zero,.L62
+ .loc 1 744 19 discriminator 1
+ lw a5,-20(s0)
+ beq a5,zero,.L62
+ .loc 1 745 16
+ li a5,1
+ j .L63
+.L62:
+ .loc 1 747 16
+ li a5,0
+.L63:
+ .loc 1 749 1
+ mv a0,a5
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE43:
+ .size usart_interrupt_flag_get, .-usart_interrupt_flag_get
+ .align 1
+ .globl usart_interrupt_flag_clear
+ .type usart_interrupt_flag_clear, @function
+usart_interrupt_flag_clear:
+.LFB44:
+ .loc 1 764 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 765 89
+ lw a5,-24(s0)
+ srli a4,a5,22
+ lw a5,-20(s0)
+ add a5,a4,a5
+ lw a4,0(a5)
+ .loc 1 765 163
+ lw a5,-24(s0)
+ srli a5,a5,16
+ andi a5,a5,31
+ .loc 1 765 94
+ li a3,1
+ sll a5,a3,a5
+ .loc 1 765 92
+ not a5,a5
+ .loc 1 765 89
+ lw a3,-24(s0)
+ srli a2,a3,22
+ lw a3,-20(s0)
+ add a3,a2,a3
+ and a5,a4,a5
+ sw a5,0(a3)
+ .loc 1 766 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE44:
+ .size usart_interrupt_flag_clear, .-usart_interrupt_flag_clear
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .file 4 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .file 6 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0xb60
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF3302
+ .byte 0xc
+ .4byte .LASF3303
+ .4byte .LASF3304
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3169
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3170
+ .byte 0x3
+ .4byte .LASF3173
+ .byte 0x2
+ .byte 0x2b
+ .byte 0x17
+ .4byte 0x43
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF3171
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF3172
+ .byte 0x3
+ .4byte .LASF3174
+ .byte 0x2
+ .byte 0x39
+ .byte 0x1c
+ .4byte 0x5d
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF3175
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF3176
+ .byte 0x3
+ .4byte .LASF3177
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x77
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3178
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF3179
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF3180
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF3181
+ .byte 0x3
+ .byte 0x18
+ .byte 0x13
+ .4byte 0x37
+ .byte 0x3
+ .4byte .LASF3182
+ .byte 0x3
+ .byte 0x24
+ .byte 0x14
+ .4byte 0x51
+ .byte 0x3
+ .4byte .LASF3183
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x6b
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x4
+ .byte 0xb5
+ .byte 0xe
+ .4byte 0xd2
+ .byte 0x6
+ .4byte .LASF3184
+ .byte 0
+ .byte 0x7
+ .string "SET"
+ .byte 0x1
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3185
+ .byte 0x4
+ .byte 0xb5
+ .byte 0x28
+ .4byte 0xb7
+ .byte 0x8
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x139
+ .byte 0xe
+ .4byte 0x1ce
+ .byte 0x9
+ .4byte .LASF3186
+ .2byte 0xa0c
+ .byte 0x9
+ .4byte .LASF3187
+ .2byte 0x400
+ .byte 0x9
+ .4byte .LASF3188
+ .2byte 0x401
+ .byte 0x9
+ .4byte .LASF3189
+ .2byte 0x402
+ .byte 0x9
+ .4byte .LASF3190
+ .2byte 0x403
+ .byte 0x9
+ .4byte .LASF3191
+ .2byte 0x404
+ .byte 0x9
+ .4byte .LASF3192
+ .2byte 0x405
+ .byte 0x9
+ .4byte .LASF3193
+ .2byte 0x40b
+ .byte 0x9
+ .4byte .LASF3194
+ .2byte 0x40e
+ .byte 0x9
+ .4byte .LASF3195
+ .2byte 0x40f
+ .byte 0x9
+ .4byte .LASF3196
+ .2byte 0x411
+ .byte 0x9
+ .4byte .LASF3197
+ .2byte 0x412
+ .byte 0x9
+ .4byte .LASF3198
+ .2byte 0x413
+ .byte 0x9
+ .4byte .LASF3199
+ .2byte 0x414
+ .byte 0x9
+ .4byte .LASF3200
+ .2byte 0x415
+ .byte 0x9
+ .4byte .LASF3201
+ .2byte 0x416
+ .byte 0x9
+ .4byte .LASF3202
+ .2byte 0x419
+ .byte 0x9
+ .4byte .LASF3203
+ .2byte 0x41a
+ .byte 0x9
+ .4byte .LASF3204
+ .2byte 0x41b
+ .byte 0x9
+ .4byte .LASF3205
+ .2byte 0x41c
+ .byte 0x9
+ .4byte .LASF3206
+ .2byte 0x41d
+ .byte 0x9
+ .4byte .LASF3207
+ .2byte 0x300
+ .byte 0x9
+ .4byte .LASF3208
+ .2byte 0x302
+ .byte 0x9
+ .4byte .LASF3209
+ .2byte 0x303
+ .byte 0x9
+ .4byte .LASF3210
+ .2byte 0x304
+ .byte 0x9
+ .4byte .LASF3211
+ .2byte 0x305
+ .byte 0x9
+ .4byte .LASF3212
+ .2byte 0x306
+ .byte 0x9
+ .4byte .LASF3213
+ .2byte 0x309
+ .byte 0x9
+ .4byte .LASF3214
+ .2byte 0x30a
+ .byte 0x9
+ .4byte .LASF3215
+ .2byte 0x30b
+ .byte 0x9
+ .4byte .LASF3216
+ .2byte 0x30c
+ .byte 0x9
+ .4byte .LASF3217
+ .2byte 0x30e
+ .byte 0
+ .byte 0x8
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x5
+ .2byte 0x1a1
+ .byte 0xe
+ .4byte 0x1f6
+ .byte 0x6
+ .4byte .LASF3218
+ .byte 0
+ .byte 0x6
+ .4byte .LASF3219
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3220
+ .byte 0x2
+ .byte 0x6
+ .4byte .LASF3221
+ .byte 0x3
+ .byte 0
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF3222
+ .byte 0x5
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x29
+ .byte 0x6
+ .byte 0x8c
+ .byte 0x1
+ .4byte 0x248
+ .byte 0x6
+ .4byte .LASF3223
+ .byte 0x9
+ .byte 0x6
+ .4byte .LASF3224
+ .byte 0x8
+ .byte 0x6
+ .4byte .LASF3225
+ .byte 0x7
+ .byte 0x6
+ .4byte .LASF3226
+ .byte 0x6
+ .byte 0x6
+ .4byte .LASF3227
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3228
+ .byte 0x4
+ .byte 0x6
+ .4byte .LASF3229
+ .byte 0x3
+ .byte 0x6
+ .4byte .LASF3230
+ .byte 0x2
+ .byte 0x6
+ .4byte .LASF3231
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3232
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .4byte .LASF3233
+ .byte 0x6
+ .byte 0x98
+ .byte 0x2
+ .4byte 0x1fd
+ .byte 0xa
+ .4byte .LASF3238
+ .byte 0x1
+ .2byte 0x2fb
+ .byte 0x6
+ .4byte .LFB44
+ .4byte .LFE44-.LFB44
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x28c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x2fb
+ .byte 0x2a
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3235
+ .byte 0x1
+ .2byte 0x2fb
+ .byte 0x41
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3244
+ .byte 0x1
+ .2byte 0x2e0
+ .byte 0xc
+ .4byte 0xd2
+ .4byte .LFB43
+ .4byte .LFE43-.LFB43
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x2e8
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x2e0
+ .byte 0x2e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3235
+ .byte 0x1
+ .2byte 0x2e0
+ .byte 0x45
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xd
+ .4byte .LASF3236
+ .byte 0x1
+ .2byte 0x2e2
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xd
+ .4byte .LASF3237
+ .byte 0x1
+ .2byte 0x2e2
+ .byte 0x1e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3239
+ .byte 0x1
+ .2byte 0x2c8
+ .byte 0x6
+ .4byte .LFB42
+ .4byte .LFE42-.LFB42
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x320
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x2c8
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3240
+ .byte 0x1
+ .2byte 0x2c8
+ .byte 0x3e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3241
+ .byte 0x1
+ .2byte 0x2b3
+ .byte 0x6
+ .4byte .LFB41
+ .4byte .LFE41-.LFB41
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x358
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x2b3
+ .byte 0x26
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3240
+ .byte 0x1
+ .2byte 0x2b3
+ .byte 0x3d
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3242
+ .byte 0x1
+ .2byte 0x29e
+ .byte 0x6
+ .4byte .LFB40
+ .4byte .LFE40-.LFB40
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x390
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x29e
+ .byte 0x20
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3243
+ .byte 0x1
+ .2byte 0x29e
+ .byte 0x3e
+ .4byte 0x248
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3245
+ .byte 0x1
+ .2byte 0x289
+ .byte 0xc
+ .4byte 0xd2
+ .4byte .LFB39
+ .4byte .LFE39-.LFB39
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x3cc
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x289
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3243
+ .byte 0x1
+ .2byte 0x289
+ .byte 0x42
+ .4byte 0x248
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3246
+ .byte 0x1
+ .2byte 0x26c
+ .byte 0x6
+ .4byte .LFB38
+ .4byte .LFE38-.LFB38
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x414
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x26c
+ .byte 0x29
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3247
+ .byte 0x1
+ .2byte 0x26c
+ .byte 0x40
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xe
+ .string "ctl"
+ .byte 0x1
+ .2byte 0x26e
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3248
+ .byte 0x1
+ .2byte 0x257
+ .byte 0x6
+ .4byte .LFB37
+ .4byte .LFE37-.LFB37
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x45c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x257
+ .byte 0x28
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3247
+ .byte 0x1
+ .2byte 0x257
+ .byte 0x3f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xe
+ .string "ctl"
+ .byte 0x1
+ .2byte 0x259
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3249
+ .byte 0x1
+ .2byte 0x242
+ .byte 0x6
+ .4byte .LFB36
+ .4byte .LFE36-.LFB36
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x4a4
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x242
+ .byte 0x2e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3250
+ .byte 0x1
+ .2byte 0x242
+ .byte 0x45
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xe
+ .string "ctl"
+ .byte 0x1
+ .2byte 0x244
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3251
+ .byte 0x1
+ .2byte 0x22d
+ .byte 0x6
+ .4byte .LFB35
+ .4byte .LFE35-.LFB35
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x4ec
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x22d
+ .byte 0x2e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3252
+ .byte 0x1
+ .2byte 0x22d
+ .byte 0x45
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xe
+ .string "ctl"
+ .byte 0x1
+ .2byte 0x22f
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3253
+ .byte 0x1
+ .2byte 0x21d
+ .byte 0x6
+ .4byte .LFB34
+ .4byte .LFE34-.LFB34
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x524
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x21d
+ .byte 0x2a
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3254
+ .byte 0x1
+ .2byte 0x21d
+ .byte 0x41
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3255
+ .byte 0x1
+ .2byte 0x20d
+ .byte 0x6
+ .4byte .LFB33
+ .4byte .LFE33-.LFB33
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x55c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x20d
+ .byte 0x26
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xf
+ .string "psc"
+ .byte 0x1
+ .2byte 0x20d
+ .byte 0x3c
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6b
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3256
+ .byte 0x1
+ .2byte 0x201
+ .byte 0x6
+ .4byte .LFB32
+ .4byte .LFE32-.LFB32
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x584
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x201
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3257
+ .byte 0x1
+ .2byte 0x1f6
+ .byte 0x6
+ .4byte .LFB31
+ .4byte .LFE31-.LFB31
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x5ac
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1f6
+ .byte 0x26
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3258
+ .byte 0x1
+ .2byte 0x1eb
+ .byte 0x6
+ .4byte .LFB30
+ .4byte .LFE30-.LFB30
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x5d4
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1eb
+ .byte 0x31
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3259
+ .byte 0x1
+ .2byte 0x1e0
+ .byte 0x6
+ .4byte .LFB29
+ .4byte .LFE29-.LFB29
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x5fc
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1e0
+ .byte 0x30
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3260
+ .byte 0x1
+ .2byte 0x1d5
+ .byte 0x6
+ .4byte .LFB28
+ .4byte .LFE28-.LFB28
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x624
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1d5
+ .byte 0x2c
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3261
+ .byte 0x1
+ .2byte 0x1ca
+ .byte 0x6
+ .4byte .LFB27
+ .4byte .LFE27-.LFB27
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x64c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1ca
+ .byte 0x2b
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3262
+ .byte 0x1
+ .2byte 0x1be
+ .byte 0x6
+ .4byte .LFB26
+ .4byte .LFE26-.LFB26
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x684
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1be
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3263
+ .byte 0x1
+ .2byte 0x1be
+ .byte 0x3d
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3264
+ .byte 0x1
+ .2byte 0x1aa
+ .byte 0x6
+ .4byte .LFB25
+ .4byte .LFE25-.LFB25
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x6ec
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x1aa
+ .byte 0x2e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3265
+ .byte 0x1
+ .2byte 0x1aa
+ .byte 0x45
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xf
+ .string "cph"
+ .byte 0x1
+ .2byte 0x1aa
+ .byte 0x54
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x54
+ .byte 0xf
+ .string "cpl"
+ .byte 0x1
+ .2byte 0x1aa
+ .byte 0x62
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x50
+ .byte 0xe
+ .string "ctl"
+ .byte 0x1
+ .2byte 0x1ac
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3266
+ .byte 0x1
+ .2byte 0x193
+ .byte 0x6
+ .4byte .LFB24
+ .4byte .LFE24-.LFB24
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x714
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x193
+ .byte 0x2f
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3267
+ .byte 0x1
+ .2byte 0x188
+ .byte 0x6
+ .4byte .LFB23
+ .4byte .LFE23-.LFB23
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x73c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x188
+ .byte 0x2e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3268
+ .byte 0x1
+ .2byte 0x17d
+ .byte 0x6
+ .4byte .LFB22
+ .4byte .LFE22-.LFB22
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x764
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x17d
+ .byte 0x28
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3269
+ .byte 0x1
+ .2byte 0x172
+ .byte 0x6
+ .4byte .LFB21
+ .4byte .LFE21-.LFB21
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x78c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x172
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3270
+ .byte 0x1
+ .2byte 0x167
+ .byte 0x6
+ .4byte .LFB20
+ .4byte .LFE20-.LFB20
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x7b4
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x167
+ .byte 0x20
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3271
+ .byte 0x1
+ .2byte 0x15b
+ .byte 0x6
+ .4byte .LFB19
+ .4byte .LFE19-.LFB19
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x7ec
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x15b
+ .byte 0x37
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3272
+ .byte 0x1
+ .2byte 0x15b
+ .byte 0x4e
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3273
+ .byte 0x1
+ .2byte 0x14c
+ .byte 0x6
+ .4byte .LFB18
+ .4byte .LFE18-.LFB18
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x814
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x14c
+ .byte 0x26
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3274
+ .byte 0x1
+ .2byte 0x141
+ .byte 0x6
+ .4byte .LFB17
+ .4byte .LFE17-.LFB17
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x83c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x141
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3275
+ .byte 0x1
+ .2byte 0x135
+ .byte 0x6
+ .4byte .LFB16
+ .4byte .LFE16-.LFB16
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x874
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x135
+ .byte 0x2d
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3276
+ .byte 0x1
+ .2byte 0x135
+ .byte 0x44
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3277
+ .byte 0x1
+ .2byte 0x126
+ .byte 0x6
+ .4byte .LFB15
+ .4byte .LFE15-.LFB15
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x89c
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x126
+ .byte 0x27
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3278
+ .byte 0x1
+ .2byte 0x11b
+ .byte 0x6
+ .4byte .LFB14
+ .4byte .LFE14-.LFB14
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x8c4
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x11b
+ .byte 0x26
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3279
+ .byte 0x1
+ .2byte 0x10f
+ .byte 0x6
+ .4byte .LFB13
+ .4byte .LFE13-.LFB13
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x8fc
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x10f
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3280
+ .byte 0x1
+ .2byte 0x10f
+ .byte 0x3a
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6b
+ .byte 0
+ .byte 0xc
+ .4byte .LASF3281
+ .byte 0x1
+ .2byte 0x103
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB12
+ .4byte .LFE12-.LFB12
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x928
+ .byte 0xb
+ .4byte .LASF3234
+ .byte 0x1
+ .2byte 0x103
+ .byte 0x26
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3282
+ .byte 0x1
+ .byte 0xf8
+ .byte 0x6
+ .4byte .LFB11
+ .4byte .LFE11-.LFB11
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x95d
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0xf8
+ .byte 0x23
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x11
+ .4byte .LASF3283
+ .byte 0x1
+ .byte 0xf8
+ .byte 0x3a
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3284
+ .byte 0x1
+ .byte 0xe6
+ .byte 0x6
+ .4byte .LFB10
+ .4byte .LFE10-.LFB10
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x9a1
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0xe6
+ .byte 0x24
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x11
+ .4byte .LASF3285
+ .byte 0x1
+ .byte 0xe6
+ .byte 0x3b
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0x12
+ .string "ctl"
+ .byte 0x1
+ .byte 0xe8
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3286
+ .byte 0x1
+ .byte 0xd1
+ .byte 0x6
+ .4byte .LFB9
+ .4byte .LFE9-.LFB9
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x9e5
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0xd1
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x11
+ .4byte .LASF3287
+ .byte 0x1
+ .byte 0xd1
+ .byte 0x3c
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0x12
+ .string "ctl"
+ .byte 0x1
+ .byte 0xd3
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3288
+ .byte 0x1
+ .byte 0xc2
+ .byte 0x6
+ .4byte .LFB8
+ .4byte .LFE8-.LFB8
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa0b
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0xc2
+ .byte 0x1d
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3289
+ .byte 0x1
+ .byte 0xb7
+ .byte 0x6
+ .4byte .LFB7
+ .4byte .LFE7-.LFB7
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa31
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0xb7
+ .byte 0x1c
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3290
+ .byte 0x1
+ .byte 0xa9
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa66
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0xa9
+ .byte 0x22
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x11
+ .4byte .LASF3291
+ .byte 0x1
+ .byte 0xa9
+ .byte 0x39
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3292
+ .byte 0x1
+ .byte 0x95
+ .byte 0x6
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa9b
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0x95
+ .byte 0x25
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x11
+ .4byte .LASF3293
+ .byte 0x1
+ .byte 0x95
+ .byte 0x3c
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x10
+ .4byte .LASF3294
+ .byte 0x1
+ .byte 0x83
+ .byte 0x6
+ .4byte .LFB4
+ .4byte .LFE4-.LFB4
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xad0
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0x83
+ .byte 0x23
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x11
+ .4byte .LASF3295
+ .byte 0x1
+ .byte 0x83
+ .byte 0x3a
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x13
+ .4byte .LASF3296
+ .byte 0x1
+ .byte 0x55
+ .byte 0x6
+ .4byte .LFB3
+ .4byte .LFE3-.LFB3
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xb41
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0x55
+ .byte 0x22
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x11
+ .4byte .LASF3297
+ .byte 0x1
+ .byte 0x55
+ .byte 0x39
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0x14
+ .4byte .LASF3298
+ .byte 0x1
+ .byte 0x57
+ .byte 0xe
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x14
+ .4byte .LASF3299
+ .byte 0x1
+ .byte 0x57
+ .byte 0x17
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x14
+ .4byte .LASF3300
+ .byte 0x1
+ .byte 0x57
+ .byte 0x22
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0x14
+ .4byte .LASF3301
+ .byte 0x1
+ .byte 0x57
+ .byte 0x2d
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0
+ .byte 0x15
+ .4byte .LASF3305
+ .byte 0x1
+ .byte 0x2d
+ .byte 0x6
+ .4byte .LFB2
+ .4byte .LFE2-.LFB2
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x11
+ .4byte .LASF3234
+ .byte 0x1
+ .byte 0x2d
+ .byte 0x1c
+ .4byte 0xab
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0x5
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xd
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xe
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xf
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x10
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x11
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x12
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x13
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x14
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x15
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .byte 0x3
+ .byte 0x25
+ .byte 0x6
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF329
+ .byte 0x3
+ .byte 0x28
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .file 7 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x7
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF341
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF342
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF343
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x9
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF344
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 11 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0xb
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 12 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xc
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xd
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF528
+ .byte 0x3
+ .byte 0x27
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .byte 0x3
+ .byte 0x36
+ .byte 0x5
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x6
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x20
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF2955
+ .file 33 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3019
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF339
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF340
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF348
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF349
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF360
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF371
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF372
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF373
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF374
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF403
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF404
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF378
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF379
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF382
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF381
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF420
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF421
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF489
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF490
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF525
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF526
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF709
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF710
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF778
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF779
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1116
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1117
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1124
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1125
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1225
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1226
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1324
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1325
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1331
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1332
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1361
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1362
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1483
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1484
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1597
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1598
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1878
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1879
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1990
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1991
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2017
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2018
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2041
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2042
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2074
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2075
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2405
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2406
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2445
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2446
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2588
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2589
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2794
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2937
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2938
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2954
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2967
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2985
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3001
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF3002
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3003
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3005
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3008
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3018
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3024
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3044
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3049
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.43.723b7004fee4b8e634cf090b19700efd,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3057
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF3073
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF3074
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3086
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3104
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3120
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3121
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3124
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3127
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF3137
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3138
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3143
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3163
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF3293:
+ .string "wlen"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2500:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1588:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF3122:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF366:
+ .string "___int16_t_defined 1"
+.LASF2261:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF758:
+ .string "BKP_DATA BITS(0,15)"
+.LASF885:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1937:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF3042:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF1718:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF2964:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1401:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF835:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1277:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2462:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2406:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF1302:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF3099:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF2140:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF2431:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF2117:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF2991:
+ .string "_T_WCHAR "
+.LASF2002:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF537:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1615:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF1975:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2889:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2497:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF827:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2474:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF1929:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF3098:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF914:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF3299:
+ .string "intdiv"
+.LASF2561:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2203:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF2451:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF3270:
+ .string "usart_send_break"
+.LASF2876:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF1472:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1096:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF3178:
+ .string "long unsigned int"
+.LASF727:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1769:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF3216:
+ .string "RCU_SPI0RST"
+.LASF2411:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF1777:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF501:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1671:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1340:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF755:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2775:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF1408:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF2414:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF478:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF2005:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF1037:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF2552:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF2984:
+ .string "_SIZET_ "
+.LASF1339:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF1116:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF439:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1610:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF1721:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF2299:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF581:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF3066:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF1226:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3044:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF3250:
+ .string "ctsconfig"
+.LASF2557:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF2067:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF1739:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF2064:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF3303:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Source\\gd32vf103_usart.c"
+.LASF341:
+ .string "SYSTEM_GD32VF103_H "
+.LASF1516:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF498:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF459:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1048:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF452:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF1773:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF413:
+ .string "_UINT32_T_DECLARED "
+.LASF1278:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF784:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1781:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF674:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1807:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2429:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF3087:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF435:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1115:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF1553:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1017:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF993:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF1900:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF2297:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1726:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF386:
+ .string "short +1"
+.LASF1873:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1602:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF2808:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF702:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF3114:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF2750:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF1014:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF3300:
+ .string "fradiv"
+.LASF678:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2236:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2577:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF1045:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF467:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1823:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF512:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF3100:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2790:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2784:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF2042:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2840:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF1764:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1555:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF511:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1000:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2558:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF2114:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1144:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF2244:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF3093:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF1513:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF421:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1705:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF1754:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF2301:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1732:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF3020:
+ .string "_RISCV_CONST_H "
+.LASF2534:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF2425:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1176:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF1042:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2608:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1908:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF2188:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2545:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2147:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2536:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2532:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF2438:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1850:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF2869:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF2351:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF2097:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF669:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2556:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF1857:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF551:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1230:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2132:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1891:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF2586:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2522:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF3268:
+ .string "usart_halfduplex_disable"
+.LASF1342:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1441:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF1642:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF548:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF350:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2656:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF1923:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2758:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF3248:
+ .string "usart_dma_receive_config"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF899:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF2280:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF3106:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1324:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF759:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1258:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF762:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF1968:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF795:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF465:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF666:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF2676:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF532:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1237:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF946:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2376:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF927:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF3160:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF958:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF2145:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF1056:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF2169:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF2769:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF451:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF642:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2212:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF813:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2476:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF3036:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2302:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF3295:
+ .string "paritycfg"
+.LASF2579:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF440:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF2576:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2913:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF2806:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF3015:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1957:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF364:
+ .string "__have_long32 1"
+.LASF1337:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1241:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF2980:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF1100:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF801:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2182:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1856:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF2239:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF2078:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF1964:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF948:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3183:
+ .string "uint32_t"
+.LASF870:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF2575:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF3148:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1977:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF401:
+ .string "__LEAST8 \"hh\""
+.LASF1568:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1263:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1149:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2133:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF2324:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF2766:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF2711:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF814:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2593:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1751:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2773:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF2571:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1156:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF1406:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF1063:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF2833:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2898:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF2128:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF3263:
+ .string "gaut"
+.LASF2905:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF860:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF2666:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF1170:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF1834:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF2450:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2774:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF1320:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF1696:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF2010:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF2966:
+ .string "_GCC_PTRDIFF_T "
+.LASF1712:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF3166:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF1656:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF1461:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2516:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2549:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1083:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF829:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2287:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1534:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF387:
+ .string "__int20 +2"
+.LASF343:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF552:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF1914:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF2519:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1663:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2481:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF1830:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1491:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2401:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2638:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2541:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1812:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF800:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF930:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF880:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF2199:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF3077:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF1297:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1842:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF806:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1020:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2403:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF2612:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1927:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF2335:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF2012:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1183:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2814:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF3107:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF1638:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2538:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1761:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2566:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF1646:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF3217:
+ .string "RCU_USART0RST"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF942:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF431:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF3043:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2559:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF3265:
+ .string "clen"
+.LASF2730:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1976:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF3245:
+ .string "usart_flag_get"
+.LASF488:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF2341:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2640:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2193:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF2029:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF1095:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF962:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1085:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1345:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1795:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1133:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF2747:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF362:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1522:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF2156:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF2842:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF427:
+ .string "__int_fast16_t_defined 1"
+.LASF1611:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF3251:
+ .string "usart_hardware_flow_rts_config"
+.LASF1080:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF2142:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1952:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF2821:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF567:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1955:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF869:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2635:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF970:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2477:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF539:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2736:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF3212:
+ .string "RCU_GPIOERST"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF363:
+ .string "__have_longlong64 1"
+.LASF852:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF895:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1386:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2453:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF404:
+ .string "__LEAST64 \"ll\""
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF1948:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1641:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1059:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1184:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2448:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1147:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF2444:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2600:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF3075:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2009:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF2951:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1503:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF3051:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1175:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1690:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2723:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1108:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF821:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF2854:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF3228:
+ .string "USART_FLAG_IDLE"
+.LASF388:
+ .string "__int20__ +2"
+.LASF1310:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1905:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1921:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF859:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF1211:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1521:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2306:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1570:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF618:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF1243:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF2255:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF1722:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF1446:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF1595:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1498:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2535:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF2671:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF2343:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF605:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF1902:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF2071:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF2135:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF2173:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2416:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF2017:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF1767:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF3028:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF414:
+ .string "__int32_t_defined 1"
+.LASF540:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF3146:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2550:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2627:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF2563:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF3242:
+ .string "usart_flag_clear"
+.LASF357:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF549:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF961:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF1479:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1557:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF923:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF2291:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2355:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF872:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF2221:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2305:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF1511:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF854:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF1904:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2713:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF3252:
+ .string "rtsconfig"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1422:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1208:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF533:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1682:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF565:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1800:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1067:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1866:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF2249:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2319:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1255:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF3191:
+ .string "RCU_TIMER5RST"
+.LASF2931:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF3104:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1500:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF1125:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF995:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2220:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1240:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF3006:
+ .string "__need_NULL"
+.LASF2793:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1538:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2720:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1675:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2660:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF2083:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2167:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF542:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2855:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2217:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2890:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF989:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2817:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2498:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF526:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF2205:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF2304:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF925:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2345:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF3054:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF2107:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF665:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2368:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2247:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF2892:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2153:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF1758:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF2294:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF606:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF834:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF3298:
+ .string "uclk"
+.LASF2772:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF2274:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1132:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2680:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1911:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF529:
+ .string "ADC0 ADC_BASE"
+.LASF1515:
+ .string "FMC_CTL_START BIT(6)"
+.LASF1076:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF2028:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2619:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF573:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF2358:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF1894:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF416:
+ .string "_UINT64_T_DECLARED "
+.LASF504:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF3131:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF2392:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF508:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF3297:
+ .string "baudval"
+.LASF1469:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF3018:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1630:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF1798:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF2178:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF966:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1804:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF430:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1668:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF2933:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF2026:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2824:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1978:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF1966:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2872:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1585:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1123:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1960:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF2101:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1368:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF2027:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF1362:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF1542:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF1283:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF1744:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF866:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF1907:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF374:
+ .string "_SYS__INTSUP_H "
+.LASF913:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2570:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF1695:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF2801:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2347:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2512:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF3109:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF799:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF2136:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF2469:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF810:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF2081:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF1589:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF3273:
+ .string "usart_lin_mode_disable"
+.LASF2110:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF390:
+ .string "long +4"
+.LASF1266:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1072:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF3117:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2148:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2252:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1897:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF2223:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF3052:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF2040:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF590:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF446:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF2374:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF681:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2845:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2764:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF912:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2360:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2851:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF889:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1296:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF2233:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF2058:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1746:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2650:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF2108:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF607:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1531:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1755:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF2511:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF1821:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF2850:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2286:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF394:
+ .string "__INT16 \"h\""
+.LASF2755:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2326:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF3186:
+ .string "RCU_USBFSRST"
+.LASF957:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF3173:
+ .string "__uint8_t"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2465:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF601:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1129:
+ .string "DAC1 (1U)"
+.LASF680:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF3010:
+ .string "TIMER_MSIP 0xFFC"
+.LASF3004:
+ .string "NULL"
+.LASF782:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF1347:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF331:
+ .string "__I volatile const"
+.LASF1892:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF1003:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2848:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF936:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF3292:
+ .string "usart_word_length_set"
+.LASF2267:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF1714:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF649:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3262:
+ .string "usart_guard_time_config"
+.LASF2986:
+ .string "__need_size_t"
+.LASF1808:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2254:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1093:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF3097:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF978:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1883:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF846:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1637:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1364:
+ .string "EXTI EXTI_BASE"
+.LASF2039:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF2003:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1780:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1338:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF2025:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF643:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF2124:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF3219:
+ .string "CK_AHB"
+.LASF2253:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF688:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF514:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2321:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF689:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF2340:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF773:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF1945:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2910:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF2362:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF968:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2441:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2065:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF1915:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF1103:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1106:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2704:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1574:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF766:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF3246:
+ .string "usart_dma_transmit_config"
+.LASF1484:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF3218:
+ .string "CK_SYS"
+.LASF613:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF438:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1660:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF781:
+ .string "CAN0 CAN_BASE"
+.LASF400:
+ .string "__FAST64 \"ll\""
+.LASF1134:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1587:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1054:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF1922:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF2881:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF988:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF1427:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF3119:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1898:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1040:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF3151:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF1996:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2768:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF2858:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF1799:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF1004:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2369:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1846:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF959:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF2020:
+ .string "DBG DBG_BASE"
+.LASF1606:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2788:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2761:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF3243:
+ .string "flag"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF977:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF3185:
+ .string "FlagStatus"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF2979:
+ .string "_SIZE_T_DEFINED "
+.LASF2780:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF437:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF1393:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF1573:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF2278:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF2021:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF2007:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2721:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2927:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1592:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF395:
+ .string "__INT32 \"l\""
+.LASF761:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1293:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF3045:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF2380:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF347:
+ .string "__NEWLIB__ 4"
+.LASF1653:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2724:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF3247:
+ .string "dmacmd"
+.LASF3000:
+ .string "_GCC_WCHAR_T "
+.LASF1267:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF2185:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF2082:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1750:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF351:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2719:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2771:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF3286:
+ .string "usart_transmit_config"
+.LASF3072:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF365:
+ .string "___int8_t_defined 1"
+.LASF3296:
+ .string "usart_baudrate_set"
+.LASF2669:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF3208:
+ .string "RCU_GPIOARST"
+.LASF460:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2215:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF932:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2646:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF954:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2756:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF2019:
+ .string "GD32VF103_DBG_H "
+.LASF1027:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2456:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF3144:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF1839:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1097:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF2001:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF3064:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF947:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF845:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF2697:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF2225:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF3222:
+ .string "long double"
+.LASF2965:
+ .string "___int_ptrdiff_t_h "
+.LASF1499:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1582:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2502:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF2050:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF1930:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF2578:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF2623:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF1504:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1584:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF2388:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF340:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF481:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF2955:
+ .string "N200_FUNC_H "
+.LASF1694:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF788:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1627:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2882:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1710:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2621:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF2982:
+ .string "___int_size_t_h "
+.LASF2149:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF1459:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2836:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2712:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF2442:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1564:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1875:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF2767:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1815:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF3266:
+ .string "usart_synchronous_clock_disable"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF1580:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF3289:
+ .string "usart_enable"
+.LASF2049:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF874:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF1430:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF2564:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2366:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF3152:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF2938:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF2867:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2364:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF2093:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF525:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2908:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2213:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF661:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF2926:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF3281:
+ .string "usart_data_receive"
+.LASF3187:
+ .string "RCU_TIMER1RST"
+.LASF1951:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF602:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF3046:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2745:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF2939:
+ .string "GD32VF103_WWDGT_H "
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF3115:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF922:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2659:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF3280:
+ .string "addr"
+.LASF933:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF455:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF937:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF1843:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF3165:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF1597:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2584:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1756:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF1871:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF2283:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF911:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1566:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF1309:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF918:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF820:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF2115:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF2069:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF490:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1359:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2237:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF596:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF2088:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF1956:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1959:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1962:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1560:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF338:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF1719:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2290:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1543:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF1102:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1242:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1512:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1958:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF1318:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF1142:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF2163:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2776:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF629:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2675:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF3203:
+ .string "RCU_CAN1RST"
+.LASF1708:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF2160:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF1731:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF3108:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF2996:
+ .string "_WCHAR_T_DEFINED "
+.LASF2034:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF382:
+ .string "long"
+.LASF3016:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2822:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2209:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF1482:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF1274:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2684:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF3161:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF356:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF1853:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1174:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2408:
+ .string "RTC RTC_BASE"
+.LASF952:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF1473:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1121:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF2120:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1546:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1551:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF1012:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2218:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF999:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF1672:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF3287:
+ .string "txconfig"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1444:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1288:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF786:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF3101:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1209:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2226:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF368:
+ .string "___int64_t_defined 1"
+.LASF2531:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1057:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF2246:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2059:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF1785:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF358:
+ .string "__POSIX_VISIBLE 199009"
+.LASF1260:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF456:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF3244:
+ .string "usart_interrupt_flag_get"
+.LASF1367:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF640:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF1740:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF3118:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF1477:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2524:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF677:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF953:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1559:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF3085:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF2066:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2373:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2782:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF2251:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1333:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2804:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2911:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF3157:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2395:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF3062:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2521:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1244:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2518:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1680:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF3174:
+ .string "__uint16_t"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF1868:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF2014:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2762:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2478:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2770:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF2116:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF1466:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1228:
+ .string "DMA0 (DMA_BASE)"
+.LASF2667:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF556:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF2260:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1917:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF3230:
+ .string "USART_FLAG_NERR"
+.LASF1820:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF432:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF3253:
+ .string "usart_irda_lowpower_config"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1280:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF1064:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF408:
+ .string "__int8_t_defined 1"
+.LASF1254:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1765:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1299:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF3224:
+ .string "USART_FLAG_LBD"
+.LASF3220:
+ .string "CK_APB1"
+.LASF3221:
+ .string "CK_APB2"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF1112:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF2436:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF491:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2270:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1733:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF571:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF3282:
+ .string "usart_data_transmit"
+.LASF598:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2503:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF3095:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF668:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1335:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1935:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF1702:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF812:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF892:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF851:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF1860:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF507:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1140:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1699:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF2868:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF979:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF574:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF3275:
+ .string "usart_mute_mode_wakeup_config"
+.LASF2883:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF1094:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1261:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1464:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF950:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF1128:
+ .string "DAC0 (0U)"
+.LASF969:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2415:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF2207:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1563:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1654:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF486:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF617:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF1666:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF2162:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF3163:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2909:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1577:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1404:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF3076:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF3167:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF768:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF2038:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF789:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1173:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2673:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF570:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF3061:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF2494:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2060:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2823:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF2281:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF3083:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1576:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF2690:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF2466:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF1344:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2410:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1113:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2422:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1598:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2318:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF2731:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1497:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF330:
+ .string "GD32VF103_H "
+.LASF563:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF497:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2860:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1098:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF3229:
+ .string "USART_FLAG_ORERR"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2031:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF2190:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2912:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2614:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2434:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1887:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF774:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF1081:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3210:
+ .string "RCU_GPIOCRST"
+.LASF843:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2079:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF779:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF960:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1790:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF2742:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF1047:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1290:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF360:
+ .string "__XSI_VISIBLE 0"
+.LASF3136:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF2539:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1833:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2437:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2216:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2419:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1558:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF3017:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF1060:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF616:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF2111:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF566:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF2175:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2418:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF1011:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2354:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1082:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF593:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2607:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF2243:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF3155:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF833:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF371:
+ .string "___int_least32_t_defined 1"
+.LASF1389:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF1536:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF2176:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2526:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF557:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1525:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1201:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF3019:
+ .string "N200_ECLIC_H "
+.LASF2643:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2826:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1811:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF2490:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF489:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF1628:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF583:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF450:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1657:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF2740:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF3041:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF2903:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF3159:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1535:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF1050:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF383:
+ .string "signed +0"
+.LASF1322:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF1829:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF685:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2815:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF1163:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF1748:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF424:
+ .string "__int_least32_t_defined 1"
+.LASF1249:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1245:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF1460:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF412:
+ .string "_INT32_T_DECLARED "
+.LASF1539:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF2683:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF411:
+ .string "__int16_t_defined 1"
+.LASF2916:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF652:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF1185:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF2316:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2625:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF1041:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF996:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF522:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF1109:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF1044:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF2202:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF2183:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF3111:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF3142:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF3257:
+ .string "usart_irda_mode_enable"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2691:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF1262:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2459:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1989:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF1425:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF2262:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF2311:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF2433:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF1928:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2856:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF558:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2796:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2523:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF2271:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF398:
+ .string "__FAST16 "
+.LASF2960:
+ .string "_T_PTRDIFF_ "
+.LASF1077:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF805:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF3091:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF3234:
+ .string "usart_periph"
+.LASF1912:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF2598:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF1590:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1203:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF500:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF1110:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF2070:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2391:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3012:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2440:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF949:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF534:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF757:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF3211:
+ .string "RCU_GPIODRST"
+.LASF2597:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF825:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1909:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF1533:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1965:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF1502:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF863:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF2546:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF3065:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF1635:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2338:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF2977:
+ .string "_BSD_SIZE_T_ "
+.LASF2468:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF472:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF2075:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF2445:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF2323:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1946:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF2624:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF429:
+ .string "__int_fast64_t_defined 1"
+.LASF1938:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF938:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF1691:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF2959:
+ .string "_PTRDIFF_T "
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF2999:
+ .string "__INT_WCHAR_T_H "
+.LASF2895:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2746:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF577:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF1509:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1287:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2439:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2866:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2336:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF2035:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1336:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF422:
+ .string "__int_least8_t_defined 1"
+.LASF951:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF1723:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF2668:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1005:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF2200:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF418:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF3103:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2496:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF2533:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF955:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1402:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF406:
+ .string "_INT8_T_DECLARED "
+.LASF1137:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2645:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF1572:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF2778:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2618:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF1632:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF644:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1073:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF2157:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF1239:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF1986:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF945:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2591:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1366:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1091:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF2141:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF3204:
+ .string "RCU_BKPIRST"
+.LASF1878:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF2272:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1159:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF3291:
+ .string "stblen"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF764:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF1507:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF1620:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2925:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF3086:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1994:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2799:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF419:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1486:
+ .string "FMC FMC_BASE"
+.LASF3190:
+ .string "RCU_TIMER4RST"
+.LASF2787:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1684:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF750:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1941:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF1924:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF903:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1205:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2651:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF2308:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2143:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2655:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1676:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF998:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1954:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1716:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF3128:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF868:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2707:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF664:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1352:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2330:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF1979:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF2055:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2404:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF2706:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1768:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1775:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF2807:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF3233:
+ .string "usart_flag_enum"
+.LASF2967:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF436:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF965:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF1470:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2779:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF1207:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2809:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF1561:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF858:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2832:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF3175:
+ .string "short unsigned int"
+.LASF742:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF901:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1644:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1146:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2594:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2792:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF3009:
+ .string "N200_TIMER_H "
+.LASF1145:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF576:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF3011:
+ .string "TIMER_MSIP_size 0x4"
+.LASF3195:
+ .string "RCU_SPI2RST"
+.LASF2954:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF3235:
+ .string "int_flag"
+.LASF1863:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF2749:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF1321:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1547:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF897:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1864:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1669:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2189:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF1737:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF718:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1275:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2492:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF2611:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1901:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF399:
+ .string "__FAST32 "
+.LASF1251:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF730:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF1706:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF3304:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF468:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2630:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF3121:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF775:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF824:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF3202:
+ .string "RCU_CAN0RST"
+.LASF3110:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2427:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1752:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1069:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF1886:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF578:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2859:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1052:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF2569:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2847:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2622:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF376:
+ .string "signed"
+.LASF975:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF2737:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2508:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF553:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF354:
+ .string "__GNU_VISIBLE 0"
+.LASF2139:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF2891:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2379:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1639:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1442:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1544:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2634:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1252:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF2179:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1273:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2186:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1181:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1619:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2350:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF510:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF2206:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF2789:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF2846:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF1365:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF676:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF402:
+ .string "__LEAST16 \"h\""
+.LASF1541:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF809:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF2677:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2154:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF1248:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF2004:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF1991:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1198:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF1625:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF3039:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF2245:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1319:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF3140:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF3164:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF3073:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2620:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1788:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF476:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2180:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2170:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF1355:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF924:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF2032:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF850:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF1520:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1825:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF550:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1678:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2599:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2293:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF1895:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2753:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1313:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF3082:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2748:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF1157:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF2893:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF888:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2471:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF1124:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF819:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF1349:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF3180:
+ .string "long long unsigned int"
+.LASF2045:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF2265:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2616:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF987:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1314:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF857:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF1120:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF474:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF2076:
+ .string "GD32VF103_RCU_H "
+.LASF785:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF2276:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1519:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1281:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF900:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF1540:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1971:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF334:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF941:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF725:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3171:
+ .string "unsigned char"
+.LASF1407:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF3139:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2663:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2515:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1089:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF332:
+ .string "__O volatile"
+.LASF2838:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF787:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF3277:
+ .string "usart_mute_mode_disable"
+.LASF1973:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF2096:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1700:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1648:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF3271:
+ .string "usart_lin_break_detection_length_config"
+.LASF2715:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1661:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1953:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2760:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2922:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF2580:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2296:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF1932:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF1697:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF2865:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF1713:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF2126:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1462:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF1855:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1736:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF1817:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF464:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2710:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF1999:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF2587:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2694:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1982:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF2544:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2470:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF1847:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF2904:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF904:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF528:
+ .string "GD32VF103_ADC_H "
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF842:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF348:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1285:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2333:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF471:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF579:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF403:
+ .string "__LEAST32 \"l\""
+.LASF582:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1508:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF1369:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1510:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2763:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF3227:
+ .string "USART_FLAG_RBNE"
+.LASF2592:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF3237:
+ .string "flagstatus"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1039:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2514:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF597:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2733:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1643:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF1969:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF894:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF1636:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF1350:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF2227:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF3007:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF2695:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF3014:
+ .string "TIMER_MTIME 0x0"
+.LASF1608:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF487:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF3102:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF972:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2874:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1295:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF832:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF656:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF521:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1119:
+ .string "CRC CRC_BASE"
+.LASF1395:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF849:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF886:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF3084:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF1640:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF560:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF876:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF915:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF2975:
+ .string "__SIZE_T "
+.LASF2487:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF1874:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF2317:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF349:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF3035:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1742:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1840:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF345:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1346:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1621:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF1101:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1836:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF494:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2672:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF2100:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2596:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF3068:
+ .string "USART_STAT_TC BIT(6)"
+.LASF1488:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2741:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF3162:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF2573:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF1837:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1136:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF797:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2300:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF1150:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2652:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2479:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2934:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF909:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF499:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1548:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF1616:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF2257:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF864:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF3223:
+ .string "USART_FLAG_CTS"
+.LASF3090:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF2074:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF2106:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF816:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2637:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF620:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF2372:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF2505:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1832:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF3197:
+ .string "RCU_USART2RST"
+.LASF2885:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1963:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF1814:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2194:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF967:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF732:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF935:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF2099:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF1343:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF1947:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1270:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2791:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF519:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2906:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF1529:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2864:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF738:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2647:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF3294:
+ .string "usart_parity_config"
+.LASF2234:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF2327:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF3031:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2795:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF342:
+ .string "_STDINT_H "
+.LASF1431:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF420:
+ .string "_INTPTR_T_DECLARED "
+.LASF1126:
+ .string "GD32VF103_DAC_H "
+.LASF2844:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1885:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1025:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF3238:
+ .string "usart_interrupt_flag_clear"
+.LASF355:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF2383:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF2649:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF2802:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF2375:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF3137:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2781:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1480:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1214:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF883:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF2417:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF1168:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF963:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF3038:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF1983:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2520:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2378:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF726:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF1879:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF731:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1009:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2816:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1993:
+ .string "FWDGT FWDGT_BASE"
+.LASF1423:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3177:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1683:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1934:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF2940:
+ .string "WWDGT WWDGT_BASE"
+.LASF3112:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2322:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF475:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF931:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1271:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2420:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2339:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF2146:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF1849:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF877:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF804:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2168:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF3201:
+ .string "RCU_I2C1RST"
+.LASF2924:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF794:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF483:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1647:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF1872:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF3231:
+ .string "USART_FLAG_FERR"
+.LASF929:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1605:
+ .string "AFIO AFIO_BASE"
+.LASF1356:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF844:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1720:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2631:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF2997:
+ .string "_WCHAR_T_H "
+.LASF2033:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2920:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF2888:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF545:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2463:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF964:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF585:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF2219:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF2945:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF3067:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF3129:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF2974:
+ .string "_T_SIZE "
+.LASF482:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF780:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1970:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1772:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2529:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF509:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF647:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF3288:
+ .string "usart_disable"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF1784:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF1153:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF1304:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF765:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF3013:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF2923:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2628:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF496:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF3200:
+ .string "RCU_I2C0RST"
+.LASF2716:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF826:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF2018:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2409:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF462:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1591:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF2384:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF2044:
+ .string "PMU PMU_BASE"
+.LASF1997:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF672:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF1673:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2717:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF811:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1130:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1231:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2743:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2835:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2879:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF1495:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF2047:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF865:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF2987:
+ .string "__wchar_t__ "
+.LASF2315:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF2399:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2828:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF1517:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF891:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF1677:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF910:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF2961:
+ .string "_T_PTRDIFF "
+.LASF1861:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF645:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF503:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF535:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF2061:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF1741:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF2981:
+ .string "_SIZE_T_DECLARED "
+.LASF2475:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF608:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF763:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2349:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF2969:
+ .string "__size_t__ "
+.LASF2589:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF604:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2837:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF2353:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF639:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF691:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF3059:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF1282:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF3276:
+ .string "wmethod"
+.LASF1238:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF1972:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF506:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF943:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1384:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1819:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2841:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF466:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1467:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF3023:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1061:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF3214:
+ .string "RCU_ADC1RST"
+.LASF1631:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF2024:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1906:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF2201:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF667:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF916:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF790:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1992:
+ .string "GD32VF103_FWDGT_H "
+.LASF3199:
+ .string "RCU_UART4RST"
+.LASF1148:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF1387:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF426:
+ .string "__int_fast8_t_defined 1"
+.LASF621:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2902:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF2932:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF2084:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2810:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1284:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1612:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2588:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1026:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF2958:
+ .string "_ANSI_STDDEF_H "
+.LASF1747:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF441:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF2989:
+ .string "_WCHAR_T "
+.LASF2424:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF839:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF1859:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF2102:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1734:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2555:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1583:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF492:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF1332:
+ .string "__SEV eclic_send_event"
+.LASF1135:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF838:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF3081:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1021:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF1880:
+ .string "GD32VF103_I2C_H "
+.LASF2421:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2843:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1351:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2385:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1727:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF1806:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF3071:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF2397:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2313:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF3272:
+ .string "lblen"
+.LASF485:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF1651:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2530:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF2919:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF333:
+ .string "__IO volatile"
+.LASF711:
+ .string "GD32VF103_BKP_H "
+.LASF2259:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2480:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF1687:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF2109:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF2978:
+ .string "_SIZE_T_DEFINED_ "
+.LASF737:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1730:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF2164:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2610:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2342:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF1250:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2658:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF353:
+ .string "__BSD_VISIBLE 0"
+.LASF741:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF3088:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF3130:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2282:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF653:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF3168:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF1180:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1704:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF1291:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1107:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF2390:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2605:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF2229:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF3133:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF396:
+ .string "__INT64 \"ll\""
+.LASF1980:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF3029:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF1127:
+ .string "DAC DAC_BASE"
+.LASF1474:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF976:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF407:
+ .string "_UINT8_T_DECLARED "
+.LASF994:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2493:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1078:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1264:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2572:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF2036:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2509:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1550:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2208:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF729:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF660:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2725:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1440:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF719:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1015:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF584:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF1936:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2812:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF803:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF447:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1307:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1006:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1998:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF3209:
+ .string "RCU_GPIOBRST"
+.LASF352:
+ .string "__ATFILE_VISIBLE 0"
+.LASF610:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF740:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2880:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF991:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1586:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF559:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF561:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1010:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF728:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF555:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2446:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF746:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF818:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2150:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF3037:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF335:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF1858:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF2430:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF599:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1916:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF469:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF391:
+ .string "_INTPTR_EQ_INT "
+.LASF2739:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2344:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF2138:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF898:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF1599:
+ .string "GD32VF103_GPIO_H "
+.LASF3258:
+ .string "usart_smartcard_mode_nack_disable"
+.LASF1828:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF2995:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2332:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF1810:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF2006:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF692:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF3215:
+ .string "RCU_TIMER0RST"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF2196:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF3008:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF2786:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF1490:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF2813:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF380:
+ .string "__int20"
+.LASF2899:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2063:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF734:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF739:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1763:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2396:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF798:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1325:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2191:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF2407:
+ .string "GD32VF103_RTC_H "
+.LASF1086:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1658:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF2068:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1253:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2464:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF591:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2718:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF2696:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1139:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF1844:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2702:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF3125:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF523:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF2489:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF905:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF2447:
+ .string "GD32VF103_SPI_H "
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF2125:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF1118:
+ .string "GD32VF103_CRC_H "
+.LASF752:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1581:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1279:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF722:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF1918:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF3172:
+ .string "short int"
+.LASF2581:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1298:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1926:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1575:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF1405:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF3002:
+ .string "_BSD_WCHAR_T_"
+.LASF2994:
+ .string "_BSD_WCHAR_T_ "
+.LASF2095:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF1809:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF2187:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1210:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF2970:
+ .string "__SIZE_T__ "
+.LASF1984:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF2000:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1867:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2210:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF2159:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF2346:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2184:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1801:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF3055:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF2485:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1334:
+ .string "EXMC (EXMC_BASE)"
+.LASF1051:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF385:
+ .string "char +0"
+.LASF1711:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF1155:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF1008:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF445:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF2657:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF2015:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF751:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF513:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF2073:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2361:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2473:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF2944:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF2231:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF3255:
+ .string "usart_prescaler_config"
+.LASF1494:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF934:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF2861:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF1662:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF568:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF2862:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF370:
+ .string "___int_least16_t_defined 1"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF1259:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF3078:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2359:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF3033:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF2875:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1514:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1074:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF808:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF2056:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF926:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF3135:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF3032:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF3141:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF3001:
+ .string "_WCHAR_T_DECLARED "
+.LASF3301:
+ .string "udiv"
+.LASF2805:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF3259:
+ .string "usart_smartcard_mode_nack_enable"
+.LASF562:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF367:
+ .string "___int32_t_defined 1"
+.LASF3260:
+ .string "usart_smartcard_mode_disable"
+.LASF2091:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1182:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF1622:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF3074:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2857:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF2165:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2284:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF1489:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF2137:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1770:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2894:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF3236:
+ .string "intenable"
+.LASF1614:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF493:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF907:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF2013:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1692:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2510:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF2633:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2921:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF423:
+ .string "__int_least16_t_defined 1"
+.LASF1169:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2348:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF2992:
+ .string "__WCHAR_T "
+.LASF409:
+ .string "_INT16_T_DECLARED "
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1046:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF919:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF2935:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF1724:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2698:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF2277:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF3176:
+ .string "long int"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF2238:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1890:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2583:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2298:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF1363:
+ .string "GD32VF103_EXTI_H "
+.LASF378:
+ .string "char"
+.LASF1757:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF1341:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF3126:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2197:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF881:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2709:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF392:
+ .string "_INT32_EQ_LONG "
+.LASF1070:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF2320:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2870:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF536:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF1385:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF908:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF2046:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF2377:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF2089:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2878:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF3225:
+ .string "USART_FLAG_TBE"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2884:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF1796:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF687:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF2242:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF3105:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2797:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2484:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF3123:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2632:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF3079:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF2686:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2818:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF663:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2948:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF1854:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF3189:
+ .string "RCU_TIMER3RST"
+.LASF1528:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1104:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF517:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1896:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF2363:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF2161:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF1925:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF2394:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1685:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF2765:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1043:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1618:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1445:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2288:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2387:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF2118:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2590:
+ .string "GD32VF103_TIMER_H "
+.LASF1018:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2037:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF2957:
+ .string "_STDDEF_H_ "
+.LASF1990:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF2687:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF841:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF1717:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF2086:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF990:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF2080:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF2585:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2198:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF479:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF856:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF1016:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF862:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1565:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF2949:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1783:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2222:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF1478:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1023:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1802:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF2734:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2129:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF564:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF2337:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF1235:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF815:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1753:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2606:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2937:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF2331:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF2568:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF807:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1471:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1421:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF831:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF1681:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF1940:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF531:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF721:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF3143:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF1670:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1594:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1167:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF3080:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF3194:
+ .string "RCU_SPI1RST"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF956:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF2692:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF2023:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF650:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1141:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2428:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1172:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF720:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF2258:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF2062:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1545:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF1331:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF2642:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF453:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1919:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF1988:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1579:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1738:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF736:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF3027:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF884:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF2263:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2732:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF3021:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1774:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2525:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF896:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF3058:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF710:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF753:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2831:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF1554:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF2144:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF715:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1609:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1049:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF384:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1256:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF1703:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2486:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2127:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF2400:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF3116:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF879:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF3285:
+ .string "rxconfig"
+.LASF675:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF2174:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF594:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF2834:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF1202:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF2601:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF417:
+ .string "__int64_t_defined 1"
+.LASF724:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF2104:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF2886:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF379:
+ .string "short"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1465:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1524:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF772:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2929:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2365:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF992:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF2952:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3302:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1518:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF2248:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF749:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF871:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF735:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1013:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF2022:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF1824:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2705:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF3232:
+ .string "USART_FLAG_PERR"
+.LASF1667:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF3127:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF2467:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2547:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF592:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF939:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1776:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF2121:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF359:
+ .string "__SVID_VISIBLE 0"
+.LASF2105:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2674:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1664:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF748:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF1247:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1099:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF2241:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF1888:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF2700:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF2264:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF823:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2228:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF3254:
+ .string "irlp"
+.LASF723:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF940:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF1822:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF3278:
+ .string "usart_mute_mode_enable"
+.LASF1793:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF1227:
+ .string "GD32VF103_DMA_H "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF2204:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2943:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1158:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF2603:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF1088:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF2011:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2701:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF1950:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF754:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2371:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF2077:
+ .string "RCU RCU_BASE"
+.LASF2751:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2636:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2825:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF3261:
+ .string "usart_smartcard_mode_enable"
+.LASF747:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2617:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2548:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF619:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF369:
+ .string "___int_least8_t_defined 1"
+.LASF2279:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF2181:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF802:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF670:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1903:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2562:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1745:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF397:
+ .string "__FAST8 "
+.LASF2054:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF648:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1797:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF572:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF1709:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF630:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF1760:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF2314:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF530:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF760:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2488:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF1164:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF2405:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2402:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2914:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF2759:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF1114:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1065:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2382:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1233:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF3063:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF3226:
+ .string "USART_FLAG_TC"
+.LASF2915:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1593:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF2329:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF2030:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1370:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF1759:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1961:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF3249:
+ .string "usart_hardware_flow_cts_config"
+.LASF520:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF2435:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF546:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF2458:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1771:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF2269:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF906:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1786:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF518:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2543:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF1071:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF1506:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF428:
+ .string "__int_fast32_t_defined 1"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF595:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF1623:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF2119:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF3170:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2722:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1848:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF2155:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF2090:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1001:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2662:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF393:
+ .string "__INT8 \"hh\""
+.LASF2289:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1762:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF1487:
+ .string "OB OB_BASE"
+.LASF3181:
+ .string "uint8_t"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3145:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF853:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF1143:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF2540:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF434:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF1483:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF541:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF1396:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1066:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF1715:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1613:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2574:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF3241:
+ .string "usart_interrupt_enable"
+.LASF1749:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF2051:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2800:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1688:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF2052:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF2928:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF3053:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF1655:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF1426:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2483:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF3094:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF3184:
+ .string "RESET"
+.LASF389:
+ .string "int +2"
+.LASF2389:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF2285:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2507:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF2604:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2412:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1084:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1062:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF875:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF461:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF997:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2670:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1537:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2829:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1779:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1162:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1496:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF3048:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF515:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF1841:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF2398:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF983:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2292:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF454:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1813:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF756:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF2008:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF3158:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF443:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2513:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF2798:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF1634:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF3060:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF646:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF837:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2897:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1269:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1246:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1257:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF3070:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF586:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF855:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF745:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1831:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF1055:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF3196:
+ .string "RCU_USART1RST"
+.LASF377:
+ .string "unsigned"
+.LASF477:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1920:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF524:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF2565:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF2752:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2609:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF3150:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2352:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF1527:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2295:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1485:
+ .string "GD32VF103_FMC_H "
+.LASF3267:
+ .string "usart_synchronous_clock_enable"
+.LASF2689:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF329:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF3182:
+ .string "uint16_t"
+.LASF2901:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF2887:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF3153:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF717:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2426:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF1171:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF480:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF733:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF2048:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1826:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1931:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF336:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1022:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF1403:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF638:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF543:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF1794:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF744:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2491:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF2172:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF1889:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF339:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF2195:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF671:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF2495:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF2303:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF2993:
+ .string "_WCHAR_T_ "
+.LASF2273:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1689:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF2963:
+ .string "_PTRDIFF_T_ "
+.LASF3256:
+ .string "usart_irda_mode_disable"
+.LASF2085:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF484:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1562:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF651:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF2648:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF716:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF848:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1122:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF1884:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1523:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF1782:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2665:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2460:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF2152:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2123:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2626:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF2681:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF2863:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2714:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2794:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF743:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF817:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF1778:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF2087:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF971:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1229:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF2962:
+ .string "__PTRDIFF_T "
+.LASF2454:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2644:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF1353:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF1038:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2053:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF2240:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF433:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2629:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF2443:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF1200:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF654:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1272:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF867:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF587:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2325:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF463:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1981:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF2250:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1360:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1002:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF2942:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF2971:
+ .string "_SIZE_T "
+.LASF1286:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF2307:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF2113:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2678:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF575:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2499:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1152:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF921:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF673:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2381:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF346:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF1949:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF793:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF882:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1787:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1939:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1728:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF3154:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF1475:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF410:
+ .string "_UINT16_T_DECLARED "
+.LASF2134:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF887:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF2754:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1674:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF3192:
+ .string "RCU_TIMER6RST"
+.LASF2936:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF3305:
+ .string "usart_deinit"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF2682:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF902:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2151:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF457:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF1607:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF3264:
+ .string "usart_synchronous_clock_config"
+.LASF944:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF1236:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1818:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF2235:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2907:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF3147:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF344:
+ .string "_SYS_FEATURES_H "
+.LASF840:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1707:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF1079:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF600:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF655:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2738:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF3069:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF2852:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF449:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2900:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF2998:
+ .string "___int_wchar_t_h "
+.LASF1876:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF2224:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF1569:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1852:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF3269:
+ .string "usart_halfduplex_enable"
+.LASF712:
+ .string "BKP BKP_BASE"
+.LASF1232:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF686:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF1166:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1177:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1058:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2703:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2528:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF3040:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2423:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2452:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF3213:
+ .string "RCU_ADC0RST"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF603:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2785:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1443:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF2072:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF381:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1468:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF2639:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF1532:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF830:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF3198:
+ .string "RCU_UART3RST"
+.LASF3024:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF1024:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2950:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF2043:
+ .string "GD32VF103_PMU_H "
+.LASF847:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF3132:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF502:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF554:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1877:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF1995:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF1805:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF1053:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2613:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF1789:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF1087:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF3005:
+ .string "NULL ((void *)0)"
+.LASF444:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1942:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1476:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1111:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF2092:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1596:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2472:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF3089:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF2641:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF1317:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1199:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF2595:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF928:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1735:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF792:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF1650:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1105:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1305:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF1265:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2653:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1151:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF505:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF2983:
+ .string "_GCC_SIZE_T "
+.LASF1679:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF3056:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF1571:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF778:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF973:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF375:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF777:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1234:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF3003:
+ .string "__need_wchar_t"
+.LASF1766:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF974:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1851:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF3193:
+ .string "RCU_WWDGTRST"
+.LASF1870:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1505:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF3134:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF2661:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF3096:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1493:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2735:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF2956:
+ .string "_STDDEF_H "
+.LASF1303:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1967:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF2972:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2560:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF1869:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1492:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF684:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1019:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF361:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2449:
+ .string "SPI1 SPI_BASE"
+.LASF2413:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF2976:
+ .string "_SIZE_T_ "
+.LASF2356:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2553:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF2811:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1204:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2357:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2370:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF783:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF569:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1645:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2685:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2830:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2873:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF1701:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF890:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF2839:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF641:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF3283:
+ .string "data"
+.LASF1913:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2517:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1698:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2211:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2312:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF822:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF544:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF2988:
+ .string "__WCHAR_T__ "
+.LASF337:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF1463:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1075:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF714:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF2973:
+ .string "_T_SIZE_ "
+.LASF2527:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF3120:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF2877:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF1600:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF2266:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2166:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF473:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2744:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1603:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF3050:
+ .string "USART1 USART_BASE"
+.LASF1665:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF448:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF2551:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF442:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF2112:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF538:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF2654:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF713:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1827:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF1090:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF1803:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF2131:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF1383:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2386:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1530:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2664:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1068:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF770:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF1206:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF3025:
+ .string "ECLICINTCTLBITS 4"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1899:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF2968:
+ .string "__need_ptrdiff_t"
+.LASF1659:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2537:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2917:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1910:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF2482:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF1974:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1415:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF2803:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1179:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF2501:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1881:
+ .string "I2C0 I2C_BASE"
+.LASF405:
+ .string "_SYS__STDINT_H "
+.LASF1186:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF3179:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2708:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF1987:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2602:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF701:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF2896:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1845:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF3049:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF2457:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF2230:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF1617:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF516:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF1526:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF2393:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2699:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF873:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF3206:
+ .string "RCU_DACRST"
+.LASF1792:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF878:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF682:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF3156:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1743:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2504:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1138:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1629:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF458:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1294:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF2693:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF589:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF1289:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2432:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2334:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF3034:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1556:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1624:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF1292:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1388:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF1933:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF2567:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF2192:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF2946:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF2310:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF2849:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1729:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2177:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1213:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1652:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF3138:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2171:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF3047:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1944:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF2947:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF893:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF3290:
+ .string "usart_stop_bit_set"
+.LASF3149:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1131:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF1036:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2461:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2871:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1862:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1007:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF1501:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1578:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF2506:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1032:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF588:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF2688:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF2777:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2582:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF2941:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF2098:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF2275:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF679:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF1835:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF1028:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2679:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1301:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2554:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF1649:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF2990:
+ .string "_T_WCHAR_ "
+.LASF2041:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2309:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF2214:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF2827:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF1326:
+ .string "GD32VF103_ECLIC_H "
+.LASF1985:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF495:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF470:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1481:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF2057:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF791:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF2103:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2122:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2328:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF1161:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF2985:
+ .string "__size_t "
+.LASF2542:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF3240:
+ .string "interrupt"
+.LASF2130:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2232:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1865:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1424:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF3030:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2726:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1626:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF3092:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF836:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1693:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF373:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1882:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF796:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF3205:
+ .string "RCU_PMURST"
+.LASF547:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2158:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1601:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2918:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF2256:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF920:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF1838:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF3113:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1276:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2783:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF769:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF527:
+ .string "GD32VF103_LIBOPT_H "
+.LASF3284:
+ .string "usart_receive_config"
+.LASF1725:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2727:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF372:
+ .string "___int_least64_t_defined 1"
+.LASF3057:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF3239:
+ .string "usart_interrupt_disable"
+.LASF861:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1348:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF1791:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF3279:
+ .string "usart_address_config"
+.LASF2953:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF1604:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF3207:
+ .string "RCU_AFRST"
+.LASF3026:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF2729:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2820:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1092:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1117:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2728:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1154:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF2016:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1816:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1567:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF3274:
+ .string "usart_lin_mode_enable"
+.LASF917:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF662:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF580:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF1268:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF2094:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF3188:
+ .string "RCU_TIMER2RST"
+.LASF2367:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF1552:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF2819:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF3124:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF3022:
+ .string "_AT(T,X) ((T)(X))"
+.LASF3169:
+ .string "unsigned int"
+.LASF2455:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1943:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF2268:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF425:
+ .string "__int_least64_t_defined 1"
+.LASF1893:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF771:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2615:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF415:
+ .string "_INT64_T_DECLARED "
+.LASF2757:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF1686:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2853:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF2930:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1160:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1633:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1549:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1300:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c
new file mode 100644
index 0000000000..ca9a6a315c
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c
@@ -0,0 +1,147 @@
+/*!
+ \file gd32vf103_wwdgt.c
+ \brief WWDGT driver
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "gd32vf103_wwdgt.h"
+
+/* write value to WWDGT_CTL_CNT bit field */
+#define CTL_CNT(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))
+/* write value to WWDGT_CFG_WIN bit field */
+#define CFG_WIN(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))
+
+/*!
+ \brief reset the window watchdog timer configuration
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void wwdgt_deinit(void)
+{
+ rcu_periph_reset_enable(RCU_WWDGTRST);
+ rcu_periph_reset_disable(RCU_WWDGTRST);
+}
+
+/*!
+ \brief start the window watchdog timer counter
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void wwdgt_enable(void)
+{
+ WWDGT_CTL |= WWDGT_CTL_WDGTEN;
+}
+
+/*!
+ \brief configure the window watchdog timer counter value
+ \param[in] counter_value: 0x00 - 0x7F
+ \param[out] none
+ \retval none
+*/
+void wwdgt_counter_update(uint16_t counter_value)
+{
+ uint32_t reg = 0U;
+
+ reg = (WWDGT_CTL & (~WWDGT_CTL_CNT));
+ reg |= CTL_CNT(counter_value);
+
+ WWDGT_CTL = reg;
+}
+
+/*!
+ \brief configure counter value, window value, and prescaler divider value
+ \param[in] counter: 0x00 - 0x7F
+ \param[in] window: 0x00 - 0x7F
+ \param[in] prescaler: wwdgt prescaler value
+ only one parameter can be selected which is shown as below:
+ \arg WWDGT_CFG_PSC_DIV1: the time base of window watchdog counter = (PCLK1/4096)/1
+ \arg WWDGT_CFG_PSC_DIV2: the time base of window watchdog counter = (PCLK1/4096)/2
+ \arg WWDGT_CFG_PSC_DIV4: the time base of window watchdog counter = (PCLK1/4096)/4
+ \arg WWDGT_CFG_PSC_DIV8: the time base of window watchdog counter = (PCLK1/4096)/8
+ \param[out] none
+ \retval none
+*/
+void wwdgt_config(uint16_t counter, uint16_t window, uint32_t prescaler)
+{
+ uint32_t reg_cfg = 0U, reg_ctl = 0U;
+
+ /* clear WIN and PSC bits, clear CNT bit */
+ reg_cfg = (WWDGT_CFG &(~(WWDGT_CFG_WIN|WWDGT_CFG_PSC)));
+ reg_ctl = (WWDGT_CTL &(~WWDGT_CTL_CNT));
+
+ /* configure WIN and PSC bits, configure CNT bit */
+ reg_cfg |= CFG_WIN(window);
+ reg_cfg |= prescaler;
+ reg_ctl |= CTL_CNT(counter);
+
+ WWDGT_CTL = reg_ctl;
+ WWDGT_CFG = reg_cfg;
+}
+
+/*!
+ \brief enable early wakeup interrupt of WWDGT
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void wwdgt_interrupt_enable(void)
+{
+ WWDGT_CFG |= WWDGT_CFG_EWIE;
+}
+
+/*!
+ \brief check early wakeup interrupt state of WWDGT
+ \param[in] none
+ \param[out] none
+ \retval FlagStatus: SET or RESET
+*/
+FlagStatus wwdgt_flag_get(void)
+{
+ if(WWDGT_STAT & WWDGT_STAT_EWIF){
+ return SET;
+ }
+
+ return RESET;
+}
+
+/*!
+ \brief clear early wakeup interrupt state of WWDGT
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void wwdgt_flag_clear(void)
+{
+ WWDGT_STAT &= (~WWDGT_STAT_EWIF);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/gd32vf103.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/gd32vf103.h
new file mode 100644
index 0000000000..7e99cf006e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/gd32vf103.h
@@ -0,0 +1,242 @@
+/*!
+ \file gd32vf103.h
+ \brief general definitions for GD32VF103
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef GD32VF103_H
+#define GD32VF103_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+ /* IO definitions (access restrictions to peripheral registers) */
+ /**
+
+ IO Type Qualifiers are used
+ \li to specify the access to peripheral variables.
+ \li for automatic generation of peripheral register debug information.
+ */
+ #ifdef __cplusplus
+ #define __I volatile /*!< Defines 'read only' permissions */
+ #else
+ #define __I volatile const /*!< Defines 'read only' permissions */
+ #endif
+ #define __O volatile /*!< Defines 'write only' permissions */
+ #define __IO volatile /*!< Defines 'read / write' permissions */
+
+ /* define value of high speed crystal oscillator (HXTAL) in Hz */
+ #if !defined HXTAL_VALUE
+ #ifdef GD32VF103R_START
+ #define HXTAL_VALUE ((uint32_t)25000000) /*!< value of the external oscillator in Hz */
+ #define HXTAL_VALUE_8M HXTAL_VALUE
+#elif defined(GD32VF103V_EVAL) || defined(GD32VF103C_START) || defined(GD32VF103T_START)
+ #define HXTAL_VALUE ((uint32_t)8000000) /*!< value of the external oscillator in Hz */
+ #define HXTAL_VALUE_25M HXTAL_VALUE
+ #else
+ #error "Please select the target board type used in your application (in gd32vf103.h file)"
+ #endif
+ #endif /* high speed crystal oscillator value */
+
+/* define startup timeout value of high speed crystal oscillator (HXTAL) */
+#if !defined (HXTAL_STARTUP_TIMEOUT)
+#define HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)
+#endif /* high speed crystal oscillator startup timeout */
+
+/* define value of internal 8MHz RC oscillator (IRC8M) in Hz */
+#if !defined (IRC8M_VALUE)
+#define IRC8M_VALUE ((uint32_t)8000000)
+#endif /* internal 8MHz RC oscillator value */
+
+/* define startup timeout value of internal 8MHz RC oscillator (IRC8M) */
+#if !defined (IRC8M_STARTUP_TIMEOUT)
+#define IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)
+#endif /* internal 8MHz RC oscillator startup timeout */
+
+/* define value of internal 40KHz RC oscillator(IRC40K) in Hz */
+#if !defined (IRC40K_VALUE)
+#define IRC40K_VALUE ((uint32_t)40000)
+#endif /* internal 40KHz RC oscillator value */
+
+/* define value of low speed crystal oscillator (LXTAL)in Hz */
+#if !defined (LXTAL_VALUE)
+#define LXTAL_VALUE ((uint32_t)32768)
+#endif /* low speed crystal oscillator value */
+
+/* define interrupt number */
+typedef enum IRQn
+{
+
+ CLIC_INT_RESERVED = 0, /*!< RISC-V reserved */
+ CLIC_INT_SFT = 3, /*!< Software interrupt */
+ CLIC_INT_TMR = 7, /*!< CPU Timer interrupt */
+ CLIC_INT_BWEI = 17, /*!< Bus Error interrupt */
+ CLIC_INT_PMOVI = 18, /*!< Performance Monitor */
+
+ /* interruput numbers */
+ WWDGT_IRQn = 19, /*!< window watchDog timer interrupt */
+ LVD_IRQn = 20, /*!< LVD through EXTI line detect interrupt */
+ TAMPER_IRQn = 21, /*!< tamper through EXTI line detect */
+ RTC_IRQn = 22, /*!< RTC alarm interrupt */
+ FMC_IRQn = 23, /*!< FMC interrupt */
+ RCU_CTC_IRQn = 24, /*!< RCU and CTC interrupt */
+ EXTI0_IRQn = 25, /*!< EXTI line 0 interrupts */
+ EXTI1_IRQn = 26, /*!< EXTI line 1 interrupts */
+ EXTI2_IRQn = 27, /*!< EXTI line 2 interrupts */
+ EXTI3_IRQn = 28, /*!< EXTI line 3 interrupts */
+ EXTI4_IRQn = 29, /*!< EXTI line 4 interrupts */
+ DMA0_Channel0_IRQn = 30, /*!< DMA0 channel0 interrupt */
+ DMA0_Channel1_IRQn = 31, /*!< DMA0 channel1 interrupt */
+ DMA0_Channel2_IRQn = 32, /*!< DMA0 channel2 interrupt */
+ DMA0_Channel3_IRQn = 33, /*!< DMA0 channel3 interrupt */
+ DMA0_Channel4_IRQn = 34, /*!< DMA0 channel4 interrupt */
+ DMA0_Channel5_IRQn = 35, /*!< DMA0 channel5 interrupt */
+ DMA0_Channel6_IRQn = 36, /*!< DMA0 channel6 interrupt */
+ ADC0_1_IRQn = 37, /*!< ADC0 and ADC1 interrupt */
+ CAN0_TX_IRQn = 38, /*!< CAN0 TX interrupts */
+ CAN0_RX0_IRQn = 39, /*!< CAN0 RX0 interrupts */
+ CAN0_RX1_IRQn = 40, /*!< CAN0 RX1 interrupts */
+ CAN0_EWMC_IRQn = 41, /*!< CAN0 EWMC interrupts */
+ EXTI5_9_IRQn = 42, /*!< EXTI[9:5] interrupts */
+ TIMER0_BRK_IRQn = 43, /*!< TIMER0 break interrupts */
+ TIMER0_UP_IRQn = 44, /*!< TIMER0 update interrupts */
+ TIMER0_TRG_CMT_IRQn = 45, /*!< TIMER0 trigger and commutation interrupts */
+ TIMER0_Channel_IRQn = 46, /*!< TIMER0 channel capture compare interrupts */
+ TIMER1_IRQn = 47, /*!< TIMER1 interrupt */
+ TIMER2_IRQn = 48, /*!< TIMER2 interrupt */
+ TIMER3_IRQn = 49, /*!< TIMER3 interrupts */
+ I2C0_EV_IRQn = 50, /*!< I2C0 event interrupt */
+ I2C0_ER_IRQn = 51, /*!< I2C0 error interrupt */
+ I2C1_EV_IRQn = 52, /*!< I2C1 event interrupt */
+ I2C1_ER_IRQn = 53, /*!< I2C1 error interrupt */
+ SPI0_IRQn = 54, /*!< SPI0 interrupt */
+ SPI1_IRQn = 55, /*!< SPI1 interrupt */
+ USART0_IRQn = 56, /*!< USART0 interrupt */
+ USART1_IRQn = 57, /*!< USART1 interrupt */
+ USART2_IRQn = 58, /*!< USART2 interrupt */
+ EXTI10_15_IRQn = 59, /*!< EXTI[15:10] interrupts */
+ RTC_ALARM_IRQn = 60, /*!< RTC alarm interrupt EXTI */
+ USBFS_WKUP_IRQn = 61, /*!< USBFS wakeup interrupt */
+
+ EXMC_IRQn = 67, /*!< EXMC global interrupt */
+
+ TIMER4_IRQn = 69, /*!< TIMER4 global interrupt */
+ SPI2_IRQn = 70, /*!< SPI2 global interrupt */
+ UART3_IRQn = 71, /*!< UART3 global interrupt */
+ UART4_IRQn = 72, /*!< UART4 global interrupt */
+ TIMER5_IRQn = 73, /*!< TIMER5 global interrupt */
+ TIMER6_IRQn = 74, /*!< TIMER6 global interrupt */
+ DMA1_Channel0_IRQn = 75, /*!< DMA1 channel0 global interrupt */
+ DMA1_Channel1_IRQn = 76, /*!< DMA1 channel1 global interrupt */
+ DMA1_Channel2_IRQn = 77, /*!< DMA1 channel2 global interrupt */
+ DMA1_Channel3_IRQn = 78, /*!< DMA1 channel3 global interrupt */
+ DMA1_Channel4_IRQn = 79, /*!< DMA1 channel3 global interrupt */
+
+ CAN1_TX_IRQn = 82, /*!< CAN1 TX interrupt */
+ CAN1_RX0_IRQn = 83, /*!< CAN1 RX0 interrupt */
+ CAN1_RX1_IRQn = 84, /*!< CAN1 RX1 interrupt */
+ CAN1_EWMC_IRQn = 85, /*!< CAN1 EWMC interrupt */
+ USBFS_IRQn = 86, /*!< USBFS global interrupt */
+
+ ECLIC_NUM_INTERRUPTS
+} IRQn_Type;
+
+/* includes */
+#include "system_gd32vf103.h"
+#include
+
+/* enum definitions */
+typedef enum {DISABLE = 0, ENABLE = !DISABLE} EventStatus, ControlStatus;
+typedef enum {FALSE = 0, TRUE = !FALSE} bool;
+typedef enum {RESET = 0, SET = !RESET} FlagStatus;
+typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrStatus;
+
+/* bit operations */
+#define REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))
+#define REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))
+#define REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))
+#define BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))
+#define BITS(start, end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))
+#define GET_BITS(regval, start, end) (((regval) & BITS((start),(end))) >> (start))
+
+/* main flash and SRAM memory map */
+#define FLASH_BASE ((uint32_t)0x08000000U) /*!< main FLASH base address */
+#define SRAM_BASE ((uint32_t)0x20000000U) /*!< SRAM0 base address */
+#define OB_BASE ((uint32_t)0x1FFFF800U) /*!< OB base address */
+#define DBG_BASE ((uint32_t)0xE0042000U) /*!< DBG base address */
+#define EXMC_BASE ((uint32_t)0xA0000000U) /*!< EXMC register base address */
+
+/* peripheral memory map */
+#define APB1_BUS_BASE ((uint32_t)0x40000000U) /*!< apb1 base address */
+#define APB2_BUS_BASE ((uint32_t)0x40010000U) /*!< apb2 base address */
+#define AHB1_BUS_BASE ((uint32_t)0x40018000U) /*!< ahb1 base address */
+#define AHB3_BUS_BASE ((uint32_t)0x60000000U) /*!< ahb3 base address */
+
+/* advanced peripheral bus 1 memory map */
+#define TIMER_BASE (APB1_BUS_BASE + 0x00000000U) /*!< TIMER base address */
+#define RTC_BASE (APB1_BUS_BASE + 0x00002800U) /*!< RTC base address */
+#define WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U) /*!< WWDGT base address */
+#define FWDGT_BASE (APB1_BUS_BASE + 0x00003000U) /*!< FWDGT base address */
+#define SPI_BASE (APB1_BUS_BASE + 0x00003800U) /*!< SPI base address */
+#define USART_BASE (APB1_BUS_BASE + 0x00004400U) /*!< USART base address */
+#define I2C_BASE (APB1_BUS_BASE + 0x00005400U) /*!< I2C base address */
+#define CAN_BASE (APB1_BUS_BASE + 0x00006400U) /*!< CAN base address */
+#define BKP_BASE (APB1_BUS_BASE + 0x00006C00U) /*!< BKP base address */
+#define PMU_BASE (APB1_BUS_BASE + 0x00007000U) /*!< PMU base address */
+#define DAC_BASE (APB1_BUS_BASE + 0x00007400U) /*!< DAC base address */
+
+/* advanced peripheral bus 2 memory map */
+#define AFIO_BASE (APB2_BUS_BASE + 0x00000000U) /*!< AFIO base address */
+#define EXTI_BASE (APB2_BUS_BASE + 0x00000400U) /*!< EXTI base address */
+#define GPIO_BASE (APB2_BUS_BASE + 0x00000800U) /*!< GPIO base address */
+#define ADC_BASE (APB2_BUS_BASE + 0x00002400U) /*!< ADC base address */
+
+/* advanced high performance bus 1 memory map */
+#define DMA_BASE (AHB1_BUS_BASE + 0x00008000U) /*!< DMA base address */
+#define RCU_BASE (AHB1_BUS_BASE + 0x00009000U) /*!< RCU base address */
+#define FMC_BASE (AHB1_BUS_BASE + 0x0000A000U) /*!< FMC base address */
+#define CRC_BASE (AHB1_BUS_BASE + 0x0000B000U) /*!< CRC base address */
+#define USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U) /*!< USBFS base address */
+
+/* define marco USE_STDPERIPH_DRIVER */
+#if !defined USE_STDPERIPH_DRIVER
+#define USE_STDPERIPH_DRIVER
+#endif
+#ifdef USE_STDPERIPH_DRIVER
+#include "gd32vf103_libopt.h"
+#endif /* USE_STDPERIPH_DRIVER */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.c
new file mode 100644
index 0000000000..0c4b401ac3
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.c
@@ -0,0 +1,1007 @@
+/*!
+ \file system_gd32vf103.c
+ \brief RISC-V Device Peripheral Access Layer Source File for
+ GD32VF103 Device Series
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2021-05-19, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+/* This file refers the RISC-V standard, some adjustments are made according to GigaDevice chips */
+
+#include "gd32vf103.h"
+
+/* system frequency define */
+#define __IRC8M (IRC8M_VALUE) /* internal 8 MHz RC oscillator frequency */
+#define __HXTAL (HXTAL_VALUE) /* high speed crystal oscillator frequency */
+#define __SYS_OSC_CLK (__IRC8M) /* main oscillator frequency */
+
+/* select a system clock by uncommenting the following line */
+/* use IRC8M */
+//#define __SYSTEM_CLOCK_48M_PLL_IRC8M (uint32_t)(48000000)
+//#define __SYSTEM_CLOCK_72M_PLL_IRC8M (uint32_t)(72000000)
+//#define __SYSTEM_CLOCK_108M_PLL_IRC8M (uint32_t)(108000000)
+
+/********************************************************************/
+//#define __SYSTEM_CLOCK_HXTAL (HXTAL_VALUE)
+//#define __SYSTEM_CLOCK_24M_PLL_HXTAL (uint32_t)(24000000)
+/********************************************************************/
+
+//#define __SYSTEM_CLOCK_36M_PLL_HXTAL (uint32_t)(36000000)
+//#define __SYSTEM_CLOCK_48M_PLL_HXTAL (uint32_t)(48000000)
+//#define __SYSTEM_CLOCK_56M_PLL_HXTAL (uint32_t)(56000000)
+//#define __SYSTEM_CLOCK_72M_PLL_HXTAL (uint32_t)(72000000)
+//#define __SYSTEM_CLOCK_96M_PLL_HXTAL (uint32_t)(96000000)
+#define __SYSTEM_CLOCK_108M_PLL_HXTAL (uint32_t)(108000000)
+
+#define SEL_IRC8M 0x00U
+#define SEL_HXTAL 0x01U
+#define SEL_PLL 0x02U
+
+/* set the system clock frequency and declare the system clock configuration function */
+#ifdef __SYSTEM_CLOCK_48M_PLL_IRC8M
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_48M_PLL_IRC8M;
+static void system_clock_48m_irc8m(void);
+#elif defined (__SYSTEM_CLOCK_72M_PLL_IRC8M)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_72M_PLL_IRC8M;
+static void system_clock_72m_irc8m(void);
+#elif defined (__SYSTEM_CLOCK_108M_PLL_IRC8M)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_108M_PLL_IRC8M;
+static void system_clock_108m_irc8m(void);
+
+#elif defined (__SYSTEM_CLOCK_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_HXTAL;
+static void system_clock_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_24M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_24M_PLL_HXTAL;
+static void system_clock_24m_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_36M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_36M_PLL_HXTAL;
+static void system_clock_36m_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_48M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_48M_PLL_HXTAL;
+static void system_clock_48m_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_56M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_56M_PLL_HXTAL;
+static void system_clock_56m_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_72M_PLL_HXTAL;
+static void system_clock_72m_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_96M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_96M_PLL_HXTAL;
+static void system_clock_96m_hxtal(void);
+#elif defined (__SYSTEM_CLOCK_108M_PLL_HXTAL)
+uint32_t SystemCoreClock = __SYSTEM_CLOCK_108M_PLL_HXTAL;
+static void system_clock_108m_hxtal(void);
+#else
+uint32_t SystemCoreClock = IRC8M_VALUE;
+#endif /* __SYSTEM_CLOCK_48M_PLL_IRC8M */
+
+/* configure the system clock */
+static void system_clock_config(void);
+
+/*!
+ \brief configure the system clock
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_config(void)
+{
+#ifdef __SYSTEM_CLOCK_HXTAL
+ system_clock_hxtal();
+#elif defined (__SYSTEM_CLOCK_24M_PLL_HXTAL)
+ system_clock_24m_hxtal();
+#elif defined (__SYSTEM_CLOCK_36M_PLL_HXTAL)
+ system_clock_36m_hxtal();
+#elif defined (__SYSTEM_CLOCK_48M_PLL_HXTAL)
+ system_clock_48m_hxtal();
+#elif defined (__SYSTEM_CLOCK_56M_PLL_HXTAL)
+ system_clock_56m_hxtal();
+#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL)
+ system_clock_72m_hxtal();
+#elif defined (__SYSTEM_CLOCK_96M_PLL_HXTAL)
+ system_clock_96m_hxtal();
+#elif defined (__SYSTEM_CLOCK_108M_PLL_HXTAL)
+ system_clock_108m_hxtal();
+
+#elif defined (__SYSTEM_CLOCK_48M_PLL_IRC8M)
+ system_clock_48m_irc8m();
+#elif defined (__SYSTEM_CLOCK_72M_PLL_IRC8M)
+ system_clock_72m_irc8m();
+#elif defined (__SYSTEM_CLOCK_108M_PLL_IRC8M)
+ system_clock_108m_irc8m();
+#endif /* __SYSTEM_CLOCK_HXTAL */
+}
+
+/*!
+ \brief setup the microcontroller system, initialize the system
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void SystemInit(void)
+{
+ /* reset the RCC clock configuration to the default reset state */
+ /* enable IRC8M */
+ RCU_CTL |= RCU_CTL_IRC8MEN;
+
+ /* reset SCS, AHBPSC, APB1PSC, APB2PSC, ADCPSC, CKOUT0SEL bits */
+ RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC |
+ RCU_CFG0_ADCPSC | RCU_CFG0_ADCPSC_2 | RCU_CFG0_CKOUT0SEL);
+
+ /* reset HXTALEN, CKMEN, PLLEN bits */
+ RCU_CTL &= ~(RCU_CTL_HXTALEN | RCU_CTL_CKMEN | RCU_CTL_PLLEN);
+
+ /* Reset HXTALBPS bit */
+ RCU_CTL &= ~(RCU_CTL_HXTALBPS);
+
+ /* reset PLLSEL, PREDV0_LSB, PLLMF, USBFSPSC bits */
+
+ RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0_LSB | RCU_CFG0_PLLMF |
+ RCU_CFG0_USBFSPSC | RCU_CFG0_PLLMF_4);
+ RCU_CFG1 = 0x00000000U;
+
+ /* Reset HXTALEN, CKMEN, PLLEN, PLL1EN and PLL2EN bits */
+ RCU_CTL &= ~(RCU_CTL_PLLEN | RCU_CTL_PLL1EN | RCU_CTL_PLL2EN | RCU_CTL_CKMEN | RCU_CTL_HXTALEN);
+ /* disable all interrupts */
+ RCU_INT = 0x00FF0000U;
+
+ /* Configure the System clock source, PLL Multiplier, AHB/APBx prescalers and Flash settings */
+ system_clock_config();
+}
+
+/*!
+ \brief update the SystemCoreClock with current core clock retrieved from cpu registers
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+void SystemCoreClockUpdate(void)
+{
+ uint32_t scss = 0U;
+ uint32_t pllsel = 0U, predv0sel = 0U, pllmf = 0U, ck_src = 0U;
+ uint32_t predv0 = 0U, predv1 = 0U, pll1mf = 0U,idx = 0U,clk_exp = 0U;
+ /* exponent of AHB clock divider */
+ const uint8_t ahb_exp[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
+
+ scss = GET_BITS(RCU_CFG0, 2, 3);
+
+ switch (scss)
+ {
+ /* IRC8M is selected as CK_SYS */
+ case SEL_IRC8M:
+ SystemCoreClock = IRC8M_VALUE;
+ break;
+
+ /* HXTAL is selected as CK_SYS */
+ case SEL_HXTAL:
+ SystemCoreClock = HXTAL_VALUE;
+ break;
+
+ /* PLL is selected as CK_SYS */
+ case SEL_PLL:
+ /* PLL clock source selection, HXTAL or IRC8M/2 */
+ pllsel = (RCU_CFG0 & RCU_CFG0_PLLSEL);
+
+
+ if(RCU_PLLSRC_IRC8M_DIV2 == pllsel){
+ /* PLL clock source is IRC8M/2 */
+ ck_src = IRC8M_VALUE / 2U;
+ }else{
+ /* PLL clock source is HXTAL */
+ ck_src = HXTAL_VALUE;
+
+ predv0sel = (RCU_CFG1 & RCU_CFG1_PREDV0SEL);
+
+ /* source clock use PLL1 */
+ if(RCU_PREDV0SRC_CKPLL1 == predv0sel){
+ predv1 = ((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U;
+ pll1mf = ((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U;
+ if(17U == pll1mf){
+ pll1mf = 20U;
+ }
+ ck_src = (ck_src / predv1) * pll1mf;
+ }
+ predv0 = (RCU_CFG1 & RCU_CFG1_PREDV0) + 1U;
+ ck_src /= predv0;
+ }
+
+ /* PLL multiplication factor */
+ pllmf = GET_BITS(RCU_CFG0, 18, 21);
+
+ if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
+ pllmf |= 0x10U;
+ }
+
+ if(pllmf >= 15U){
+ pllmf += 1U;
+ }else{
+ pllmf += 2U;
+ }
+
+ SystemCoreClock = ck_src * pllmf;
+
+ if(15U == pllmf){
+ /* PLL source clock multiply by 6.5 */
+ SystemCoreClock = ck_src * 6U + ck_src / 2U;
+ }
+
+ break;
+
+ /* IRC8M is selected as CK_SYS */
+ default:
+ SystemCoreClock = IRC8M_VALUE;
+ break;
+ }
+ /* calculate AHB clock frequency */
+ idx = GET_BITS(RCU_CFG0, 4, 7);
+ clk_exp = ahb_exp[idx];
+ SystemCoreClock >>= clk_exp;
+}
+
+#ifdef __SYSTEM_CLOCK_HXTAL
+/*!
+ \brief configure the system clock to HXTAL
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* select HXTAL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_HXTAL;
+
+ /* wait until HXTAL is selected as system clock */
+ while(0 == (RCU_CFG0 & RCU_SCSS_HXTAL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_24M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 24M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_24m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_PREDIV0) * 6 = 24 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL6);
+
+ if(HXTAL_VALUE==25000000){
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while((RCU_CTL & RCU_CTL_PLL1STB) == 0){
+ }
+
+ }else if(HXTAL_VALUE==8000000){
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 );
+ }
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_36M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 36M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_36m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_PREDIV0) * 9 = 36 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL9);
+
+ if(HXTAL_VALUE==25000000){
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while((RCU_CTL & RCU_CTL_PLL1STB) == 0){
+ }
+
+ }else if(HXTAL_VALUE==8000000){
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 );
+ }
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_48M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 48M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_48m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_PREDIV0) * 12 = 48 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL12);
+
+ if(HXTAL_VALUE==25000000){
+
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while((RCU_CTL & RCU_CTL_PLL1STB) == 0){
+ }
+
+ }else if(HXTAL_VALUE==8000000){
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 );
+ }
+
+
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_56M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 56M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_56m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_PREDIV0) * 14 = 56 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL14);
+
+ if(HXTAL_VALUE==25000000){
+
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while((RCU_CTL & RCU_CTL_PLL1STB) == 0){
+ }
+
+ }else if(HXTAL_VALUE==8000000){
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 );
+ }
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_72M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 72M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_72m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_PREDIV0) * 18 = 72 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL18);
+
+
+ if(HXTAL_VALUE==25000000){
+
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while((RCU_CTL & RCU_CTL_PLL1STB) == 0){
+ }
+
+ }else if(HXTAL_VALUE==8000000){
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 );
+ }
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_96M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 96M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_96m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ if(HXTAL_VALUE==25000000){
+
+ /* CK_PLL = (CK_PREDIV0) * 24 = 96 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL24);
+
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV1 | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PLL1_MUL8 | RCU_PREDV1_DIV5 | RCU_PREDV0_DIV10);
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while((RCU_CTL & RCU_CTL_PLL1STB) == 0){
+ }
+
+ }else if(HXTAL_VALUE==8000000){
+ /* CK_PLL = (CK_PREDIV0) * 24 = 96 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL24);
+
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 );
+ }
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_108M_PLL_HXTAL)
+/*!
+ \brief configure the system clock to 108M by PLL which selects HXTAL(MD/HD/XD:8M; CL:25M) as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+
+static void system_clock_108m_hxtal(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable HXTAL */
+ RCU_CTL |= RCU_CTL_HXTALEN;
+
+ /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
+ }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
+ while(1){
+ }
+ }
+
+ /* HXTAL is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_PREDIV0) * 27 = 108 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL27);
+
+ if(HXTAL_VALUE==25000000){
+ /* CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz */
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_CKPLL1 | RCU_PREDV1_DIV5 | RCU_PLL1_MUL8 | RCU_PREDV0_DIV10);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while(0U == (RCU_CTL & RCU_CTL_PLL1STB)){
+ }
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL2EN;
+ /* wait till PLL1 is ready */
+ while(0U == (RCU_CTL & RCU_CTL_PLL2STB)){
+ }
+ }else if(HXTAL_VALUE==8000000){
+ RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
+ RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 | RCU_PREDV1_DIV2 | RCU_PLL1_MUL20 | RCU_PLL2_MUL20);
+
+ /* enable PLL1 */
+ RCU_CTL |= RCU_CTL_PLL1EN;
+ /* wait till PLL1 is ready */
+ while(0U == (RCU_CTL & RCU_CTL_PLL1STB)){
+ }
+
+ /* enable PLL2 */
+ RCU_CTL |= RCU_CTL_PLL2EN;
+ /* wait till PLL1 is ready */
+ while(0U == (RCU_CTL & RCU_CTL_PLL2STB)){
+ }
+
+ }
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_48M_PLL_IRC8M)
+/*!
+ \brief configure the system clock to 48M by PLL which selects IRC8M as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_48m_irc8m(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable IRC8M */
+ RCU_CTL |= RCU_CTL_IRC8MEN;
+
+ /* wait until IRC8M is stable or the startup time is longer than IRC8M_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_IRC8MSTB);
+ }
+ while((0U == stab_flag) && (IRC8M_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_IRC8MSTB)){
+ while(1){
+ }
+ }
+
+ /* IRC8M is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_IRC8M/2) * 12 = 48 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= RCU_PLL_MUL12;
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_72M_PLL_IRC8M)
+/*!
+ \brief configure the system clock to 72M by PLL which selects IRC8M as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_72m_irc8m(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable IRC8M */
+ RCU_CTL |= RCU_CTL_IRC8MEN;
+
+ /* wait until IRC8M is stable or the startup time is longer than IRC8M_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_IRC8MSTB);
+ }
+ while((0U == stab_flag) && (IRC8M_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_IRC8MSTB)){
+ while(1){
+ }
+ }
+
+ /* IRC8M is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_IRC8M/2) * 18 = 72 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= RCU_PLL_MUL18;
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#elif defined (__SYSTEM_CLOCK_108M_PLL_IRC8M)
+/*!
+ \brief configure the system clock to 108M by PLL which selects IRC8M as its clock source
+ \param[in] none
+ \param[out] none
+ \retval none
+*/
+static void system_clock_108m_irc8m(void)
+{
+ uint32_t timeout = 0U;
+ uint32_t stab_flag = 0U;
+
+ /* enable IRC8M */
+ RCU_CTL |= RCU_CTL_IRC8MEN;
+
+ /* wait until IRC8M is stable or the startup time is longer than IRC8M_STARTUP_TIMEOUT */
+ do{
+ timeout++;
+ stab_flag = (RCU_CTL & RCU_CTL_IRC8MSTB);
+ }
+ while((0U == stab_flag) && (IRC8M_STARTUP_TIMEOUT != timeout));
+
+ /* if fail */
+ if(0U == (RCU_CTL & RCU_CTL_IRC8MSTB)){
+ while(1){
+ }
+ }
+
+ /* IRC8M is stable */
+ /* AHB = SYSCLK */
+ RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
+ /* APB2 = AHB/1 */
+ RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
+ /* APB1 = AHB/2 */
+ RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
+
+ /* CK_PLL = (CK_IRC8M/2) * 27 = 108 MHz */
+ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
+ RCU_CFG0 |= RCU_PLL_MUL27;
+
+ /* enable PLL */
+ RCU_CTL |= RCU_CTL_PLLEN;
+
+ /* wait until PLL is stable */
+ while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
+ }
+
+ /* select PLL as system clock */
+ RCU_CFG0 &= ~RCU_CFG0_SCS;
+ RCU_CFG0 |= RCU_CKSYSSRC_PLL;
+
+ /* wait until PLL is selected as system clock */
+ while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
+ }
+}
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.h
new file mode 100644
index 0000000000..b43888f15a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.h
@@ -0,0 +1,65 @@
+/*!
+ \file system_gd32vf103.h
+ \brief RISC-V Device Peripheral Access Layer Header File for
+ GD32VF103 Device Series
+
+ \version 2019-06-05, V1.0.0, firmware for GD32VF103
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+/* This file refers the RISC-V standard, some adjustments are made according to GigaDevice chips */
+
+#ifndef SYSTEM_GD32VF103_H
+#define SYSTEM_GD32VF103_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+
+#if defined (__ICCRISCV__)
+ #include "compiler.h"
+#endif
+
+/* system clock frequency (core clock) */
+extern uint32_t SystemCoreClock;
+
+/* function declarations */
+/* initialize the system and update the SystemCoreClock variable */
+extern void SystemInit(void);
+/* update the SystemCoreClock with current core clock retrieved from cpu registers */
+extern void SystemCoreClockUpdate(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SYSTEM_GD32VF103_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.s
new file mode 100644
index 0000000000..6acaa95742
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_standard_peripheral/system_gd32vf103.s
@@ -0,0 +1,17608 @@
+ .file "system_gd32vf103.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .globl SystemCoreClock
+ .section .sdata,"aw"
+ .align 2
+ .type SystemCoreClock, @object
+ .size SystemCoreClock, 4
+SystemCoreClock:
+ .word 108000000
+ .text
+ .align 1
+ .type system_clock_config, @function
+system_clock_config:
+.LFB2:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\system_gd32vf103.c"
+ .loc 1 118 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw ra,12(sp)
+ sw s0,8(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 134 5
+ call system_clock_108m_hxtal
+ .loc 1 143 1
+ nop
+ lw ra,12(sp)
+ .cfi_restore 1
+ lw s0,8(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE2:
+ .size system_clock_config, .-system_clock_config
+ .align 1
+ .globl SystemInit
+ .type SystemInit, @function
+SystemInit:
+.LFB3:
+ .loc 1 152 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw ra,12(sp)
+ sw s0,8(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 155 89
+ li a5,1073876992
+ lw a4,0(a5)
+ li a5,1073876992
+ ori a4,a4,1
+ sw a4,0(a5)
+ .loc 1 158 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ li a4,-520159232
+ addi a4,a4,12
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 162 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-17367040
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 165 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-262144
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 169 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ li a4,-553582592
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 171 6
+ li a5,1073876992
+ addi a5,a5,44
+ .loc 1 171 89
+ sw zero,0(a5)
+ .loc 1 174 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,-352911360
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 176 6
+ li a5,1073876992
+ addi a5,a5,8
+ .loc 1 176 89
+ li a4,16711680
+ sw a4,0(a5)
+ .loc 1 179 5
+ call system_clock_config
+ .loc 1 180 1
+ nop
+ lw ra,12(sp)
+ .cfi_restore 1
+ lw s0,8(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE3:
+ .size SystemInit, .-SystemInit
+ .section .rodata
+ .align 2
+.LC0:
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .string ""
+ .ascii "\001\002\003\004\006\007\b\t"
+ .text
+ .align 1
+ .globl SystemCoreClockUpdate
+ .type SystemCoreClockUpdate, @function
+SystemCoreClockUpdate:
+.LFB4:
+ .loc 1 189 1
+ .cfi_startproc
+ addi sp,sp,-80
+ .cfi_def_cfa_offset 80
+ sw s0,76(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,80
+ .cfi_def_cfa 8, 0
+ .loc 1 190 14
+ sw zero,-32(s0)
+ .loc 1 191 14
+ sw zero,-36(s0)
+ .loc 1 191 27
+ sw zero,-40(s0)
+ .loc 1 191 43
+ sw zero,-20(s0)
+ .loc 1 191 55
+ sw zero,-24(s0)
+ .loc 1 192 14
+ sw zero,-44(s0)
+ .loc 1 192 27
+ sw zero,-48(s0)
+ .loc 1 192 40
+ sw zero,-28(s0)
+ .loc 1 192 52
+ sw zero,-52(s0)
+ .loc 1 192 61
+ sw zero,-56(s0)
+ .loc 1 194 19
+ lla a5,.LC0
+ lw a2,0(a5)
+ lw a3,4(a5)
+ lw a4,8(a5)
+ lw a5,12(a5)
+ sw a2,-72(s0)
+ sw a3,-68(s0)
+ sw a4,-64(s0)
+ sw a5,-60(s0)
+ .loc 1 196 16
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 196 173
+ srli a5,a5,2
+ .loc 1 196 10
+ andi a5,a5,3
+ sw a5,-32(s0)
+ .loc 1 198 5
+ lw a4,-32(s0)
+ li a5,2
+ beq a4,a5,.L4
+ lw a4,-32(s0)
+ li a5,2
+ bgtu a4,a5,.L5
+ lw a5,-32(s0)
+ beq a5,zero,.L6
+ lw a4,-32(s0)
+ li a5,1
+ beq a4,a5,.L7
+ j .L5
+.L6:
+ .loc 1 202 29
+ lla a5,SystemCoreClock
+ li a4,7999488
+ addi a4,a4,512
+ sw a4,0(a5)
+ .loc 1 203 13
+ j .L8
+.L7:
+ .loc 1 207 29
+ lla a5,SystemCoreClock
+ li a4,7999488
+ addi a4,a4,512
+ sw a4,0(a5)
+ .loc 1 208 13
+ j .L8
+.L4:
+ .loc 1 213 24
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ .loc 1 213 20
+ li a5,65536
+ and a5,a4,a5
+ sw a5,-36(s0)
+ .loc 1 216 15
+ lw a5,-36(s0)
+ bne a5,zero,.L9
+ .loc 1 218 24
+ li a5,4001792
+ addi a5,a5,-1792
+ sw a5,-24(s0)
+ j .L10
+.L9:
+ .loc 1 221 24
+ li a5,7999488
+ addi a5,a5,512
+ sw a5,-24(s0)
+ .loc 1 223 31
+ li a5,1073876992
+ addi a5,a5,44
+ lw a4,0(a5)
+ .loc 1 223 27
+ li a5,65536
+ and a5,a4,a5
+ sw a5,-40(s0)
+ .loc 1 226 19
+ lw a4,-40(s0)
+ li a5,65536
+ bne a4,a5,.L11
+ .loc 1 227 33
+ li a5,1073876992
+ addi a5,a5,44
+ lw a5,0(a5)
+ .loc 1 227 185
+ srli a5,a5,4
+ andi a5,a5,15
+ .loc 1 227 28
+ addi a5,a5,1
+ sw a5,-48(s0)
+ .loc 1 228 33
+ li a5,1073876992
+ addi a5,a5,44
+ lw a5,0(a5)
+ .loc 1 228 186
+ srli a5,a5,8
+ andi a5,a5,15
+ .loc 1 228 28
+ addi a5,a5,2
+ sw a5,-28(s0)
+ .loc 1 229 23
+ lw a4,-28(s0)
+ li a5,17
+ bne a4,a5,.L12
+ .loc 1 230 32
+ li a5,20
+ sw a5,-28(s0)
+.L12:
+ .loc 1 232 38
+ lw a4,-24(s0)
+ lw a5,-48(s0)
+ divu a5,a4,a5
+ .loc 1 232 28
+ lw a4,-28(s0)
+ mul a5,a4,a5
+ sw a5,-24(s0)
+.L11:
+ .loc 1 234 28
+ li a5,1073876992
+ addi a5,a5,44
+ lw a5,0(a5)
+ .loc 1 234 111
+ andi a5,a5,15
+ .loc 1 234 24
+ addi a5,a5,1
+ sw a5,-44(s0)
+ .loc 1 235 24
+ lw a4,-24(s0)
+ lw a5,-44(s0)
+ divu a5,a4,a5
+ sw a5,-24(s0)
+.L10:
+ .loc 1 239 25
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 239 184
+ srli a5,a5,18
+ .loc 1 239 19
+ andi a5,a5,15
+ sw a5,-20(s0)
+ .loc 1 241 18
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ .loc 1 241 101
+ li a5,536870912
+ and a5,a4,a5
+ .loc 1 241 15
+ beq a5,zero,.L13
+ .loc 1 242 23
+ lw a5,-20(s0)
+ ori a5,a5,16
+ sw a5,-20(s0)
+.L13:
+ .loc 1 245 15
+ lw a4,-20(s0)
+ li a5,14
+ bleu a4,a5,.L14
+ .loc 1 246 23
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+ j .L15
+.L14:
+ .loc 1 248 23
+ lw a5,-20(s0)
+ addi a5,a5,2
+ sw a5,-20(s0)
+.L15:
+ .loc 1 251 38
+ lw a4,-24(s0)
+ lw a5,-20(s0)
+ mul a4,a4,a5
+ .loc 1 251 29
+ lla a5,SystemCoreClock
+ sw a4,0(a5)
+ .loc 1 253 15
+ lw a4,-20(s0)
+ li a5,15
+ bne a4,a5,.L17
+ .loc 1 255 42
+ lw a4,-24(s0)
+ mv a5,a4
+ slli a5,a5,1
+ add a5,a5,a4
+ slli a5,a5,1
+ mv a4,a5
+ .loc 1 255 56
+ lw a5,-24(s0)
+ srli a5,a5,1
+ .loc 1 255 47
+ add a4,a4,a5
+ .loc 1 255 33
+ lla a5,SystemCoreClock
+ sw a4,0(a5)
+ .loc 1 258 13
+ j .L17
+.L5:
+ .loc 1 262 29
+ lla a5,SystemCoreClock
+ li a4,7999488
+ addi a4,a4,512
+ sw a4,0(a5)
+ .loc 1 263 13
+ j .L8
+.L17:
+ .loc 1 258 13
+ nop
+.L8:
+ .loc 1 266 15
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 266 172
+ srli a5,a5,4
+ .loc 1 266 9
+ andi a5,a5,15
+ sw a5,-52(s0)
+ .loc 1 267 22
+ lw a5,-52(s0)
+ addi a4,s0,-16
+ add a5,a4,a5
+ lbu a5,-56(a5)
+ .loc 1 267 13
+ sw a5,-56(s0)
+ .loc 1 268 21
+ lla a5,SystemCoreClock
+ lw a4,0(a5)
+ lw a5,-56(s0)
+ srl a4,a4,a5
+ lla a5,SystemCoreClock
+ sw a4,0(a5)
+ .loc 1 269 1
+ nop
+ lw s0,76(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 80
+ addi sp,sp,80
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE4:
+ .size SystemCoreClockUpdate, .-SystemCoreClockUpdate
+ .align 1
+ .type system_clock_108m_hxtal, @function
+system_clock_108m_hxtal:
+.LFB5:
+ .loc 1 759 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ .loc 1 760 14
+ sw zero,-20(s0)
+ .loc 1 761 14
+ sw zero,-24(s0)
+ .loc 1 764 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,65536
+ or a4,a3,a4
+ sw a4,0(a5)
+.L20:
+ .loc 1 768 16 discriminator 2
+ lw a5,-20(s0)
+ addi a5,a5,1
+ sw a5,-20(s0)
+ .loc 1 769 23 discriminator 2
+ li a5,1073876992
+ lw a4,0(a5)
+ .loc 1 769 19 discriminator 2
+ li a5,131072
+ and a5,a4,a5
+ sw a5,-24(s0)
+ .loc 1 770 5 discriminator 2
+ lw a5,-24(s0)
+ bne a5,zero,.L19
+ .loc 1 770 30 discriminator 1
+ lw a4,-20(s0)
+ li a5,65536
+ addi a5,a5,-1
+ bne a4,a5,.L20
+.L19:
+ .loc 1 773 16
+ li a5,1073876992
+ lw a4,0(a5)
+ .loc 1 773 99
+ li a5,131072
+ and a5,a4,a5
+ .loc 1 773 7
+ bne a5,zero,.L21
+.L22:
+ .loc 1 774 14 discriminator 1
+ j .L22
+.L21:
+ .loc 1 780 89
+ li a5,1073876992
+ addi a4,a5,4
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a4)
+ sw a4,0(a5)
+ .loc 1 782 89
+ li a5,1073876992
+ addi a4,a5,4
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a4)
+ sw a4,0(a5)
+ .loc 1 784 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ ori a4,a4,1024
+ sw a4,0(a5)
+ .loc 1 787 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ li a4,-540803072
+ addi a4,a4,-1
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 788 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ li a4,539557888
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 807 87
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ li a4,-69632
+ and a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 808 87
+ li a5,1073876992
+ addi a5,a5,44
+ lw a3,0(a5)
+ li a5,1073876992
+ addi a5,a5,44
+ li a4,65536
+ addi a4,a4,-239
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 811 87
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,67108864
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 813 8
+ nop
+.L23:
+ .loc 1 813 17 discriminator 1
+ li a5,1073876992
+ lw a4,0(a5)
+ .loc 1 813 100 discriminator 1
+ li a5,134217728
+ and a5,a4,a5
+ .loc 1 813 8 discriminator 1
+ beq a5,zero,.L23
+ .loc 1 817 87
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,268435456
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 819 8
+ nop
+.L24:
+ .loc 1 819 17 discriminator 1
+ li a5,1073876992
+ lw a4,0(a5)
+ .loc 1 819 100 discriminator 1
+ li a5,536870912
+ and a5,a4,a5
+ .loc 1 819 8 discriminator 1
+ beq a5,zero,.L24
+ .loc 1 824 89
+ li a5,1073876992
+ lw a3,0(a5)
+ li a5,1073876992
+ li a4,16777216
+ or a4,a3,a4
+ sw a4,0(a5)
+ .loc 1 827 10
+ nop
+.L25:
+ .loc 1 827 19 discriminator 1
+ li a5,1073876992
+ lw a4,0(a5)
+ .loc 1 827 102 discriminator 1
+ li a5,33554432
+ and a5,a4,a5
+ .loc 1 827 10 discriminator 1
+ beq a5,zero,.L25
+ .loc 1 831 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ andi a4,a4,-4
+ sw a4,0(a5)
+ .loc 1 832 89
+ li a5,1073876992
+ addi a5,a5,4
+ lw a4,0(a5)
+ li a5,1073876992
+ addi a5,a5,4
+ ori a4,a4,2
+ sw a4,0(a5)
+ .loc 1 835 10
+ nop
+.L26:
+ .loc 1 835 19 discriminator 1
+ li a5,1073876992
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 835 102 discriminator 1
+ andi a5,a5,8
+ .loc 1 835 10 discriminator 1
+ beq a5,zero,.L26
+ .loc 1 837 1
+ nop
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size system_clock_108m_hxtal, .-system_clock_108m_hxtal
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .file 4 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\system_gd32vf103.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0x208
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF3204
+ .byte 0xc
+ .4byte .LASF3205
+ .4byte .LASF3206
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3176
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF3177
+ .byte 0x3
+ .4byte .LASF3180
+ .byte 0x2
+ .byte 0x2b
+ .byte 0x17
+ .4byte 0x43
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF3178
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF3179
+ .byte 0x3
+ .4byte .LASF3181
+ .byte 0x2
+ .byte 0x39
+ .byte 0x1c
+ .4byte 0x5d
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF3182
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF3183
+ .byte 0x3
+ .4byte .LASF3184
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x77
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF3185
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF3186
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF3187
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF3188
+ .byte 0x3
+ .byte 0x18
+ .byte 0x13
+ .4byte 0x37
+ .byte 0x5
+ .4byte 0x93
+ .byte 0x3
+ .4byte .LASF3189
+ .byte 0x3
+ .byte 0x24
+ .byte 0x14
+ .4byte 0x51
+ .byte 0x3
+ .4byte .LASF3190
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x6b
+ .byte 0x6
+ .4byte .LASF3207
+ .byte 0x4
+ .byte 0x35
+ .byte 0x11
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF3191
+ .byte 0x7
+ .4byte 0xbc
+ .byte 0x1
+ .byte 0x66
+ .byte 0xa
+ .byte 0x5
+ .byte 0x3
+ .4byte SystemCoreClock
+ .byte 0x8
+ .4byte .LASF3208
+ .byte 0x1
+ .2byte 0x2f6
+ .byte 0xd
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x115
+ .byte 0x9
+ .4byte .LASF3192
+ .byte 0x1
+ .2byte 0x2f8
+ .byte 0xe
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x9
+ .4byte .LASF3193
+ .byte 0x1
+ .2byte 0x2f9
+ .byte 0xe
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0xa
+ .4byte .LASF3209
+ .byte 0x1
+ .byte 0xbc
+ .byte 0x6
+ .4byte .LFB4
+ .4byte .LFE4-.LFB4
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x1d2
+ .byte 0xb
+ .4byte .LASF3194
+ .byte 0x1
+ .byte 0xbe
+ .byte 0xe
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0xb
+ .4byte .LASF3195
+ .byte 0x1
+ .byte 0xbf
+ .byte 0xe
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0xb
+ .4byte .LASF3196
+ .byte 0x1
+ .byte 0xbf
+ .byte 0x1b
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0xb
+ .4byte .LASF3197
+ .byte 0x1
+ .byte 0xbf
+ .byte 0x2b
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xb
+ .4byte .LASF3198
+ .byte 0x1
+ .byte 0xbf
+ .byte 0x37
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0xb
+ .4byte .LASF3199
+ .byte 0x1
+ .byte 0xc0
+ .byte 0xe
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x54
+ .byte 0xb
+ .4byte .LASF3200
+ .byte 0x1
+ .byte 0xc0
+ .byte 0x1b
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x50
+ .byte 0xb
+ .4byte .LASF3201
+ .byte 0x1
+ .byte 0xc0
+ .byte 0x28
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0xc
+ .string "idx"
+ .byte 0x1
+ .byte 0xc0
+ .byte 0x34
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x4c
+ .byte 0xb
+ .4byte .LASF3202
+ .byte 0x1
+ .byte 0xc0
+ .byte 0x3d
+ .4byte 0xb0
+ .byte 0x2
+ .byte 0x91
+ .byte 0x48
+ .byte 0xb
+ .4byte .LASF3203
+ .byte 0x1
+ .byte 0xc2
+ .byte 0x13
+ .4byte 0x1e2
+ .byte 0x3
+ .byte 0x91
+ .byte 0xb8,0x7f
+ .byte 0
+ .byte 0xd
+ .4byte 0x9f
+ .4byte 0x1e2
+ .byte 0xe
+ .4byte 0x29
+ .byte 0xf
+ .byte 0
+ .byte 0x5
+ .4byte 0x1d2
+ .byte 0xf
+ .4byte .LASF3210
+ .byte 0x1
+ .byte 0x97
+ .byte 0x6
+ .4byte .LFB3
+ .4byte .LFE3-.LFB3
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x10
+ .4byte .LASF3211
+ .byte 0x1
+ .byte 0x75
+ .byte 0xd
+ .4byte .LFB2
+ .4byte .LFE2-.LFB2
+ .byte 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .byte 0
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3c
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x34
+ .byte 0
+ .byte 0x47
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xd
+ .byte 0x1
+ .byte 0x1
+ .byte 0x49
+ .byte 0x13
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xe
+ .byte 0x21
+ .byte 0
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2f
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0xf
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x10
+ .byte 0x2e
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\gd32vf103.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0x5
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x4
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF340
+ .file 6 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x6
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF341
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF342
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x7
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF343
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x8
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0x9
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 10 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xa
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF526
+ .file 11 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xb
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .file 12 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xc
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xd
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .byte 0x3
+ .byte 0x36
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x20
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 33 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x21
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3074
+ .file 34 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x23
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x24
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3138
+ .file 37 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x25
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3169
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3170
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3171
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3172
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3173
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3174
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3175
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF339
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF344
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF348
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF349
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF360
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF361
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF371
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF372
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF373
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF374
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF378
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF379
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF381
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF403
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF378
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF379
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF380
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF404
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF420
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF421
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF489
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF490
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF525
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF528
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF709
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF710
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF778
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF779
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1116
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1117
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1124
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1125
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1225
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1226
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1324
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1325
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1331
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1332
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1362
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1483
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1484
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1597
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1598
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1878
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1879
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1990
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1991
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2017
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2018
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2041
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2042
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2074
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2075
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2405
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2445
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2588
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2794
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2937
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3001
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3003
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3057
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3073
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3086
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3104
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3120
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF3121
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3127
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3137
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3143
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3163
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2499:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1587:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF3011:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF365:
+ .string "___int16_t_defined 1"
+.LASF2260:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF757:
+ .string "BKP_DATA BITS(0,15)"
+.LASF884:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1936:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF3161:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF1717:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF2958:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF834:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1276:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2461:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2405:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF1301:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF2139:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF2430:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF3110:
+ .string "_T_WCHAR "
+.LASF2001:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF536:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1614:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF1974:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2888:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2496:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF826:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2473:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF509:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF2715:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF913:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF2560:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2202:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF2450:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2875:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF1471:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1095:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF3185:
+ .string "long unsigned int"
+.LASF726:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1768:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF2930:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF2410:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF1776:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF3208:
+ .string "system_clock_108m_hxtal"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF500:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1670:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1339:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF754:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2774:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF1407:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF2413:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF477:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF2004:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF1036:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF2551:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF3103:
+ .string "_SIZET_ "
+.LASF1338:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF2906:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1115:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF438:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1609:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF1720:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF2298:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF580:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2955:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3163:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF2556:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF1738:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF2063:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF340:
+ .string "SYSTEM_GD32VF103_H "
+.LASF1515:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF497:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF458:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1047:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF451:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF1772:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF412:
+ .string "_UINT32_T_DECLARED "
+.LASF1277:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF783:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1780:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF673:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1806:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2428:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF2976:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF434:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1114:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF1106:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF1552:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1016:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF1293:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF992:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF1899:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF2296:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1725:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF385:
+ .string "short +1"
+.LASF1872:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1601:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF2807:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF701:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF3003:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF2984:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF1013:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF677:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2235:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2576:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF1044:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF466:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1822:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF511:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF2989:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2789:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2783:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF2041:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2839:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF1763:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1554:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF510:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF999:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2557:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF2113:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1143:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF1427:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2243:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF2982:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF1512:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF420:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1704:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF1753:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF2300:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1731:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF3139:
+ .string "_RISCV_CONST_H "
+.LASF2533:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF2424:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1175:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF3083:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1041:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2607:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1907:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF2544:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2146:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2535:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2531:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF2437:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1849:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF1130:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF2350:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF2096:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF668:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2555:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF3179:
+ .string "short int"
+.LASF1856:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF550:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1229:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2131:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1890:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF2585:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2578:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF1341:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1440:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF1641:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF547:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF349:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2655:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF1922:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2757:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF2116:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF898:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF2279:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF2995:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF1833:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF758:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1257:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF761:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF1967:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF794:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF464:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF665:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF531:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1236:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF945:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2375:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF926:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF3049:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF957:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF2144:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF1055:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF2168:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF2768:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF450:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF641:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2211:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF812:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2475:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF3155:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2301:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF903:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF638:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1261:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2575:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2912:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF2805:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF3134:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1956:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF363:
+ .string "__have_long32 1"
+.LASF1336:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1240:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF3099:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF1099:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF800:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2181:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1855:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF2077:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF1963:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF947:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3190:
+ .string "uint32_t"
+.LASF869:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF3037:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1976:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF400:
+ .string "__LEAST8 \"hh\""
+.LASF1567:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1262:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1148:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2132:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF2323:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF2765:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF2710:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF813:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2592:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1750:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2772:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF1986:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2570:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1155:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF1405:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1393:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF1062:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF2832:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2897:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF2127:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF2904:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF859:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF639:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF2665:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF1169:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF2574:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF2449:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2773:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF1319:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF3210:
+ .string "SystemInit"
+.LASF1695:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF2009:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF3085:
+ .string "_GCC_PTRDIFF_T "
+.LASF1711:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF3055:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF1655:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF1460:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2515:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2548:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1082:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2286:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1533:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF386:
+ .string "__int20 +2"
+.LASF342:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF551:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF1913:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF2518:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1662:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2480:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF1829:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1490:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2400:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2637:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2540:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1811:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF799:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF929:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF879:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF2198:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2966:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF1296:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1841:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF805:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1019:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2402:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF2611:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1926:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF2334:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF2011:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF1415:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1182:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2813:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF1637:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2537:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1760:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2565:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF1645:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF941:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF430:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF3162:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2978:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2558:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF2729:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1975:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF487:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF2340:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2639:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2192:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF2028:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF1094:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF961:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1084:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1344:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1794:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1132:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF2746:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF361:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1521:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF2155:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF2841:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF426:
+ .string "__int_fast16_t_defined 1"
+.LASF1610:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF1079:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF2141:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1951:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF331:
+ .string "__O volatile"
+.LASF2820:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF566:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1954:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF868:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2634:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF969:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2476:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF538:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2668:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF2735:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF362:
+ .string "__have_longlong64 1"
+.LASF851:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF894:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF2987:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF1385:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2452:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF403:
+ .string "__LEAST64 \"ll\""
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF1947:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1640:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1058:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1183:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2447:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1146:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF2443:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2599:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF2964:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF2008:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF3070:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1502:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2940:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF1174:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1689:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2722:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1107:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF820:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF2853:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF387:
+ .string "__int20__ +2"
+.LASF1309:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1904:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1920:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF858:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF1210:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1520:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2305:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1569:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF617:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF2254:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF1721:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF1445:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF3199:
+ .string "predv0"
+.LASF3200:
+ .string "predv1"
+.LASF1594:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1497:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2534:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF2670:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF2342:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF604:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF1901:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF2070:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF2134:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF2172:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2415:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF2016:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF1766:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF3009:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF413:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF2160:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF539:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF3035:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2549:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2626:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF2562:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF356:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF548:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF904:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF829:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF1478:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1556:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF922:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1307:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF2290:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2354:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF871:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF2220:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2304:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF1510:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF853:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF1903:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2712:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF3023:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1421:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1207:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF532:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1681:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF564:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1799:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1066:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1865:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF2248:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2318:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1254:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2993:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1499:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF1124:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF994:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2219:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1239:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF3125:
+ .string "__need_NULL"
+.LASF2792:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1537:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2719:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1674:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2659:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF2082:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2166:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF541:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2854:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2216:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2889:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF988:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF2406:
+ .string "GD32VF103_RTC_H "
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2816:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2497:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF525:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF2204:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF2303:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF924:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2344:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2943:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF2106:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF2285:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF664:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2367:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2246:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF2891:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2152:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF1757:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF2293:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF605:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF833:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1164:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2771:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF2273:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1131:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2679:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1910:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF528:
+ .string "ADC0 ADC_BASE"
+.LASF1514:
+ .string "FMC_CTL_START BIT(6)"
+.LASF1075:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF2027:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2618:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF572:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF2357:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF1893:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF415:
+ .string "_UINT64_T_DECLARED "
+.LASF503:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF3020:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF2391:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF507:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1468:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF3137:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1629:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF1797:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF2177:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF965:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1803:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF429:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1667:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF2932:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF2025:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2823:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1977:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF1965:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2871:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1584:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1122:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1959:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF2100:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1367:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF2026:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF2991:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF1541:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF1282:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF1743:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF682:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF865:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF2969:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF1589:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF373:
+ .string "_SYS__INTSUP_H "
+.LASF912:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2569:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF3054:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2800:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2346:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2511:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF2998:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF798:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF2135:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF2468:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF809:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF2080:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF1588:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF2109:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF389:
+ .string "long +4"
+.LASF1265:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1071:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF3006:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2147:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2251:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1896:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF630:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF2222:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF2941:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF2039:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF589:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF445:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF2373:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF680:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2844:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2763:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF911:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2359:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2850:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF3201:
+ .string "pll1mf"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF888:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1295:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF2232:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF2057:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1745:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF621:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2649:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF2107:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF606:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1530:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1754:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF2510:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF1820:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF2849:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF3007:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF393:
+ .string "__INT16 \"h\""
+.LASF2754:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2325:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF956:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF3180:
+ .string "__uint8_t"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2464:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF600:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1128:
+ .string "DAC1 (1U)"
+.LASF679:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF3129:
+ .string "TIMER_MSIP 0xFFC"
+.LASF3123:
+ .string "NULL"
+.LASF781:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF1346:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF2223:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF330:
+ .string "__I volatile const"
+.LASF1891:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF1002:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2847:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF935:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2266:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF1713:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF648:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3105:
+ .string "__need_size_t"
+.LASF1807:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2253:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1092:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF2986:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF977:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1882:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF845:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1636:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1363:
+ .string "EXTI EXTI_BASE"
+.LASF2038:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF2002:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1779:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1337:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF2024:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF642:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF2123:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF2252:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF687:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF513:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2320:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF688:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF2339:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF772:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF1944:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2909:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF2361:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF995:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF967:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2440:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2064:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF1914:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF1102:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1105:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2703:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1573:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF765:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF1483:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF437:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1659:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF780:
+ .string "CAN0 CAN_BASE"
+.LASF399:
+ .string "__FAST64 \"ll\""
+.LASF1133:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1586:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1921:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF2880:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF987:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF1426:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF3008:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1897:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1039:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF3040:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF1995:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2767:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF2857:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF1798:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF1003:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2368:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1845:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF958:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF2019:
+ .string "DBG DBG_BASE"
+.LASF1605:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2787:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2760:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF976:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF3098:
+ .string "_SIZE_T_DEFINED "
+.LASF2779:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF436:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF1572:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF2277:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF2020:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF2006:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2720:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2926:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1591:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF394:
+ .string "__INT32 \"l\""
+.LASF760:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1292:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1561:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF2379:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF346:
+ .string "__NEWLIB__ 4"
+.LASF1652:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2723:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF3119:
+ .string "_GCC_WCHAR_T "
+.LASF1266:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF1408:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF2184:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF2081:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1749:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF350:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF1506:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2718:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2770:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF2961:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF364:
+ .string "___int8_t_defined 1"
+.LASF1459:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF2983:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF1932:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF459:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2214:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF931:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2645:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF953:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2755:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF2018:
+ .string "GD32VF103_DBG_H "
+.LASF439:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2455:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF3033:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF1911:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF1838:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1096:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF827:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF2000:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2953:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF946:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF844:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF2696:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF2224:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF3191:
+ .string "long double"
+.LASF3084:
+ .string "___int_ptrdiff_t_h "
+.LASF1498:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1581:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2501:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF2049:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF1929:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF2577:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF2622:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF1503:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1583:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF2387:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF339:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF480:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF3074:
+ .string "N200_FUNC_H "
+.LASF1693:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF787:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1626:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2881:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1709:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2620:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF3101:
+ .string "___int_size_t_h "
+.LASF2148:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2835:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2711:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF3202:
+ .string "clk_exp"
+.LASF2441:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1563:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1874:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF3207:
+ .string "SystemCoreClock"
+.LASF2766:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1814:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF808:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF1579:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF2048:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF873:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF2563:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2365:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF3041:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF2866:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2363:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF2092:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF524:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2907:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2212:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF660:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF2925:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF2695:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1950:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF601:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF3165:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2744:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF3058:
+ .string "GD32VF103_WWDGT_H "
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF3004:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF921:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2658:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF454:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF936:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF1596:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2583:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1755:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF1870:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF2521:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF2282:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF910:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1565:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF917:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF819:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF2114:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF2068:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF489:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2236:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF595:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1955:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1958:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1961:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1559:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF337:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF1718:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2289:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1542:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF1101:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1241:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1511:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1957:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF1317:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2944:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF2162:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2775:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2674:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF1707:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF2159:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF1730:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF3115:
+ .string "_WCHAR_T_DEFINED "
+.LASF2033:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF381:
+ .string "long"
+.LASF3172:
+ .string "__SYSTEM_CLOCK_108M_PLL_HXTAL (uint32_t)(108000000)"
+.LASF3135:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2821:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2208:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF1273:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2683:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF3050:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF355:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF1852:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1173:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2407:
+ .string "RTC RTC_BASE"
+.LASF951:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF1781:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF1472:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1120:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF2119:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1545:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1550:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF1011:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2217:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF998:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF1671:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1443:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1287:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF785:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1326:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2990:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1208:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2225:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1360:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF367:
+ .string "___int64_t_defined 1"
+.LASF2530:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1056:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF2245:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2058:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF1259:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF455:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF1366:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF1290:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1739:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF1476:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2523:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF676:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF952:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1558:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF2065:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2372:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2781:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF2250:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1332:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2803:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2910:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF3046:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2394:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2520:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1243:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2517:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1679:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF3181:
+ .string "__uint16_t"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF1867:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF2013:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2761:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2477:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2769:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF2115:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF1465:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1227:
+ .string "DMA0 (DMA_BASE)"
+.LASF2666:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF555:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF2259:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1916:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF447:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF1819:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF431:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1279:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF1063:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF407:
+ .string "__int8_t_defined 1"
+.LASF1253:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1764:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1298:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF972:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF1353:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF1111:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF1352:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2435:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF490:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2675:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF3195:
+ .string "pllsel"
+.LASF2269:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1732:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF351:
+ .string "__ATFILE_VISIBLE 0"
+.LASF2203:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2502:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF667:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1334:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1934:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF1701:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF811:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF891:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF850:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF1859:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF506:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1139:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1698:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF2867:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF978:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF573:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2882:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF1093:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1260:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF766:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1463:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF949:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF1127:
+ .string "DAC0 (0U)"
+.LASF968:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2414:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF2206:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1562:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1653:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF485:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF616:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF1665:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF2161:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF3052:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2908:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1576:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1403:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF2965:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF2037:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF788:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1172:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2672:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF569:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2950:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF2493:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2059:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2822:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF2280:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF2972:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1575:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF2689:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF2465:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF1343:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2409:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1112:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2421:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1597:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2317:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF2730:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1496:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF329:
+ .string "GD32VF103_H "
+.LASF562:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF496:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2859:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1097:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2030:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF2189:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2911:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2613:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2433:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1886:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF773:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF1080:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3056:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF842:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2078:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF778:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF959:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1789:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF2741:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF1046:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1289:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF359:
+ .string "__XSI_VISIBLE 0"
+.LASF3025:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF2538:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1832:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2436:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2215:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2418:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1557:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF1059:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF2110:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF565:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF2174:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2960:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF1010:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2353:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1081:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF3175:
+ .string "SEL_PLL 0x02U"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF592:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2606:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF2242:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF3044:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF832:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF370:
+ .string "___int_least32_t_defined 1"
+.LASF1388:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF1535:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF2175:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2525:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF556:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1524:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1200:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF3138:
+ .string "N200_ECLIC_H "
+.LASF2642:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2825:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1810:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF2489:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF2974:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF1627:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF582:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF449:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF3203:
+ .string "ahb_exp"
+.LASF2739:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF3160:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF2963:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF3048:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1842:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF1049:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF382:
+ .string "signed +0"
+.LASF1321:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF1828:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF684:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2814:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF1141:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF1162:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF1747:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF423:
+ .string "__int_least32_t_defined 1"
+.LASF1248:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1244:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF2145:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF1538:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF2682:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF410:
+ .string "__int16_t_defined 1"
+.LASF2915:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF651:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF1184:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF2315:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2624:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF3209:
+ .string "SystemCoreClockUpdate"
+.LASF1040:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF1481:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF521:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF1108:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF1043:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF2201:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF2182:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF3000:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF933:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF3031:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2690:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF796:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2458:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1988:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF1424:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF2261:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF2432:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF1927:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2855:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF557:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2795:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2522:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF2270:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF397:
+ .string "__FAST16 "
+.LASF3079:
+ .string "_T_PTRDIFF_ "
+.LASF1076:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF804:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF2980:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1370:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF2066:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF1759:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF2597:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1202:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF499:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF1109:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF2069:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2390:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3131:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2439:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF948:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF533:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF756:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF2596:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF824:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1908:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF1532:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1964:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF1501:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF862:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF2545:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF1634:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2337:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF3096:
+ .string "_BSD_SIZE_T_ "
+.LASF2467:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1028:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF471:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1310:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF2074:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF2444:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF2322:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1945:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF2623:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF428:
+ .string "__int_fast64_t_defined 1"
+.LASF1937:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF937:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF1690:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF3078:
+ .string "_PTRDIFF_T "
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF3118:
+ .string "__INT_WCHAR_T_H "
+.LASF2894:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2745:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF576:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF1508:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1286:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2438:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2865:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2335:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF2034:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1335:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF421:
+ .string "__int_least8_t_defined 1"
+.LASF950:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF1722:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF2667:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF608:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1004:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF2199:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF417:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2992:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2495:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF2532:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF954:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1401:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF405:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF1136:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2644:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF1571:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF2777:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2617:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF1631:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF643:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1177:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1072:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF2156:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF1238:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF1985:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF689:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF944:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2590:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1365:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1090:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF2140:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1694:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1877:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF2271:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1158:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF763:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF1619:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2924:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2975:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1993:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2798:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF418:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1485:
+ .string "FMC FMC_BASE"
+.LASF2786:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1683:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF749:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1940:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF1923:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF902:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1204:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2650:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF2307:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2142:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2654:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1675:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF997:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1953:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1715:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF3017:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF867:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2706:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF663:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1351:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2329:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF1978:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF2054:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2403:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF2705:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1767:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1774:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF2806:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF1802:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF3086:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF435:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF964:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF1469:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2778:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF1206:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2808:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2956:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1560:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF857:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2831:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF3182:
+ .string "short unsigned int"
+.LASF741:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF1322:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF900:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1643:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1145:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2791:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF3128:
+ .string "N200_TIMER_H "
+.LASF1144:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF575:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF3130:
+ .string "TIMER_MSIP_size 0x4"
+.LASF2050:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF3073:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF2918:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF2454:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1862:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF2748:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF1320:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1546:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF896:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1863:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF411:
+ .string "_INT32_T_DECLARED "
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1668:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2188:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF1736:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF717:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1274:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2491:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF2610:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1900:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF398:
+ .string "__FAST32 "
+.LASF1250:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF729:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF1705:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF3206:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF467:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2629:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF3010:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF774:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF823:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF2999:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2426:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1751:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1068:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF656:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF1885:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF577:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2858:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1051:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF2568:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2846:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2621:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF375:
+ .string "signed"
+.LASF974:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF2736:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2507:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF552:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF353:
+ .string "__GNU_VISIBLE 0"
+.LASF2890:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2378:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1638:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1441:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1543:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2633:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1251:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF2178:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1272:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2185:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1180:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1618:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2349:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF2205:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF2788:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF2845:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF1364:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF675:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF401:
+ .string "__LEAST16 \"h\""
+.LASF1540:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF2878:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF2676:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2153:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF1247:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF3022:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF1990:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF1624:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF3158:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF2244:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1214:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1318:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF3029:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF3053:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2962:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2619:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1787:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF475:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2179:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2169:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF923:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF2031:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF849:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF1551:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF1519:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1824:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF549:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1677:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2598:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2292:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF1894:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2752:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2971:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2747:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF3197:
+ .string "pllmf"
+.LASF1156:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF2892:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF887:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2470:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF1123:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF983:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF818:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF1348:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF3187:
+ .string "long long unsigned int"
+.LASF2044:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF2264:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2615:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1313:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF856:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF1119:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF473:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF2075:
+ .string "GD32VF103_RCU_H "
+.LASF784:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF2275:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1518:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1280:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF899:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF1539:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1970:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2934:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF940:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF724:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3178:
+ .string "unsigned char"
+.LASF1406:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF3028:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2662:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2514:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1088:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF2749:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF2837:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF786:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF1972:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF2095:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1699:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1647:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2714:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1660:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1952:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2759:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2921:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF2579:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2295:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF1931:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF1696:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF2864:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF1712:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF2125:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1461:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF1735:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF1816:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF463:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2709:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF1998:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF2586:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2693:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1981:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1026:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2543:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2469:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF1846:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF2903:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF527:
+ .string "GD32VF103_ADC_H "
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF841:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF347:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1284:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2332:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF578:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF402:
+ .string "__LEAST32 \"l\""
+.LASF581:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1507:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF1368:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1509:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2762:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF2591:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1038:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2513:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF596:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2732:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1642:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF1968:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF893:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF1349:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1314:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF2226:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF3126:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF2694:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF3133:
+ .string "TIMER_MTIME 0x0"
+.LASF1607:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF486:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF971:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2873:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1294:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF831:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF655:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF520:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1118:
+ .string "CRC CRC_BASE"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF848:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF885:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF2973:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF1639:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF559:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF875:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF914:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF3094:
+ .string "__SIZE_T "
+.LASF2486:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF1873:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF2316:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF348:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF3154:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1741:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1839:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF344:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1345:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1620:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF1100:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1835:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF493:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2671:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF2099:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2595:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2957:
+ .string "USART_STAT_TC BIT(6)"
+.LASF1487:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2740:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF3051:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF2572:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF1836:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1135:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF2299:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF1149:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2651:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2478:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2933:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF908:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF498:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1547:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF1615:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF2256:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF863:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF2979:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF2073:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF2105:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF815:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2636:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF619:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF2371:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF1917:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF2504:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1831:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF2884:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1962:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF1813:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2193:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF966:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF731:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF934:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF2098:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF1342:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF1946:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1269:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2790:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF518:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2905:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF1528:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2863:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF737:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2646:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF2233:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF2326:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF3150:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2794:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF341:
+ .string "_STDINT_H "
+.LASF1430:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF419:
+ .string "_INTPTR_T_DECLARED "
+.LASF1125:
+ .string "GD32VF103_DAC_H "
+.LASF2843:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1884:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1024:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF2111:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF354:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF2382:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1032:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF2648:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF2801:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF2374:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF3026:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2780:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1479:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1213:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF2187:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2968:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF2416:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF1167:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF962:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF3157:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF1982:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2519:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2377:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF725:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF1878:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF730:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1008:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2815:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF692:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1992:
+ .string "FWDGT FWDGT_BASE"
+.LASF1422:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3184:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1682:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1933:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF3059:
+ .string "WWDGT WWDGT_BASE"
+.LASF3001:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2321:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF474:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF930:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1270:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2419:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2902:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF2338:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF1848:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF876:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF803:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2167:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF2923:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF793:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF482:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1646:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF1871:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF2087:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF928:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1604:
+ .string "AFIO AFIO_BASE"
+.LASF1355:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF843:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1719:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2630:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF3116:
+ .string "_WCHAR_T_H "
+.LASF2032:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2919:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF2887:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF544:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2462:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF963:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF584:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF2218:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF3064:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF3018:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF3093:
+ .string "_T_SIZE "
+.LASF481:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF779:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1969:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1771:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2528:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF1906:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF508:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF646:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF1305:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF1783:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF1152:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF1303:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF764:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF3132:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF2922:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2627:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF495:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF2954:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF825:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF2017:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2408:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF461:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1590:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF2383:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF1996:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF671:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF1672:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2716:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF810:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1129:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1053:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF2742:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2834:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2937:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF2680:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF1494:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF2046:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF864:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF3106:
+ .string "__wchar_t__ "
+.LASF2314:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF2398:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2827:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF1516:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF890:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF979:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF1676:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF909:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF3080:
+ .string "_T_PTRDIFF "
+.LASF1860:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF644:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF502:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF534:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF2060:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF1740:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF3100:
+ .string "_SIZE_T_DECLARED "
+.LASF2474:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF607:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF762:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2348:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF3088:
+ .string "__size_t__ "
+.LASF2588:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF603:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2836:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF2352:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF775:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF2948:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF1281:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF1237:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF1971:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF505:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF942:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1383:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1818:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2840:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF465:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1466:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF3142:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1060:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF1525:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF1630:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF2023:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1905:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF2200:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF666:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF915:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF789:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1991:
+ .string "GD32VF103_FWDGT_H "
+.LASF1147:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF1386:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF425:
+ .string "__int_fast8_t_defined 1"
+.LASF620:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2901:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF2083:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2809:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1283:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1611:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2587:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1025:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF3077:
+ .string "_ANSI_STDDEF_H "
+.LASF1746:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF440:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF3108:
+ .string "_WCHAR_T "
+.LASF2423:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF838:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF3147:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF1858:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF2101:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1733:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2554:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1582:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF491:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF1331:
+ .string "__SEV eclic_send_event"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1134:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF837:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2970:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1020:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF1879:
+ .string "GD32VF103_I2C_H "
+.LASF2420:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2842:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF1350:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2384:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1726:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF1805:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF2396:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2312:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF2138:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF484:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF1650:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2529:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF710:
+ .string "GD32VF103_BKP_H "
+.LASF2258:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2479:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF1686:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF2108:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF3097:
+ .string "_SIZE_T_DEFINED_ "
+.LASF736:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1729:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF2163:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2609:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2341:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF1249:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2657:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF352:
+ .string "__BSD_VISIBLE 0"
+.LASF740:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2977:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF3019:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2281:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF652:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF2988:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF3057:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF1179:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1703:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF3170:
+ .string "__HXTAL (HXTAL_VALUE)"
+.LASF2838:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF2389:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2604:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF2228:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF395:
+ .string "__INT64 \"ll\""
+.LASF1979:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF3148:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF1126:
+ .string "DAC DAC_BASE"
+.LASF1473:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF975:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF406:
+ .string "_UINT8_T_DECLARED "
+.LASF993:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2492:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1077:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1263:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2571:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF2035:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2508:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1549:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2207:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF728:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2724:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF718:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1014:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF583:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF1935:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2811:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF802:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF446:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1005:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1997:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF739:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2879:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1989:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF990:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1585:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF558:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF560:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1009:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF727:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF554:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2445:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF745:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF817:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2149:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF3156:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF334:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF2429:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF598:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1915:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF468:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF390:
+ .string "_INTPTR_EQ_INT "
+.LASF2738:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2343:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF2137:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF897:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF1598:
+ .string "GD32VF103_GPIO_H "
+.LASF1395:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1827:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF3114:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2331:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF1809:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF2005:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF691:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF2195:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF3127:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF2785:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF2997:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF2812:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF379:
+ .string "__int20"
+.LASF2898:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2062:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF733:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF738:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1762:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2395:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF797:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1324:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2190:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF3016:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF1085:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1657:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF2067:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1252:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2463:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF590:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2717:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF2021:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF1138:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF1843:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2701:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF3014:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF522:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF2488:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF3013:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF2446:
+ .string "GD32VF103_SPI_H "
+.LASF332:
+ .string "__IO volatile"
+.LASF2124:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF1117:
+ .string "GD32VF103_CRC_H "
+.LASF751:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1580:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1278:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF3015:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2580:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1297:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1925:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1574:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF1404:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF3121:
+ .string "_BSD_WCHAR_T_"
+.LASF3113:
+ .string "_BSD_WCHAR_T_ "
+.LASF2094:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF1808:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF2186:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1209:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF3089:
+ .string "__SIZE_T__ "
+.LASF1983:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF1999:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1866:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2209:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF2158:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF2345:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2183:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1800:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2484:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1333:
+ .string "EXMC (EXMC_BASE)"
+.LASF1050:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF384:
+ .string "char +0"
+.LASF1710:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF1154:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF1007:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF444:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF2656:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF750:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF512:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF2072:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2360:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2472:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF3063:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF3211:
+ .string "system_clock_config"
+.LASF2230:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1493:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF1784:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF2860:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF1661:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF567:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF2861:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF369:
+ .string "___int_least16_t_defined 1"
+.LASF2868:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF702:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF1258:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2967:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2358:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF3152:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF2874:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1513:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1073:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF807:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF2055:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF925:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF3024:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF3151:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF3030:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF3120:
+ .string "_WCHAR_T_DECLARED "
+.LASF2247:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF2804:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF561:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF366:
+ .string "___int32_t_defined 1"
+.LASF2090:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1181:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF1621:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2856:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF2164:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2283:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF1488:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF2136:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1769:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2893:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF1613:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF1489:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF492:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF906:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF2012:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1691:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2509:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF2632:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2920:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF422:
+ .string "__int_least16_t_defined 1"
+.LASF1168:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2347:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF3111:
+ .string "__WCHAR_T "
+.LASF408:
+ .string "_INT16_T_DECLARED "
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1045:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF918:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF1723:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2697:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF2276:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF3183:
+ .string "long int"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF2237:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1889:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2582:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF2297:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF1362:
+ .string "GD32VF103_EXTI_H "
+.LASF377:
+ .string "char"
+.LASF1756:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF1340:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF2196:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF880:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2708:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF391:
+ .string "_INT32_EQ_LONG "
+.LASF1069:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF1928:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF2319:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2869:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF535:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF1384:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF907:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF2045:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF597:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2376:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF2088:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2877:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF685:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF2883:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF1795:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF3198:
+ .string "ck_src"
+.LASF686:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF2241:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2994:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2796:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2483:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF3012:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2631:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF2685:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2817:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF662:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF3067:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF1853:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF1527:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1103:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF516:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1895:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF2362:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF2996:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF1924:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF2393:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1684:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF2764:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1042:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1617:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1444:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2287:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2386:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF2117:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2589:
+ .string "GD32VF103_TIMER_H "
+.LASF1017:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2036:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF3076:
+ .string "_STDDEF_H_ "
+.LASF721:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF3164:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF2686:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF840:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF1716:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF2085:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF989:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF2079:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF2584:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2197:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF920:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF478:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF855:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF1015:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF861:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1564:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF3068:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1782:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2221:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF1477:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1022:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1801:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF2733:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2128:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF563:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF2336:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF1234:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF814:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1752:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2605:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2936:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF2330:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF2567:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF806:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1470:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF830:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF1680:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF1939:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF530:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF720:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF3032:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF1669:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1593:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1166:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF955:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF2691:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF2022:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF649:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1140:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2427:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1171:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF719:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF2257:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF2061:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1544:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF2641:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF452:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1918:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF1987:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1578:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1737:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF735:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF3146:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF883:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF2262:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2731:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF3140:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1773:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2524:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF895:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF2947:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF1857:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF752:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2830:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF1553:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF2143:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF714:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1608:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1048:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF383:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1255:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF1702:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2485:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2126:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF2399:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF3005:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF878:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF674:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF2173:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF593:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF2833:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2600:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF416:
+ .string "__int64_t_defined 1"
+.LASF723:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF2103:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF2885:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF378:
+ .string "short"
+.LASF1356:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1464:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1523:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF771:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2928:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2364:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF991:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF3071:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3204:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1186:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1517:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF748:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF870:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF734:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1012:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF1823:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2704:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF1666:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF2466:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2546:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF591:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF938:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1775:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF2120:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF358:
+ .string "__SVID_VISIBLE 0"
+.LASF2104:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2673:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1663:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF747:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF1246:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1098:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF2240:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF1887:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF2699:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF2263:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF822:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2227:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF722:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF939:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF1821:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1226:
+ .string "GD32VF103_DMA_H "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF3062:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1157:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF2014:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2602:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF1087:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF2010:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2700:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF1949:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF753:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2370:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF2076:
+ .string "RCU RCU_BASE"
+.LASF2750:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2635:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2824:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF2043:
+ .string "PMU PMU_BASE"
+.LASF746:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2616:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2547:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF618:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF368:
+ .string "___int_least8_t_defined 1"
+.LASF2278:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF2180:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF801:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF669:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1902:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2561:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1744:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF396:
+ .string "__FAST8 "
+.LASF2053:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF647:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1796:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF571:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF1708:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF3193:
+ .string "stab_flag"
+.LASF629:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF2313:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF529:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF759:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2487:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF3194:
+ .string "scss"
+.LASF1163:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF2404:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2401:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2913:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF2758:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF1113:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1064:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2381:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1232:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2952:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF2914:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1592:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF2328:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF2029:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1369:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF1758:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1960:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF1777:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF519:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF2434:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF545:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF2457:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1770:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF1792:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF2268:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF905:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1785:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF517:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2542:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF1505:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2417:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF427:
+ .string "__int_fast32_t_defined 1"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF594:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF1622:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF2118:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF3177:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2721:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF610:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1847:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF3171:
+ .string "__SYS_OSC_CLK (__IRC8M)"
+.LASF2154:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF2089:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1000:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2661:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF392:
+ .string "__INT8 \"hh\""
+.LASF2288:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1761:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF1486:
+ .string "OB OB_BASE"
+.LASF3188:
+ .string "uint8_t"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3034:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF852:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF1142:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF2539:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF433:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF1482:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF540:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF1065:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF1714:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1612:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2573:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF1748:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2799:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1687:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF2051:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF2927:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF1654:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF1425:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2482:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF388:
+ .string "int +2"
+.LASF2388:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF2284:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2506:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF2603:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2411:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1083:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1061:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF874:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF460:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF996:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2669:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1536:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2828:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1778:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1161:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1495:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF3167:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF514:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF1840:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF2397:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2291:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF453:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1812:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF755:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF2007:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF3047:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF442:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2512:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF2797:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF1633:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2949:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF645:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF836:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2896:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1268:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1245:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF2931:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF1256:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2959:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF585:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF854:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF744:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1830:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF1054:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF376:
+ .string "unsigned"
+.LASF476:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1919:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF523:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF2564:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF2751:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2608:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF3039:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2351:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF1526:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2294:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1484:
+ .string "GD32VF103_FMC_H "
+.LASF2688:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF2938:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF3189:
+ .string "uint16_t"
+.LASF2900:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF2886:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF3042:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF716:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2425:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF1170:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF479:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF732:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF2047:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1825:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1930:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF335:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1021:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF1402:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF1431:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF1534:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF542:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF1793:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF743:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2490:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF2171:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF1888:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF338:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF2194:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF670:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF2494:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF2302:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF3112:
+ .string "_WCHAR_T_ "
+.LASF2272:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1688:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF3082:
+ .string "_PTRDIFF_T_ "
+.LASF2084:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF483:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1635:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF650:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF2647:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF882:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF847:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1121:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF1883:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1522:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF715:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2664:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2459:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF2151:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2122:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2625:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF570:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF2862:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2713:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2793:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF742:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF816:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF2086:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF970:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1228:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF3081:
+ .string "__PTRDIFF_T "
+.LASF2453:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2643:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2951:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1037:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2052:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF2239:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF432:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2628:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF2442:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF1199:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF653:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1271:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF866:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF586:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2324:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF462:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1980:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF2249:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1359:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1001:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF3061:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF3090:
+ .string "_SIZE_T "
+.LASF1285:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF2306:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF2112:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2677:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF574:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2498:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1151:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF2935:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF672:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2380:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF345:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF1948:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF792:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF881:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1786:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1938:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1727:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF3043:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF1474:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF409:
+ .string "_UINT16_T_DECLARED "
+.LASF2133:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF886:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF2753:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1673:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF2681:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF901:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2150:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF456:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF1606:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF943:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF1235:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1817:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF2234:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2942:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF3036:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF343:
+ .string "_SYS_FEATURES_H "
+.LASF839:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1706:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF1078:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF599:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF654:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2737:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF2851:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF448:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2899:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF3117:
+ .string "___int_wchar_t_h "
+.LASF1875:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF1568:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1851:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF3136:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF711:
+ .string "BKP BKP_BASE"
+.LASF1231:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1176:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1057:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2702:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2527:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF3159:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2422:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2451:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF1201:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF602:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2784:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1442:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF2071:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF380:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1467:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1531:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF488:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF3143:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF1023:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF3069:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF2042:
+ .string "GD32VF103_PMU_H "
+.LASF3196:
+ .string "predv0sel"
+.LASF846:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF2003:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF3021:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF501:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF553:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1876:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF1994:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF1804:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF1052:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2612:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF1788:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF1086:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF3124:
+ .string "NULL ((void *)0)"
+.LASF443:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1941:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1475:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1110:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF2091:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1595:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2471:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF2640:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1198:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF613:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF927:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1734:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF791:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF1649:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1104:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1304:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF1264:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF3174:
+ .string "SEL_HXTAL 0x01U"
+.LASF2652:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1150:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF504:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF3102:
+ .string "_GCC_SIZE_T "
+.LASF1678:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF2945:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF1570:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF777:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF374:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1233:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF3122:
+ .string "__need_wchar_t"
+.LASF1765:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF973:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1850:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF932:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF1869:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1504:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2660:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2985:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1492:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2734:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF3075:
+ .string "_STDDEF_H "
+.LASF1302:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1966:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF3091:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2559:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF1656:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF1868:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1491:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1446:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1018:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF360:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2448:
+ .string "SPI1 SPI_BASE"
+.LASF2412:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF3095:
+ .string "_SIZE_T_ "
+.LASF2355:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2552:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF2810:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1203:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2356:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2369:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF782:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF568:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1644:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2684:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2829:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2872:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF1700:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF889:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF640:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF2238:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1912:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2516:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1697:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2210:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2311:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF821:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF543:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF3107:
+ .string "__WCHAR_T__ "
+.LASF336:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF1462:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1074:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF713:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF3092:
+ .string "_T_SIZE_ "
+.LASF2526:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF2876:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF1599:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF2265:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2165:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF472:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2743:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1602:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF2939:
+ .string "USART1 USART_BASE"
+.LASF1664:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF2550:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF441:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1854:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1211:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF537:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF2653:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF712:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1826:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1089:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF2130:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2385:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1529:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2663:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1067:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF769:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF1205:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF3144:
+ .string "ECLICINTCTLBITS 4"
+.LASF1396:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1898:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF3087:
+ .string "__need_ptrdiff_t"
+.LASF1658:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2536:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2916:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF3169:
+ .string "__IRC8M (IRC8M_VALUE)"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1909:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF2481:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF1973:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF2802:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF2500:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1880:
+ .string "I2C0 I2C_BASE"
+.LASF404:
+ .string "_SYS__STDINT_H "
+.LASF1185:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF3186:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2707:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF2310:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF2601:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF2456:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF2895:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1844:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF3168:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF1070:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF2229:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF333:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF1616:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF515:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF2593:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2392:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2698:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF872:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF1791:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF1389:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF877:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF681:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF3045:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1742:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2503:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1137:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1628:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF457:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF3192:
+ .string "timeout"
+.LASF2692:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF588:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF1288:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2431:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2333:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF3153:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1555:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1623:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF960:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF1291:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1387:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF2566:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF2191:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF3065:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF2309:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF2848:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1728:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2176:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1651:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF3027:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2170:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF3166:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1943:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF3066:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF892:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF3038:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1242:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2460:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2870:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1861:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1006:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF1500:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1577:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF2505:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF587:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF2687:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF2776:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2581:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF3060:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF2097:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF2274:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF678:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF1834:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF1027:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2678:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1300:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2553:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF1648:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF3109:
+ .string "_T_WCHAR_ "
+.LASF2040:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2308:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF2213:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF2826:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF1325:
+ .string "GD32VF103_ECLIC_H "
+.LASF1984:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF494:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF469:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1480:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF2056:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF790:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF2102:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2121:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2327:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF1160:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF3104:
+ .string "__size_t "
+.LASF2541:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF357:
+ .string "__POSIX_VISIBLE 199009"
+.LASF2129:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2231:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1864:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1423:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF3149:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2725:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1625:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF2981:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF835:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1692:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF2594:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF372:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1881:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF795:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF546:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2157:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1600:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2917:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF2255:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF919:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF1837:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF3002:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1275:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2782:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF768:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF526:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2638:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF1724:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2726:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF371:
+ .string "___int_least64_t_defined 1"
+.LASF2946:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF860:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF3173:
+ .string "SEL_IRC8M 0x00U"
+.LASF1347:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF1790:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF3072:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF1603:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF3145:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF2728:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2819:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1091:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1116:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2727:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1153:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF2015:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1815:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1566:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF470:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF916:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF661:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF579:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF1267:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF2093:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF2366:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF2818:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF1230:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF3141:
+ .string "_AT(T,X) ((T)(X))"
+.LASF3176:
+ .string "unsigned int"
+.LASF3205:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\system_gd32vf103.c"
+.LASF1942:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF2267:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF424:
+ .string "__int_least64_t_defined 1"
+.LASF1892:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF770:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2614:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF414:
+ .string "_INT64_T_DECLARED "
+.LASF2756:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF1685:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2852:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF2929:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1159:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1632:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1548:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1299:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Include/audio_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Include/audio_core.h
new file mode 100644
index 0000000000..b3c20fa76c
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Include/audio_core.h
@@ -0,0 +1,300 @@
+/*!
+ \file audio_core.h
+ \brief the header file of USB audio device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __AUDIO_CORE_H
+#define __AUDIO_CORE_H
+
+#include "usbd_enum.h"
+
+#define FORMAT_24BIT(x) (uint8_t)(x);(uint8_t)(x >> 8U);(uint8_t)(x >> 16U)
+
+/* number of sub-packets in the audio transfer buffer. you can modify this value but always make sure
+ that it is an even number and higher than 3 */
+#define OUT_PACKET_NUM 4U
+
+/* total size of the audio transfer buffer */
+#define OUT_BUF_MARGIN 4U
+#define TOTAL_OUT_BUF_SIZE ((uint32_t)((SPEAKER_OUT_PACKET + OUT_BUF_MARGIN) * OUT_PACKET_NUM))
+
+#define AUDIO_CONFIG_DESC_SET_LEN (sizeof(usb_desc_config_set))
+#define AUDIO_INTERFACE_DESC_SIZE 9U
+
+#define USB_AUDIO_DESC_SIZ 0x09U
+#define AUDIO_STANDARD_EP_DESC_SIZE 0x09U
+#define AUDIO_STREAMING_EP_DESC_SIZE 0x07U
+
+/* audio interface class code */
+#define USB_CLASS_AUDIO 0x01U
+
+/* audio interface subclass codes */
+#define AUDIO_SUBCLASS_CONTROL 0x01U
+#define AUDIO_SUBCLASS_AUDIOSTREAMING 0x02U
+#define AUDIO_SUBCLASS_MIDISTREAMING 0x03U
+
+/* audio interface protocol codes */
+#define AUDIO_PROTOCOL_UNDEFINED 0x00U
+#define AUDIO_STREAMING_GENERAL 0x01U
+#define AUDIO_STREAMING_FORMAT_TYPE 0x02U
+
+/* audio class-specific descriptor types */
+#define AUDIO_DESCTYPE_UNDEFINED 0x20U
+#define AUDIO_DESCTYPE_DEVICE 0x21U
+#define AUDIO_DESCTYPE_CONFIGURATION 0x22U
+#define AUDIO_DESCTYPE_STRING 0x23U
+#define AUDIO_DESCTYPE_INTERFACE 0x24U
+#define AUDIO_DESCTYPE_ENDPOINT 0x25U
+
+/* audio control interface descriptor subtypes */
+#define AUDIO_CONTROL_HEADER 0x01U
+#define AUDIO_CONTROL_INPUT_TERMINAL 0x02U
+#define AUDIO_CONTROL_OUTPUT_TERMINAL 0x03U
+#define AUDIO_CONTROL_MIXER_UNIT 0x04U
+#define AUDIO_CONTROL_SELECTOR_UNIT 0x05U
+#define AUDIO_CONTROL_FEATURE_UNIT 0x06U
+#define AUDIO_CONTROL_PROCESSING_UNIT 0x07U
+#define AUDIO_CONTROL_EXTENSION_UNIT 0x08U
+
+#define AUDIO_INPUT_TERMINAL_DESC_SIZE 0x0CU
+#define AUDIO_OUTPUT_TERMINAL_DESC_SIZE 0x09U
+#define AUDIO_STREAMING_INTERFACE_DESC_SIZE 0x07U
+
+#define AUDIO_CONTROL_MUTE 0x01U
+#define AUDIO_CONTROL_VOLUME 0x02U
+
+#define AUDIO_FORMAT_TYPE_I 0x01U
+#define AUDIO_FORMAT_TYPE_III 0x03U
+
+#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01U
+#define AUDIO_ENDPOINT_GENERAL 0x01U
+
+#define AUDIO_REQ_UNDEFINED 0x00U
+#define AUDIO_REQ_SET_CUR 0x01U
+#define AUDIO_REQ_GET_CUR 0x81U
+#define AUDIO_REQ_SET_MIN 0x02U
+#define AUDIO_REQ_GET_MIN 0x82U
+#define AUDIO_REQ_SET_MAX 0x03U
+#define AUDIO_REQ_GET_MAX 0x83U
+#define AUDIO_REQ_SET_RES 0x04U
+#define AUDIO_REQ_GET_RES 0x84U
+#define AUDIO_REQ_SET_MEM 0x05U
+#define AUDIO_REQ_GET_MEM 0x85U
+#define AUDIO_REQ_GET_STAT 0xFFU
+
+#define AUDIO_OUT_STREAMING_CTRL 0x05U
+#define AUDIO_IN_STREAMING_CTRL 0x02U
+
+/* audio stream interface number */
+enum
+{
+#ifdef USE_USB_AUDIO_MICPHONE
+ MIC_INTERFACE_COUNT,
+#endif
+#ifdef USE_USB_AUDIO_SPEAKER
+ SPEAK_INTERFACE_COUNT,
+#endif
+ CONFIG_DESC_AS_ITF_COUNT,
+};
+
+#define AC_ITF_TOTAL_LEN (sizeof(usb_desc_AC_itf) + CONFIG_DESC_AS_ITF_COUNT*(sizeof(usb_desc_input_terminal) + \
+ sizeof(usb_desc_mono_feature_unit) + sizeof(usb_desc_output_terminal)))
+
+#pragma pack(1)
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< header descriptor subtype */
+ uint16_t bcdADC; /*!< audio device class specification release number in binary-coded decimal */
+ uint16_t wTotalLength; /*!< total number of bytes */
+ uint8_t bInCollection; /*!< the number of the streaming interfaces */
+#ifdef USE_USB_AUDIO_MICPHONE
+ uint8_t baInterfaceNr0; /*!< interface number of the streaming interfaces */
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ uint8_t baInterfaceNr1; /*!< interface number of the streaming interfaces */
+#endif
+} usb_desc_AC_itf;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< AS_GENERAL descriptor subtype */
+ uint8_t bTerminalLink; /*!< the terminal ID */
+ uint8_t bDelay; /*!< delay introduced by the data path */
+ uint16_t wFormatTag; /*!< the audio data format */
+} usb_desc_AS_itf;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< INPUT_TERMINAL descriptor subtype. */
+ uint8_t bTerminalID; /*!< constant uniquely identifying the terminal within the audio function */
+ uint16_t wTerminalType; /*!< constant characterizing the type of terminal */
+ uint8_t bAssocTerminal; /*!< ID of the output terminal */
+ uint8_t bNrChannels; /*!< number of logical output channels */
+ uint16_t wChannelConfig; /*!< describes the spatial location of the logical channels */
+ uint8_t iChannelNames; /*!< index of a string descriptor */
+ uint8_t iTerminal; /*!< index of a string descriptor */
+} usb_desc_input_terminal;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< OUTPUT_TERMINAL descriptor subtype */
+ uint8_t bTerminalID; /*!< constant uniquely identifying the terminal within the audio function */
+ uint16_t wTerminalType; /*!< constant characterizing the type of terminal */
+ uint8_t bAssocTerminal; /*!< constant, identifying the input terminal to which this output terminal is associated */
+ uint8_t bSourceID; /*!< ID of the unit or terminal */
+ uint8_t iTerminal; /*!< index of a string descriptor */
+} usb_desc_output_terminal;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< FEATURE_UNIT descriptor subtype */
+ uint8_t bUnitID; /*!< constant uniquely identifying the unit within the audio function */
+ uint8_t bSourceID; /*!< ID of the unit or terminal */
+ uint8_t bControlSize; /*!< size in bytes of an element of the bmaControls() array */
+ uint8_t bmaControls0; /*!< a bit set to 1 indicates that the mentioned control is supported for master channel 0 */
+ uint8_t bmaControls1; /*!< a bit set to 1 indicates that the mentioned control is supported for logical channel 1 */
+ uint8_t iFeature; /*!< index of a string descriptor */
+} usb_desc_mono_feature_unit;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< FEATURE_UNIT descriptor subtype */
+ uint8_t bUnitID; /*!< constant uniquely identifying the unit within the audio function */
+ uint8_t bSourceID; /*!< ID of the unit or terminal */
+ uint8_t bControlSize; /*!< size in bytes of an element of the bmaControls() array */
+ uint16_t bmaControls0; /*!< a bit set to 1 indicates that the mentioned control is supported for master channel 0 */
+ uint16_t bmaControls1; /*!< a bit set to 1 indicates that the mentioned control is supported for logical channel 1 */
+ uint16_t bmaControls2; /*!< a bit set to 1 indicates that the mentioned control is supported for logical channel 2 */
+ uint8_t iFeature; /*!< index of a string descriptor */
+} usb_desc_stereo_feature_unit;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< FORMAT_TYPE descriptor subtype */
+ uint8_t bFormatType; /*!< constant identifying the format type */
+ uint8_t bNrChannels; /*!< indicates the number of physical channels in the audio data stream */
+ uint8_t bSubFrameSize; /*!< the number of bytes occupied by one audio subframe */
+ uint8_t bBitResolution; /*!< the number of effectively used bits from the available bits in an audio subframe */
+ uint8_t bSamFreqType; /*!< indicates how the sampling frequency can be programmed */
+ uint8_t bSamFreq[3]; /*!< sampling frequency ns in Hz for this isochronous data endpoint */
+} usb_desc_format_type;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bEndpointAddress; /*!< the address of the endpoint */
+ uint8_t bmAttributes; /*!< transfer type and synchronization type */
+ uint16_t wMaxPacketSize; /*!< maximum packet size this endpoint is capable of sending or receiving */
+ uint8_t bInterval; /*!< left to the designer's discretion */
+ uint8_t bRefresh; /*!< reset to 0 */
+ uint8_t bSynchAddress; /*!< reset to 0 */
+} usb_desc_std_ep;
+
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bDescriptorSubtype; /*!< EP_GENERAL descriptor subtype */
+ uint8_t bmAttributes; /*!< transfer type and synchronization type */
+ uint8_t bLockDelayUnits; /*!< indicates the units used for the wLockDelay field */
+ uint16_t wLockDelay; /*!< indicates the time it takes this endpoint to reliably lock its internal clock recovery circuitry */
+} usb_desc_AS_ep;
+
+#pragma pack()
+
+/* USB configuration descriptor structure */
+typedef struct
+{
+ usb_desc_config config;
+ usb_desc_itf std_itf;
+ usb_desc_AC_itf ac_itf;
+
+#ifdef USE_USB_AUDIO_MICPHONE
+ usb_desc_input_terminal mic_in_terminal;
+ usb_desc_mono_feature_unit mic_feature_unit;
+ usb_desc_output_terminal mic_out_terminal;
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ usb_desc_input_terminal speak_in_terminal;
+ usb_desc_mono_feature_unit speak_feature_unit;
+ usb_desc_output_terminal speak_out_terminal;
+#endif
+
+#ifdef USE_USB_AUDIO_MICPHONE
+ usb_desc_itf mic_std_as_itf_zeroband;
+ usb_desc_itf mic_std_as_itf_opera;
+ usb_desc_AS_itf mic_as_itf;
+ usb_desc_format_type mic_format_typeI;
+ usb_desc_std_ep mic_std_endpoint;
+ usb_desc_AS_ep mic_as_endpoint;
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ usb_desc_itf speak_std_as_itf_zeroband;
+ usb_desc_itf speak_std_as_itf_opera;
+ usb_desc_AS_itf speak_as_itf;
+ usb_desc_format_type speak_format_typeI;
+ usb_desc_std_ep speak_std_endpoint;
+ usb_desc_AS_ep speak_as_endpoint;
+#endif
+} usb_desc_config_set;
+
+typedef struct
+{
+ /* main buffer for audio data out transfers and its relative pointers */
+ uint8_t isoc_out_buff[TOTAL_OUT_BUF_SIZE * 2U];
+ uint8_t* isoc_out_wrptr;
+ uint8_t* isoc_out_rdptr;
+
+ /* main buffer for audio control requests transfers and its relative variables */
+ uint8_t audioctl[64];
+ uint8_t audioctl_unit;
+ uint32_t audioctl_len;
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ uint32_t play_flag;
+#endif /* USE_USB_AUDIO_SPEAKER */
+} usbd_audio_handler;
+
+extern usb_desc audio_desc;
+extern usb_class_core usbd_audio_cb;
+
+#endif /* __AUDIO_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Include/audio_out_itf.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Include/audio_out_itf.h
new file mode 100644
index 0000000000..eb1bf18ad5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Include/audio_out_itf.h
@@ -0,0 +1,76 @@
+/*!
+ \file audio_out_itf.h
+ \brief audio OUT (playback) interface header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __AUDIO_OUT_ITF_H
+#define __AUDIO_OUT_ITF_H
+
+#include "usbd_conf.h"
+
+/* audio commands enumeration */
+typedef enum
+{
+ AUDIO_CMD_PLAY = 1U,
+ AUDIO_CMD_PAUSE,
+ AUDIO_CMD_STOP,
+}audio_cmd_enum;
+
+/* mute commands */
+#define AUDIO_MUTE 0x01U
+#define AUDIO_UNMUTE 0x00U
+
+/* functions return value */
+#define AUDIO_OK 0x00U
+#define AUDIO_FAIL 0xFFU
+
+/* audio machine states */
+#define AUDIO_STATE_INACTIVE 0x00U
+#define AUDIO_STATE_ACTIVE 0x01U
+#define AUDIO_STATE_PLAYING 0x02U
+#define AUDIO_STATE_PAUSED 0x03U
+#define AUDIO_STATE_STOPPED 0x04U
+#define AUDIO_STATE_ERROR 0x05U
+
+typedef struct {
+ uint8_t (*audio_init) (uint32_t audio_freq, uint32_t volume, uint32_t options);
+ uint8_t (*audio_deinit) (uint32_t options);
+ uint8_t (*audio_cmd) (uint8_t* pbuf, uint32_t size, uint8_t cmd);
+ uint8_t (*audio_volume_ctl) (uint8_t vol);
+ uint8_t (*audio_mute_ctl) (uint8_t cmd);
+ uint8_t (*audio_periodic_tc) (uint8_t cmd);
+ uint8_t (*audio_state_get) (void);
+} audio_fops_struct;
+
+extern audio_fops_struct audio_out_fops;
+
+#endif /* __AUDIO_OUT_ITF_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Source/audio_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Source/audio_core.c
new file mode 100644
index 0000000000..9ad5a08168
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Source/audio_core.c
@@ -0,0 +1,809 @@
+/*!
+ \file audio_core.c
+ \brief USB audio device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "audio_out_itf.h"
+#include "audio_core.h"
+#include
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x9574U
+
+#ifdef USE_USB_AUDIO_MICPHONE
+extern volatile uint32_t count_data;
+extern const char wavetestdata[];
+#define LENGTH_DATA (1747 * 32)
+#endif
+
+/* local function prototypes ('static') */
+static uint8_t audio_init (usb_dev *udev, uint8_t config_index);
+static uint8_t audio_deinit (usb_dev *udev, uint8_t config_index);
+static uint8_t audio_req_handler (usb_dev *udev, usb_req *req);
+static uint8_t audio_set_intf (usb_dev *udev, usb_req *req);
+static uint8_t audio_ctlx_out (usb_dev *udev);
+static uint8_t audio_data_in (usb_dev *udev, uint8_t ep_num);
+static uint8_t audio_data_out (usb_dev *udev, uint8_t ep_num);
+static uint8_t usbd_audio_sof (usb_dev *udev);
+
+usb_class_core usbd_audio_cb = {
+ .init = audio_init,
+ .deinit = audio_deinit,
+ .req_proc = audio_req_handler,
+ .set_intf = audio_set_intf,
+ .ctlx_out = audio_ctlx_out,
+ .data_in = audio_data_in,
+ .data_out = audio_data_out,
+ .SOF = usbd_audio_sof
+};
+
+#define VOL_MIN 0U /* Volume Minimum Value */
+#define VOL_MAX 100U /* Volume Maximum Value */
+#define VOL_RES 1U /* Volume Resolution */
+#define VOL_0dB 70U /* 0dB is in the middle of VOL_MIN and VOL_MAX */
+
+/* note:it should use the c99 standard when compiling the below codes */
+/* USB standard device descriptor */
+const usb_desc_dev audio_dev_desc =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM
+};
+
+/* USB device configuration descriptor */
+const usb_desc_config_set audio_config_set =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = AUDIO_CONFIG_DESC_SET_LEN,
+ .bNumInterfaces = 0x01U + CONFIG_DESC_AS_ITF_COUNT,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0xC0U,
+ .bMaxPower = 0x32U
+ },
+
+ .std_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x00U,
+ .bInterfaceClass = USB_CLASS_AUDIO,
+ .bInterfaceSubClass = AUDIO_SUBCLASS_CONTROL,
+ .bInterfaceProtocol = AUDIO_PROTOCOL_UNDEFINED,
+ .iInterface = 0x00U
+ },
+
+ .ac_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_AC_itf),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = 0x01U,
+ .bcdADC = 0x0100U,
+ .wTotalLength = AC_ITF_TOTAL_LEN,
+ .bInCollection = CONFIG_DESC_AS_ITF_COUNT,
+#ifdef USE_USB_AUDIO_MICPHONE
+ .baInterfaceNr0 = 0x01U,
+#endif
+#ifdef USE_USB_AUDIO_SPEAKER
+ .baInterfaceNr1 = 0x02U
+#endif
+ },
+
+#ifdef USE_USB_AUDIO_MICPHONE
+ .mic_in_terminal =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_input_terminal),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = 0x02U,
+ .bTerminalID = 0x01U,
+ .wTerminalType = 0x0201U,
+ .bAssocTerminal = 0x00U,
+ .bNrChannels = 0x02U,
+ .wChannelConfig = 0x0003U,
+ .iChannelNames = 0x00U,
+ .iTerminal = 0x00U
+ },
+
+ .mic_feature_unit =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_mono_feature_unit),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_CONTROL_FEATURE_UNIT,
+ .bUnitID = AUDIO_IN_STREAMING_CTRL,
+ .bSourceID = 0x01U,
+ .bControlSize = 0x01U,
+ .bmaControls0 = AUDIO_CONTROL_MUTE,
+ .bmaControls1 = AUDIO_CONTROL_VOLUME,
+ .iFeature = 0x00U
+ },
+
+ .mic_out_terminal =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_output_terminal),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_CONTROL_OUTPUT_TERMINAL,
+ .bTerminalID = 0x03U,
+ .wTerminalType = 0x0101U,
+ .bAssocTerminal = 0x00U,
+ .bSourceID = 0x02U,
+ .iTerminal = 0x00U
+ },
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ .speak_in_terminal =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_input_terminal),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_CONTROL_INPUT_TERMINAL,
+ .bTerminalID = 0x04U,
+ .wTerminalType = 0x0101U,
+ .bAssocTerminal = 0x00U,
+ .bNrChannels = 0x02U,
+ .wChannelConfig = 0x0003U,
+ .iChannelNames = 0x00U,
+ .iTerminal = 0x00U
+ },
+
+ .speak_feature_unit =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_mono_feature_unit),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_CONTROL_FEATURE_UNIT,
+ .bUnitID = AUDIO_OUT_STREAMING_CTRL,
+ .bSourceID = 0x04U,
+ .bControlSize = 0x01U,
+ .bmaControls0 = AUDIO_CONTROL_MUTE,
+ .bmaControls1 = AUDIO_CONTROL_VOLUME,
+ .iFeature = 0x00U
+ },
+
+ .speak_out_terminal =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_output_terminal),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_CONTROL_OUTPUT_TERMINAL,
+ .bTerminalID = 0x06U,
+ .wTerminalType = 0x0301U,
+ .bAssocTerminal = 0x00U,
+ .bSourceID = 0x05U,
+ .iTerminal = 0x00U
+ },
+#endif
+
+#ifdef USE_USB_AUDIO_MICPHONE
+ .mic_std_as_itf_zeroband =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x01U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x00U,
+ .bInterfaceClass = USB_CLASS_AUDIO,
+ .bInterfaceSubClass = AUDIO_SUBCLASS_AUDIOSTREAMING,
+ .bInterfaceProtocol = AUDIO_PROTOCOL_UNDEFINED,
+ .iInterface = 0x00U
+ },
+
+ .mic_std_as_itf_opera =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x01U,
+ .bAlternateSetting = 0x01U,
+ .bNumEndpoints = 0x01U,
+ .bInterfaceClass = USB_CLASS_AUDIO,
+ .bInterfaceSubClass = AUDIO_SUBCLASS_AUDIOSTREAMING,
+ .bInterfaceProtocol = AUDIO_PROTOCOL_UNDEFINED,
+ .iInterface = 0x00U
+ },
+
+ .mic_as_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_AS_itf),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_STREAMING_GENERAL,
+ .bTerminalLink = 0x03U,
+ .bDelay = 0x01U,
+ .wFormatTag = 0x0001U,
+ },
+
+ .mic_format_typeI =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_format_type),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_STREAMING_FORMAT_TYPE,
+ .bFormatType = AUDIO_FORMAT_TYPE_I,
+ .bNrChannels = MIC_IN_CHANNEL_NBR,
+ .bSubFrameSize = 0x02U,
+ .bBitResolution = MIC_IN_BIT_RESOLUTION,
+ .bSamFreqType = 0x01U,
+ .bSamFreq[0] = (uint8_t)USBD_MIC_FREQ,
+ .bSamFreq[1] = USBD_MIC_FREQ >> 8U,
+ .bSamFreq[2] = USBD_MIC_FREQ >> 16U
+ },
+
+ .mic_std_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_std_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = AUDIO_IN_EP,
+ .bmAttributes = USB_ENDPOINT_TYPE_ISOCHRONOUS,
+ .wMaxPacketSize = MIC_IN_PACKET,
+ .bInterval = 0x01U,
+ .bRefresh = 0x00U,
+ .bSynchAddress = 0x00U
+ },
+
+ .mic_as_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_AS_ep),
+ .bDescriptorType = AUDIO_DESCTYPE_ENDPOINT
+ },
+ .bDescriptorSubtype = AUDIO_ENDPOINT_GENERAL,
+ .bmAttributes = 0x00U,
+ .bLockDelayUnits = 0x00U,
+ .wLockDelay = 0x0000U,
+ },
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ .speak_std_as_itf_zeroband =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x02U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x00U,
+ .bInterfaceClass = USB_CLASS_AUDIO,
+ .bInterfaceSubClass = AUDIO_SUBCLASS_AUDIOSTREAMING,
+ .bInterfaceProtocol = AUDIO_PROTOCOL_UNDEFINED,
+ .iInterface = 0x00U
+ },
+
+ .speak_std_as_itf_opera =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x02U,
+ .bAlternateSetting = 0x01U,
+ .bNumEndpoints = 0x01U,
+ .bInterfaceClass = USB_CLASS_AUDIO,
+ .bInterfaceSubClass = AUDIO_SUBCLASS_AUDIOSTREAMING,
+ .bInterfaceProtocol = AUDIO_PROTOCOL_UNDEFINED,
+ .iInterface = 0x00U
+ },
+
+ .speak_as_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_AS_itf),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_STREAMING_GENERAL,
+ .bTerminalLink = 0x04U,
+ .bDelay = 0x01U,
+ .wFormatTag = 0x0001U,
+ },
+
+ .speak_format_typeI =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_format_type),
+ .bDescriptorType = AUDIO_DESCTYPE_INTERFACE
+ },
+ .bDescriptorSubtype = AUDIO_STREAMING_FORMAT_TYPE,
+ .bFormatType = AUDIO_FORMAT_TYPE_I,
+ .bNrChannels = SPEAKER_OUT_CHANNEL_NBR,
+ .bSubFrameSize = 0x02U,
+ .bBitResolution = SPEAKER_OUT_BIT_RESOLUTION,
+ .bSamFreqType = 0x01U,
+ .bSamFreq[0] = (uint8_t)USBD_SPEAKER_FREQ,
+ .bSamFreq[1] = USBD_SPEAKER_FREQ >> 8U,
+ .bSamFreq[2] = USBD_SPEAKER_FREQ >> 16U
+ },
+
+ .speak_std_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_std_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = AUDIO_OUT_EP,
+ .bmAttributes = USB_ENDPOINT_TYPE_ISOCHRONOUS,
+ .wMaxPacketSize = SPEAKER_OUT_PACKET,
+ .bInterval = 0x01U,
+ .bRefresh = 0x00U,
+ .bSynchAddress = 0x00U
+ },
+
+ .speak_as_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_AS_ep),
+ .bDescriptorType = AUDIO_DESCTYPE_ENDPOINT
+ },
+ .bDescriptorSubtype = AUDIO_ENDPOINT_GENERAL,
+ .bmAttributes = 0x00U,
+ .bLockDelayUnits = 0x00U,
+ .wLockDelay = 0x0000U,
+ }
+#endif
+};
+
+/* USB language ID descriptor */
+static const usb_desc_LANGID usbd_language_id_desc =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR
+ },
+
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static const usb_desc_str manufacturer_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static const usb_desc_str product_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(14),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'U', 'S', 'B', '_', 'A', 'u', 'd', 'i', 'o'}
+};
+
+/* USBD serial string */
+static usb_desc_str serial_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+/* USB string descriptor */
+void *const usbd_audio_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc audio_desc = {
+ .dev_desc = (uint8_t *)&audio_dev_desc,
+ .config_desc = (uint8_t *)&audio_config_set,
+ .strings = usbd_audio_strings
+};
+
+/*!
+ \brief initialize the AUDIO device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_init (usb_dev *udev, uint8_t config_index)
+{
+ static usbd_audio_handler audio_handler;
+
+ memset((void *)&audio_handler, 0, sizeof(usbd_audio_handler));
+
+#ifdef USE_USB_AUDIO_MICPHONE
+{
+ usb_desc_std_ep std_ep = audio_config_set.mic_std_endpoint;
+
+ usb_desc_ep ep = {
+ .header = std_ep.header,
+ .bEndpointAddress = std_ep.bEndpointAddress,
+ .bmAttributes = std_ep.bmAttributes,
+ .wMaxPacketSize = std_ep.wMaxPacketSize,
+ .bInterval = std_ep.bInterval
+ };
+
+ /* initialize Tx endpoint */
+ usbd_ep_setup (udev, &ep);
+}
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+{
+ audio_handler.isoc_out_rdptr = audio_handler.isoc_out_buff;
+ audio_handler.isoc_out_wrptr = audio_handler.isoc_out_buff;
+
+ usb_desc_std_ep std_ep = audio_config_set.speak_std_endpoint;
+
+ usb_desc_ep ep = {
+ .header = std_ep.header,
+ .bEndpointAddress = std_ep.bEndpointAddress,
+ .bmAttributes = std_ep.bmAttributes,
+ .wMaxPacketSize = std_ep.wMaxPacketSize,
+ .bInterval = std_ep.bInterval
+ };
+
+ /* initialize Rx endpoint */
+ usbd_ep_setup (udev, &ep);
+
+ /* initialize the audio output hardware layer */
+ if (USBD_OK != audio_out_fops.audio_init(USBD_AUDIO_FREQ_16K, DEFAULT_VOLUME, 0U)) {
+ return USBD_FAIL;
+ }
+
+ /* prepare OUT endpoint to receive audio data */
+ usbd_ep_recev (udev, AUDIO_OUT_EP, (uint8_t*)audio_handler.isoc_out_buff, SPEAKER_OUT_PACKET);
+}
+#endif
+
+ udev->dev.class_data[USBD_AUDIO_INTERFACE] = (void *)&audio_handler;
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the AUDIO device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_deinit (usb_dev *udev, uint8_t config_index)
+{
+#ifdef USE_USB_AUDIO_MICPHONE
+ /* deinitialize AUDIO endpoints */
+ usbd_ep_clear(udev, AUDIO_IN_EP);
+#endif
+
+#ifdef USE_USB_AUDIO_SPEAKER
+ /* deinitialize AUDIO endpoints */
+ usbd_ep_clear(udev, AUDIO_OUT_EP);
+
+ /* deinitialize the audio output hardware layer */
+ if (USBD_OK != audio_out_fops.audio_deinit(0U)) {
+ return USBD_FAIL;
+ }
+#endif
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the AUDIO class-specific requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_req_handler (usb_dev *udev, usb_req *req)
+{
+ uint8_t status = REQ_NOTSUPP;
+
+ usbd_audio_handler *audio = (usbd_audio_handler *)udev->dev.class_data[USBD_AUDIO_INTERFACE];
+
+ usb_transc *transc_in = &udev->dev.transc_in[0];
+ usb_transc *transc_out = &udev->dev.transc_out[0];
+
+ switch (req->bRequest) {
+ case AUDIO_REQ_GET_CUR:
+ transc_in->xfer_buf = audio->audioctl;
+ transc_in->remain_len = req->wLength;
+
+ status = REQ_SUPP;
+ break;
+
+ case AUDIO_REQ_SET_CUR:
+ if (req->wLength) {
+ transc_out->xfer_buf = audio->audioctl;
+ transc_out->remain_len = req->wLength;
+
+ udev->dev.class_core->command = AUDIO_REQ_SET_CUR;
+
+ audio->audioctl_len = req->wLength;
+ audio->audioctl_unit = BYTE_HIGH(req->wIndex);
+
+ status = REQ_SUPP;
+ }
+ break;
+
+ case AUDIO_REQ_GET_MIN:
+ *((uint16_t *)audio->audioctl) = VOL_MIN;
+ transc_in->xfer_buf = audio->audioctl;
+ transc_in->remain_len = req->wLength;
+ status = REQ_SUPP;
+ break;
+
+ case AUDIO_REQ_GET_MAX:
+ *((uint16_t *)audio->audioctl) = VOL_MAX;
+ transc_in->xfer_buf = audio->audioctl;
+ transc_in->remain_len = req->wLength;
+ status = REQ_SUPP;
+ break;
+
+ case AUDIO_REQ_GET_RES:
+ *((uint16_t *)audio->audioctl) = VOL_RES;
+ transc_in->xfer_buf = audio->audioctl;
+ transc_in->remain_len = req->wLength;
+ status = REQ_SUPP;
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief handle the AUDIO set interface requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_set_intf(usb_dev *udev, usb_req *req)
+{
+ udev->dev.class_core->alter_set = req->wValue;
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handles the control transfer OUT callback
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_ctlx_out (usb_dev *udev)
+{
+#ifdef USE_USB_AUDIO_SPEAKER
+ usbd_audio_handler *audio = (usbd_audio_handler *)udev->dev.class_data[USBD_AUDIO_INTERFACE];
+
+ /* handles audio control requests data */
+ /* check if an audio_control request has been issued */
+ if (AUDIO_REQ_SET_CUR == udev->dev.class_core->command) {
+ /* in this driver, to simplify code, only SET_CUR request is managed */
+
+ /* check for which addressed unit the audio_control request has been issued */
+ if (AUDIO_OUT_STREAMING_CTRL == audio->audioctl_unit) {
+ /* in this driver, to simplify code, only one unit is manage */
+
+ /* call the audio interface mute function */
+ audio_out_fops.audio_mute_ctl(audio->audioctl[0]);
+
+ /* reset the audioctl_cmd variable to prevent re-entering this function */
+ udev->dev.class_core->command = 0U;
+
+ audio->audioctl_len = 0U;
+ }
+ }
+#endif
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handles the audio IN data stage
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_data_in (usb_dev *udev, uint8_t ep_num)
+{
+#ifdef USE_USB_AUDIO_MICPHONE
+ if(count_data < LENGTH_DATA){
+ /* Prepare next buffer to be sent: dummy data */
+ usbd_ep_send(udev, AUDIO_IN_EP,(uint8_t*)&wavetestdata[count_data],MIC_IN_PACKET);
+ count_data += MIC_IN_PACKET;
+ } else {
+ usbd_ep_send(udev, AUDIO_IN_EP,(uint8_t*)wavetestdata,MIC_IN_PACKET);
+ count_data = MIC_IN_PACKET;
+ }
+#endif
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handles the audio OUT data stage
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t audio_data_out (usb_dev *udev, uint8_t ep_num)
+{
+#ifdef USE_USB_AUDIO_SPEAKER
+ usbd_audio_handler *audio = (usbd_audio_handler *)udev->dev.class_data[USBD_AUDIO_INTERFACE];
+
+ /* increment the Buffer pointer or roll it back when all buffers are full */
+ if (audio->isoc_out_wrptr >= (audio->isoc_out_buff + (SPEAKER_OUT_PACKET * OUT_PACKET_NUM))) {
+ /* all buffers are full: roll back */
+ audio->isoc_out_wrptr = audio->isoc_out_buff;
+ } else {
+ /* increment the buffer pointer */
+ audio->isoc_out_wrptr += SPEAKER_OUT_PACKET;
+ }
+
+ /* Toggle the frame index */
+ udev->dev.transc_out[ep_num].frame_num =
+ (udev->dev.transc_out[ep_num].frame_num)? 0U:1U;
+
+ /* prepare out endpoint to receive next audio packet */
+ usbd_ep_recev (udev, AUDIO_OUT_EP, (uint8_t*)(audio->isoc_out_wrptr), SPEAKER_OUT_PACKET);
+
+ /* trigger the start of streaming only when half buffer is full */
+ if ((0U == audio->play_flag) && (audio->isoc_out_wrptr >= (audio->isoc_out_buff + ((SPEAKER_OUT_PACKET * OUT_PACKET_NUM) / 2U)))) {
+ /* enable start of streaming */
+ audio->play_flag = 1U;
+ }
+#endif
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handles the SOF event (data buffer update and synchronization)
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t usbd_audio_sof (usb_dev *udev)
+{
+#ifdef USE_USB_AUDIO_SPEAKER
+ usbd_audio_handler *audio = (usbd_audio_handler *)udev->dev.class_data[USBD_AUDIO_INTERFACE];
+
+ /* check if there are available data in stream buffer.
+ in this function, a single variable (play_flag) is used to avoid software delays.
+ the play operation must be executed as soon as possible after the SOF detection. */
+ if (audio->play_flag) {
+ /* start playing received packet */
+ audio_out_fops.audio_cmd((uint8_t*)(audio->isoc_out_rdptr), /* samples buffer pointer */
+ SPEAKER_OUT_PACKET, /* number of samples in Bytes */
+ AUDIO_CMD_PLAY); /* command to be processed */
+
+ /* increment the Buffer pointer or roll it back when all buffers all full */
+ if (audio->isoc_out_rdptr >= (audio->isoc_out_buff + (SPEAKER_OUT_PACKET * OUT_PACKET_NUM))) {
+ /* roll back to the start of buffer */
+ audio->isoc_out_rdptr = audio->isoc_out_buff;
+ } else {
+ /* increment to the next sub-buffer */
+ audio->isoc_out_rdptr += SPEAKER_OUT_PACKET;
+ }
+
+ /* if all available buffers have been consumed, stop playing */
+ if (audio->isoc_out_rdptr == audio->isoc_out_wrptr) {
+ /* Pause the audio stream */
+ audio_out_fops.audio_cmd((uint8_t*)(audio->isoc_out_buff), /* samples buffer pointer */
+ SPEAKER_OUT_PACKET, /* number of samples in Bytes */
+ AUDIO_CMD_PAUSE); /* command to be processed */
+
+ /* stop entering play loop */
+ audio->play_flag = 0U;
+
+ /* reset buffer pointers */
+ audio->isoc_out_rdptr = audio->isoc_out_buff;
+ audio->isoc_out_wrptr = audio->isoc_out_buff;
+ }
+ }
+#endif
+
+ return USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Source/audio_out_itf.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Source/audio_out_itf.c
new file mode 100644
index 0000000000..3665521543
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/audio/Source/audio_out_itf.c
@@ -0,0 +1,229 @@
+/*!
+ \file audio_out_itf.c
+ \brief audio OUT (playback) interface functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "audio_core.h"
+#include "audio_out_itf.h"
+
+/* local function prototypes ('static') */
+static uint8_t init (uint32_t audiofreq, uint32_t volume, uint32_t options);
+static uint8_t deinit (uint32_t options);
+static uint8_t audio_cmd (uint8_t* pbuf, uint32_t size, uint8_t cmd);
+static uint8_t volume_ctl (uint8_t vol);
+static uint8_t mute_ctl (uint8_t cmd);
+static uint8_t periodic_tc (uint8_t cmd);
+static uint8_t get_state (void);
+
+audio_fops_struct audio_out_fops =
+{
+ init,
+ deinit,
+ audio_cmd,
+ volume_ctl,
+ mute_ctl,
+ periodic_tc,
+ get_state
+};
+
+static uint8_t audio_state = AUDIO_STATE_INACTIVE;
+
+/*!
+ \brief initialize and configures all required resources for audio play function
+ \param[in] audio_freq: statrt_up audio frequency
+ \param[in] volume: start_up volume to be set
+ \param[in] options: specific options passed to low layer function
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t init (uint32_t audio_freq, uint32_t volume, uint32_t options)
+{
+ static uint32_t initialized = 0U;
+
+ /* check if the low layer has already been initialized */
+ if (0U == initialized) {
+ /* call low layer function */
+ if (0U != eval_audio_init(OUTPUT_DEVICE_AUTO, (uint8_t)volume, audio_freq)) {
+ audio_state = AUDIO_STATE_ERROR;
+
+ return AUDIO_FAIL;
+ }
+
+ /* set the initialization flag to prevent reinitializing the interface again */
+ initialized = 1U;
+ }
+
+ /* update the audio state machine */
+ audio_state = AUDIO_STATE_ACTIVE;
+
+ return AUDIO_OK;
+}
+
+/*!
+ \brief free all resources used by low layer and stops audio-play function
+ \param[in] options: specific options passed to low layer function
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t deinit (uint32_t options)
+{
+ /* update the audio state machine */
+ audio_state = AUDIO_STATE_INACTIVE;
+
+ return AUDIO_OK;
+}
+
+/*!
+ \brief play, stop, pause or resume current file
+ \param[in] pbuf: address from which file should be played
+ \param[in] size: size of the current buffer/file
+ \param[in] cmd: command to be executed, can be:
+ \arg AUDIO_CMD_PLAY
+ \arg AUDIO_CMD_PAUSE
+ \arg AUDIO_CMD_RESUME
+ \arg AUDIO_CMD_STOP
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t audio_cmd (uint8_t* pbuf, uint32_t size, uint8_t cmd)
+{
+ /* check the current state */
+ if ((AUDIO_STATE_INACTIVE == audio_state) || (AUDIO_STATE_ERROR == audio_state)) {
+ audio_state = AUDIO_STATE_ERROR;
+
+ return AUDIO_FAIL;
+ }
+
+ switch (cmd) {
+ /* process the play command */
+ case AUDIO_CMD_PLAY:
+ /* if current state is active or stopped */
+ if ((AUDIO_STATE_ACTIVE == audio_state) || \
+ (AUDIO_STATE_STOPPED == audio_state) || \
+ (AUDIO_STATE_PLAYING == audio_state)) {
+ audio_mal_play((uint32_t)pbuf, size);
+ audio_state = AUDIO_STATE_PLAYING;
+
+ return AUDIO_OK;
+ } else if (AUDIO_STATE_PAUSED == audio_state) {
+ if (eval_audio_pause_resume(AUDIO_RESUME, (uint32_t)pbuf, (size / 2U))) {
+ audio_state = AUDIO_STATE_ERROR;
+
+ return AUDIO_FAIL;
+ } else {
+ audio_state = AUDIO_STATE_PLAYING;
+
+ return AUDIO_OK;
+ }
+ } else {
+ return AUDIO_FAIL;
+ }
+
+ /* process the stop command */
+ case AUDIO_CMD_STOP:
+ if (AUDIO_STATE_PLAYING != audio_state) {
+ /* unsupported command */
+ return AUDIO_FAIL;
+ } else if (eval_audio_stop(CODEC_PDWN_SW)) {
+ audio_state = AUDIO_STATE_ERROR;
+
+ return AUDIO_FAIL;
+ } else {
+ audio_state = AUDIO_STATE_STOPPED;
+
+ return AUDIO_OK;
+ }
+
+ /* process the pause command */
+ case AUDIO_CMD_PAUSE:
+ if (AUDIO_STATE_PLAYING != audio_state) {
+ /* unsupported command */
+ return AUDIO_FAIL;
+ } else if (eval_audio_pause_resume(AUDIO_PAUSE, (uint32_t)pbuf, (size / 2U))) {
+ audio_state = AUDIO_STATE_ERROR;
+
+ return AUDIO_FAIL;
+ } else {
+ audio_state = AUDIO_STATE_PAUSED;
+
+ return AUDIO_OK;
+ }
+
+ /* unsupported command */
+ default:
+ return AUDIO_FAIL;
+ }
+}
+
+/*!
+ \brief set the volume level
+ \param[in] vol: volume level to be set in % (from 0% to 100%)
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t volume_ctl (uint8_t vol)
+{
+ return AUDIO_OK;
+}
+
+/*!
+ \brief mute or unmute the audio current output
+ \param[in] cmd: can be 0 to unmute, or 1 to mute
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t mute_ctl (uint8_t cmd)
+{
+ return AUDIO_OK;
+}
+
+/*!
+ \brief periodic transfer control
+ \param[in] cmd: command
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t periodic_tc (uint8_t cmd)
+{
+ return AUDIO_OK;
+}
+
+/*!
+ \brief return the current state of the audio machine
+ \param[in] none
+ \param[out] none
+ \retval AUDIO_OK if all operations succeed, AUDIO_FAIL else
+*/
+static uint8_t get_state (void)
+{
+ return audio_state;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/cdc/Include/cdc_acm_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
new file mode 100644
index 0000000000..a90db97770
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/cdc/Include/cdc_acm_core.h
@@ -0,0 +1,66 @@
+/*!
+ \file cdc_acm_core.h
+ \brief the header file of cdc acm driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __CDC_ACM_CORE_H
+#define __CDC_ACM_CORE_H
+
+#include "usbd_enum.h"
+#include "usb_cdc.h"
+
+#define USB_CDC_RX_LEN 64
+
+typedef struct {
+ uint8_t packet_sent;
+ uint8_t packet_receive;
+
+ uint8_t data[USB_CDC_RX_LEN];
+ uint8_t cmd[USB_CDC_CMD_PACKET_SIZE];
+
+ uint32_t receive_length;
+
+ acm_line line_coding;
+} usb_cdc_handler;
+
+extern usb_desc cdc_desc;
+extern usb_class_core cdc_class;
+
+/* function declarations */
+/* check cdc acm is ready for data transfer */
+uint8_t cdc_acm_check_ready(usb_dev *udev);
+/* send CDC ACM data */
+void cdc_acm_data_send(usb_dev *udev);
+/* receive CDC ACM data */
+void cdc_acm_data_receive(usb_dev *udev);
+
+#endif /* __CDC_ACM_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/cdc/Source/cdc_acm_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
new file mode 100644
index 0000000000..1ee14456d9
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/cdc/Source/cdc_acm_core.c
@@ -0,0 +1,531 @@
+/*!
+ \file cdc_acm_core.c
+ \brief CDC ACM driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "cdc_acm_core.h"
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x018AU
+
+/* note:it should use the C99 standard when compiling the below codes */
+/* USB standard device descriptor */
+const usb_desc_dev cdc_dev_desc =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV,
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = USB_CLASS_CDC,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM,
+};
+
+/* USB device configuration descriptor */
+const usb_cdc_desc_config_set cdc_config_desc =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG,
+ },
+ .wTotalLength = USB_CDC_ACM_CONFIG_DESC_SIZE,
+ .bNumInterfaces = 0x02U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0x80U,
+ .bMaxPower = 0x32U
+ },
+
+ .cmd_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x01U,
+ .bInterfaceClass = USB_CLASS_CDC,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_ACM,
+ .bInterfaceProtocol = USB_CDC_PROTOCOL_AT,
+ .iInterface = 0x00U
+ },
+
+ .cdc_header =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_header_func),
+ .bDescriptorType = USB_DESCTYPE_CS_INTERFACE
+ },
+ .bDescriptorSubtype = 0x00U,
+ .bcdCDC = 0x0110U
+ },
+
+ .cdc_call_managment =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_call_managment_func),
+ .bDescriptorType = USB_DESCTYPE_CS_INTERFACE
+ },
+ .bDescriptorSubtype = 0x01U,
+ .bmCapabilities = 0x00U,
+ .bDataInterface = 0x01U
+ },
+
+ .cdc_acm =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_acm_func),
+ .bDescriptorType = USB_DESCTYPE_CS_INTERFACE
+ },
+ .bDescriptorSubtype = 0x02U,
+ .bmCapabilities = 0x02U,
+ },
+
+ .cdc_union =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_union_func),
+ .bDescriptorType = USB_DESCTYPE_CS_INTERFACE
+ },
+ .bDescriptorSubtype = 0x06U,
+ .bMasterInterface = 0x00U,
+ .bSlaveInterface0 = 0x01U,
+ },
+
+ .cdc_cmd_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP,
+ },
+ .bEndpointAddress = CDC_CMD_EP,
+ .bmAttributes = USB_EP_ATTR_INT,
+ .wMaxPacketSize = USB_CDC_CMD_PACKET_SIZE,
+ .bInterval = 0x0AU
+ },
+
+ .cdc_data_interface =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF,
+ },
+ .bInterfaceNumber = 0x01U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x02U,
+ .bInterfaceClass = USB_CLASS_DATA,
+ .bInterfaceSubClass = 0x00U,
+ .bInterfaceProtocol = USB_CDC_PROTOCOL_NONE,
+ .iInterface = 0x00U
+ },
+
+ .cdc_out_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP,
+ },
+ .bEndpointAddress = CDC_DATA_OUT_EP,
+ .bmAttributes = USB_EP_ATTR_BULK,
+ .wMaxPacketSize = USB_CDC_DATA_PACKET_SIZE,
+ .bInterval = 0x00U
+ },
+
+ .cdc_in_endpoint =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = CDC_DATA_IN_EP,
+ .bmAttributes = USB_EP_ATTR_BULK,
+ .wMaxPacketSize = USB_CDC_DATA_PACKET_SIZE,
+ .bInterval = 0x00U
+ }
+};
+
+/* USB language ID Descriptor */
+static const usb_desc_LANGID usbd_language_id_desc =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static const usb_desc_str manufacturer_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static const usb_desc_str product_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'C', 'D', 'C', '_', 'A', 'C', 'M'}
+};
+
+/* USBD serial string */
+static usb_desc_str serial_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+/* USB string descriptor set */
+void *const usbd_cdc_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc cdc_desc =
+{
+ .dev_desc = (uint8_t *)&cdc_dev_desc,
+ .config_desc = (uint8_t *)&cdc_config_desc,
+ .strings = usbd_cdc_strings
+};
+
+/* local function prototypes ('static') */
+static uint8_t cdc_acm_init (usb_dev *udev, uint8_t config_index);
+static uint8_t cdc_acm_deinit (usb_dev *udev, uint8_t config_index);
+static uint8_t cdc_acm_req (usb_dev *udev, usb_req *req);
+static uint8_t cdc_ctlx_out (usb_dev *udev);
+static uint8_t cdc_acm_in (usb_dev *udev, uint8_t ep_num);
+static uint8_t cdc_acm_out (usb_dev *udev, uint8_t ep_num);
+
+/* USB CDC device class callbacks structure */
+usb_class_core cdc_class =
+{
+ .command = NO_CMD,
+ .alter_set = 0U,
+
+ .init = cdc_acm_init,
+ .deinit = cdc_acm_deinit,
+
+ .req_proc = cdc_acm_req,
+ .ctlx_out = cdc_ctlx_out,
+ .data_in = cdc_acm_in,
+ .data_out = cdc_acm_out
+};
+
+/*!
+ \brief check cdc acm is ready for data transfer
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval 0 if cdc is ready, 5 else
+*/
+uint8_t cdc_acm_check_ready(usb_dev *udev)
+{
+ if (udev->dev.class_data[CDC_COM_INTERFACE] != NULL) {
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ if ((1U == cdc->packet_receive) && (1U == cdc->packet_sent)) {
+ return 0U;
+ }
+ }
+
+ return 1U;
+}
+
+/*!
+ \brief send CDC ACM data
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation status
+*/
+void cdc_acm_data_send (usb_dev *udev)
+{
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ if (0U != cdc->receive_length) {
+ cdc->packet_sent = 0U;
+
+ usbd_ep_send (udev, CDC_DATA_IN_EP, (uint8_t*)(cdc->data), cdc->receive_length);
+
+ cdc->receive_length = 0U;
+ }
+}
+
+/*!
+ \brief receive CDC ACM data
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation status
+*/
+void cdc_acm_data_receive (usb_dev *udev)
+{
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ cdc->packet_receive = 0U;
+ cdc->packet_sent = 0U;
+
+ usbd_ep_recev(udev, CDC_DATA_OUT_EP, (uint8_t*)(cdc->data), USB_CDC_DATA_PACKET_SIZE);
+}
+
+/*!
+ \brief initialize the CDC ACM device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t cdc_acm_init (usb_dev *udev, uint8_t config_index)
+{
+ static usb_cdc_handler cdc_handler;
+
+ /* initialize the data Tx endpoint */
+ usbd_ep_setup (udev, &(cdc_config_desc.cdc_in_endpoint));
+
+ /* initialize the data Rx endpoint */
+ usbd_ep_setup (udev, &(cdc_config_desc.cdc_out_endpoint));
+
+ /* initialize the command Tx endpoint */
+ usbd_ep_setup (udev, &(cdc_config_desc.cdc_cmd_endpoint));
+
+ /* initialize cdc handler structure */
+ cdc_handler.packet_receive = 1U;
+ cdc_handler.packet_sent = 1U;
+ cdc_handler.receive_length = 0U;
+
+ cdc_handler.line_coding = (acm_line){
+ .dwDTERate = 115200,
+ .bCharFormat = 0,
+ .bParityType = 0,
+ .bDataBits = 0x08
+ };
+
+ udev->dev.class_data[CDC_COM_INTERFACE] = (void *)&cdc_handler;
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the CDC ACM device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t cdc_acm_deinit (usb_dev *udev, uint8_t config_index)
+{
+ /* deinitialize the data Tx/Rx endpoint */
+ usbd_ep_clear (udev, CDC_DATA_IN_EP);
+ usbd_ep_clear (udev, CDC_DATA_OUT_EP);
+
+ /* deinitialize the command Tx endpoint */
+ usbd_ep_clear (udev, CDC_CMD_EP);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the CDC ACM class-specific requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t cdc_acm_req (usb_dev *udev, usb_req *req)
+{
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ usb_transc *transc = NULL;
+
+ switch (req->bRequest) {
+ case SEND_ENCAPSULATED_COMMAND:
+ /* no operation for this driver */
+ break;
+
+ case GET_ENCAPSULATED_RESPONSE:
+ /* no operation for this driver */
+ break;
+
+ case SET_COMM_FEATURE:
+ /* no operation for this driver */
+ break;
+
+ case GET_COMM_FEATURE:
+ /* no operation for this driver */
+ break;
+
+ case CLEAR_COMM_FEATURE:
+ /* no operation for this driver */
+ break;
+
+ case SET_LINE_CODING:
+ transc = &udev->dev.transc_out[0];
+
+ /* set the value of the current command to be processed */
+ udev->dev.class_core->alter_set = req->bRequest;
+
+ /* enable EP0 prepare to receive command data packet */
+ transc->remain_len = req->wLength;
+ transc->xfer_buf = cdc->cmd;
+ break;
+
+ case GET_LINE_CODING:
+ transc = &udev->dev.transc_in[0];
+
+ cdc->cmd[0] = (uint8_t)(cdc->line_coding.dwDTERate);
+ cdc->cmd[1] = (uint8_t)(cdc->line_coding.dwDTERate >> 8);
+ cdc->cmd[2] = (uint8_t)(cdc->line_coding.dwDTERate >> 16);
+ cdc->cmd[3] = (uint8_t)(cdc->line_coding.dwDTERate >> 24);
+ cdc->cmd[4] = cdc->line_coding.bCharFormat;
+ cdc->cmd[5] = cdc->line_coding.bParityType;
+ cdc->cmd[6] = cdc->line_coding.bDataBits;
+
+ transc->xfer_buf = cdc->cmd;
+ transc->remain_len = 7U;
+ break;
+
+ case SET_CONTROL_LINE_STATE:
+ /* no operation for this driver */
+ break;
+
+ case SEND_BREAK:
+ /* no operation for this driver */
+ break;
+
+ default:
+ break;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle CDC ACM setup data
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t cdc_ctlx_out (usb_dev *udev)
+{
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ if (udev->dev.class_core->alter_set != NO_CMD) {
+ /* process the command data */
+ cdc->line_coding.dwDTERate = (uint32_t)((uint32_t)cdc->cmd[0] |
+ ((uint32_t)cdc->cmd[1] << 8U) |
+ ((uint32_t)cdc->cmd[2] << 16U) |
+ ((uint32_t)cdc->cmd[3] << 24U));
+
+ cdc->line_coding.bCharFormat = cdc->cmd[4];
+ cdc->line_coding.bParityType = cdc->cmd[5];
+ cdc->line_coding.bDataBits = cdc->cmd[6];
+
+ udev->dev.class_core->alter_set = NO_CMD;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle CDC ACM data
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t cdc_acm_in (usb_dev *udev, uint8_t ep_num)
+{
+ usb_transc *transc = &udev->dev.transc_in[EP_ID(ep_num)];
+
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ if ((0U == transc->xfer_len % transc->max_len) && (0U != transc->xfer_len)) {
+ usbd_ep_send (udev, ep_num, NULL, 0U);
+ } else {
+ cdc->packet_sent = 1U;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle CDC ACM data
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t cdc_acm_out (usb_dev *udev, uint8_t ep_num)
+{
+ usb_cdc_handler *cdc = (usb_cdc_handler *)udev->dev.class_data[CDC_COM_INTERFACE];
+
+ cdc->packet_receive = 1U;
+ cdc->receive_length = ((usb_core_driver *)udev)->dev.transc_out[ep_num].xfer_count;
+
+ return USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Include/dfu_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Include/dfu_core.h
new file mode 100644
index 0000000000..a3b92a3163
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Include/dfu_core.h
@@ -0,0 +1,176 @@
+/*!
+ \file dfu_core.h
+ \brief the header file of USB DFU device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DFU_CORE_H
+#define __DFU_CORE_H
+
+#include "usbd_enum.h"
+
+/* DFU class code */
+#define USB_DFU_CLASS 0xFEU
+
+/* DFU subclass code */
+#define USB_DFU_SUBCLASS_UPGRADE 0x01U
+
+/* DFU protocl code */
+#define USB_DFU_PROTOCL_RUNTIME 0x01U
+#define USB_DFU_PROTOCL_DFU 0x02U
+
+/* manifestation state */
+#define MANIFEST_COMPLETE 0x00U
+#define MANIFEST_IN_PROGRESS 0x01U
+
+/* DFU attributes code */
+#define USB_DFU_CAN_DOWNLOAD 0x01U
+#define USB_DFU_CAN_UPLOAD 0x02U
+#define USB_DFU_MANIFEST_TOLERANT 0x04U
+#define USB_DFU_WILL_DETACH 0x08U
+
+/* special commands with download request */
+#define GET_COMMANDS 0x00U
+#define SET_ADDRESS_POINTER 0x21U
+#define ERASE 0x41U
+
+/* memory operation command */
+#define CMD_ERASE 0U
+#define CMD_WRITE 1U
+
+#define _BYTE1(x) (uint8_t)((x) & 0xFFU) /*!< addressing cycle 1st byte */
+#define _BYTE2(x) (uint8_t)(((x) & 0xFF00U) >> 8U) /*!< addressing cycle 2nd byte */
+#define _BYTE3(x) (uint8_t)(((x) & 0xFF0000U) >> 16U) /*!< addressing cycle 3rd byte */
+
+#define FLASH_ERASE_TIMEOUT 60U
+#define FLASH_WRITE_TIMEOUT 80U
+
+/* bit detach capable = bit 3 in bmAttributes field */
+#define DFU_DETACH_MASK (uint8_t)(0x10U)
+
+#define USB_SERIAL_STR_LEN 0x06U
+
+#define USB_DFU_CONFIG_DESC_SIZE 27U
+
+#define DFU_DESC_TYPE 0x21U
+
+/* DFU device state defines */
+typedef enum {
+ STATE_APP_IDLE = 0x00U,
+ STATE_APP_DETACH,
+ STATE_DFU_IDLE,
+ STATE_DFU_DNLOAD_SYNC,
+ STATE_DFU_DNBUSY,
+ STATE_DFU_DNLOAD_IDLE,
+ STATE_DFU_MANIFEST_SYNC,
+ STATE_DFU_MANIFEST,
+ STATE_DFU_MANIFEST_WAIT_RESET,
+ STATE_DFU_UPLOAD_IDLE,
+ STATE_DFU_ERROR
+} dfu_state;
+
+/* DFU device status defines */
+typedef enum {
+ STATUS_OK = 0x00U,
+ STATUS_ERR_TARGET,
+ STATUS_ERR_FILE,
+ STATUS_ERR_WRITE,
+ STATUS_ERR_ERASE,
+ STATUS_ERR_CHECK_ERASED,
+ STATUS_ERR_PROG,
+ STATUS_ERR_VERIFY,
+ STATUS_ERR_ADDRESS,
+ STATUS_ERR_NOTDONE,
+ STATUS_ERR_FIRMWARE,
+ STATUS_ERR_VENDOR,
+ STATUS_ERR_USBR,
+ STATUS_ERR_POR,
+ STATUS_ERR_UNKNOWN,
+ STATUS_ERR_STALLEDPKT
+} dfu_status;
+
+/* DFU class-specific requests */
+typedef enum {
+ DFU_DETACH = 0U,
+ DFU_DNLOAD,
+ DFU_UPLOAD,
+ DFU_GETSTATUS,
+ DFU_CLRSTATUS,
+ DFU_GETSTATE,
+ DFU_ABORT,
+ DFU_REQ_MAX
+} dfu_requests;
+
+#pragma pack(1)
+
+/* USB dfu function descriptor structure */
+typedef struct
+{
+ usb_desc_header header; /*!< descriptor header, including type and size */
+ uint8_t bmAttributes; /*!< DFU attributes */
+ uint16_t wDetachTimeOut; /*!< time, in milliseconds, that the device will wait after receipt of the DFU_DETACH request. If */
+ uint16_t wTransferSize; /*!< maximum number of bytes that the device can accept per control-write transaction */
+ uint16_t bcdDFUVersion; /*!< numeric expression identifying the version of the DFU Specification release. */
+} usb_desc_dfu_func;
+
+#pragma pack()
+
+/* USB configuration descriptor structure */
+typedef struct
+{
+ usb_desc_config config;
+ usb_desc_itf dfu_itf;
+ usb_desc_dfu_func dfu_func;
+} usb_dfu_desc_config_set;
+
+typedef struct
+{
+ uint8_t bStatus;
+ uint8_t bwPollTimeout0;
+ uint8_t bwPollTimeout1;
+ uint8_t bwPollTimeout2;
+ uint8_t bState;
+ uint8_t iString;
+
+ uint8_t manifest_state;
+ uint32_t data_len;
+ uint16_t block_num;
+ uint32_t base_addr;
+
+ uint8_t buf[TRANSFER_SIZE];
+} usbd_dfu_handler;
+
+typedef void (*app_func) (void);
+
+extern usb_desc dfu_desc;
+extern usb_class_core dfu_class;
+
+#endif /* DFU_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Include/dfu_mal.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Include/dfu_mal.h
new file mode 100644
index 0000000000..fd5d390c5b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Include/dfu_mal.h
@@ -0,0 +1,84 @@
+/*!
+ \file dfu_mal.h
+ \brief USB DFU device media access layer header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DFU_MAL_H
+#define __DFU_MAL_H
+
+#include "usbd_conf.h"
+
+typedef struct _dfu_mal_prop
+{
+ const uint8_t* pstr_desc;
+
+ uint8_t (*mal_init) (void);
+ uint8_t (*mal_deinit) (void);
+ uint8_t (*mal_erase) (uint32_t addr);
+ uint8_t (*mal_write) (uint8_t *buf, uint32_t addr, uint32_t len);
+ uint8_t* (*mal_read) (uint8_t *buf, uint32_t addr, uint32_t len);
+ uint8_t (*mal_checkaddr) (uint32_t addr);
+
+ const uint32_t erase_timeout;
+ const uint32_t write_timeout;
+} dfu_mal_prop;
+
+typedef enum
+{
+ MAL_OK = 0,
+ MAL_FAIL
+} MAL_Status;
+
+#define _1st_BYTE(x) (uint8_t)((x) & 0xFF) /*!< addressing cycle 1st byte */
+#define _2nd_BYTE(x) (uint8_t)(((x) & 0xFF00) >> 8) /*!< addressing cycle 2nd byte */
+#define _3rd_BYTE(x) (uint8_t)(((x) & 0xFF0000) >> 16) /*!< addressing cycle 3rd byte */
+
+#define SET_POLLING_TIMEOUT(x) buffer[0] = _1st_BYTE(x);\
+ buffer[1] = _2nd_BYTE(x);\
+ buffer[2] = _3rd_BYTE(x);
+
+/* function declarations */
+/* initialize the memory media on the GD32 */
+uint8_t dfu_mal_init(void);
+/* deinitialize the memory media on the GD32 */
+uint8_t dfu_mal_deinit(void);
+/* erase a memory sector */
+uint8_t dfu_mal_erase(uint32_t addr);
+/* write data to sectors of memory */
+uint8_t dfu_mal_write(uint8_t *buf, uint32_t addr, uint32_t len);
+/* read data from sectors of memory */
+uint8_t* dfu_mal_read(uint8_t *buf, uint32_t addr, uint32_t len);
+/* get the status of a given memory and store in buffer */
+uint8_t dfu_mal_getstatus(uint32_t addr, uint8_t cmd, uint8_t *buffer);
+
+#endif /* __DFU_MAL_H */
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Source/dfu_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Source/dfu_core.c
new file mode 100644
index 0000000000..b67cebc6d5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Source/dfu_core.c
@@ -0,0 +1,652 @@
+/*!
+ \file dfu_core.c
+ \brief USB DFU device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "dfu_core.h"
+#include "drv_usb_hw.h"
+#include "dfu_mal.h"
+#include "flash_if.h"
+#include
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x0189U
+
+/* local function prototypes ('static') */
+static uint8_t dfu_init(usb_dev *udev, uint8_t config_index);
+static uint8_t dfu_deinit(usb_dev *udev, uint8_t config_index);
+static uint8_t dfu_req_handler(usb_dev *udev, usb_req *req);
+static uint8_t dfu_ctlx_in(usb_dev *udev);
+static void dfu_detach(usb_dev *udev, usb_req *req);
+static void dfu_dnload(usb_dev *udev, usb_req *req);
+static void dfu_upload(usb_dev *udev, usb_req *req);
+static void dfu_getstatus(usb_dev *udev, usb_req *req);
+static void dfu_clrstatus(usb_dev *udev, usb_req *req);
+static void dfu_getstate(usb_dev *udev, usb_req *req);
+static void dfu_abort(usb_dev *udev, usb_req *req);
+static void dfu_mode_leave(usb_dev *udev);
+static uint8_t dfu_getstatus_complete (usb_dev *udev);
+
+static void (*dfu_request_process[])(usb_dev *udev, usb_req *req) =
+{
+ [DFU_DETACH] = dfu_detach,
+ [DFU_DNLOAD] = dfu_dnload,
+ [DFU_UPLOAD] = dfu_upload,
+ [DFU_GETSTATUS] = dfu_getstatus,
+ [DFU_CLRSTATUS] = dfu_clrstatus,
+ [DFU_GETSTATE] = dfu_getstate,
+ [DFU_ABORT] = dfu_abort
+};
+
+/* note:it should use the c99 standard when compiling the below codes */
+/* USB standard device descriptor */
+const usb_desc_dev dfu_dev_desc =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM
+};
+
+/* USB device configuration descriptor */
+const usb_dfu_desc_config_set dfu_config_desc =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = USB_DFU_CONFIG_DESC_SIZE,
+ .bNumInterfaces = 0x01U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x04U,
+ .bmAttributes = 0x80U,
+ .bMaxPower = 0x32U
+ },
+
+ .dfu_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x00U,
+ .bInterfaceClass = USB_DFU_CLASS,
+ .bInterfaceSubClass = USB_DFU_SUBCLASS_UPGRADE,
+ .bInterfaceProtocol = USB_DFU_PROTOCL_DFU,
+ .iInterface = 0x05U
+ },
+
+ .dfu_func =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_dfu_func),
+ .bDescriptorType = DFU_DESC_TYPE
+ },
+ .bmAttributes = USB_DFU_CAN_DOWNLOAD | USB_DFU_CAN_UPLOAD | USB_DFU_WILL_DETACH,
+ .wDetachTimeOut = 0x00FFU,
+ .wTransferSize = TRANSFER_SIZE,
+ .bcdDFUVersion = 0x011AU,
+ },
+};
+
+/* USB language ID Descriptor */
+static const usb_desc_LANGID usbd_language_id_desc =
+{
+ .header = {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static const usb_desc_str manufacturer_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static const usb_desc_str product_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'U', 'S', 'B', '_', 'D', 'F', 'U'}
+};
+
+/* USBD serial string */
+static usb_desc_str serial_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(2U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+/* USB configure string */
+static const usb_desc_str config_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(15U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', ' ', 'U', 'S', 'B', ' ', 'C', 'O', 'N', 'F', 'I', 'G'}
+};
+
+static const usb_desc_str interface_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(44U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'@', 'I', 'n', 't', 'e', 'r', 'n', 'a', 'l', 'F', 'l', 'a', 's', 'h', ' ', '/', '0', 'x', '0', '8', '0', '0',
+ '0', '0', '0', '0', '/', '1', '6', '*', '0', '0', '1', 'K', 'a', ',', '4', '8', '*', '0', '0', '1', 'K', 'g'}
+};
+
+void *const usbd_dfu_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string,
+ [STR_IDX_CONFIG] = (uint8_t *)&config_string,
+ [STR_IDX_ITF] = (uint8_t *)&interface_string
+};
+
+usb_desc dfu_desc = {
+ .dev_desc = (uint8_t *)&dfu_dev_desc,
+ .config_desc = (uint8_t *)&dfu_config_desc,
+ .strings = usbd_dfu_strings
+};
+
+usb_class_core dfu_class = {
+ .init = dfu_init,
+ .deinit = dfu_deinit,
+ .req_proc = dfu_req_handler,
+ .ctlx_in = dfu_ctlx_in
+};
+
+/*!
+ \brief initialize the DFU device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t dfu_init (usb_dev *udev, uint8_t config_index)
+{
+ static usbd_dfu_handler dfu_handler;
+
+ /* unlock the internal flash */
+ dfu_mal_init();
+
+ memset((void *)&dfu_handler, 0, sizeof(usbd_dfu_handler));
+
+ dfu_handler.base_addr = APP_LOADED_ADDR;
+ dfu_handler.manifest_state = MANIFEST_COMPLETE;
+ dfu_handler.bState = STATE_DFU_IDLE;
+ dfu_handler.bStatus = STATUS_OK;
+
+ udev->dev.class_data[USBD_DFU_INTERFACE] = (void *)&dfu_handler;
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the DFU device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t dfu_deinit (usb_dev *udev, uint8_t config_index)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ /* restore device default state */
+ memset(udev->dev.class_data[USBD_DFU_INTERFACE], 0, sizeof(usbd_dfu_handler));
+
+ dfu->bState = STATE_DFU_IDLE;
+ dfu->bStatus = STATUS_OK;
+
+ /* lock the internal flash */
+ dfu_mal_deinit();
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the DFU class-specific requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t dfu_req_handler (usb_dev *udev, usb_req *req)
+{
+ if (req->bRequest < DFU_REQ_MAX) {
+ dfu_request_process[req->bRequest](udev, req);
+ } else {
+ return USBD_FAIL;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle data Stage
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: the endpoint number
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t dfu_ctlx_in (usb_dev *udev)
+{
+ dfu_getstatus_complete(udev);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief leave DFU mode and reset device to jump to user loaded code
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+static void dfu_mode_leave (usb_dev *udev)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ dfu->manifest_state = MANIFEST_COMPLETE;
+
+ if (dfu_config_desc.dfu_func.bmAttributes & 0x04U) {
+ dfu->bState = STATE_DFU_MANIFEST_SYNC;
+ } else {
+ dfu->bState = STATE_DFU_MANIFEST_WAIT_RESET;
+
+ /* lock the internal flash */
+ dfu_mal_deinit();
+
+ /* generate system reset to allow jumping to the user code */
+ eclic_system_reset();
+ }
+}
+
+/*!
+ \brief handle data IN stage in control endpoint 0
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval usb device operation status
+ */
+static uint8_t dfu_getstatus_complete (usb_dev *udev)
+{
+ uint32_t addr;
+
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ if (STATE_DFU_DNBUSY == dfu->bState) {
+ /* decode the special command */
+ if (0U == dfu->block_num) {
+ if (1U == dfu->data_len){
+ if (GET_COMMANDS == dfu->buf[0]) {
+ /* no operation */
+ }
+ } else if (5U == dfu->data_len) {
+ if (SET_ADDRESS_POINTER == dfu->buf[0]) {
+ /* set flash operation address */
+ dfu->base_addr = *(uint32_t *)(dfu->buf + 1U);
+ } else if (ERASE == dfu->buf[0]) {
+ dfu->base_addr = *(uint32_t *)(dfu->buf + 1U);
+
+ dfu_mal_erase(dfu->base_addr);
+ } else {
+ /* no operation */
+ }
+ } else {
+ /* no operation */
+ }
+ } else if (dfu->block_num > 1U) { /* regular download command */
+ /* decode the required address */
+ addr = (dfu->block_num - 2U) * TRANSFER_SIZE + dfu->base_addr;
+
+ dfu_mal_write (dfu->buf, addr, dfu->data_len);
+
+ dfu->block_num = 0U;
+ } else {
+ /* no operation */
+ }
+
+ dfu->data_len = 0U;
+
+ /* update the device state and poll timeout */
+ dfu->bState = STATE_DFU_DNLOAD_SYNC;
+
+ return USBD_OK;
+ } else if (dfu->bState == STATE_DFU_MANIFEST) { /* manifestation in progress */
+ /* start leaving DFU mode */
+ dfu_mode_leave(udev);
+ } else {
+ /* no operation */
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the DFU_DETACH request
+ \param[in] udev: pointer to usb device instance
+ \param[in] req: DFU class request
+ \param[out] none
+ \retval none.
+*/
+static void dfu_detach(usb_dev *udev, usb_req *req)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ switch (dfu->bState) {
+ case STATE_DFU_IDLE:
+ case STATE_DFU_DNLOAD_SYNC:
+ case STATE_DFU_DNLOAD_IDLE:
+ case STATE_DFU_MANIFEST_SYNC:
+ case STATE_DFU_UPLOAD_IDLE:
+ dfu->bStatus = STATUS_OK;
+ dfu->bState = STATE_DFU_IDLE;
+ dfu->iString = 0U; /* iString */
+
+ dfu->block_num = 0U;
+ dfu->data_len = 0U;
+ break;
+
+ default:
+ break;
+ }
+
+ /* check the detach capability in the DFU functional descriptor */
+ if (dfu_config_desc.dfu_func.wDetachTimeOut & DFU_DETACH_MASK) {
+ usbd_disconnect (udev);
+
+ usbd_connect (udev);
+ } else {
+ /* wait for the period of time specified in detach request */
+ usb_mdelay (4U);
+ }
+}
+
+/*!
+ \brief handle the DFU_DNLOAD request
+ \param[in] udev: pointer to usb device instance
+ \param[in] req: DFU class request
+ \param[out] none
+ \retval none
+*/
+static void dfu_dnload(usb_dev *udev, usb_req *req)
+{
+ usb_transc *transc = &udev->dev.transc_out[0];
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ switch (dfu->bState) {
+ case STATE_DFU_IDLE:
+ case STATE_DFU_DNLOAD_IDLE:
+ if (req->wLength > 0U) {
+ /* update the global length and block number */
+ dfu->block_num = req->wValue;
+ dfu->data_len = req->wLength;
+
+ dfu->bState = STATE_DFU_DNLOAD_SYNC;
+
+ transc->remain_len = dfu->data_len;
+ transc->xfer_buf = dfu->buf;
+ } else {
+ dfu->manifest_state = MANIFEST_IN_PROGRESS;
+ dfu->bState = STATE_DFU_MANIFEST_SYNC;
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief handles the DFU UPLOAD request.
+ \param[in] udev: pointer to usb device instance
+ \param[in] req: DFU class request
+ \param[out] none
+ \retval none
+*/
+static void dfu_upload (usb_dev *udev, usb_req *req)
+{
+ uint8_t *phy_addr = NULL;
+ uint32_t addr = 0U;
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ if(req->wLength <= 0U) {
+ dfu->bState = STATE_DFU_IDLE;
+ return;
+ }
+
+ switch (dfu->bState) {
+ case STATE_DFU_IDLE:
+ case STATE_DFU_UPLOAD_IDLE:
+ /* update the global length and block number */
+ dfu->block_num = req->wValue;
+ dfu->data_len = req->wLength;
+
+ /* DFU get command */
+ if (0U == dfu->block_num) {
+ /* update the state machine */
+ dfu->bState = (dfu->data_len > 3U) ? STATE_DFU_IDLE : STATE_DFU_UPLOAD_IDLE;
+
+ /* store the values of all supported commands */
+ dfu->buf[0] = GET_COMMANDS;
+ dfu->buf[1] = SET_ADDRESS_POINTER;
+ dfu->buf[2] = ERASE;
+
+ /* send the status data over EP0 */
+ transc->xfer_buf = &(dfu->buf[0]);
+ transc->remain_len = 3U;
+ } else if (dfu->block_num > 1U) {
+ dfu->bState = STATE_DFU_UPLOAD_IDLE;
+
+ /* change is accelerated */
+ addr = (dfu->block_num - 2U) * TRANSFER_SIZE + dfu->base_addr;
+
+ /* return the physical address where data are stored */
+ phy_addr = dfu_mal_read (dfu->buf, addr, dfu->data_len);
+
+ /* send the status data over EP0 */
+ transc->xfer_buf = phy_addr;
+ transc->remain_len = dfu->data_len;
+ } else {
+ dfu->bState = STATUS_ERR_STALLEDPKT;
+ }
+ break;
+
+ default:
+ dfu->data_len = 0U;
+ dfu->block_num = 0U;
+ break;
+ }
+}
+
+/*!
+ \brief handle the DFU_GETSTATUS request
+ \param[in] udev: pointer to usb device instance
+ \param[in] req: DFU class request
+ \param[out] none
+ \retval none
+*/
+static void dfu_getstatus (usb_dev *udev, usb_req *req)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ switch (dfu->bState) {
+ case STATE_DFU_DNLOAD_SYNC:
+ if (0U != dfu->data_len) {
+ dfu->bState = STATE_DFU_DNBUSY;
+
+ if (0U == dfu->block_num) {
+ if (ERASE == dfu->buf[0]) {
+ dfu_mal_getstatus (dfu->base_addr, CMD_ERASE, (uint8_t *)&dfu->bwPollTimeout0);
+ } else {
+ dfu_mal_getstatus (dfu->base_addr, CMD_WRITE, (uint8_t *)&dfu->bwPollTimeout0);
+ }
+ }
+ } else {
+ dfu->bState = STATE_DFU_DNLOAD_IDLE;
+ }
+ break;
+
+ case STATE_DFU_MANIFEST_SYNC:
+ if (MANIFEST_IN_PROGRESS == dfu->manifest_state) {
+ dfu->bState = STATE_DFU_MANIFEST;
+ dfu->bwPollTimeout0 = 1U;
+ } else if ((MANIFEST_COMPLETE == dfu->manifest_state) && \
+ (dfu_config_desc.dfu_func.bmAttributes & 0x04U)){
+ dfu->bState = STATE_DFU_IDLE;
+ dfu->bwPollTimeout0 = 0U;
+ } else {
+ /* no operation */
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* send the status data of DFU interface to host over EP0 */
+ transc->xfer_buf = (uint8_t *)&(dfu->bStatus);
+ transc->remain_len = 6U;
+}
+
+/*!
+ \brief handle the DFU_CLRSTATUS request
+ \param udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void dfu_clrstatus (usb_dev *udev, usb_req *req)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ if (STATE_DFU_ERROR == dfu->bState) {
+ dfu->bStatus = STATUS_OK;
+ dfu->bState = STATE_DFU_IDLE;
+ } else {
+ /* state error */
+ dfu->bStatus = STATUS_ERR_UNKNOWN;
+ dfu->bState = STATE_DFU_ERROR;
+ }
+
+ dfu->iString = 0U; /* iString: index = 0 */
+}
+
+/*!
+ \brief handle the DFU_GETSTATE request
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void dfu_getstate (usb_dev *udev, usb_req *req)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ /* send the current state of the DFU interface to host */
+ transc->xfer_buf = &(dfu->bState);
+ transc->remain_len = 1U;
+}
+
+/*!
+ \brief handle the DFU_ABORT request
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void dfu_abort (usb_dev *udev, usb_req *req)
+{
+ usbd_dfu_handler *dfu = (usbd_dfu_handler *)udev->dev.class_data[USBD_DFU_INTERFACE];
+
+ switch (dfu->bState){
+ case STATE_DFU_IDLE:
+ case STATE_DFU_DNLOAD_SYNC:
+ case STATE_DFU_DNLOAD_IDLE:
+ case STATE_DFU_MANIFEST_SYNC:
+ case STATE_DFU_UPLOAD_IDLE:
+ dfu->bStatus = STATUS_OK;
+ dfu->bState = STATE_DFU_IDLE;
+ dfu->iString = 0U; /* iString: index = 0 */
+
+ dfu->block_num = 0U;
+ dfu->data_len = 0U;
+ break;
+
+ default:
+ break;
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Source/dfu_mal.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Source/dfu_mal.c
new file mode 100644
index 0000000000..128a0f7547
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/dfu/Source/dfu_mal.c
@@ -0,0 +1,233 @@
+/*!
+ \file dfu_mal.c
+ \brief USB DFU device media access layer functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "dfu_mal.h"
+#include "flash_if.h"
+#include "drv_usb_hw.h"
+#include "usbd_transc.h"
+
+extern usb_core_driver usb_dfu_dev;
+
+extern struct {
+ uint8_t buf[TRANSFER_SIZE];
+ uint16_t data_len;
+ uint16_t block_num;
+ uint32_t base_addr;
+} prog;
+
+dfu_mal_prop* tMALTab[MAX_USED_MEMORY_MEDIA] = {
+ &DFU_Flash_cb
+};
+
+/* The list of memory interface string descriptor pointers. This list
+ can be updated whenever a memory has to be added or removed */
+const uint8_t* USBD_DFU_StringDesc[MAX_USED_MEMORY_MEDIA] =
+{
+ (const uint8_t *)FLASH_IF_STRING
+};
+
+static uint8_t dfu_mal_checkaddr (uint32_t addr);
+
+/*!
+ \brief initialize the memory media on the GD32
+ \param[in] none
+ \param[out] none
+ \retval MAL_OK
+*/
+uint8_t dfu_mal_init (void)
+{
+ uint32_t mem_index = 0U;
+
+ /* initialize all supported memory medias */
+ for (mem_index = 0U; mem_index < MAX_USED_MEMORY_MEDIA; mem_index++) {
+ /* check if the memory media exists */
+ if (NULL != tMALTab[mem_index]->mal_init) {
+ tMALTab[mem_index]->mal_init();
+ }
+ }
+
+ return MAL_OK;
+}
+
+/*!
+ \brief deinitialize the memory media on the GD32
+ \param[in] none
+ \param[out] none
+ \retval MAL_OK
+*/
+uint8_t dfu_mal_deinit (void)
+{
+ uint32_t mem_index = 0U;
+
+ /* deinitializes all supported memory medias */
+ for (mem_index = 0U; mem_index < MAX_USED_MEMORY_MEDIA; mem_index++) {
+ /* check if the memory media exists */
+ if (NULL != tMALTab[mem_index]->mal_deinit) {
+ tMALTab[mem_index]->mal_deinit();
+ }
+ }
+
+ return MAL_OK;
+}
+
+/*!
+ \brief erase a memory sector
+ \param[in] addr: memory sector address/code
+ \param[out] none
+ \retval MAL_OK
+*/
+uint8_t dfu_mal_erase (uint32_t addr)
+{
+ uint32_t mem_index = dfu_mal_checkaddr(addr);
+
+ /* check if the address is in protected area */
+ if (IS_PROTECTED_AREA(addr)) {
+ return MAL_FAIL;
+ }
+
+ if (mem_index < MAX_USED_MEMORY_MEDIA) {
+ /* check if the operation is supported */
+ if (NULL != tMALTab[mem_index]->mal_erase) {
+ return tMALTab[mem_index]->mal_erase(addr);
+ } else {
+ return MAL_FAIL;
+ }
+ } else {
+ return MAL_FAIL;
+ }
+}
+
+/*!
+ \brief write data to sectors of memory
+ \param[in] buf: the data buffer to be write
+ \param[in] addr: memory sector address/code
+ \param[in] len: data length
+ \param[out] none
+ \retval MAL_OK
+*/
+uint8_t dfu_mal_write (uint8_t *buf, uint32_t addr, uint32_t len)
+{
+ uint32_t mem_index = dfu_mal_checkaddr(addr);
+
+ /* check if the address is in protected area */
+ if (IS_PROTECTED_AREA(addr)) {
+ return MAL_FAIL;
+ }
+
+ if (mem_index < MAX_USED_MEMORY_MEDIA) {
+ /* check if the operation is supported */
+ if (NULL != tMALTab[mem_index]->mal_write) {
+ return tMALTab[mem_index]->mal_write(buf, addr, len);
+ } else {
+ return MAL_FAIL;
+ }
+ } else {
+ return MAL_FAIL;
+ }
+}
+
+/*!
+ \brief read data from sectors of memory
+ \param[in] buf: the data buffer to be write
+ \param[in] addr: memory sector address/code
+ \param[in] len: data length
+ \param[out] none
+ \retval pointer to buffer
+*/
+uint8_t* dfu_mal_read (uint8_t *buf, uint32_t addr, uint32_t len)
+{
+ uint32_t mem_index = 0U;
+
+ if (OB_RDPT != addr) {
+ mem_index = dfu_mal_checkaddr(addr);
+ }
+
+ if (mem_index < MAX_USED_MEMORY_MEDIA) {
+ /* check if the operation is supported */
+ if (NULL != tMALTab[mem_index]->mal_read) {
+ return tMALTab[mem_index]->mal_read(buf, addr, len);
+ } else {
+ return buf;
+ }
+ } else {
+ return buf;
+ }
+}
+
+/*!
+ \brief get the status of a given memory and store in buffer
+ \param[in] addr: memory sector address/code
+ \param[in] cmd: 0 for erase and 1 for write
+ \param[in] buffer: pointer to the buffer where the status data will be stored
+ \param[out] none
+ \retval MAL_OK if all operations are OK, MAL_FAIL else
+*/
+uint8_t dfu_mal_getstatus (uint32_t addr, uint8_t cmd, uint8_t *buffer)
+{
+ uint32_t mem_index = dfu_mal_checkaddr(addr);
+
+ if (mem_index < MAX_USED_MEMORY_MEDIA) {
+ if (cmd & 0x01U) {
+ SET_POLLING_TIMEOUT(tMALTab[mem_index]->write_timeout);
+ } else {
+ SET_POLLING_TIMEOUT(tMALTab[mem_index]->erase_timeout);
+ }
+
+ return MAL_OK;
+ } else {
+ return MAL_FAIL;
+ }
+}
+
+/*!
+ \brief check the address is supported
+ \param[in] addr: memory sector address/code
+ \param[out] none
+ \retval index of the addressed memory
+*/
+static uint8_t dfu_mal_checkaddr (uint32_t addr)
+{
+ uint8_t mem_index = 0U;
+
+ /* check with all supported memories */
+ for (mem_index = 0U; mem_index < MAX_USED_MEMORY_MEDIA; mem_index++) {
+ /* if the check address is supported, return the memory index */
+ if (MAL_OK == tMALTab[mem_index]->mal_checkaddr(addr)) {
+ return mem_index;
+ }
+ }
+
+ /* if there is no memory found, return MAX_USED_MEMORY_MEDIA */
+ return (MAX_USED_MEMORY_MEDIA);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Include/custom_hid_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Include/custom_hid_core.h
new file mode 100644
index 0000000000..980f3383a5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Include/custom_hid_core.h
@@ -0,0 +1,70 @@
+/*!
+ \file custom_hid_core.h
+ \brief definitions for HID core
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-08, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __CUSTOM_HID_CORE_H
+#define __CUSTOM_HID_CORE_H
+
+#include "usbd_enum.h"
+#include "usb_hid.h"
+
+#define DESC_LEN_REPORT 96U
+#define DESC_LEN_CONFIG 41U
+
+#define NO_CMD 0xFFU
+
+#define MAX_PERIPH_NUM 4U
+
+typedef struct {
+ uint8_t data[2];
+
+ uint8_t reportID;
+ uint8_t idlestate;
+ uint8_t protocol;
+} custom_hid_handler;
+
+typedef struct {
+ void (*periph_config[MAX_PERIPH_NUM])(void);
+} hid_fop_handler;
+
+extern usb_desc custom_hid_desc;
+extern usb_class_core usbd_custom_hid_cb;
+
+/* function declarations */
+/* register HID interface operation functions */
+uint8_t custom_hid_itfop_register (usb_dev *udev, hid_fop_handler *hid_fop);
+/* send custom HID report */
+uint8_t custom_hid_report_send (usb_dev *udev, uint8_t *report, uint32_t len);
+
+#endif /* __CUSTOM_HID_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Include/standard_hid_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Include/standard_hid_core.h
new file mode 100644
index 0000000000..3540f81f0e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Include/standard_hid_core.h
@@ -0,0 +1,68 @@
+/*!
+ \file standard_hid_core.h
+ \brief definitions for HID core
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __STANDARD_HID_CORE_H
+#define __STANDARD_HID_CORE_H
+
+#include "usbd_enum.h"
+#include "usb_hid.h"
+
+#define USB_HID_CONFIG_DESC_LEN 0x22U
+#define USB_HID_REPORT_DESC_LEN 0x4AU
+
+#define NO_CMD 0xFFU
+
+typedef struct {
+ uint32_t protocol;
+ uint32_t idle_state;
+
+ uint8_t data[HID_IN_PACKET];
+ __IO uint8_t prev_transfer_complete;
+} standard_hid_handler;
+
+typedef struct {
+ void (*hid_itf_config) (void);
+ void (*hid_itf_data_process) (usb_dev *udev);
+} hid_fop_handler;
+
+extern usb_desc hid_desc;
+extern usb_class_core usbd_hid_cb;
+
+/* function declarations */
+/* register HID interface operation functions */
+uint8_t hid_itfop_register (usb_dev *udev, hid_fop_handler *hid_fop);
+/* send keyboard report */
+uint8_t hid_report_send (usb_dev *pudev, uint8_t *report, uint32_t len);
+
+#endif /* __STANDARD_HID_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Source/custom_hid_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Source/custom_hid_core.c
new file mode 100644
index 0000000000..4e86f637d3
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Source/custom_hid_core.c
@@ -0,0 +1,489 @@
+/*!
+ \file custom_hid_core.c
+ \brief custom HID class driver
+
+ \version 2020-08-04, V1.1.1, firmware for GD32VF103
+ \version 2020-12-08, V1.1.1, firmware for GD32VF103
+ \version 2020-12-11, V1.1.2, firmware for GD32VF103
+ \version 2021-05-19, V1.1.3, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "custom_hid_core.h"
+#include "usbd_enum.h"
+#include
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x028AU
+
+/* Note:it should use the C99 standard when compiling the below codes */
+/* USB standard device descriptor */
+const usb_desc_dev custom_hid_dev_desc =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV,
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM,
+};
+
+/* USB device configuration descriptor */
+const usb_hid_desc_config_set custom_hid_config_desc =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = DESC_LEN_CONFIG,
+ .bNumInterfaces = 0x01U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0x80U,
+ .bMaxPower = 0x32U
+ },
+
+ .hid_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x02U,
+ .bInterfaceClass = USB_HID_CLASS,
+ .bInterfaceSubClass = 0x00U,
+ .bInterfaceProtocol = 0x00U,
+ .iInterface = 0x00U
+ },
+
+ .hid_vendor =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_hid),
+ .bDescriptorType = USB_DESCTYPE_HID
+ },
+ .bcdHID = 0x0111U,
+ .bCountryCode = 0x00U,
+ .bNumDescriptors = 0x01U,
+ .bDescriptorType = USB_DESCTYPE_REPORT,
+ .wDescriptorLength = DESC_LEN_REPORT,
+ },
+
+ .hid_epin =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = CUSTOMHID_IN_EP,
+ .bmAttributes = USB_EP_ATTR_INT,
+ .wMaxPacketSize = CUSTOMHID_IN_PACKET,
+ .bInterval = 0x20U
+ },
+
+ .hid_epout =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = CUSTOMHID_OUT_EP,
+ .bmAttributes = USB_EP_ATTR_INT,
+ .wMaxPacketSize = CUSTOMHID_OUT_PACKET,
+ .bInterval = 0x20U
+ }
+};
+
+/* USB language ID descriptor */
+static const usb_desc_LANGID usbd_language_id_desc =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static const usb_desc_str manufacturer_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static const usb_desc_str product_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(14U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'C', 'u', 's', 't', 'o', 'm', 'H', 'I', 'D'}
+};
+
+/* USBD serial string */
+static usb_desc_str serial_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+/* USB string descriptor set */
+void *const usbd_hid_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc custom_hid_desc = {
+ .dev_desc = (uint8_t *)&custom_hid_dev_desc,
+ .config_desc = (uint8_t *)&custom_hid_config_desc,
+ .strings = usbd_hid_strings
+};
+
+const uint8_t customhid_report_descriptor[DESC_LEN_REPORT] =
+{
+ 0x06, 0x00, 0xFF, /* USAGE_PAGE (Vendor Defined: 0xFF00) */
+ 0x09, 0x00, /* USAGE (Custom Device) */
+ 0xa1, 0x01, /* COLLECTION (Application) */
+
+ /* led 1 */
+ 0x85, 0x11, /* REPORT_ID (0x11) */
+ 0x09, 0x01, /* USAGE (LED 1) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
+
+ /* led 2 */
+ 0x85, 0x12, /* REPORT_ID (0x12) */
+ 0x09, 0x02, /* USAGE (LED 2) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
+
+ /* led 3 */
+ 0x85, 0x13, /* REPORT_ID (0x13) */
+ 0x09, 0x03, /* USAGE (LED 3) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
+
+ /* led 4 */
+ 0x85, 0x14, /* REPORT_ID (0x14) */
+ 0x09, 0x04, /* USAGE (LED 4) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
+
+ /* wakeup key */
+ 0x85, 0x15, /* REPORT_ID (0x15) */
+ 0x09, 0x05, /* USAGE (Push Button) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x01, /* REPORT_SIZE (1) */
+ 0x81, 0x02, /* INPUT (Data,Var,Abs,Vol) */
+
+ 0x75, 0x07, /* REPORT_SIZE (7) */
+ 0x81, 0x03, /* INPUT (Cnst,Var,Abs,Vol) */
+
+ /* tamper key */
+ 0x85, 0x16, /* REPORT_ID (0x16) */
+ 0x09, 0x06, /* USAGE (Push Button) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x01, /* REPORT_SIZE (1) */
+ 0x81, 0x02, /* INPUT (Data,Var,Abs,Vol) */
+
+ 0x75, 0x07, /* REPORT_SIZE (7) */
+ 0x81, 0x03, /* INPUT (Cnst,Var,Abs,Vol) */
+
+ 0xc0 /* END_COLLECTION */
+};
+
+/* local function prototypes ('static') */
+static uint8_t custom_hid_init (usb_dev *udev, uint8_t config_index);
+static uint8_t custom_hid_deinit (usb_dev *udev, uint8_t config_index);
+static uint8_t custom_hid_req_handler (usb_dev *udev, usb_req *req);
+static uint8_t custom_hid_data_in (usb_dev *udev, uint8_t ep_num);
+static uint8_t custom_hid_data_out (usb_dev *udev, uint8_t ep_num);
+
+usb_class_core usbd_custom_hid_cb =
+{
+ .command = NO_CMD,
+ .alter_set = 0U,
+
+ .init = custom_hid_init,
+ .deinit = custom_hid_deinit,
+
+ .req_proc = custom_hid_req_handler,
+
+ .data_in = custom_hid_data_in,
+ .data_out = custom_hid_data_out
+};
+
+/*!
+ \brief register HID interface operation functions
+ \param[in] udev: pointer to USB device instance
+ \param[in] hid_fop: HID operation functions structure
+ \param[out] none
+ \retval USB device operation status
+*/
+uint8_t custom_hid_itfop_register (usb_dev *udev, hid_fop_handler *hid_fop)
+{
+ if (NULL != hid_fop) {
+ udev->dev.user_data = hid_fop;
+
+ return USBD_OK;
+ }
+
+ return USBD_FAIL;
+}
+
+/*!
+ \brief send custom HID report
+ \param[in] udev: pointer to USB device instance
+ \param[in] report: pointer to HID report
+ \param[in] len: data length
+ \param[out] none
+ \retval USB device operation status
+*/
+uint8_t custom_hid_report_send (usb_dev *udev, uint8_t *report, uint32_t len)
+{
+ usbd_ep_send (udev, CUSTOMHID_IN_EP, report, len);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief initialize the HID device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t custom_hid_init (usb_dev *udev, uint8_t config_index)
+{
+ static custom_hid_handler hid_handler;
+
+ memset((void *)&hid_handler, 0U, sizeof(custom_hid_handler));
+
+ /* Initialize the data Tx endpoint */
+ usbd_ep_setup (udev, &(custom_hid_config_desc.hid_epin));
+
+ /* Initialize the data Rx endpoint */
+ usbd_ep_setup (udev, &(custom_hid_config_desc.hid_epout));
+
+ /* prepare receive data */
+ usbd_ep_recev (udev, CUSTOMHID_OUT_EP, hid_handler.data, 2U);
+
+ udev->dev.class_data[CUSTOM_HID_INTERFACE] = (void *)&hid_handler;
+
+ if (udev->dev.user_data != NULL) {
+ for (uint8_t i = 0U; i < MAX_PERIPH_NUM; i++) {
+ if (((hid_fop_handler *)udev->dev.user_data)->periph_config[i] != NULL) {
+ ((hid_fop_handler *)udev->dev.user_data)->periph_config[i]();
+ }
+ }
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the HID device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t custom_hid_deinit (usb_dev *udev, uint8_t config_index)
+{
+ /* deinitialize HID endpoints */
+ usbd_ep_clear(udev, CUSTOMHID_IN_EP);
+ usbd_ep_clear(udev, CUSTOMHID_OUT_EP);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the HID class-specific requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t custom_hid_req_handler (usb_dev *udev, usb_req *req)
+{
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ custom_hid_handler *hid = (custom_hid_handler *)udev->dev.class_data[CUSTOM_HID_INTERFACE];
+
+ switch (req->bRequest) {
+ case GET_REPORT:
+ break;
+
+ case GET_IDLE:
+ transc->xfer_buf = (uint8_t *)&hid->idlestate;
+ transc->remain_len = 1U;
+ break;
+
+ case GET_PROTOCOL:
+ transc->xfer_buf = (uint8_t *)&hid->protocol;
+ transc->remain_len = 1U;
+ break;
+
+ case SET_REPORT:
+ hid->reportID = (uint8_t)(req->wValue);
+ break;
+
+ case SET_IDLE:
+ hid->idlestate = (uint8_t)(req->wValue >> 8U);
+ break;
+
+ case SET_PROTOCOL:
+ hid->protocol = (uint8_t)(req->wValue);
+ break;
+
+ case USB_GET_DESCRIPTOR:
+ if (USB_DESCTYPE_REPORT == (req->wValue >> 8U)) {
+ transc->remain_len = USB_MIN(DESC_LEN_REPORT, req->wLength);
+ transc->xfer_buf = (uint8_t *)customhid_report_descriptor;
+ }
+ break;
+
+ default:
+ return USBD_FAIL;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle custom HID data
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t custom_hid_data_in (usb_dev *udev, uint8_t ep_num)
+{
+ return USBD_OK;
+}
+
+/*!
+ \brief handle custom HID data
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t custom_hid_data_out (usb_dev *udev, uint8_t ep_num)
+{
+ custom_hid_handler *hid = (custom_hid_handler *)udev->dev.class_data[CUSTOM_HID_INTERFACE];
+
+ switch (hid->data[0]){
+ case 0x11U:
+ if (RESET != hid->data[1]) {
+ gd_eval_led_on(LED1);
+ } else {
+ gd_eval_led_off(LED1);
+ }
+ break;
+
+ case 0x12U:
+ if (RESET != hid->data[1]) {
+ gd_eval_led_on(LED2);
+ } else {
+ gd_eval_led_off(LED2);
+ }
+ break;
+
+ case 0x13U:
+ if (RESET != hid->data[1]) {
+ gd_eval_led_on(LED3);
+ } else {
+ gd_eval_led_off(LED3);
+ }
+ break;
+
+ case 0x14U:
+ if (RESET != hid->data[1]) {
+ gd_eval_led_on(LED4);
+ } else {
+ gd_eval_led_off(LED4);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ usbd_ep_recev (udev, CUSTOMHID_IN_EP, hid->data, 2U);
+
+ return USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Source/standard_hid_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Source/standard_hid_core.c
new file mode 100644
index 0000000000..9bea3661f3
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/hid/Source/standard_hid_core.c
@@ -0,0 +1,403 @@
+/*!
+ \file standard_hid_core.c
+ \brief HID class driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "standard_hid_core.h"
+#include
+
+#define USBD_VID 0x28e9U
+#define USBD_PID 0x0389U
+
+/* Note:it should use the C99 standard when compiling the below codes */
+/* USB standard device descriptor */
+const usb_desc_dev hid_dev_desc =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM
+};
+
+const usb_hid_desc_config_set hid_config_desc =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = USB_HID_CONFIG_DESC_LEN,
+ .bNumInterfaces = 0x01U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0xA0U,
+ .bMaxPower = 0x32U
+ },
+
+ .hid_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x01U,
+ .bInterfaceClass = USB_HID_CLASS,
+ .bInterfaceSubClass = USB_HID_SUBCLASS_BOOT_ITF,
+ .bInterfaceProtocol = USB_HID_PROTOCOL_KEYBOARD,
+ .iInterface = 0x00U
+ },
+
+ .hid_vendor =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_hid),
+ .bDescriptorType = USB_DESCTYPE_HID
+ },
+ .bcdHID = 0x0111U,
+ .bCountryCode = 0x00U,
+ .bNumDescriptors = 0x01U,
+ .bDescriptorType = USB_DESCTYPE_REPORT,
+ .wDescriptorLength = USB_HID_REPORT_DESC_LEN,
+ },
+
+ .hid_epin =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = HID_IN_EP,
+ .bmAttributes = USB_EP_ATTR_INT,
+ .wMaxPacketSize = HID_IN_PACKET,
+ .bInterval = 0x40U
+ }
+};
+
+/* USB language ID Descriptor */
+const usb_desc_LANGID usbd_language_id_desc =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static const usb_desc_str manufacturer_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static const usb_desc_str product_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(14U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-','U', 'S', 'B', '_', 'M', 'o', 'u', 's', 'e'}
+};
+
+/* USBD serial string */
+static usb_desc_str serial_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+void *const usbd_hid_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc hid_desc = {
+ .dev_desc = (uint8_t *)&hid_dev_desc,
+ .config_desc = (uint8_t *)&hid_config_desc,
+ .strings = usbd_hid_strings
+};
+
+const uint8_t hid_report_desc[USB_HID_REPORT_DESC_LEN] =
+{
+ 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
+ 0x09, 0x02, /* USAGE (Mouse) */
+ 0xa1, 0x01, /* COLLECTION (Application) */
+ 0x09, 0x01, /* USAGE (Pointer) */
+
+ 0xa1, 0x00, /* COLLECTION (Physical) */
+ 0x05, 0x09, /* USAGE_PAGE (Button) */
+ 0x19, 0x01, /* USAGE_MINIMUM (1) */
+ 0x29, 0x03, /* USAGE_MAXIMUM (3) */
+
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x95, 0x03, /* REPORT_COUNT (3) */
+ 0x75, 0x01, /* REPORT_SIZE (1) */
+ 0x81, 0x02, /* INPUT (Data,Var,Abs) */
+
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0x75, 0x05, /* REPORT_SIZE (5) */
+ 0x81, 0x01, /* INPUT (Cnst,Var,Abs) */
+
+ 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
+ 0x09, 0x30, /* USAGE (X) */
+ 0x09, 0x31, /* USAGE (Y) */
+ 0x09, 0x38, /* USAGE (Wheel) */
+
+ 0x15, 0x81, /* LOGICAL_MINIMUM (81) */
+ 0x25, 0x7F, /* LOGICAL_MAXIMUM (7F) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, 0x03, /* REPORT_COUNT (3) */
+ 0x81, 0x06, /* INPUT (Data,Ary,Abs) */
+ 0xc0, /* END_COLLECTION */
+
+ 0x09, 0x3c, /* USAGE (Motion Wakeup) */
+ 0x05, 0xff, /* USAGE PAGE (vendor defined) */
+ 0x09, 0x01, /* USAGE(01) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
+ 0x75, 0x01, /* REPORT_SIZE (1) */
+ 0x95, 0x02, /* REPORT_COUNT (2) */
+ 0xb1, 0x22, /* Feature (var) */
+ 0x75, 0x06, /* REPORT_SIZE (6) */
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0xb1, 0x01, /* Feature (cnst) */
+ 0xc0
+};
+
+/* local function prototypes ('static') */
+static uint8_t hid_init (usb_dev *udev, uint8_t config_index);
+static uint8_t hid_deinit (usb_dev *udev, uint8_t config_index);
+static uint8_t hid_req (usb_dev *udev, usb_req *req);
+static uint8_t hid_data_in (usb_dev *udev, uint8_t ep_num);
+
+usb_class_core usbd_hid_cb = {
+ .command = NO_CMD,
+ .alter_set = 0U,
+
+ .init = hid_init,
+ .deinit = hid_deinit,
+ .req_proc = hid_req,
+ .data_in = hid_data_in
+};
+
+/*!
+ \brief register HID interface operation functions
+ \param[in] udev: pointer to USB device instance
+ \param[in] hid_fop: HID operation functions structure
+ \param[out] none
+ \retval USB device operation status
+*/
+uint8_t hid_itfop_register (usb_dev *udev, hid_fop_handler *hid_fop)
+{
+ if (NULL != hid_fop) {
+ udev->dev.user_data = (void *)hid_fop;
+
+ return USBD_OK;
+ }
+
+ return USBD_FAIL;
+}
+
+/*!
+ \brief send keyboard report
+ \param[in] udev: pointer to USB device instance
+ \param[in] report: pointer to HID report
+ \param[in] len: data length
+ \param[out] none
+ \retval USB device operation status
+*/
+uint8_t hid_report_send (usb_dev *udev, uint8_t *report, uint32_t len)
+{
+ standard_hid_handler *hid = (standard_hid_handler *)udev->dev.class_data[USBD_HID_INTERFACE];
+
+ hid->prev_transfer_complete = 0U;
+
+ usbd_ep_send(udev, HID_IN_EP, report, len);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief initialize the HID device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t hid_init (usb_dev *udev, uint8_t config_index)
+{
+ static standard_hid_handler hid_handler;
+
+ memset((void *)&hid_handler, 0U, sizeof(standard_hid_handler));
+
+ /* Initialize the data Tx endpoint */
+ usbd_ep_setup (udev, &(hid_config_desc.hid_epin));
+
+ hid_handler.prev_transfer_complete = 1U;
+
+ udev->dev.class_data[USBD_HID_INTERFACE] = (void *)&hid_handler;
+
+ if (NULL != udev->dev.user_data) {
+ ((hid_fop_handler *)udev->dev.user_data)->hid_itf_config();
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the HID device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t hid_deinit (usb_dev *udev, uint8_t config_index)
+{
+ /* deinitialize HID endpoints */
+ usbd_ep_clear(udev, HID_IN_EP);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the HID class-specific requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t hid_req (usb_dev *udev, usb_req *req)
+{
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ standard_hid_handler *hid = (standard_hid_handler *)udev->dev.class_data[USBD_HID_INTERFACE];
+
+ switch (req->bRequest) {
+ case GET_REPORT:
+ /* no use for this driver */
+ break;
+
+ case GET_IDLE:
+ transc->xfer_buf = (uint8_t *)&hid->idle_state;
+
+ transc->remain_len = 1U;
+ break;
+
+ case GET_PROTOCOL:
+ transc->xfer_buf = (uint8_t *)&hid->protocol;
+
+ transc->remain_len = 1U;
+ break;
+
+ case SET_REPORT:
+ /* no use for this driver */
+ break;
+
+ case SET_IDLE:
+ hid->idle_state = (uint8_t)(req->wValue >> 8U);
+ break;
+
+ case SET_PROTOCOL:
+ hid->protocol = (uint8_t)(req->wValue);
+ break;
+
+ case USB_GET_DESCRIPTOR:
+ if (USB_DESCTYPE_REPORT == (req->wValue >> 8U)) {
+ transc->remain_len = USB_MIN(USB_HID_REPORT_DESC_LEN, req->wLength);
+ transc->xfer_buf = (uint8_t *)hid_report_desc;
+
+ return REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle data stage
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t hid_data_in (usb_dev *udev, uint8_t ep_num)
+{
+ standard_hid_handler *hid = (standard_hid_handler *)udev->dev.class_data[USBD_HID_INTERFACE];
+
+ if (0U != hid->data[2]) {
+ hid->data[2] = 0x00U;
+
+ usbd_ep_send(udev, HID_IN_EP, hid->data, HID_IN_PACKET);
+ } else {
+ hid->prev_transfer_complete = 1U;
+ }
+
+ return USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/iap/Include/usb_iap_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/iap/Include/usb_iap_core.h
new file mode 100644
index 0000000000..629265851a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/iap/Include/usb_iap_core.h
@@ -0,0 +1,84 @@
+/*!
+ \file usb_iap_core.h
+ \brief the header file of IAP driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USB_IAP_CORE_H
+#define __USB_IAP_CORE_H
+
+#include "usbd_enum.h"
+#include "usb_hid.h"
+
+#define USB_SERIAL_STRING_SIZE 0x06U
+#define USB_DESC_LEN_IAP_REPORT 35U
+#define USB_DESC_LEN_IAP_CONFIG_SET 41U
+
+/* special commands with download request */
+#define IAP_OPTION_BYTE1 0x01U
+#define IAP_ERASE 0x02U
+#define IAP_DNLOAD 0x03U
+#define IAP_LEAVE 0x04U
+#define IAP_GETBIN_ADDRESS 0x05U
+#define IAP_OPTION_BYTE2 0x06U
+
+typedef struct
+{
+ uint8_t report_buf[IAP_OUT_PACKET + 1U];
+ uint8_t option_byte[IAP_IN_PACKET];
+
+ /* state machine variables */
+ uint8_t dev_status[IAP_IN_PACKET];
+ uint8_t bin_addr[IAP_IN_PACKET];
+
+ uint8_t reportID;
+ uint8_t flag;
+
+ uint32_t protocol;
+ uint32_t idlestate;
+
+ uint16_t transfer_times;
+ uint16_t page_count;
+ uint16_t lps; /* last packet size */
+ uint32_t file_length;
+ uint32_t base_address;
+} usbd_iap_handler;
+
+typedef void (*app_func) (void);
+
+extern usb_desc iap_desc;
+extern usb_class_core iap_class;
+
+/* function declarations */
+/* send iap report */
+uint8_t iap_report_send (usb_dev *udev, uint8_t *report, uint32_t len);
+
+#endif /* __USB_IAP_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/iap/Source/usb_iap_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/iap/Source/usb_iap_core.c
new file mode 100644
index 0000000000..c3800dd9a8
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/iap/Source/usb_iap_core.c
@@ -0,0 +1,562 @@
+/*!
+ \file usb_iap_core.c
+ \brief IAP driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usb_iap_core.h"
+#include "flash_operation.h"
+#include
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x0228U
+
+/* Note:it should use the C99 standard when compiling the below codes */
+/* USB standard device descriptor */
+__ALIGN_BEGIN const usb_desc_dev iap_dev_desc __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM
+};
+
+__ALIGN_BEGIN const usb_hid_desc_config_set iap_config_desc __ALIGN_END =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = USB_DESC_LEN_IAP_CONFIG_SET,
+ .bNumInterfaces = 0x01U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0x80U,
+ .bMaxPower = 0x32U
+ },
+
+ .hid_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x02U,
+ .bInterfaceClass = USB_HID_CLASS,
+ .bInterfaceSubClass = 0x00U,
+ .bInterfaceProtocol = 0x00U,
+ .iInterface = 0x00U
+ },
+
+ .hid_vendor =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_hid),
+ .bDescriptorType = USB_DESCTYPE_HID
+ },
+ .bcdHID = 0x0111U,
+ .bCountryCode = 0x00U,
+ .bNumDescriptors = 0x01U,
+ .bDescriptorType = USB_DESCTYPE_REPORT,
+ .wDescriptorLength = USB_DESC_LEN_IAP_REPORT,
+ },
+
+ .hid_epin =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = IAP_IN_EP,
+ .bmAttributes = USB_EP_ATTR_INT,
+ .wMaxPacketSize = IAP_IN_PACKET,
+ .bInterval = 0x01U
+ },
+
+ .hid_epout =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = IAP_OUT_EP,
+ .bmAttributes = USB_EP_ATTR_INT,
+ .wMaxPacketSize = IAP_OUT_PACKET,
+ .bInterval = 0x01U
+ }
+};
+
+/* USB language ID Descriptor */
+static __ALIGN_BEGIN const usb_desc_LANGID usbd_language_id_desc __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static __ALIGN_BEGIN const usb_desc_str manufacturer_string __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static __ALIGN_BEGIN const usb_desc_str product_string __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'U', 'S', 'B', '_', 'I', 'A', 'P'}
+};
+
+/* USBD serial string */
+static __ALIGN_BEGIN usb_desc_str serial_string __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(2U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+void *const usbd_iap_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc iap_desc = {
+ .dev_desc = (uint8_t *)&iap_dev_desc,
+ .config_desc = (uint8_t *)&iap_config_desc,
+ .strings = usbd_iap_strings
+};
+
+/* local function prototypes ('static') */
+static uint8_t iap_init (usb_dev *udev, uint8_t config_index);
+static uint8_t iap_deinit (usb_dev *udev, uint8_t config_index);
+static uint8_t iap_req_handler (usb_dev *udev, usb_req *req);
+static uint8_t iap_data_out (usb_dev *udev, uint8_t ep_num);
+
+/* IAP requests management functions */
+static void iap_req_erase (usb_dev *udev);
+static void iap_req_dnload (usb_dev *udev);
+static void iap_req_optionbyte(usb_dev *udev, uint8_t option_num);
+static void iap_req_leave (usb_dev *udev);
+static void iap_address_send (usb_dev *udev);
+
+usb_class_core iap_class = {
+ .init = iap_init,
+ .deinit = iap_deinit,
+ .req_proc = iap_req_handler,
+ .data_out = iap_data_out
+};
+
+/* USB custom HID device report descriptor */
+__ALIGN_BEGIN const uint8_t iap_report_desc[USB_DESC_LEN_IAP_REPORT] __ALIGN_END =
+{
+ 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
+ 0x09, 0x00, /* USAGE (Custom Device) */
+ 0xa1, 0x01, /* COLLECTION (Application) */
+
+ /* IAP command and data */
+ 0x85, 0x01, /* REPORT_ID (0x01) */
+ 0x09, 0x01, /* USAGE (IAP command) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0xff, /* LOGICAL_MAXIMUM (255) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, REPORT_OUT_COUNT,
+ 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
+
+ /* device status and option byte */
+ 0x85, 0x02, /* REPORT_ID (0x02) */
+ 0x09, 0x02, /* USAGE (Status and option byte) */
+ 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
+ 0x25, 0xff, /* LOGICAL_MAXIMUM (255) */
+ 0x75, 0x08, /* REPORT_SIZE (8) */
+ 0x95, REPORT_IN_COUNT, /* REPORT_COUNT (23) */
+ 0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */
+
+ 0xc0 /* END_COLLECTION */
+};
+
+/*!
+ \brief send iap report
+ \param[in] udev: pointer to USB device instance
+ \param[in] report: pointer to HID report
+ \param[in] len: data length
+ \param[out] none
+ \retval USB device operation status
+*/
+uint8_t iap_report_send (usb_dev *udev, uint8_t *report, uint32_t len)
+{
+ usbd_ep_send (udev, IAP_IN_EP, report, len);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief initialize the IAP device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t iap_init (usb_dev *udev, uint8_t config_index)
+{
+ static __ALIGN_BEGIN usbd_iap_handler iap_handler __ALIGN_END;
+
+ /* initialize Tx endpoint */
+ usbd_ep_setup(udev, &(iap_config_desc.hid_epin));
+
+ /* initialize Rx endpoint */
+ usbd_ep_setup(udev, &(iap_config_desc.hid_epout));
+
+ /* unlock the internal flash */
+ fmc_unlock();
+
+ memset((void *)&iap_handler, 0U, sizeof(usbd_iap_handler));
+
+ /* prepare receive data */
+ usbd_ep_recev(udev, IAP_OUT_EP, iap_handler.report_buf, IAP_OUT_PACKET);
+
+ iap_handler.base_address = APP_LOADED_ADDR;
+
+ udev->dev.class_data[USBD_IAP_INTERFACE] = (void *)&iap_handler;
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the iap device
+ \param[in] udev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t iap_deinit (usb_dev *udev, uint8_t config_index)
+{
+ /* deinitialize iap endpoints */
+ usbd_ep_clear (udev, IAP_IN_EP);
+ usbd_ep_clear (udev, IAP_OUT_EP);
+
+ /* lock the internal flash */
+ fmc_lock();
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the iap class-specific requests
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t iap_req_handler (usb_dev *udev, usb_req *req)
+{
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ usbd_iap_handler *iap = (usbd_iap_handler *)udev->dev.class_data[USBD_IAP_INTERFACE];
+
+ switch (req->bRequest) {
+ case GET_REPORT:
+ /* no use for this driver */
+ break;
+
+ case GET_IDLE:
+ transc->xfer_buf = (uint8_t *)&iap->idlestate;
+ transc->remain_len = 1U;
+ break;
+
+ case GET_PROTOCOL:
+ transc->xfer_buf = (uint8_t *)&iap->protocol;
+ transc->remain_len = 1U;
+ break;
+
+ case SET_REPORT:
+ iap->reportID = (uint8_t)(req->wValue);
+ break;
+
+ case SET_IDLE:
+ iap->idlestate = (uint8_t)(req->wValue >> 8U);
+ break;
+
+ case SET_PROTOCOL:
+ iap->protocol = (uint8_t)(req->wValue);
+ break;
+
+ case USB_GET_DESCRIPTOR:
+ if (USB_DESCTYPE_REPORT == (req->wValue >> 8U)) {
+ transc->remain_len = USB_MIN(USB_DESC_LEN_IAP_REPORT, req->wLength);
+ transc->xfer_buf = (uint8_t *)iap_report_desc;
+ }
+ break;
+
+ default:
+ return USBD_FAIL;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle data out stage
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier
+ \param[out] none
+ \retval none
+*/
+static uint8_t iap_data_out (usb_dev *udev ,uint8_t ep_num)
+{
+ usbd_iap_handler *iap = (usbd_iap_handler *)udev->dev.class_data[USBD_IAP_INTERFACE];
+
+ if (0x01U == iap->report_buf[0]) {
+ switch (iap->report_buf[1]) {
+ case IAP_DNLOAD:
+ iap_req_dnload(udev);
+ break;
+
+ case IAP_ERASE:
+ iap_req_erase(udev);
+ break;
+
+ case IAP_OPTION_BYTE1:
+ iap_req_optionbyte(udev, 0x01U);
+ break;
+
+ case IAP_LEAVE:
+ iap_req_leave(udev);
+ break;
+
+ case IAP_GETBIN_ADDRESS:
+ iap_address_send(udev);
+ break;
+
+ case IAP_OPTION_BYTE2:
+ iap_req_optionbyte(udev, 0x02U);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ usbd_ep_recev(udev, IAP_OUT_EP, iap->report_buf, IAP_OUT_PACKET);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the IAP_DNLOAD request
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void iap_req_dnload(usb_dev *udev)
+{
+ usbd_iap_handler *iap = (usbd_iap_handler *)udev->dev.class_data[USBD_IAP_INTERFACE];
+
+ if (0U != iap->transfer_times) {
+ if (1U == iap->transfer_times) {
+ if (0U == iap->lps) {
+ iap_data_write(&iap->report_buf[2], iap->base_address, TRANSFER_SIZE);
+ } else {
+ iap_data_write(&iap->report_buf[2], iap->base_address, iap->file_length % TRANSFER_SIZE);
+ iap->lps = 0U;
+ }
+
+ iap->dev_status[0] = 0x02U;
+ iap->dev_status[1] = 0x02U;
+ iap_report_send (udev, iap->dev_status, IAP_IN_PACKET);
+ } else {
+ iap_data_write(&iap->report_buf[2], iap->base_address, TRANSFER_SIZE);
+
+ iap->base_address += TRANSFER_SIZE;
+ }
+
+ iap->transfer_times--;
+ }
+}
+
+/*!
+ \brief handle the IAP_ERASE request
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void iap_req_erase(usb_dev *udev)
+{
+ uint32_t addr = 0U;
+
+ usbd_iap_handler *iap = (usbd_iap_handler *)udev->dev.class_data[USBD_IAP_INTERFACE];
+
+ /* get base address to erase */
+ iap->base_address = iap->report_buf[2];
+ iap->base_address |= iap->report_buf[3] << 8U;
+ iap->base_address |= iap->report_buf[4] << 16U;
+ iap->base_address |= iap->report_buf[5] << 24U;
+
+ /* get file length */
+ iap->file_length = iap->report_buf[7];
+ iap->file_length |= iap->report_buf[8] << 8U;
+ iap->file_length |= iap->report_buf[9] << 16U;
+ iap->file_length |= iap->report_buf[10] << 24U;
+
+ iap->lps = iap->file_length % TRANSFER_SIZE;
+ if (0U == iap->lps) {
+ iap->transfer_times = iap->file_length / TRANSFER_SIZE;
+ } else {
+ iap->transfer_times = iap->file_length / TRANSFER_SIZE + 1U;
+ }
+
+ /* check if the address is in protected area */
+ if (IS_PROTECTED_AREA(iap->base_address)) {
+ return;
+ }
+
+ addr = iap->base_address;
+
+ /* unlock the flash program erase controller */
+ fmc_unlock();
+
+ flash_erase(addr, iap->file_length, iap->report_buf);
+
+ fmc_lock();
+
+ iap->dev_status[0] = 0x02U;
+ iap->dev_status[1] = 0x01U;
+
+ usbd_ep_send(udev, IAP_IN_EP, iap->dev_status, IAP_IN_PACKET);
+}
+
+/*!
+ \brief handle the IAP_OPTION_BYTE request
+ \param[in] udev: pointer to USB device instance
+ \param[in] option_num: number of option byte
+ \param[out] none
+ \retval none
+*/
+static void iap_req_optionbyte(usb_dev *udev, uint8_t option_num)
+{
+ uint8_t i = 0U;
+ uint32_t address = 0U;
+
+ usbd_iap_handler *iap = (usbd_iap_handler *)udev->dev.class_data[USBD_IAP_INTERFACE];
+
+ iap->option_byte[0]= 0x02U;
+
+ if (0x01U == option_num) {
+ address = OPT_BYTE_ADDR1;
+#ifdef OPT_BYTE_ADDR2
+ } else if (0x02U == option_num) {
+ address = OPT_BYTE_ADDR2;
+#endif
+ } else {
+ return;
+ }
+
+ for (i = 1U; i < 17U; i++) {
+ iap->option_byte[i] = *(uint8_t *)address;
+ address++;
+ }
+
+ iap_report_send (udev, iap->option_byte, IAP_IN_PACKET);
+}
+
+/*!
+ \brief handle the IAP_LEAVE request
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void iap_req_leave(usb_dev *udev)
+{
+ /* lock the internal flash */
+ fmc_lock();
+
+ /* generate system reset to allow jumping to the user code */
+ eclic_system_reset();
+}
+
+/*!
+ \brief handle the IAP_SEND_ADDRESS request
+ \param[in] udev: pointer to usb device instance
+ \param[out] none
+ \retval none
+*/
+static void iap_address_send(usb_dev *udev)
+{
+ usbd_iap_handler *iap = (usbd_iap_handler *)udev->dev.class_data[USBD_IAP_INTERFACE];
+
+ iap->bin_addr[0] = 0x02U;
+
+ iap->bin_addr[1] = (uint8_t)(APP_LOADED_ADDR);
+ iap->bin_addr[2] = (uint8_t)(APP_LOADED_ADDR >> 8U);
+ iap->bin_addr[3] = (uint8_t)(APP_LOADED_ADDR >> 16U);
+ iap->bin_addr[4] = (uint8_t)(APP_LOADED_ADDR >> 24U);
+
+ iap_report_send (udev, iap->bin_addr, IAP_IN_PACKET);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
new file mode 100644
index 0000000000..ea9c0fdb79
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_bbb.h
@@ -0,0 +1,101 @@
+/*!
+ \file usbd_msc_bbb.h
+ \brief the header file of the usbd_msc_bot.c file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_MSC_BBB_H
+#define __USBD_MSC_BBB_H
+
+#include "usbd_core.h"
+#include "msc_bbb.h"
+#include "usbd_msc_mem.h"
+#include "usbd_msc_scsi.h"
+
+/* MSC BBB state */
+enum msc_bbb_state {
+ BBB_IDLE = 0U, /*!< idle state */
+ BBB_DATA_OUT, /*!< data OUT state */
+ BBB_DATA_IN, /*!< data IN state */
+ BBB_LAST_DATA_IN, /*!< last data IN state */
+ BBB_SEND_DATA /*!< send immediate data state */
+};
+
+/* MSC BBB status */
+enum msc_bbb_status {
+ BBB_STATUS_NORMAL = 0U, /*!< normal status */
+ BBB_STATUS_RECOVERY, /*!< recovery status*/
+ BBB_STATUS_ERROR /*!< error status */
+};
+
+typedef struct
+{
+ uint8_t bbb_data[MSC_MEDIA_PACKET_SIZE];
+
+ uint8_t max_lun;
+ uint8_t bbb_state;
+ uint8_t bbb_status;
+
+ uint32_t bbb_datalen;
+
+ msc_bbb_cbw bbb_cbw;
+ msc_bbb_csw bbb_csw;
+
+ uint8_t scsi_sense_head;
+ uint8_t scsi_sense_tail;
+
+ uint32_t scsi_blk_size[MEM_LUN_NUM];
+ uint32_t scsi_blk_nbr[MEM_LUN_NUM];
+
+ uint32_t scsi_blk_addr;
+ uint32_t scsi_blk_len;
+ uint32_t scsi_disk_pop;
+
+ msc_scsi_sense scsi_sense[SENSE_LIST_DEEPTH];
+} usbd_msc_handler;
+
+/* function declarations */
+/* initialize the bbb process */
+void msc_bbb_init (usb_core_driver *pudev);
+/* reset the BBB machine */
+void msc_bbb_reset (usb_core_driver *pudev);
+/* de-initialize the BBB machine */
+void msc_bbb_deinit (usb_core_driver *pudev);
+/* handle BBB data IN stage */
+void msc_bbb_data_in (usb_core_driver *pudev, uint8_t ep_num);
+/* handle BBB data OUT stage */
+void msc_bbb_data_out (usb_core_driver *pudev, uint8_t ep_num);
+/* send the CSW(command status wrapper) */
+void msc_bbb_csw_send (usb_core_driver *pudev, uint8_t csw_status);
+/* complete the clear feature request */
+void msc_bbb_clrfeature (usb_core_driver *pudev, uint8_t ep_num);
+
+#endif /* __USBD_MSC_BBB_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_core.h
new file mode 100644
index 0000000000..fc8269c8b5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_core.h
@@ -0,0 +1,59 @@
+/*!
+ \file usbd_msc_core.h
+ \brief the header file of USB MSC device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_MSC_CORE_H
+#define __USBD_MSC_CORE_H
+
+#include "usbd_core.h"
+#include "usb_msc.h"
+
+#define USB_MSC_CONFIG_DESC_SIZE 32U
+
+#define MSC_EPIN_SIZE MSC_DATA_PACKET_SIZE
+#define MSC_EPOUT_SIZE MSC_DATA_PACKET_SIZE
+
+/* USB configuration descriptor structure */
+typedef struct
+{
+ usb_desc_config config;
+
+ usb_desc_itf msc_itf;
+ usb_desc_ep msc_epin;
+ usb_desc_ep msc_epout;
+} usb_desc_config_set;
+
+extern usb_desc msc_desc;
+extern usb_class_core msc_class;
+
+#endif /* __USBD_MSC_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_data.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_data.h
new file mode 100644
index 0000000000..3460d51312
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_data.h
@@ -0,0 +1,49 @@
+/*!
+ \file usbd_msc_data.h
+ \brief the header file of the usbd_msc_data.c file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_MSC_DATA_H
+#define __USBD_MSC_DATA_H
+
+#include "usbd_conf.h"
+
+#define MODE_SENSE6_LENGTH 8U
+#define MODE_SENSE10_LENGTH 8U
+#define INQUIRY_PAGE00_LENGTH 96U
+#define FORMAT_CAPACITIES_LENGTH 20U
+
+extern const uint8_t msc_page00_inquiry_data[];
+extern const uint8_t msc_mode_sense6_data[];
+extern const uint8_t msc_mode_sense10_data[];
+
+#endif /* __USBD_MSC_DATA_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_mem.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
new file mode 100644
index 0000000000..e7a2e8ce5b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_mem.h
@@ -0,0 +1,59 @@
+/*!
+ \file usbd_msc_mem.h
+ \brief header file for storage memory
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_MSC_MEM_H
+#define __USBD_MSC_MEM_H
+
+#include "usbd_conf.h"
+
+#define USBD_STD_INQUIRY_LENGTH 36U
+
+typedef struct
+{
+ int8_t (*mem_init) (uint8_t lun);
+ int8_t (*mem_ready) (uint8_t lun);
+ int8_t (*mem_protected) (uint8_t lun);
+ int8_t (*mem_read) (uint8_t lun, uint8_t *buf, uint32_t block_addr, uint16_t block_len);
+ int8_t (*mem_write) (uint8_t lun, uint8_t *buf, uint32_t block_addr, uint16_t block_len);
+ int8_t (*mem_maxlun) (void);
+
+ uint8_t *mem_toc_data;
+ uint8_t *mem_inquiry_data[MEM_LUN_NUM];
+ uint32_t mem_block_size[MEM_LUN_NUM];
+ uint32_t mem_block_len[MEM_LUN_NUM];
+}usbd_mem_cb;
+
+extern usbd_mem_cb *usbd_mem_fops;
+
+#endif /* __USBD_MSC_MEM_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
new file mode 100644
index 0000000000..7e519b1dba
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Include/usbd_msc_scsi.h
@@ -0,0 +1,50 @@
+/*!
+ \file usbd_msc_scsi.h
+ \brief the header file of the usbd_msc_scsi.c file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_MSC_SCSI_H
+#define __USBD_MSC_SCSI_H
+
+#include "usbd_msc_data.h"
+#include "usbd_msc_bbb.h"
+#include "msc_scsi.h"
+
+#define SENSE_LIST_DEEPTH 4U
+
+/* function declarations */
+/* process SCSI commands */
+int8_t scsi_process_cmd (usb_core_driver *pudev, uint8_t lun, uint8_t *cmd);
+/* load the last error code in the error list */
+void scsi_sense_code (usb_core_driver *pudev, uint8_t lun, uint8_t skey, uint8_t asc);
+
+#endif /* __USBD_MSC_SCSI_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
new file mode 100644
index 0000000000..7a002c5e81
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_bbb.c
@@ -0,0 +1,287 @@
+/*!
+ \file usbd_msc_bbb.c
+ \brief USB BBB(Bulk/Bulk/Bulk) protocol core functions
+ \note BBB means Bulk-only transport protocol for USB MSC
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_enum.h"
+#include "usbd_msc_bbb.h"
+
+/* local function prototypes ('static') */
+static void msc_bbb_cbw_decode (usb_core_driver *pudev);
+static void msc_bbb_data_send (usb_core_driver *pudev, uint8_t *pbuf, uint32_t Len);
+static void msc_bbb_abort (usb_core_driver *pudev);
+
+/*!
+ \brief initialize the bbb process
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_init (usb_core_driver *pudev)
+{
+ uint8_t lun_num;
+
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_state = BBB_IDLE;
+ msc->bbb_status = BBB_STATUS_NORMAL;
+
+ /* init the storage logic unit */
+ for(lun_num = 0U; lun_num < MEM_LUN_NUM; lun_num++) {
+ usbd_mem_fops->mem_init(lun_num);
+ }
+
+ /* flush the Rx FIFO */
+ usbd_fifo_flush (pudev, MSC_OUT_EP);
+
+ /* flush the Tx FIFO */
+ usbd_fifo_flush (pudev, MSC_IN_EP);
+
+ /* prepare endpoint to receive the first BBB CBW */
+ usbd_ep_recev (pudev, MSC_OUT_EP, (uint8_t *)&msc->bbb_cbw, BBB_CBW_LENGTH);
+}
+
+/*!
+ \brief reset the BBB machine
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_reset (usb_core_driver *pudev)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_state = BBB_IDLE;
+ msc->bbb_status = BBB_STATUS_RECOVERY;
+
+ /* prepare endpoint to receive the first BBB command */
+ usbd_ep_recev (pudev, MSC_OUT_EP, (uint8_t *)&msc->bbb_cbw, BBB_CBW_LENGTH);
+}
+
+/*!
+ \brief de-initialize the BBB machine
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_deinit (usb_core_driver *pudev)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_state = BBB_IDLE;
+}
+
+/*!
+ \brief handle BBB data IN stage
+ \param[in] pudev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_data_in (usb_core_driver *pudev, uint8_t ep_num)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ switch (msc->bbb_state) {
+ case BBB_DATA_IN:
+ if (scsi_process_cmd (pudev, msc->bbb_cbw.bCBWLUN, &msc->bbb_cbw.CBWCB[0]) < 0) {
+ msc_bbb_csw_send (pudev, CSW_CMD_FAILED);
+ }
+ break;
+
+ case BBB_SEND_DATA:
+ case BBB_LAST_DATA_IN:
+ msc_bbb_csw_send (pudev, CSW_CMD_PASSED);
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief handle BBB data OUT stage
+ \param[in] pudev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_data_out (usb_core_driver *pudev, uint8_t ep_num)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ switch (msc->bbb_state) {
+ case BBB_IDLE:
+ msc_bbb_cbw_decode (pudev);
+ break;
+
+ case BBB_DATA_OUT:
+ if (scsi_process_cmd (pudev, msc->bbb_cbw.bCBWLUN, &msc->bbb_cbw.CBWCB[0]) < 0) {
+ msc_bbb_csw_send (pudev, CSW_CMD_FAILED);
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief send the CSW(command status wrapper)
+ \param[in] pudev: pointer to USB device instance
+ \param[in] csw_status: CSW status
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_csw_send (usb_core_driver *pudev, uint8_t csw_status)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_csw.dCSWSignature = BBB_CSW_SIGNATURE;
+ msc->bbb_csw.bCSWStatus = csw_status;
+ msc->bbb_state = BBB_IDLE;
+
+ usbd_ep_send (pudev, MSC_IN_EP, (uint8_t *)&msc->bbb_csw, BBB_CSW_LENGTH);
+
+ /* prapare endpoint to receive next command */
+ usbd_ep_recev (pudev, MSC_OUT_EP, (uint8_t *)&msc->bbb_cbw, BBB_CBW_LENGTH);
+}
+
+/*!
+ \brief complete the clear feature request
+ \param[in] pudev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval none
+*/
+void msc_bbb_clrfeature (usb_core_driver *pudev, uint8_t ep_num)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if (msc->bbb_status == BBB_STATUS_ERROR)/* bad CBW signature */ {
+ usbd_ep_stall(pudev, MSC_IN_EP);
+
+ msc->bbb_status = BBB_STATUS_NORMAL;
+ } else if(((ep_num & 0x80U) == 0x80U) && (msc->bbb_status != BBB_STATUS_RECOVERY)) {
+ msc_bbb_csw_send (pudev, CSW_CMD_FAILED);
+ } else {
+
+ }
+}
+
+/*!
+ \brief decode the CBW command and set the BBB state machine accordingly
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+static void msc_bbb_cbw_decode (usb_core_driver *pudev)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_csw.dCSWTag = msc->bbb_cbw.dCBWTag;
+ msc->bbb_csw.dCSWDataResidue = msc->bbb_cbw.dCBWDataTransferLength;
+
+ if ((BBB_CBW_LENGTH != usbd_rxcount_get (pudev, MSC_OUT_EP)) ||
+ (BBB_CBW_SIGNATURE != msc->bbb_cbw.dCBWSignature)||
+ (msc->bbb_cbw.bCBWLUN > 1U) ||
+ (msc->bbb_cbw.bCBWCBLength < 1U) ||
+ (msc->bbb_cbw.bCBWCBLength > 16U)) {
+ /* illegal command handler */
+ scsi_sense_code (pudev, msc->bbb_cbw.bCBWLUN, ILLEGAL_REQUEST, INVALID_CDB);
+
+ msc->bbb_status = BBB_STATUS_ERROR;
+
+ msc_bbb_abort (pudev);
+ } else {
+ if (scsi_process_cmd (pudev, msc->bbb_cbw.bCBWLUN, &msc->bbb_cbw.CBWCB[0]) < 0) {
+ msc_bbb_abort (pudev);
+ } else if ((BBB_DATA_IN != msc->bbb_state) &&
+ (BBB_DATA_OUT != msc->bbb_state) &&
+ (BBB_LAST_DATA_IN != msc->bbb_state)) { /* burst xfer handled internally */
+ if (msc->bbb_datalen > 0U) {
+ msc_bbb_data_send (pudev, msc->bbb_data, msc->bbb_datalen);
+ } else if (0U == msc->bbb_datalen) {
+ msc_bbb_csw_send (pudev, CSW_CMD_PASSED);
+ } else {
+
+ }
+ } else {
+
+ }
+ }
+}
+
+/*!
+ \brief send the requested data
+ \param[in] pudev: pointer to USB device instance
+ \param[in] buf: pointer to data buffer
+ \param[in] len: data length
+ \param[out] none
+ \retval none
+*/
+static void msc_bbb_data_send (usb_core_driver *pudev, uint8_t *buf, uint32_t len)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ len = USB_MIN (msc->bbb_cbw.dCBWDataTransferLength, len);
+
+ msc->bbb_csw.dCSWDataResidue -= len;
+ msc->bbb_csw.bCSWStatus = CSW_CMD_PASSED;
+ msc->bbb_state = BBB_SEND_DATA;
+
+ usbd_ep_send (pudev, MSC_IN_EP, buf, len);
+}
+
+/*!
+ \brief abort the current transfer
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+static void msc_bbb_abort (usb_core_driver *pudev)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if ((0U == msc->bbb_cbw.bmCBWFlags) &&
+ (0U != msc->bbb_cbw.dCBWDataTransferLength) &&
+ (BBB_STATUS_NORMAL == msc->bbb_status)) {
+ usbd_ep_stall(pudev, MSC_OUT_EP);
+ }
+
+ usbd_ep_stall(pudev, MSC_IN_EP);
+
+ if (msc->bbb_status == BBB_STATUS_ERROR) {
+ usbd_ep_recev (pudev, MSC_OUT_EP, (uint8_t *)&msc->bbb_cbw, BBB_CBW_LENGTH);
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_core.c
new file mode 100644
index 0000000000..c6f1bfc77d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_core.c
@@ -0,0 +1,319 @@
+/*!
+ \file usbd_msc_core.c
+ \brief USB MSC device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_enum.h"
+#include "usbd_msc_bbb.h"
+#include "usbd_msc_core.h"
+#include
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x028FU
+
+/* local function prototypes ('static') */
+static uint8_t msc_core_init (usb_dev *pudev, uint8_t config_index);
+static uint8_t msc_core_deinit (usb_dev *pudev, uint8_t config_index);
+static uint8_t msc_core_req (usb_dev *pudev, usb_req *req);
+static uint8_t msc_core_in (usb_dev *pudev, uint8_t ep_num);
+static uint8_t msc_core_out (usb_dev *pudev, uint8_t ep_num);
+
+usb_class_core msc_class =
+{
+ .init = msc_core_init,
+ .deinit = msc_core_deinit,
+
+ .req_proc = msc_core_req,
+
+ .data_in = msc_core_in,
+ .data_out = msc_core_out
+};
+
+/* note: it should use the C99 standard when compiling the below codes */
+/* USB standard device descriptor */
+__ALIGN_BEGIN const usb_desc_dev msc_dev_desc __ALIGN_END =
+{
+ .header = {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM
+};
+
+/* USB device configuration descriptor */
+__ALIGN_BEGIN const usb_desc_config_set msc_config_desc __ALIGN_END =
+{
+ .config =
+ {
+ .header = {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = USB_MSC_CONFIG_DESC_SIZE,
+ .bNumInterfaces = 0x01U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0xC0U,
+ .bMaxPower = 0x32U
+ },
+
+ .msc_itf =
+ {
+ .header = {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x02U,
+ .bInterfaceClass = USB_CLASS_MSC,
+ .bInterfaceSubClass = USB_MSC_SUBCLASS_SCSI,
+ .bInterfaceProtocol = USB_MSC_PROTOCOL_BBB,
+ .iInterface = 0x00U
+ },
+
+ .msc_epin =
+ {
+ .header = {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = MSC_IN_EP,
+ .bmAttributes = USB_EP_ATTR_BULK,
+ .wMaxPacketSize = MSC_EPIN_SIZE,
+ .bInterval = 0x00U
+ },
+
+ .msc_epout =
+ {
+ .header = {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = MSC_OUT_EP,
+ .bmAttributes = USB_EP_ATTR_BULK,
+ .wMaxPacketSize = MSC_EPOUT_SIZE,
+ .bInterval = 0x00U
+ }
+};
+
+/* USB language ID descriptor */
+__ALIGN_BEGIN const usb_desc_LANGID usbd_language_id_desc __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static __ALIGN_BEGIN const usb_desc_str manufacturer_string __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static __ALIGN_BEGIN const usb_desc_str product_string __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'U', 'S', 'B', '_', 'M', 'S', 'C'}
+};
+
+/* USBD serial string */
+static __ALIGN_BEGIN usb_desc_str serial_string __ALIGN_END =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+/* USB string descriptor */
+void *const usbd_msc_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc msc_desc = {
+ .dev_desc = (uint8_t *)&msc_dev_desc,
+ .config_desc = (uint8_t *)&msc_config_desc,
+ .strings = usbd_msc_strings
+};
+
+static __ALIGN_BEGIN uint8_t usbd_msc_maxlun = 0U __ALIGN_END;
+
+/*!
+ \brief initialize the MSC device
+ \param[in] pudev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t msc_core_init (usb_dev *pudev, uint8_t config_index)
+{
+ static __ALIGN_BEGIN usbd_msc_handler msc_handler __ALIGN_END;
+
+ memset((void *)&msc_handler, 0U, sizeof(usbd_msc_handler));
+
+ pudev->dev.class_data[USBD_MSC_INTERFACE] = (void *)&msc_handler;
+
+ /* configure MSC Tx endpoint */
+ usbd_ep_setup (pudev, &(msc_config_desc.msc_epin));
+
+ /* configure MSC Rx endpoint */
+ usbd_ep_setup (pudev, &(msc_config_desc.msc_epout));
+
+ /* init the BBB layer */
+ msc_bbb_init(pudev);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the MSC device
+ \param[in] pudev: pointer to USB device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t msc_core_deinit (usb_dev *pudev, uint8_t config_index)
+{
+ /* clear MSC endpoints */
+ usbd_ep_clear (pudev, MSC_IN_EP);
+ usbd_ep_clear (pudev, MSC_OUT_EP);
+
+ /* un-init the BBB layer */
+ msc_bbb_deinit(pudev);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the MSC class-specific and standard requests
+ \param[in] pudev: pointer to USB device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t msc_core_req (usb_dev *pudev, usb_req *req)
+{
+ usb_transc *transc = &pudev->dev.transc_in[0];
+
+ switch (req->bRequest) {
+ case BBB_GET_MAX_LUN :
+ if((0U == req->wValue) &&
+ (1U == req->wLength) &&
+ (0x80U == (req->bmRequestType & 0x80U))) {
+ usbd_msc_maxlun = (uint8_t)usbd_mem_fops->mem_maxlun();
+
+ transc->xfer_buf = &usbd_msc_maxlun;
+ transc->remain_len = 1U;
+ } else {
+ return USBD_FAIL;
+ }
+ break;
+
+ case BBB_RESET :
+ if((0U == req->wValue) &&
+ (0U == req->wLength) &&
+ (0x80U != (req->bmRequestType & 0x80U))) {
+ msc_bbb_reset(pudev);
+ } else {
+ return USBD_FAIL;
+ }
+ break;
+
+ case USB_CLEAR_FEATURE:
+ msc_bbb_clrfeature (pudev, (uint8_t)req->wIndex);
+ break;
+
+ default:
+ return USBD_FAIL;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle data in stage
+ \param[in] pudev: pointer to USB device instance
+ \param[in] ep_num: the endpoint number
+ \param[out] none
+ \retval none
+*/
+static uint8_t msc_core_in (usb_dev *pudev, uint8_t ep_num)
+{
+ msc_bbb_data_in(pudev, ep_num);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle data out stage
+ \param[in] pudev: pointer to USB device instance
+ \param[in] ep_num: the endpoint number
+ \param[out] none
+ \retval none
+*/
+static uint8_t msc_core_out (usb_dev *pudev, uint8_t ep_num)
+{
+ msc_bbb_data_out (pudev, ep_num);
+
+ return USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_data.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_data.c
new file mode 100644
index 0000000000..9d7646bfee
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_data.c
@@ -0,0 +1,73 @@
+/*!
+ \file usbd_msc_data.c
+ \brief USB MSC vital inquiry pages and sense data
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_msc_data.h"
+
+/* USB mass storage page 0 inquiry data */
+const uint8_t msc_page00_inquiry_data[] =
+{
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ (INQUIRY_PAGE00_LENGTH - 4U),
+ 0x80U,
+ 0x83U,
+};
+
+/* USB mass storage sense 6 data */
+const uint8_t msc_mode_sense6_data[] =
+{
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U
+};
+
+/* USB mass storage sense 10 data */
+const uint8_t msc_mode_sense10_data[] =
+{
+ 0x00U,
+ 0x06U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U,
+ 0x00U
+};
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
new file mode 100644
index 0000000000..c699691402
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/msc/Source/usbd_msc_scsi.c
@@ -0,0 +1,686 @@
+/*!
+ \file usbd_msc_scsi.c
+ \brief USB SCSI layer functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_enum.h"
+#include "usbd_msc_bbb.h"
+#include "usbd_msc_scsi.h"
+#include "usbd_msc_data.h"
+
+/* local function prototypes ('static') */
+static int8_t scsi_test_unit_ready (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_inquiry (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_read_format_capacity (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_read_capacity10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_request_sense (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_mode_sense6 (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_toc_cmd_read (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_mode_sense10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_write10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_read10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_verify10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static int8_t scsi_process_read (usb_core_driver *pudev, uint8_t lun);
+static int8_t scsi_process_write (usb_core_driver *pudev, uint8_t lun);
+
+static inline int8_t scsi_check_address_range (usb_core_driver *pudev, uint8_t lun, uint32_t blk_offset, uint16_t blk_nbr);
+static inline int8_t scsi_format_cmd (usb_core_driver *pudev, uint8_t lun);
+static inline int8_t scsi_start_stop_unit (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+static inline int8_t scsi_allow_medium_removal (usb_core_driver *pudev, uint8_t lun, uint8_t *params);
+
+/*!
+ \brief process SCSI commands
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+int8_t scsi_process_cmd(usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ switch (params[0]) {
+ case SCSI_TEST_UNIT_READY:
+ return scsi_test_unit_ready (pudev, lun, params);
+
+ case SCSI_REQUEST_SENSE:
+ return scsi_request_sense (pudev, lun, params);
+
+ case SCSI_INQUIRY:
+ return scsi_inquiry (pudev, lun, params);
+
+ case SCSI_START_STOP_UNIT:
+ return scsi_start_stop_unit (pudev, lun, params);
+
+ case SCSI_ALLOW_MEDIUM_REMOVAL:
+ return scsi_allow_medium_removal (pudev, lun, params);
+
+ case SCSI_MODE_SENSE6:
+ return scsi_mode_sense6 (pudev, lun, params);
+
+ case SCSI_MODE_SENSE10:
+ return scsi_mode_sense10 (pudev, lun, params);
+
+ case SCSI_READ_FORMAT_CAPACITIES:
+ return scsi_read_format_capacity (pudev, lun, params);
+
+ case SCSI_READ_CAPACITY10:
+ return scsi_read_capacity10 (pudev, lun, params);
+
+ case SCSI_READ10:
+ return scsi_read10 (pudev, lun, params);
+
+ case SCSI_WRITE10:
+ return scsi_write10 (pudev, lun, params);
+
+ case SCSI_VERIFY10:
+ return scsi_verify10 (pudev, lun, params);
+
+ case SCSI_FORMAT_UNIT:
+ return scsi_format_cmd (pudev, lun);
+
+ case SCSI_READ_TOC_DATA:
+ return scsi_toc_cmd_read (pudev, lun, params);
+
+ default:
+ scsi_sense_code (pudev, lun, ILLEGAL_REQUEST, INVALID_CDB);
+ return -1;
+ }
+}
+
+/*!
+ \brief load the last error code in the error list
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] skey: sense key
+ \param[in] asc: additional aense key
+ \param[out] none
+ \retval none
+*/
+void scsi_sense_code (usb_core_driver *pudev, uint8_t lun, uint8_t skey, uint8_t asc)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->scsi_sense[msc->scsi_sense_tail].SenseKey = skey;
+ msc->scsi_sense[msc->scsi_sense_tail].ASC = asc << 8U;
+ msc->scsi_sense_tail++;
+
+ if (SENSE_LIST_DEEPTH == msc->scsi_sense_tail) {
+ msc->scsi_sense_tail = 0U;
+ }
+}
+
+/*!
+ \brief process SCSI Test Unit Ready command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_test_unit_ready (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ /* case 9 : Hi > D0 */
+ if (0U != msc->bbb_cbw.dCBWDataTransferLength) {
+ scsi_sense_code (pudev, msc->bbb_cbw.bCBWLUN, ILLEGAL_REQUEST, INVALID_CDB);
+
+ return -1;
+ }
+
+ if (0 != usbd_mem_fops->mem_ready(lun)) {
+ scsi_sense_code(pudev, lun, NOT_READY, MEDIUM_NOT_PRESENT);
+
+ return -1;
+ }
+
+ if (1U == msc->scsi_disk_pop) {
+ usbd_disconnect (pudev);
+ }
+
+ msc->bbb_datalen = 0U;
+
+ return 0;
+}
+
+/*!
+ \brief process Inquiry command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_inquiry (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint8_t *page = NULL;
+ uint16_t len = 0U;
+
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if (params[1] & 0x01U) {
+ /* Evpd is set */
+ page = (uint8_t *)msc_page00_inquiry_data;
+
+ len = INQUIRY_PAGE00_LENGTH;
+ } else {
+ page = (uint8_t *)usbd_mem_fops->mem_inquiry_data[lun];
+
+ len = (uint16_t)(page[4] + 5U);
+
+ if (params[4] <= len) {
+ len = params[4];
+ }
+ }
+
+ msc->bbb_datalen = len;
+
+ while (len) {
+ len--;
+ msc->bbb_data[len] = page[len];
+ }
+
+ return 0;
+}
+
+/*!
+ \brief process Read Capacity 10 command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_read_capacity10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint32_t blk_num = usbd_mem_fops->mem_block_len[lun] - 1U;
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->scsi_blk_nbr[lun] = usbd_mem_fops->mem_block_len[lun];
+ msc->scsi_blk_size[lun] = usbd_mem_fops->mem_block_size[lun];
+
+ msc->bbb_data[0] = (uint8_t)(blk_num >> 24U);
+ msc->bbb_data[1] = (uint8_t)(blk_num >> 16U);
+ msc->bbb_data[2] = (uint8_t)(blk_num >> 8U);
+ msc->bbb_data[3] = (uint8_t)(blk_num);
+
+ msc->bbb_data[4] = (uint8_t)(msc->scsi_blk_size[lun] >> 24U);
+ msc->bbb_data[5] = (uint8_t)(msc->scsi_blk_size[lun] >> 16U);
+ msc->bbb_data[6] = (uint8_t)(msc->scsi_blk_size[lun] >> 8U);
+ msc->bbb_data[7] = (uint8_t)(msc->scsi_blk_size[lun]);
+
+ msc->bbb_datalen = 8U;
+
+ return 0;
+}
+
+/*!
+ \brief process Read Format Capacity command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_read_format_capacity (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint16_t i = 0U;
+ uint32_t blk_size = usbd_mem_fops->mem_block_size[lun];
+ uint32_t blk_num = usbd_mem_fops->mem_block_len[lun];
+ uint32_t blk_nbr = blk_num - 1U;
+
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ for (i = 0U; i < 12U; i++) {
+ msc->bbb_data[i] = 0U;
+ }
+
+ msc->bbb_data[3] = 0x08U;
+ msc->bbb_data[4] = (uint8_t)(blk_nbr >> 24U);
+ msc->bbb_data[5] = (uint8_t)(blk_nbr >> 16U);
+ msc->bbb_data[6] = (uint8_t)(blk_nbr >> 8U);
+ msc->bbb_data[7] = (uint8_t)(blk_nbr);
+
+ msc->bbb_data[8] = 0x02U;
+ msc->bbb_data[9] = (uint8_t)(blk_size >> 16U);
+ msc->bbb_data[10] = (uint8_t)(blk_size >> 8U);
+ msc->bbb_data[11] = (uint8_t)(blk_size);
+
+ msc->bbb_datalen = 12U;
+
+ return 0;
+}
+
+/*!
+ \brief process Mode Sense6 command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_mode_sense6 (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint16_t len = 8U;
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_datalen = len;
+
+ while (len) {
+ len--;
+ msc->bbb_data[len] = msc_mode_sense6_data[len];
+ }
+
+ return 0;
+}
+
+/*!
+ \brief process Mode Sense10 command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_mode_sense10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint16_t len = 8U;
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_datalen = len;
+
+ while (len) {
+ len--;
+ msc->bbb_data[len] = msc_mode_sense10_data[len];
+ }
+
+ return 0;
+}
+
+/*!
+ \brief process Request Sense command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_request_sense (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint8_t i = 0U;
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ for (i = 0U; i < REQUEST_SENSE_DATA_LEN; i++) {
+ msc->bbb_data[i] = 0U;
+ }
+
+ msc->bbb_data[0] = 0x70U;
+ msc->bbb_data[7] = REQUEST_SENSE_DATA_LEN - 6U;
+
+ if ((msc->scsi_sense_head != msc->scsi_sense_tail)) {
+ msc->bbb_data[2] = msc->scsi_sense[msc->scsi_sense_head].SenseKey;
+ msc->bbb_data[12] = msc->scsi_sense[msc->scsi_sense_head].ASCQ;
+ msc->bbb_data[13] = msc->scsi_sense[msc->scsi_sense_head].ASC;
+ msc->scsi_sense_head++;
+
+ if (msc->scsi_sense_head == SENSE_LIST_DEEPTH) {
+ msc->scsi_sense_head = 0U;
+ }
+ }
+
+ msc->bbb_datalen = USB_MIN(REQUEST_SENSE_DATA_LEN, params[4]);
+
+ return 0;
+}
+
+/*!
+ \brief process Start Stop Unit command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static inline int8_t scsi_start_stop_unit (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_datalen = 0U;
+ msc->scsi_disk_pop = 1U;
+
+ return 0;
+}
+
+/*!
+ \brief process Allow Medium Removal command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static inline int8_t scsi_allow_medium_removal (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ msc->bbb_datalen = 0U;
+
+ return 0;
+}
+
+/*!
+ \brief process Read10 command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_read10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if (msc->bbb_state == BBB_IDLE) {
+ /* direction is from device to host */
+ if (0x80U != (msc->bbb_cbw.bmCBWFlags & 0x80U)) {
+ scsi_sense_code (pudev, msc->bbb_cbw.bCBWLUN, ILLEGAL_REQUEST, INVALID_CDB);
+
+ return -1;
+ }
+
+ if (0 != usbd_mem_fops->mem_ready(lun)) {
+ scsi_sense_code (pudev, lun, NOT_READY, MEDIUM_NOT_PRESENT);
+
+ return -1;
+ }
+
+ msc->scsi_blk_addr = (params[2] << 24U) | (params[3] << 16U) | \
+ (params[4] << 8U) | params[5];
+
+ msc->scsi_blk_len = (params[7] << 8U) | params[8];
+
+ if (scsi_check_address_range (pudev, lun, msc->scsi_blk_addr, (uint16_t)msc->scsi_blk_len) < 0) {
+ return -1; /* error */
+ }
+
+ msc->bbb_state = BBB_DATA_IN;
+
+ msc->scsi_blk_addr *= msc->scsi_blk_size[lun];
+ msc->scsi_blk_len *= msc->scsi_blk_size[lun];
+
+ /* cases 4,5 : Hi <> Dn */
+ if (msc->bbb_cbw.dCBWDataTransferLength != msc->scsi_blk_len) {
+ scsi_sense_code (pudev, msc->bbb_cbw.bCBWLUN, ILLEGAL_REQUEST, INVALID_CDB);
+
+ return -1;
+ }
+ }
+
+ msc->bbb_datalen = MSC_MEDIA_PACKET_SIZE;
+
+ return scsi_process_read (pudev, lun);
+}
+
+/*!
+ \brief process Write10 command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_write10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if (BBB_IDLE == msc->bbb_state) {
+ /* case 8 : Hi <> Do */
+ if (0x80U == (msc->bbb_cbw.bmCBWFlags & 0x80U)) {
+ scsi_sense_code (pudev, msc->bbb_cbw.bCBWLUN, ILLEGAL_REQUEST, INVALID_CDB);
+
+ return -1;
+ }
+
+ /* check whether media is ready */
+ if (0 != usbd_mem_fops->mem_ready(lun)) {
+ scsi_sense_code (pudev, lun, NOT_READY, MEDIUM_NOT_PRESENT);
+
+ return -1;
+ }
+
+ /* check if media is write-protected */
+ if (0 != usbd_mem_fops->mem_protected(lun)) {
+ scsi_sense_code (pudev, lun, NOT_READY, WRITE_PROTECTED);
+
+ return -1;
+ }
+
+ msc->scsi_blk_addr = (params[2] << 24U) | (params[3] << 16U) | \
+ (params[4] << 8U) | params[5];
+
+ msc->scsi_blk_len = (params[7] << 8U) | params[8];
+
+ /* check if LBA address is in the right range */
+ if (scsi_check_address_range (pudev, lun, msc->scsi_blk_addr, (uint16_t)msc->scsi_blk_len) < 0) {
+ return -1; /* error */
+ }
+
+ msc->scsi_blk_addr *= msc->scsi_blk_size[lun];
+ msc->scsi_blk_len *= msc->scsi_blk_size[lun];
+
+ /* cases 3,11,13 : Hn,Ho <> D0 */
+ if (msc->bbb_cbw.dCBWDataTransferLength != msc->scsi_blk_len) {
+ scsi_sense_code (pudev, msc->bbb_cbw.bCBWLUN, ILLEGAL_REQUEST, INVALID_CDB);
+
+ return -1;
+ }
+
+ /* prepare endpoint to receive first data packet */
+ msc->bbb_state = BBB_DATA_OUT;
+
+ usbd_ep_recev (pudev,
+ MSC_OUT_EP,
+ msc->bbb_data,
+ USB_MIN (msc->scsi_blk_len, MSC_MEDIA_PACKET_SIZE));
+ } else { /* write process ongoing */
+ return scsi_process_write (pudev, lun);
+ }
+
+ return 0;
+}
+
+/*!
+ \brief process Verify10 command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_verify10 (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if (0x02U == (params[1] & 0x02U)) {
+ scsi_sense_code (pudev, lun, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
+
+ return -1; /* error, verify mode not supported*/
+ }
+
+ if (scsi_check_address_range (pudev, lun, msc->scsi_blk_addr, (uint16_t)msc->scsi_blk_len) < 0) {
+ return -1; /* error */
+ }
+
+ msc->bbb_datalen = 0U;
+
+ return 0;
+}
+
+/*!
+ \brief check address range
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] blk_offset: block offset
+ \param[in] blk_nbr: number of block to be processed
+ \param[out] none
+ \retval status
+*/
+static inline int8_t scsi_check_address_range (usb_core_driver *pudev, uint8_t lun, uint32_t blk_offset, uint16_t blk_nbr)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ if ((blk_offset + blk_nbr) > msc->scsi_blk_nbr[lun]) {
+ scsi_sense_code (pudev, lun, ILLEGAL_REQUEST, ADDRESS_OUT_OF_RANGE);
+
+ return -1;
+ }
+
+ return 0;
+}
+
+/*!
+ \brief handle read process
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_process_read (usb_core_driver *pudev, uint8_t lun)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ uint32_t len = USB_MIN(msc->scsi_blk_len, MSC_MEDIA_PACKET_SIZE);
+
+ if (usbd_mem_fops->mem_read(lun,
+ msc->bbb_data,
+ msc->scsi_blk_addr,
+ (uint16_t)(len / msc->scsi_blk_size[lun])) < 0) {
+ scsi_sense_code(pudev, lun, HARDWARE_ERROR, UNRECOVERED_READ_ERROR);
+
+ return -1;
+ }
+
+ usbd_ep_send (pudev, MSC_IN_EP, msc->bbb_data, len);
+
+ msc->scsi_blk_addr += len;
+ msc->scsi_blk_len -= len;
+
+ /* case 6 : Hi = Di */
+ msc->bbb_csw.dCSWDataResidue -= len;
+
+ if (0U == msc->scsi_blk_len) {
+ msc->bbb_state = BBB_LAST_DATA_IN;
+ }
+
+ return 0;
+}
+
+/*!
+ \brief handle write process
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_process_write (usb_core_driver *pudev, uint8_t lun)
+{
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ uint32_t len = USB_MIN(msc->scsi_blk_len, MSC_MEDIA_PACKET_SIZE);
+
+ if (usbd_mem_fops->mem_write (lun,
+ msc->bbb_data,
+ msc->scsi_blk_addr,
+ (uint16_t)(len / msc->scsi_blk_size[lun])) < 0) {
+ scsi_sense_code(pudev, lun, HARDWARE_ERROR, WRITE_FAULT);
+
+ return -1;
+ }
+
+ msc->scsi_blk_addr += len;
+ msc->scsi_blk_len -= len;
+
+ /* case 12 : Ho = Do */
+ msc->bbb_csw.dCSWDataResidue -= len;
+
+ if (0U == msc->scsi_blk_len) {
+ msc_bbb_csw_send (pudev, CSW_CMD_PASSED);
+ } else {
+ /* prapare endpoint to receive next packet */
+ usbd_ep_recev (pudev,
+ MSC_OUT_EP,
+ msc->bbb_data,
+ USB_MIN (msc->scsi_blk_len, MSC_MEDIA_PACKET_SIZE));
+ }
+
+ return 0;
+}
+
+/*!
+ \brief process Format Unit command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[out] none
+ \retval status
+*/
+static inline int8_t scsi_format_cmd (usb_core_driver *pudev, uint8_t lun)
+{
+ return 0;
+}
+
+/*!
+ \brief process Read_Toc command
+ \param[in] pudev: pointer to USB device instance
+ \param[in] lun: logical unit number
+ \param[in] params: command parameters
+ \param[out] none
+ \retval status
+*/
+static int8_t scsi_toc_cmd_read (usb_core_driver *pudev, uint8_t lun, uint8_t *params)
+{
+ uint8_t* pPage;
+ uint16_t len;
+
+ usbd_msc_handler *msc = (usbd_msc_handler *)pudev->dev.class_data[USBD_MSC_INTERFACE];
+
+ pPage = (uint8_t *)&usbd_mem_fops->mem_toc_data[lun * READ_TOC_CMD_LEN];
+ len = (uint16_t)pPage[1] + 2U;
+
+ msc->bbb_datalen = len;
+
+ while (len) {
+ len--;
+ msc->bbb_data[len] = pPage[len];
+ }
+
+ return 0;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/printer/Include/printer_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/printer/Include/printer_core.h
new file mode 100644
index 0000000000..2d3f5dbde5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/printer/Include/printer_core.h
@@ -0,0 +1,78 @@
+/*!
+ \file printer_core.h
+ \brief the header file of USB printer device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __PRINTER_CORE_H
+#define __PRINTER_CORE_H
+
+#include "usbd_enum.h"
+#include "usb_ch9_std.h"
+
+/* USB printing device class code */
+#define USB_CLASS_PRINTER 0x07U
+
+/* printing device subclass code */
+#define USB_SUBCLASS_PRINTER 0x01U
+
+/* printing device protocol code */
+#define PROTOCOL_UNIDIRECTIONAL_ITF 0x01U
+#define PROTOCOL_BI_DIRECTIONAL_ITF 0x02U
+#define PROTOCOL_1284_4_ITF 0x03U
+#define PROTOCOL_VENDOR 0xFFU
+
+#define DEVICE_ID_LEN 103U
+
+#define USB_PRINTER_CONFIG_DESC_LEN 32U
+
+/* printing device specific-class request */
+#define GET_DEVICE_ID 0x00U
+#define GET_PORT_STATUS 0x01U
+#define SOFT_RESET 0x02U
+
+#pragma pack(1)
+
+/* USB configuration descriptor struct */
+typedef struct
+{
+ usb_desc_config config;
+ usb_desc_itf printer_itf;
+ usb_desc_ep printer_epin;
+ usb_desc_ep printer_epout;
+} usb_printer_desc_config_set;
+
+#pragma pack()
+
+extern usb_desc printer_desc;
+extern usb_class_core usbd_printer_cb;
+
+#endif /* __PRINTER_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/printer/Source/printer_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/printer/Source/printer_core.c
new file mode 100644
index 0000000000..1c69b86bdd
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/class/printer/Source/printer_core.c
@@ -0,0 +1,309 @@
+/*!
+ \file printer_core.c
+ \brief USB printer device class core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "printer_core.h"
+
+#define USBD_VID 0x28E9U
+#define USBD_PID 0x028DU
+
+/* printer port status: paper not empty/selected/no error */
+static uint8_t g_port_status = 0x18U;
+
+uint8_t g_printer_data_buf[PRINTER_OUT_PACKET];
+
+uint8_t PRINTER_DEVICE_ID[DEVICE_ID_LEN] =
+{
+ 0x00, 0x67,
+ 'M', 'A', 'N', 'U', 'F', 'A', 'C', 'T', 'U', 'R', 'E', 'R', ':',
+ 'G', 'I', 'G', 'A', ' ', 'D', 'E', 'V', 'I', 'C', 'E', '-', ';',
+ 'C', 'O', 'M', 'M', 'A', 'N', 'D', ' ', 'S', 'E', 'T', ':',
+ 'P', 'C', 'L', ',', 'M', 'P', 'L', ';',
+ 'M', 'O', 'D', 'E', 'L', ':',
+ 'L', 'a', 's', 'e', 'r', 'B', 'e', 'a', 'm', '?', ';',
+ 'C', 'O', 'M', 'M', 'E', 'N', 'T', ':',
+ 'G', 'o', 'o', 'd', ' ', '!', ';',
+ 'A', 'C', 'T', 'I', 'V', 'E', ' ', 'C', 'O', 'M', 'M', 'A', 'N', 'D', ' ', 'S', 'E', 'T', ':',
+ 'P', 'C', 'L', ';'
+};
+
+/* USB standard device descriptor */
+const usb_desc_dev printer_dev_desc =
+{
+ .header =
+ {
+ .bLength = USB_DEV_DESC_LEN,
+ .bDescriptorType = USB_DESCTYPE_DEV,
+ },
+ .bcdUSB = 0x0200U,
+ .bDeviceClass = 0x00U,
+ .bDeviceSubClass = 0x00U,
+ .bDeviceProtocol = 0x00U,
+ .bMaxPacketSize0 = USB_FS_EP0_MAX_LEN,
+ .idVendor = USBD_VID,
+ .idProduct = USBD_PID,
+ .bcdDevice = 0x0100U,
+ .iManufacturer = STR_IDX_MFC,
+ .iProduct = STR_IDX_PRODUCT,
+ .iSerialNumber = STR_IDX_SERIAL,
+ .bNumberConfigurations = USBD_CFG_MAX_NUM,
+};
+/* USB device configuration descriptor */
+const usb_printer_desc_config_set printer_config_desc =
+{
+ .config =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_config),
+ .bDescriptorType = USB_DESCTYPE_CONFIG
+ },
+ .wTotalLength = USB_PRINTER_CONFIG_DESC_LEN,
+ .bNumInterfaces = 0x01U,
+ .bConfigurationValue = 0x01U,
+ .iConfiguration = 0x00U,
+ .bmAttributes = 0xA0U,
+ .bMaxPower = 0x32U
+ },
+
+ .printer_itf =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_itf),
+ .bDescriptorType = USB_DESCTYPE_ITF
+ },
+ .bInterfaceNumber = 0x00U,
+ .bAlternateSetting = 0x00U,
+ .bNumEndpoints = 0x02U,
+ .bInterfaceClass = USB_CLASS_PRINTER,
+ .bInterfaceSubClass = USB_SUBCLASS_PRINTER,
+ .bInterfaceProtocol = PROTOCOL_BI_DIRECTIONAL_ITF,
+ .iInterface = 0x00U
+ },
+
+ .printer_epin =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = PRINTER_IN_EP,
+ .bmAttributes = USB_EP_ATTR_BULK,
+ .wMaxPacketSize = PRINTER_IN_PACKET,
+ .bInterval = 0x00U
+ },
+
+ .printer_epout =
+ {
+ .header =
+ {
+ .bLength = sizeof(usb_desc_ep),
+ .bDescriptorType = USB_DESCTYPE_EP
+ },
+ .bEndpointAddress = PRINTER_OUT_EP,
+ .bmAttributes = USB_EP_ATTR_BULK,
+ .wMaxPacketSize = PRINTER_OUT_PACKET,
+ .bInterval = 0x00U
+ },
+};
+
+/* USB language ID Descriptor */
+static const usb_desc_LANGID usbd_language_id_desc =
+{
+ .header =
+ {
+ .bLength = sizeof(usb_desc_LANGID),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .wLANGID = ENG_LANGID
+};
+
+/* USB manufacture string */
+static const usb_desc_str manufacturer_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(10U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'i', 'g', 'a', 'D', 'e', 'v', 'i', 'c', 'e'}
+};
+
+/* USB product string */
+static const usb_desc_str product_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(16U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ },
+ .unicode_string = {'G', 'D', '3', '2', '-', 'U', 'S', 'B', '_', 'P', 'r', 'i', 'n', 't', 'e', 'r'}
+};
+
+/* USBD serial string */
+static usb_desc_str serial_string =
+{
+ .header =
+ {
+ .bLength = USB_STRING_LEN(12U),
+ .bDescriptorType = USB_DESCTYPE_STR,
+ }
+};
+
+/* USB string descriptor */
+static void *const usbd_msc_strings[] =
+{
+ [STR_IDX_LANGID] = (uint8_t *)&usbd_language_id_desc,
+ [STR_IDX_MFC] = (uint8_t *)&manufacturer_string,
+ [STR_IDX_PRODUCT] = (uint8_t *)&product_string,
+ [STR_IDX_SERIAL] = (uint8_t *)&serial_string
+};
+
+usb_desc printer_desc = {
+ .dev_desc = (uint8_t *)&printer_dev_desc,
+ .config_desc = (uint8_t *)&printer_config_desc,
+ .strings = usbd_msc_strings
+};
+
+/* local function prototypes ('static') */
+static uint8_t printer_init (usb_dev *udev, uint8_t config_index);
+static uint8_t printer_deinit (usb_dev *udev, uint8_t config_index);
+static uint8_t printer_req (usb_dev *udev, usb_req *req);
+static uint8_t printer_in (usb_dev *udev, uint8_t ep_num);
+static uint8_t printer_out (usb_dev *udev, uint8_t ep_num);
+
+usb_class_core usbd_printer_cb = {
+ .init = printer_init,
+ .deinit = printer_deinit,
+
+ .req_proc = printer_req,
+
+ .data_in = printer_in,
+ .data_out = printer_out
+};
+
+/*!
+ \brief initialize the printer device
+ \param[in] udev: pointer to usb device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval usb device operation status
+*/
+static uint8_t printer_init (usb_dev *udev, uint8_t config_index)
+{
+ /* initialize the data Tx endpoint */
+ usbd_ep_setup (udev, &(printer_config_desc.printer_epin));
+
+ /* initialize the data Rx endpoint */
+ usbd_ep_setup (udev, &(printer_config_desc.printer_epout));
+
+ /* prepare to receive data */
+ usbd_ep_recev(udev, PRINTER_OUT_EP, g_printer_data_buf, PRINTER_OUT_PACKET);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief de-initialize the printer device
+ \param[in] udev: pointer to usb device instance
+ \param[in] config_index: configuration index
+ \param[out] none
+ \retval usb device operation status
+*/
+static uint8_t printer_deinit (usb_dev *udev, uint8_t config_index)
+{
+ /* deinitialize the data Tx/Rx endpoint */
+ usbd_ep_clear (udev, PRINTER_IN_EP);
+ usbd_ep_clear (udev, PRINTER_OUT_EP);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle the printer class-specific requests
+ \param[in] udev: pointer to usb device instance
+ \param[in] req: device class-specific request
+ \param[out] none
+ \retval usb device operation status
+*/
+static uint8_t printer_req(usb_dev *udev, usb_req *req)
+{
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ switch (req->bRequest) {
+ case GET_DEVICE_ID:
+ transc->xfer_buf = (uint8_t *)PRINTER_DEVICE_ID;
+ transc->remain_len = DEVICE_ID_LEN;
+ break;
+
+ case GET_PORT_STATUS:
+ transc->xfer_buf = (uint8_t *)&g_port_status;
+ transc->remain_len = 1U;
+ break;
+
+ case SOFT_RESET:
+ usbd_ep_recev(udev, PRINTER_OUT_EP, g_printer_data_buf, PRINTER_OUT_PACKET);
+ break;
+
+ default:
+ return USBD_FAIL;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief handle printer data
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t printer_in (usb_dev *udev, uint8_t ep_num)
+{
+ return USBD_OK;
+}
+
+/*!
+ \brief handle printer data
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval USB device operation status
+*/
+static uint8_t printer_out (usb_dev *udev, uint8_t ep_num)
+{
+ return USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_core.h
new file mode 100644
index 0000000000..c39dbfdf9a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_core.h
@@ -0,0 +1,103 @@
+/*!
+ \file usbd_core.h
+ \brief USB device mode core functions protype
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_CORE_H
+#define __USBD_CORE_H
+
+#include "drv_usb_core.h"
+#include "drv_usb_dev.h"
+
+typedef enum
+{
+ USBD_OK = 0U, /*!< status OK */
+ USBD_BUSY, /*!< status busy */
+ USBD_FAIL, /*!< status fail */
+} usbd_status;
+
+enum _usbd_status {
+ USBD_DEFAULT = 1U, /*!< default status */
+ USBD_ADDRESSED = 2U, /*!< address send status */
+ USBD_CONFIGURED = 3U, /*!< configured status */
+ USBD_SUSPENDED = 4U /*!< suspended status */
+};
+
+/* static inline function definitions */
+
+/*!
+ \brief set USB device address
+ \param[in] udev: pointer to USB core instance
+ \param[in] addr: device address to set
+ \param[out] none
+ \retval none
+*/
+static inline void usbd_addr_set (usb_core_driver *udev, uint8_t addr)
+{
+ usb_devaddr_set(udev, addr);
+}
+
+/*!
+ \brief get the received data length
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+static inline uint16_t usbd_rxcount_get (usb_core_driver *udev, uint8_t ep_num)
+{
+ return (uint16_t)udev->dev.transc_out[ep_num].xfer_count;
+}
+
+/* function declarations */
+/* initializes the USB device-mode stack and load the class driver */
+void usbd_init (usb_core_driver *udev, usb_core_enum core, usb_desc *desc, usb_class_core *class_core);
+/* endpoint initialization */
+uint32_t usbd_ep_setup (usb_core_driver *udev, const usb_desc_ep *ep_desc);
+/* configure the endpoint when it is disabled */
+uint32_t usbd_ep_clear (usb_core_driver *udev, uint8_t ep_addr);
+/* endpoint prepare to receive data */
+uint32_t usbd_ep_recev (usb_core_driver *udev, uint8_t ep_addr, uint8_t *pbuf, uint32_t len);
+/* endpoint prepare to transmit data */
+uint32_t usbd_ep_send (usb_core_driver *udev, uint8_t ep_addr, uint8_t *pbuf, uint32_t len);
+/* set an endpoint to STALL status */
+uint32_t usbd_ep_stall (usb_core_driver *udev, uint8_t ep_addr);
+/* clear endpoint STALLed status */
+uint32_t usbd_ep_stall_clear (usb_core_driver *udev, uint8_t ep_addr);
+/* flush the endpoint FIFOs */
+uint32_t usbd_fifo_flush (usb_core_driver *udev, uint8_t ep_addr);
+/* device connect */
+void usbd_connect (usb_core_driver *udev);
+/* device disconnect */
+void usbd_disconnect (usb_core_driver *udev);
+
+#endif /* __USBD_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_enum.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_enum.h
new file mode 100644
index 0000000000..baa3543575
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_enum.h
@@ -0,0 +1,105 @@
+/*!
+ \file usbd_enum.h
+ \brief USB enumeration definitions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_ENUM_H
+#define __USBD_ENUM_H
+
+#include "usbd_core.h"
+#include "usbd_conf.h"
+#include
+
+#ifndef NULL
+ #define NULL 0U
+#endif
+
+typedef enum _usb_reqsta {
+ REQ_SUPP = 0x0U, /* request support */
+ REQ_NOTSUPP = 0x1U, /* request not support */
+} usb_reqsta;
+
+/* string descriptor index */
+enum _str_index
+{
+ STR_IDX_LANGID = 0x0U, /* language ID string index */
+ STR_IDX_MFC = 0x1U, /* manufacturer string index */
+ STR_IDX_PRODUCT = 0x2U, /* product string index */
+ STR_IDX_SERIAL = 0x3U, /* serial string index */
+ STR_IDX_CONFIG = 0x4U, /* configuration string index */
+ STR_IDX_ITF = 0x5U, /* interface string index */
+#ifndef WINUSB_EXEMPT_DRIVER
+ STR_IDX_MAX = 0x6U, /* string maximum index */
+#else
+ STR_IDX_MAX = 0xEFU, /* string maximum index */
+#endif /* WINUSB_EXEMPT_DRIVER */
+};
+
+typedef enum _usb_pwrsta {
+ USB_PWRSTA_SELF_POWERED = 0x1U, /* USB is in self powered status */
+ USB_PWRSTA_REMOTE_WAKEUP = 0x2U, /* USB is in remote wakeup status */
+} usb_pwrsta;
+
+typedef enum _usb_feature
+{
+ USB_FEATURE_EP_HALT = 0x0U, /* USB has endpoint halt feature */
+ USB_FEATURE_REMOTE_WAKEUP = 0x1U, /* USB has endpoint remote wakeup feature */
+ USB_FEATURE_TEST_MODE = 0x2U, /* USB has endpoint test mode feature */
+} usb_feature;
+
+#define ENG_LANGID 0x0409U /* english language ID */
+#define CHN_LANGID 0x0804U /* chinese language ID */
+
+/* USB device exported macros */
+#define CTL_EP(ep) (((ep) == 0x00U) || ((ep) == 0x80U))
+
+#define DEVICE_ID1 (0x1FFFF7E8U) /* device ID1 */
+#define DEVICE_ID2 (0x1FFFF7ECU) /* device ID2 */
+#define DEVICE_ID3 (0x1FFFF7F0U) /* device ID3 */
+
+#define DEVICE_ID (0x40022100U)
+
+/* function declarations */
+/* handle USB standard device request */
+usb_reqsta usbd_standard_request (usb_core_driver *udev, usb_req *req);
+/* handle USB device class request */
+usb_reqsta usbd_class_request (usb_core_driver *udev, usb_req *req);
+/* handle USB vendor request */
+usb_reqsta usbd_vendor_request (usb_core_driver *udev, usb_req *req);
+/* handle USB enumeration error */
+void usbd_enum_error (usb_core_driver *udev, usb_req *req);
+/* convert hex 32bits value into unicode char */
+void int_to_unicode (uint32_t value, uint8_t *pbuf, uint8_t len);
+/* get serial string */
+void serial_string_get (uint16_t *unicode_str);
+
+#endif /* __USBD_ENUM_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_transc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_transc.h
new file mode 100644
index 0000000000..42b7af72eb
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Include/usbd_transc.h
@@ -0,0 +1,56 @@
+/*!
+ \file usbd_transc.h
+ \brief USB transaction core functions prototype
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBD_TRANSC_H
+#define __USBD_TRANSC_H
+
+#include "usbd_core.h"
+
+/* function declarations */
+/* USB send data in the control transaction */
+usbd_status usbd_ctl_send (usb_core_driver *udev);
+/* USB receive data in control transaction */
+usbd_status usbd_ctl_recev (usb_core_driver *udev);
+/* USB send control transaction status */
+usbd_status usbd_ctl_status_send (usb_core_driver *udev);
+/* USB control receive status */
+usbd_status usbd_ctl_status_recev (usb_core_driver *udev);
+/* USB setup stage processing */
+uint8_t usbd_setup_transc (usb_core_driver *udev);
+/* data out stage processing */
+uint8_t usbd_out_transc (usb_core_driver *udev, uint8_t ep_num);
+/* data in stage processing */
+uint8_t usbd_in_transc (usb_core_driver *udev, uint8_t ep_num);
+
+#endif /* __USBD_TRANSC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_core.c
new file mode 100644
index 0000000000..8ab438ceeb
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_core.c
@@ -0,0 +1,320 @@
+/*!
+ \file usbd_core.c
+ \brief USB device mode core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_core.h"
+#include "usbd_enum.h"
+#include "drv_usb_hw.h"
+
+/* endpoint type */
+const uint32_t ep_type[] = {
+ [USB_EP_ATTR_CTL] = (uint32_t)USB_EPTYPE_CTRL,
+ [USB_EP_ATTR_BULK] = (uint32_t)USB_EPTYPE_BULK,
+ [USB_EP_ATTR_INT] = (uint32_t)USB_EPTYPE_INTR,
+ [USB_EP_ATTR_ISO] = (uint32_t)USB_EPTYPE_ISOC
+};
+
+/*!
+ \brief initializes the USB device-mode stack and load the class driver
+ \param[in] udev: pointer to USB core instance
+ \param[in] core: USB core type
+ \param[in] desc: pointer to USB descriptor
+ \param[in] class_core: class driver
+ \param[out] none
+ \retval none
+*/
+void usbd_init (usb_core_driver *udev, usb_core_enum core, usb_desc *desc, usb_class_core *class_core)
+{
+ udev->dev.desc = desc;
+
+ /* class callbacks */
+ udev->dev.class_core = class_core;
+
+ /* create serial string */
+ serial_string_get(udev->dev.desc->strings[STR_IDX_SERIAL]);
+
+ /* configure USB capabilities */
+ (void)usb_basic_init (&udev->bp, &udev->regs, core);
+
+ usb_globalint_disable(&udev->regs);
+
+ /* initializes the USB core*/
+ (void)usb_core_init (udev->bp, &udev->regs);
+
+ /* set device disconnect */
+ usbd_disconnect (udev);
+
+#ifndef USE_OTG_MODE
+ usb_curmode_set(&udev->regs, DEVICE_MODE);
+#endif
+
+ /* initializes device mode */
+ (void)usb_devcore_init (udev);
+
+ usb_globalint_enable(&udev->regs);
+
+ /* set device connect */
+ usbd_connect (udev);
+
+ udev->dev.cur_status = (uint8_t)USBD_DEFAULT;
+}
+
+/*!
+ \brief endpoint initialization
+ \param[in] udev: pointer to USB core instance
+ \param[in] ep_desc: pointer to endpoint descriptor
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_ep_setup (usb_core_driver *udev, const usb_desc_ep *ep_desc)
+{
+ usb_transc *transc;
+
+ uint8_t ep_addr = ep_desc->bEndpointAddress;
+ uint16_t max_len = ep_desc->wMaxPacketSize;
+
+ /* set endpoint direction */
+ if (EP_DIR(ep_addr)) {
+ transc = &udev->dev.transc_in[EP_ID(ep_addr)];
+
+ transc->ep_addr.dir = 1U;
+ } else {
+ transc = &udev->dev.transc_out[ep_addr];
+
+ transc->ep_addr.dir = 0U;
+ }
+
+ transc->ep_addr.num = EP_ID(ep_addr);
+ transc->max_len = max_len;
+ transc->ep_type = (uint8_t)ep_type[ep_desc->bmAttributes & (uint8_t)USB_EPTYPE_MASK];
+
+ /* active USB endpoint function */
+ (void)usb_transc_active (udev, transc);
+
+ return 0U;
+}
+
+/*!
+ \brief configure the endpoint when it is disabled
+ \param[in] udev: pointer to USB core instance
+ \param[in] ep_addr: endpoint address
+ in this parameter:
+ bit0..bit6: endpoint number (0..7)
+ bit7: endpoint direction which can be IN(1) or OUT(0)
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_ep_clear (usb_core_driver *udev, uint8_t ep_addr)
+{
+ usb_transc *transc;
+
+ if (EP_DIR(ep_addr)) {
+ transc = &udev->dev.transc_in[EP_ID(ep_addr)];
+ } else {
+ transc = &udev->dev.transc_out[ep_addr];
+ }
+
+ /* deactivate USB endpoint function */
+ (void)usb_transc_deactivate (udev, transc);
+
+ return 0U;
+}
+
+/*!
+ \brief endpoint prepare to receive data
+ \param[in] udev: pointer to USB core instance
+ \param[in] ep_addr: endpoint address
+ in this parameter:
+ bit0..bit6: endpoint number (0..7)
+ bit7: endpoint direction which can be IN(1) or OUT(0)
+ \param[in] pbuf: user buffer address pointer
+ \param[in] len: buffer length
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_ep_recev (usb_core_driver *udev, uint8_t ep_addr, uint8_t *pbuf, uint32_t len)
+{
+ usb_transc *transc = &udev->dev.transc_out[EP_ID(ep_addr)];
+
+ /* setup the transfer */
+ transc->xfer_buf = pbuf;
+ transc->xfer_len = len;
+ transc->xfer_count = 0U;
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ transc->dma_addr = (uint32_t)pbuf;
+ }
+
+ /* start the transfer */
+ (void)usb_transc_outxfer (udev, transc);
+
+ return 0U;
+}
+
+/*!
+ \brief endpoint prepare to transmit data
+ \param[in] udev: pointer to USB core instance
+ \param[in] ep_addr: endpoint address
+ in this parameter:
+ bit0..bit6: endpoint number (0..7)
+ bit7: endpoint direction which can be IN(1) or OUT(0)
+ \param[in] pbuf: transmit buffer address pointer
+ \param[in] len: buffer length
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_ep_send (usb_core_driver *udev, uint8_t ep_addr, uint8_t *pbuf, uint32_t len)
+{
+ usb_transc *transc = &udev->dev.transc_in[EP_ID(ep_addr)];
+
+ /* setup the transfer */
+ transc->xfer_buf = pbuf;
+ transc->xfer_len = len;
+ transc->xfer_count = 0U;
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ transc->dma_addr = (uint32_t)pbuf;
+ }
+
+ /* start the transfer */
+ (void)usb_transc_inxfer (udev, transc);
+
+ return 0U;
+}
+
+/*!
+ \brief set an endpoint to STALL status
+ \param[in] udev: pointer to USB core instance
+ \param[in] ep_addr: endpoint address
+ in this parameter:
+ bit0..bit6: endpoint number (0..7)
+ bit7: endpoint direction which can be IN(1) or OUT(0)
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_ep_stall (usb_core_driver *udev, uint8_t ep_addr)
+{
+ usb_transc *transc = NULL;
+
+ if (EP_DIR(ep_addr)) {
+ transc = &udev->dev.transc_in[EP_ID(ep_addr)];
+ } else {
+ transc = &udev->dev.transc_out[ep_addr];
+ }
+
+ transc->ep_stall = 1U;
+
+ (void)usb_transc_stall (udev, transc);
+
+ return (0U);
+}
+
+/*!
+ \brief clear endpoint STALLed status
+ \param[in] udev: pointer to usb core instance
+ \param[in] ep_addr: endpoint address
+ in this parameter:
+ bit0..bit6: endpoint number (0..7)
+ bit7: endpoint direction which can be IN(1) or OUT(0)
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_ep_stall_clear (usb_core_driver *udev, uint8_t ep_addr)
+{
+ usb_transc *transc = NULL;
+
+ if (EP_DIR(ep_addr)) {
+ transc = &udev->dev.transc_in[EP_ID(ep_addr)];
+ } else {
+ transc = &udev->dev.transc_out[ep_addr];
+ }
+
+ transc->ep_stall = 0U;
+
+ (void)usb_transc_clrstall (udev, transc);
+
+ return (0U);
+}
+
+/*!
+ \brief flush the endpoint FIFOs
+ \param[in] udev: pointer to USB core instance
+ \param[in] ep_addr: endpoint address
+ in this parameter:
+ bit0..bit6: endpoint number (0..7)
+ bit7: endpoint direction which can be IN(1) or OUT(0)
+ \param[out] none
+ \retval none
+*/
+uint32_t usbd_fifo_flush (usb_core_driver *udev, uint8_t ep_addr)
+{
+ if (EP_DIR(ep_addr)) {
+ (void)usb_txfifo_flush (&udev->regs, EP_ID(ep_addr));
+ } else {
+ (void)usb_rxfifo_flush (&udev->regs);
+ }
+
+ return (0U);
+}
+
+/*!
+ \brief device connect
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+void usbd_connect (usb_core_driver *udev)
+{
+#ifndef USE_OTG_MODE
+ /* connect device */
+ usb_dev_connect (udev);
+
+ usb_mdelay(3U);
+#endif /* USE_OTG_MODE */
+}
+
+/*!
+ \brief device disconnect
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+void usbd_disconnect (usb_core_driver *udev)
+{
+#ifndef USE_OTG_MODE
+ /* disconnect device for 3ms */
+ usb_dev_disconnect (udev);
+
+ usb_mdelay(3U);
+#endif /* USE_OTG_MODE */
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_enum.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_enum.c
new file mode 100644
index 0000000000..4da3f95fbe
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_enum.c
@@ -0,0 +1,764 @@
+/*!
+ \file usbd_enum.c
+ \brief USB enumeration function
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_enum.h"
+#include "usb_ch9_std.h"
+
+#ifdef WINUSB_EXEMPT_DRIVER
+
+extern usbd_status usbd_OEM_req(usb_dev *udev, usb_req *req);
+
+#endif /* WINUSB_EXEMPT_DRIVER */
+
+/* local function prototypes ('static') */
+static usb_reqsta _usb_std_reserved (usb_core_driver *udev, usb_req *req);
+static uint8_t* _usb_dev_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len);
+static uint8_t* _usb_config_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len);
+static uint8_t* _usb_bos_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len);
+static uint8_t* _usb_str_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len);
+static usb_reqsta _usb_std_getstatus (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_clearfeature (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_setfeature (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_setaddress (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_getdescriptor (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_setdescriptor (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_getconfiguration (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_setconfiguration (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_getinterface (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_setinterface (usb_core_driver *udev, usb_req *req);
+static usb_reqsta _usb_std_synchframe (usb_core_driver *udev, usb_req *req);
+
+static usb_reqsta (*_std_dev_req[])(usb_core_driver *udev, usb_req *req) =
+{
+ [USB_GET_STATUS] = _usb_std_getstatus,
+ [USB_CLEAR_FEATURE] = _usb_std_clearfeature,
+ [USB_RESERVED2] = _usb_std_reserved,
+ [USB_SET_FEATURE] = _usb_std_setfeature,
+ [USB_RESERVED4] = _usb_std_reserved,
+ [USB_SET_ADDRESS] = _usb_std_setaddress,
+ [USB_GET_DESCRIPTOR] = _usb_std_getdescriptor,
+ [USB_SET_DESCRIPTOR] = _usb_std_setdescriptor,
+ [USB_GET_CONFIGURATION] = _usb_std_getconfiguration,
+ [USB_SET_CONFIGURATION] = _usb_std_setconfiguration,
+ [USB_GET_INTERFACE] = _usb_std_getinterface,
+ [USB_SET_INTERFACE] = _usb_std_setinterface,
+ [USB_SYNCH_FRAME] = _usb_std_synchframe,
+};
+
+/* get standard descriptor handler */
+static uint8_t* (*std_desc_get[])(usb_core_driver *udev, uint8_t index, uint16_t *len) = {
+ [(uint8_t)USB_DESCTYPE_DEV - 1U] = _usb_dev_desc_get,
+ [(uint8_t)USB_DESCTYPE_CONFIG - 1U] = _usb_config_desc_get,
+ [(uint8_t)USB_DESCTYPE_STR - 1U] = _usb_str_desc_get
+};
+
+/*!
+ \brief handle USB standard device request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+usb_reqsta usbd_standard_request (usb_core_driver *udev, usb_req *req)
+{
+ return (*_std_dev_req[req->bRequest])(udev, req);
+}
+
+/*!
+ \brief handle USB device class request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device class request
+ \param[out] none
+ \retval USB device request status
+*/
+usb_reqsta usbd_class_request (usb_core_driver *udev, usb_req *req)
+{
+ if ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status) {
+ if (BYTE_LOW(req->wIndex) <= USBD_ITF_MAX_NUM) {
+ /* call device class handle function */
+ return (usb_reqsta)udev->dev.class_core->req_proc(udev, req);
+ }
+ }
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief handle USB vendor request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB vendor request
+ \param[out] none
+ \retval USB device request status
+*/
+usb_reqsta usbd_vendor_request (usb_core_driver *udev, usb_req *req)
+{
+ (void)udev;
+ (void)req;
+
+ /* added by user... */
+#ifdef WINUSB_EXEMPT_DRIVER
+ usbd_OEM_req(udev, req);
+#endif
+
+ return REQ_SUPP;
+}
+
+/*!
+ \brief handle USB enumeration error
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval none
+*/
+void usbd_enum_error (usb_core_driver *udev, usb_req *req)
+{
+ (void)req;
+
+ (void)usbd_ep_stall (udev, 0x80U);
+ (void)usbd_ep_stall (udev, 0x00U);
+
+ usb_ctlep_startout(udev);
+}
+
+/*!
+ \brief convert hex 32bits value into unicode char
+ \param[in] value: hex 32bits value
+ \param[in] pbuf: buffer pointer to store unicode char
+ \param[in] len: value length
+ \param[out] none
+ \retval none
+*/
+void int_to_unicode (uint32_t value, uint8_t *pbuf, uint8_t len)
+{
+ uint8_t index;
+
+ for (index = 0U; index < len; index++) {
+ if ((value >> 28U) < 0x0AU) {
+ pbuf[2U * index] = (uint8_t)((value >> 28U) + '0');
+ } else {
+ pbuf[2U * index] = (uint8_t)((value >> 28U) + 'A' - 10U);
+ }
+
+ value = value << 4U;
+
+ pbuf[2U * index + 1U] = 0U;
+ }
+}
+
+/*!
+ \brief convert hex 32bits value into unicode char
+ \param[in] unicode_str: pointer to unicode string
+ \param[out] none
+ \retval none
+*/
+void serial_string_get (uint16_t *unicode_str)
+{
+ if ((unicode_str[0] & 0x00FFU) != 6U) {
+ uint32_t DeviceSerial0, DeviceSerial1, DeviceSerial2;
+
+ DeviceSerial0 = *(uint32_t*)DEVICE_ID1;
+ DeviceSerial1 = *(uint32_t*)DEVICE_ID2;
+ DeviceSerial2 = *(uint32_t*)DEVICE_ID3;
+
+ DeviceSerial0 += DeviceSerial2;
+
+ if (0U != DeviceSerial0) {
+ int_to_unicode(DeviceSerial0, (uint8_t*)&(unicode_str[1]), 8U);
+ int_to_unicode(DeviceSerial1, (uint8_t*)&(unicode_str[9]), 4U);
+ }
+ } else {
+ uint32_t device_serial = *(uint32_t*)DEVICE_ID;
+
+ if(0U != device_serial) {
+ unicode_str[1] = (uint16_t)(device_serial & 0x0000FFFFU);
+ unicode_str[2] = (uint16_t)((device_serial & 0xFFFF0000U) >> 16U);
+
+ }
+ }
+}
+
+/*!
+ \brief no operation, just for reserved
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB vendor request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_reserved (usb_core_driver *udev, usb_req *req)
+{
+ (void)udev;
+ (void)req;
+
+ /* no operation... */
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief get the device descriptor
+ \param[in] udev: pointer to USB device instance
+ \param[in] index: no use
+ \param[out] len: data length pointer
+ \retval descriptor buffer pointer
+*/
+static uint8_t* _usb_dev_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len)
+{
+ (void)index;
+
+ *len = udev->dev.desc->dev_desc[0];
+
+ return udev->dev.desc->dev_desc;
+}
+
+/*!
+ \brief get the configuration descriptor
+ \brief[in] udev: pointer to USB device instance
+ \brief[in] index: no use
+ \param[out] len: data length pointer
+ \retval descriptor buffer pointer
+*/
+static uint8_t* _usb_config_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len)
+{
+ (void)index;
+
+ *len = udev->dev.desc->config_desc[2];
+
+ return udev->dev.desc->config_desc;
+}
+
+/*!
+ \brief get the BOS descriptor
+ \brief[in] udev: pointer to USB device instance
+ \brief[in] index: no use
+ \param[out] len: data length pointer
+ \retval descriptor buffer pointer
+*/
+static uint8_t* _usb_bos_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len)
+{
+ (void)index;
+
+ *len = udev->dev.desc->bos_desc[2];
+
+ return udev->dev.desc->bos_desc;
+}
+
+/*!
+ \brief get string descriptor
+ \param[in] udev: pointer to USB device instance
+ \param[in] index: string descriptor index
+ \param[out] len: pointer to string length
+ \retval descriptor buffer pointer
+*/
+static uint8_t* _usb_str_desc_get (usb_core_driver *udev, uint8_t index, uint16_t *len)
+{
+ uint8_t *desc = udev->dev.desc->strings[index];
+
+ *len = desc[0];
+
+ return desc;
+}
+
+/*!
+ \brief handle Get_Status request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_getstatus (usb_core_driver *udev, usb_req *req)
+{
+ uint8_t recp = BYTE_LOW(req->wIndex);
+ usb_reqsta req_status = REQ_NOTSUPP;
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ static uint8_t status[2] = {0};
+
+ switch(req->bmRequestType & (uint8_t)USB_RECPTYPE_MASK) {
+ case USB_RECPTYPE_DEV:
+ if (((uint8_t)USBD_ADDRESSED == udev->dev.cur_status) || \
+ ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status)) {
+
+ if (udev->dev.pm.power_mode) {
+ status[0] = USB_STATUS_SELF_POWERED;
+ } else {
+ status[0] = 0U;
+ }
+
+ if (udev->dev.pm.dev_remote_wakeup) {
+ status[0] |= USB_STATUS_REMOTE_WAKEUP;
+ } else {
+ status[0] = 0U;
+ }
+
+ req_status = REQ_SUPP;
+ }
+ break;
+
+ case USB_RECPTYPE_ITF:
+ if (((uint8_t)USBD_CONFIGURED == udev->dev.cur_status) && (recp <= USBD_ITF_MAX_NUM)) {
+ req_status = REQ_SUPP;
+ }
+ break;
+
+ case USB_RECPTYPE_EP:
+ if ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status) {
+ if (0x80U == (recp & 0x80U)) {
+ status[0] = udev->dev.transc_in[EP_ID(recp)].ep_stall;
+ } else {
+ status[0] = udev->dev.transc_out[recp].ep_stall;
+ }
+
+ req_status = REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (REQ_SUPP == req_status) {
+ transc->xfer_buf = status;
+ transc->remain_len = 2U;
+ }
+
+ return req_status;
+}
+
+/*!
+ \brief handle USB Clear_Feature request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_clearfeature (usb_core_driver *udev, usb_req *req)
+{
+ uint8_t ep = 0U;
+
+ switch(req->bmRequestType & (uint8_t)USB_RECPTYPE_MASK) {
+ case USB_RECPTYPE_DEV:
+ if (((uint8_t)USBD_ADDRESSED == udev->dev.cur_status) || \
+ ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status)) {
+
+ /* clear device remote wakeup feature */
+ if ((uint16_t)USB_FEATURE_REMOTE_WAKEUP == req->wValue) {
+ udev->dev.pm.dev_remote_wakeup = 0U;
+
+ return REQ_SUPP;
+ }
+ }
+ break;
+
+ case USB_RECPTYPE_ITF:
+ break;
+
+ case USB_RECPTYPE_EP:
+ /* get endpoint address */
+ ep = BYTE_LOW(req->wIndex);
+
+ if ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status) {
+ /* clear endpoint halt feature */
+ if (((uint16_t)USB_FEATURE_EP_HALT == req->wValue) && (!CTL_EP(ep))) {
+ (void)usbd_ep_stall_clear (udev, ep);
+
+ (void)udev->dev.class_core->req_proc (udev, req);
+ }
+
+ return REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief handle USB Set_Feature request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_setfeature (usb_core_driver *udev, usb_req *req)
+{
+ uint8_t ep = 0U;
+
+ switch (req->bmRequestType & (uint8_t)USB_RECPTYPE_MASK) {
+ case USB_RECPTYPE_DEV:
+ if (((uint8_t)USBD_ADDRESSED == udev->dev.cur_status) || \
+ ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status)) {
+ /* set device remote wakeup feature */
+ if ((uint16_t)USB_FEATURE_REMOTE_WAKEUP == req->wValue) {
+ udev->dev.pm.dev_remote_wakeup = 1U;
+ }
+
+ return REQ_SUPP;
+ }
+ break;
+
+ case USB_RECPTYPE_ITF:
+ break;
+
+ case USB_RECPTYPE_EP:
+ /* get endpoint address */
+ ep = BYTE_LOW(req->wIndex);
+
+ if ((uint8_t)USBD_CONFIGURED == udev->dev.cur_status) {
+ /* set endpoint halt feature */
+ if (((uint16_t)USB_FEATURE_EP_HALT == req->wValue) && (!CTL_EP(ep))) {
+ (void)usbd_ep_stall (udev, ep);
+ }
+
+ return REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief handle USB Set_Address request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_setaddress (usb_core_driver *udev, usb_req *req)
+{
+ if ((0U == req->wIndex) && (0U == req->wLength)) {
+ udev->dev.dev_addr = (uint8_t)(req->wValue) & 0x7FU;
+
+ if (udev->dev.cur_status != (uint8_t)USBD_CONFIGURED) {
+ usbd_addr_set (udev, udev->dev.dev_addr);
+
+ if (udev->dev.dev_addr) {
+ udev->dev.cur_status = (uint8_t)USBD_ADDRESSED;
+ } else {
+ udev->dev.cur_status = (uint8_t)USBD_DEFAULT;
+ }
+
+ return REQ_SUPP;
+ }
+ }
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief handle USB Get_Descriptor request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_getdescriptor (usb_core_driver *udev, usb_req *req)
+{
+ uint8_t desc_type = 0U;
+ uint8_t desc_index = 0U;
+
+ usb_reqsta status = REQ_NOTSUPP;
+
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ /* get device standard descriptor */
+ switch (req->bmRequestType & USB_RECPTYPE_MASK) {
+ case USB_RECPTYPE_DEV:
+ desc_type = BYTE_HIGH(req->wValue);
+ desc_index = BYTE_LOW(req->wValue);
+
+ switch (desc_type) {
+ case USB_DESCTYPE_DEV:
+ transc->xfer_buf = std_desc_get[desc_type - 1U](udev, desc_index, (uint16_t *)&(transc->remain_len));
+
+ if (64U == req->wLength) {
+ transc->remain_len = 8U;
+ }
+ break;
+
+ case USB_DESCTYPE_CONFIG:
+ transc->xfer_buf = std_desc_get[desc_type - 1U](udev, desc_index, (uint16_t *)&(transc->remain_len));
+ break;
+
+ case USB_DESCTYPE_STR:
+ if (desc_index < (uint8_t)STR_IDX_MAX) {
+ transc->xfer_buf = std_desc_get[desc_type - 1U](udev, desc_index, (uint16_t *)&(transc->remain_len));
+ }
+ break;
+
+ case USB_DESCTYPE_ITF:
+ case USB_DESCTYPE_EP:
+ case USB_DESCTYPE_DEV_QUALIFIER:
+ case USB_DESCTYPE_OTHER_SPD_CONFIG:
+ case USB_DESCTYPE_ITF_POWER:
+ break;
+
+ case USB_DESCTYPE_BOS:
+ transc->xfer_buf = _usb_bos_desc_get(udev, desc_index, (uint16_t *)&(transc->remain_len));
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case USB_RECPTYPE_ITF:
+ /* get device class special descriptor */
+ status = (usb_reqsta)(udev->dev.class_core->req_proc(udev, req));
+ break;
+
+ case USB_RECPTYPE_EP:
+ break;
+
+ default:
+ break;
+ }
+
+ if ((0U != transc->remain_len) && (0U != req->wLength)) {
+ if (transc->remain_len < req->wLength) {
+ if ((transc->remain_len >= transc->max_len) && (0U == (transc->remain_len % transc->max_len))) {
+ udev->dev.control.ctl_zlp = 1U;
+ }
+ } else {
+ transc->remain_len = req->wLength;
+ }
+
+ status = REQ_SUPP;
+ }
+
+ return status;
+}
+
+/*!
+ \brief handle USB Set_Descriptor request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_setdescriptor (usb_core_driver *udev, usb_req *req)
+{
+ (void)udev;
+ (void)req;
+
+ /* no handle... */
+ return REQ_SUPP;
+}
+
+/*!
+ \brief handle USB Get_Configuration request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_getconfiguration (usb_core_driver *udev, usb_req *req)
+{
+ (void)req;
+
+ usb_reqsta req_status = REQ_NOTSUPP;
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ switch (udev->dev.cur_status) {
+ case USBD_ADDRESSED:
+ if (USB_DEFAULT_CONFIG == udev->dev.config) {
+ req_status = REQ_SUPP;
+ }
+ break;
+
+ case USBD_CONFIGURED:
+ if (udev->dev.config != USB_DEFAULT_CONFIG) {
+ req_status = REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (REQ_SUPP == req_status) {
+ transc->xfer_buf = &(udev->dev.config);
+ transc->remain_len = 1U;
+ }
+
+ return req_status;
+}
+
+/*!
+ \brief handle USB Set_Configuration request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_setconfiguration (usb_core_driver *udev, usb_req *req)
+{
+ static uint8_t config;
+ usb_reqsta status = REQ_NOTSUPP;
+
+ config = (uint8_t)(req->wValue);
+
+ if (config <= USBD_CFG_MAX_NUM) {
+ switch (udev->dev.cur_status) {
+ case USBD_ADDRESSED:
+ if (config){
+ (void)udev->dev.class_core->init(udev, config);
+
+ udev->dev.config = config;
+ udev->dev.cur_status = (uint8_t)USBD_CONFIGURED;
+ }
+
+ status = REQ_SUPP;
+ break;
+
+ case USBD_CONFIGURED:
+ if (USB_DEFAULT_CONFIG == config) {
+ (void)udev->dev.class_core->deinit(udev, config);
+
+ udev->dev.config = config;
+ udev->dev.cur_status = (uint8_t)USBD_ADDRESSED;
+ } else if (config != udev->dev.config) {
+ /* clear old configuration */
+ (void)udev->dev.class_core->deinit(udev, config);
+
+ /* set new configuration */
+ udev->dev.config = config;
+
+ (void)udev->dev.class_core->init(udev, config);
+ } else {
+ /* no operation */
+ }
+
+ status = REQ_SUPP;
+ break;
+
+ case USBD_DEFAULT:
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return status;
+}
+
+/*!
+ \brief handle USB Get_Interface request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_getinterface (usb_core_driver *udev, usb_req *req)
+{
+ switch (udev->dev.cur_status) {
+ case USBD_DEFAULT:
+ break;
+
+ case USBD_ADDRESSED:
+ break;
+
+ case USBD_CONFIGURED:
+ if (BYTE_LOW(req->wIndex) <= USBD_ITF_MAX_NUM) {
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ transc->xfer_buf = &(udev->dev.class_core->alter_set);
+ transc->remain_len = 1U;
+
+ return REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief handle USB Set_Interface request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_setinterface (usb_core_driver *udev, usb_req *req)
+{
+ switch (udev->dev.cur_status) {
+ case USBD_DEFAULT:
+ break;
+
+ case USBD_ADDRESSED:
+ break;
+
+ case USBD_CONFIGURED:
+ if (BYTE_LOW(req->wIndex) <= USBD_ITF_MAX_NUM) {
+ if (NULL != udev->dev.class_core->set_intf) {
+ (void)udev->dev.class_core->set_intf (udev, req);
+ }
+
+ return REQ_SUPP;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return REQ_NOTSUPP;
+}
+
+/*!
+ \brief handle USB SynchFrame request
+ \param[in] udev: pointer to USB device instance
+ \param[in] req: pointer to USB device request
+ \param[out] none
+ \retval USB device request status
+*/
+static usb_reqsta _usb_std_synchframe (usb_core_driver *udev, usb_req *req)
+{
+ (void)udev;
+ (void)req;
+
+ /* no handle */
+ return REQ_SUPP;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_transc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_transc.c
new file mode 100644
index 0000000000..f5a99590e4
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/device/core/Source/usbd_transc.c
@@ -0,0 +1,265 @@
+/*!
+ \file usbd_transc.c
+ \brief USB transaction core functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_enum.h"
+#include "usbd_transc.h"
+
+/*!
+ \brief USB send data in the control transaction
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+usbd_status usbd_ctl_send (usb_core_driver *udev)
+{
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ (void)usbd_ep_send(udev, 0U, transc->xfer_buf, transc->remain_len);
+
+ if (transc->remain_len > transc->max_len) {
+ udev->dev.control.ctl_state = (uint8_t)USB_CTL_DATA_IN;
+ } else {
+ udev->dev.control.ctl_state = (uint8_t)USB_CTL_LAST_DATA_IN;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief USB receive data in control transaction
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+usbd_status usbd_ctl_recev (usb_core_driver *udev)
+{
+ usb_transc *transc = &udev->dev.transc_out[0];
+
+ (void)usbd_ep_recev (udev, 0U, transc->xfer_buf, transc->remain_len);
+
+ if (transc->remain_len > transc->max_len) {
+ udev->dev.control.ctl_state = (uint8_t)USB_CTL_DATA_OUT;
+ } else {
+ udev->dev.control.ctl_state = (uint8_t)USB_CTL_LAST_DATA_OUT;
+ }
+
+ return USBD_OK;
+}
+
+/*!
+ \brief USB send control transaction status
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+usbd_status usbd_ctl_status_send (usb_core_driver *udev)
+{
+ udev->dev.control.ctl_state = (uint8_t)USB_CTL_STATUS_IN;
+
+ (void)usbd_ep_send (udev, 0U, NULL, 0U);
+
+ usb_ctlep_startout(udev);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief USB control receive status
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+usbd_status usbd_ctl_status_recev (usb_core_driver *udev)
+{
+ udev->dev.control.ctl_state = (uint8_t)USB_CTL_STATUS_OUT;
+
+ (void)usbd_ep_recev (udev, 0U, NULL, 0U);
+
+ usb_ctlep_startout(udev);
+
+ return USBD_OK;
+}
+
+/*!
+ \brief USB setup stage processing
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+uint8_t usbd_setup_transc (usb_core_driver *udev)
+{
+ usb_reqsta reqstat = REQ_NOTSUPP;
+
+ usb_req req = udev->dev.control.req;
+
+ switch (req.bmRequestType & USB_REQTYPE_MASK) {
+ /* standard device request */
+ case USB_REQTYPE_STRD:
+ reqstat = usbd_standard_request (udev, &req);
+ break;
+
+ /* device class request */
+ case USB_REQTYPE_CLASS:
+ reqstat = usbd_class_request (udev, &req);
+ break;
+
+ /* vendor defined request */
+ case USB_REQTYPE_VENDOR:
+ reqstat = usbd_vendor_request (udev, &req);
+ break;
+
+ default:
+ break;
+ }
+
+ if (REQ_SUPP == reqstat) {
+ if (0U == req.wLength) {
+ (void)usbd_ctl_status_send (udev);
+ } else {
+ if (req.bmRequestType & 0x80U) {
+ (void)usbd_ctl_send (udev);
+ } else {
+ (void)usbd_ctl_recev (udev);
+ }
+ }
+ } else {
+ usbd_enum_error (udev, &req);
+ }
+
+ return (uint8_t)USBD_OK;
+}
+
+/*!
+ \brief data out stage processing
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier(0..7)
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+uint8_t usbd_out_transc (usb_core_driver *udev, uint8_t ep_num)
+{
+ if (0U == ep_num) {
+ usb_transc *transc = &udev->dev.transc_out[0];
+
+ switch (udev->dev.control.ctl_state) {
+ case USB_CTL_DATA_OUT:
+ /* update transfer length */
+ transc->remain_len -= transc->max_len;
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ transc->xfer_buf += transc->max_len;
+ }
+
+ (void)usbd_ctl_recev (udev);
+ break;
+
+ case USB_CTL_LAST_DATA_OUT:
+ if (udev->dev.cur_status == (uint8_t)USBD_CONFIGURED) {
+ if (udev->dev.class_core->ctlx_out != NULL) {
+ (void)udev->dev.class_core->ctlx_out (udev);
+ }
+ }
+
+ transc->remain_len = 0U;
+
+ (void)usbd_ctl_status_send (udev);
+ break;
+
+ default:
+ break;
+ }
+ } else if ((udev->dev.class_core->data_out != NULL) && (udev->dev.cur_status == (uint8_t)USBD_CONFIGURED)) {
+ (void)udev->dev.class_core->data_out (udev, ep_num);
+ } else {
+ /* no operation */
+ }
+
+ return (uint8_t)USBD_OK;
+}
+
+/*!
+ \brief data in stage processing
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier(0..7)
+ \param[out] none
+ \retval USB device operation cur_status
+*/
+uint8_t usbd_in_transc (usb_core_driver *udev, uint8_t ep_num)
+{
+ if (0U == ep_num) {
+ usb_transc *transc = &udev->dev.transc_in[0];
+
+ switch (udev->dev.control.ctl_state) {
+ case USB_CTL_DATA_IN:
+ /* update transfer length */
+ transc->remain_len -= transc->max_len;
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ transc->xfer_buf += transc->max_len;
+ }
+
+ (void)usbd_ctl_send (udev);
+ break;
+
+ case USB_CTL_LAST_DATA_IN:
+ /* last packet is MPS multiple, so send ZLP packet */
+ if (udev->dev.control.ctl_zlp) {
+ (void)usbd_ep_send (udev, 0U, NULL, 0U);
+
+ udev->dev.control.ctl_zlp = 0U;
+ } else {
+ if (udev->dev.cur_status == (uint8_t)USBD_CONFIGURED) {
+ if (udev->dev.class_core->ctlx_in != NULL) {
+ (void)udev->dev.class_core->ctlx_in (udev);
+ }
+ }
+
+ transc->remain_len = 0U;
+
+ (void)usbd_ctl_status_recev (udev);
+ }
+ break;
+
+ default:
+ break;
+ }
+ } else {
+ if ((udev->dev.cur_status == (uint8_t)USBD_CONFIGURED) && (udev->dev.class_core->data_in != NULL)) {
+ (void)udev->dev.class_core->data_in (udev, ep_num);
+ }
+ }
+
+ return (uint8_t)USBD_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_core.h
new file mode 100644
index 0000000000..83939f2df5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_core.h
@@ -0,0 +1,163 @@
+/*!
+ \file drv_usb_core.h
+ \brief USB core low level driver header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USB_CORE_H
+#define __DRV_USB_CORE_H
+
+#include "drv_usb_regs.h"
+#include "usb_ch9_std.h"
+
+#define USB_FS_EP0_MAX_LEN 64U /*!< maximum packet size of endpoint 0 */
+#define HC_MAX_PACKET_COUNT 140U /*!< maximum packet count */
+
+#define EP_ID(x) ((uint8_t)((x) & 0x7FU)) /*!< endpoint number */
+#define EP_DIR(x) ((uint8_t)((x) >> 7)) /*!< endpoint direction */
+
+enum _usb_mode {
+ DEVICE_MODE = 0U, /*!< device mode */
+ HOST_MODE, /*!< host mode */
+ OTG_MODE /*!< OTG mode */
+};
+
+enum _usb_eptype {
+ USB_EPTYPE_CTRL = 0U, /*!< control endpoint type */
+ USB_EPTYPE_ISOC = 1U, /*!< isochronous endpoint type */
+ USB_EPTYPE_BULK = 2U, /*!< bulk endpoint type */
+ USB_EPTYPE_INTR = 3U, /*!< interrupt endpoint type */
+ USB_EPTYPE_MASK = 3U /*!< endpoint type mask */
+};
+
+typedef enum
+{
+ USB_OTG_OK = 0U, /*!< USB OTG status OK*/
+ USB_OTG_FAIL /*!< USB OTG status fail*/
+} usb_otg_status;
+
+typedef enum
+{
+ USB_OK = 0U, /*!< USB status OK*/
+ USB_FAIL /*!< USB status fail*/
+} usb_status;
+
+typedef enum
+{
+ USB_USE_FIFO, /*!< USB use FIFO transfer mode */
+ USB_USE_DMA /*!< USB use DMA transfer mode */
+} usb_transfer_mode;
+
+typedef struct
+{
+ uint8_t core_enum; /*!< USB core type */
+ uint8_t core_speed; /*!< USB core speed */
+ uint8_t num_pipe; /*!< USB host channel numbers */
+ uint8_t num_ep; /*!< USB device endpoint numbers */
+ uint8_t transfer_mode; /*!< USB transfer mode */
+ uint8_t phy_itf; /*!< USB core PHY interface */
+ uint8_t sof_enable; /*!< USB SOF output */
+ uint8_t low_power; /*!< USB low power */
+ uint8_t lpm_enable; /*!< USB link power mode(LPM) */
+ uint8_t vbus_sensing_enable; /*!< USB VBUS sensing feature */
+ uint8_t use_dedicated_ep1; /*!< USB dedicated endpoint1 interrupt */
+ uint8_t use_external_vbus; /*!< enable or disable the use of the external VBUS */
+ uint32_t base_reg; /*!< base register address */
+} usb_core_basic;
+
+/* static inline function definitions */
+
+/*!
+ \brief get the global interrupts
+ \param[in] usb_regs: pointer to USB core registers
+ \param[out] none
+ \retval interrupt status
+*/
+static inline uint32_t usb_coreintr_get(usb_core_regs *usb_regs)
+{
+ return usb_regs->gr->GINTEN & usb_regs->gr->GINTF;
+}
+
+/*!
+ \brief set USB RX FIFO size
+ \param[in] usb_regs: pointer to USB core registers
+ \param[in] size: assigned FIFO size
+ \param[out] none
+ \retval none
+*/
+static inline void usb_set_rxfifo(usb_core_regs *usb_regs, uint16_t size)
+{
+ usb_regs->gr->GRFLEN = size;
+}
+
+/*!
+ \brief enable the global interrupts
+ \param[in] usb_regs: pointer to USB core registers
+ \param[out] none
+ \retval none
+*/
+static inline void usb_globalint_enable(usb_core_regs *usb_regs)
+{
+ /* enable USB global interrupt */
+ usb_regs->gr->GAHBCS |= GAHBCS_GINTEN;
+}
+
+/*!
+ \brief disable the global interrupts
+ \param[in] usb_regs: pointer to USB core registers
+ \param[out] none
+ \retval none
+*/
+static inline void usb_globalint_disable(usb_core_regs *usb_regs)
+{
+ /* disable USB global interrupt */
+ usb_regs->gr->GAHBCS &= ~GAHBCS_GINTEN;
+}
+
+/* function declarations */
+/* configure core capabilities */
+usb_status usb_basic_init (usb_core_basic *usb_basic, usb_core_regs *usb_regs, usb_core_enum usb_core);
+/* initializes the USB controller registers and prepares the core device mode or host mode operation */
+usb_status usb_core_init (usb_core_basic usb_basic, usb_core_regs *usb_regs);
+/* write a packet into the Tx FIFO associated with the endpoint */
+usb_status usb_txfifo_write (usb_core_regs *usb_regs, uint8_t *src_buf, uint8_t fifo_num, uint16_t byte_count);
+/* read a packet from the Rx FIFO associated with the endpoint */
+void *usb_rxfifo_read (usb_core_regs *usb_regs, uint8_t *dest_buf, uint16_t byte_count);
+/* flush a Tx FIFO or all Tx FIFOs */
+usb_status usb_txfifo_flush (usb_core_regs *usb_regs, uint8_t fifo_num);
+/* flush the entire Rx FIFO */
+usb_status usb_rxfifo_flush (usb_core_regs *usb_regs);
+/* set endpoint or channel TX FIFO size */
+void usb_set_txfifo(usb_core_regs *usb_regs, uint8_t fifo, uint16_t size);
+/* set USB current mode */
+void usb_curmode_set(usb_core_regs *usb_regs, uint8_t mode);
+
+#endif /* __DRV_USB_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_dev.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_dev.h
new file mode 100644
index 0000000000..93c91fd1e1
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_dev.h
@@ -0,0 +1,300 @@
+/*!
+ \file drv_usb_dev.h
+ \brief USB device low level driver header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2020-12-11, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USB_DEV_H
+#define __DRV_USB_DEV_H
+
+#include "usbd_conf.h"
+#include "drv_usb_core.h"
+
+enum usb_ctl_status {
+ USB_CTL_IDLE = 0U, /*!< USB control transfer idle state */
+ USB_CTL_DATA_IN, /*!< USB control transfer data in state */
+ USB_CTL_LAST_DATA_IN, /*!< USB control transfer last data in state */
+ USB_CTL_DATA_OUT, /*!< USB control transfer data out state */
+ USB_CTL_LAST_DATA_OUT, /*!< USB control transfer last data out state */
+ USB_CTL_STATUS_IN, /*!< USB control transfer status in state*/
+ USB_CTL_STATUS_OUT /*!< USB control transfer status out state */
+};
+
+#define EP_IN(x) ((uint8_t)(0x80U | (x))) /*!< device IN endpoint */
+#define EP_OUT(x) ((uint8_t)(x)) /*!< device OUT endpoint */
+
+/* USB descriptor */
+typedef struct _usb_desc {
+ uint8_t *dev_desc; /*!< device descriptor */
+ uint8_t *config_desc; /*!< configure descriptor */
+ uint8_t *bos_desc; /*!< BOS descriptor */
+
+ void* const *strings; /*!< string descriptor */
+} usb_desc;
+
+/* USB power management */
+typedef struct _usb_pm {
+ uint8_t power_mode; /*!< power mode */
+ uint8_t power_low; /*!< power low */
+ uint8_t dev_remote_wakeup; /*!< remote wakeup */
+ uint8_t remote_wakeup_on; /*!< remote wakeup on */
+} usb_pm;
+
+/* USB control information */
+typedef struct _usb_control {
+ usb_req req; /*!< USB standard device request */
+
+ uint8_t ctl_state; /*!< USB control transfer state */
+ uint8_t ctl_zlp; /*!< zero length package */
+} usb_control;
+
+typedef struct
+{
+ struct {
+ uint8_t num: 4; /*!< the endpoint number.it can be from 0 to 6 */
+ uint8_t pad: 3; /*!< padding between number and direction */
+ uint8_t dir: 1; /*!< the endpoint direction */
+ } ep_addr;
+
+ uint8_t ep_type; /*!< USB endpoint type */
+ uint8_t ep_stall; /*!< USB endpoint stall status */
+
+ uint8_t frame_num; /*!< number of frame */
+ uint16_t max_len; /*!< Maximum packet length */
+
+ /* transaction level variables */
+ uint8_t *xfer_buf; /*!< transmit buffer */
+ uint32_t xfer_len; /*!< transmit buffer length */
+ uint32_t xfer_count; /*!< transmit buffer count */
+
+ uint32_t remain_len; /*!< remain packet length */
+
+ uint32_t dma_addr; /*!< DMA address */
+} usb_transc;
+
+typedef struct _usb_core_driver usb_dev;
+
+typedef struct _usb_class_core
+{
+ uint8_t command; /*!< device class request command */
+ uint8_t alter_set; /*!< alternative set */
+
+ uint8_t (*init) (usb_dev *udev, uint8_t config_index); /*!< initialize handler */
+ uint8_t (*deinit) (usb_dev *udev, uint8_t config_index); /*!< de-initialize handler */
+
+ uint8_t (*req_proc) (usb_dev *udev, usb_req *req); /*!< device request handler */
+
+ uint8_t (*set_intf) (usb_dev *udev, usb_req *req); /*!< device set interface callback */
+
+ uint8_t (*ctlx_in) (usb_dev *udev); /*!< device contrl in callback */
+ uint8_t (*ctlx_out) (usb_dev *udev); /*!< device contrl out callback */
+
+ uint8_t (*data_in) (usb_dev *udev, uint8_t ep_num); /*!< device data in handler */
+ uint8_t (*data_out) (usb_dev *udev, uint8_t ep_num); /*!< device data out handler */
+
+ uint8_t (*SOF) (usb_dev *udev); /*!< Start of frame handler */
+
+ uint8_t (*incomplete_isoc_in) (usb_dev *udev); /*!< Incomplete synchronization IN transfer handler */
+ uint8_t (*incomplete_isoc_out) (usb_dev *udev); /*!< Incomplete synchronization OUT transfer handler */
+} usb_class_core;
+
+typedef struct _usb_perp_dev
+{
+ uint8_t config; /*!< configuration */
+ uint8_t dev_addr; /*!< device address */
+
+ __IO uint8_t cur_status; /*!< current status */
+ __IO uint8_t backup_status; /*!< backup status */
+
+ usb_transc transc_in[USBFS_MAX_TX_FIFOS]; /*!< endpoint IN transaction */
+ usb_transc transc_out[USBFS_MAX_TX_FIFOS]; /*!< endpoint OUT transaction */
+
+ usb_pm pm; /*!< power management */
+ usb_control control; /*!< USB control information */
+ usb_desc *desc; /*!< USB descriptors pointer */
+ usb_class_core *class_core; /*!< class driver */
+ void *class_data[USBD_ITF_MAX_NUM]; /*!< class data pointer */
+ void *user_data; /*!< user data pointer */
+ void *pdata; /*!< reserved data pointer */
+} usb_perp_dev;
+
+typedef struct _usb_core_driver
+{
+ usb_core_basic bp; /*!< USB basic parameters */
+ usb_core_regs regs; /*!< USB registers */
+ usb_perp_dev dev; /*!< USB peripheral device */
+} usb_core_driver;
+
+/* static inline function definitions */
+
+/*!
+ \brief configure the USB device to be disconnected
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval operation status
+*/
+static inline void usb_dev_disconnect (usb_core_driver *udev)
+{
+ udev->regs.dr->DCTL |= DCTL_SD;
+}
+
+/*!
+ \brief configure the USB device to be connected
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval operation status
+*/
+static inline void usb_dev_connect (usb_core_driver *udev)
+{
+ udev->regs.dr->DCTL &= ~DCTL_SD;
+}
+
+/*!
+ \brief set the USB device address
+ \param[in] udev: pointer to USB device
+ \param[in] dev_addr: device address for setting
+ \param[out] none
+ \retval operation status
+*/
+static inline void usb_devaddr_set (usb_core_driver *udev, uint8_t dev_addr)
+{
+ udev->regs.dr->DCFG &= ~DCFG_DAR;
+ udev->regs.dr->DCFG |= (uint32_t)dev_addr << 4;
+}
+
+/*!
+ \brief read device all OUT endpoint interrupt register
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval interrupt status
+*/
+static inline uint32_t usb_oepintnum_read (usb_core_driver *udev)
+{
+ uint32_t value = udev->regs.dr->DAEPINT;
+
+ value &= udev->regs.dr->DAEPINTEN;
+
+ return (value & DAEPINT_OEPITB) >> 16;
+}
+
+/*!
+ \brief read device OUT endpoint interrupt flag register
+ \param[in] udev: pointer to USB device
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval interrupt status
+*/
+static inline uint32_t usb_oepintr_read (usb_core_driver *udev, uint8_t ep_num)
+{
+ uint32_t value = udev->regs.er_out[ep_num]->DOEPINTF;
+
+ value &= udev->regs.dr->DOEPINTEN;
+
+ return value;
+}
+
+/*!
+ \brief read device all IN endpoint interrupt register
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval interrupt status
+*/
+static inline uint32_t usb_iepintnum_read (usb_core_driver *udev)
+{
+ uint32_t value = udev->regs.dr->DAEPINT;
+
+ value &= udev->regs.dr->DAEPINTEN;
+
+ return value & DAEPINT_IEPITB;
+}
+
+/*!
+ \brief set remote wakeup signaling
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+static inline void usb_rwkup_set (usb_core_driver *udev)
+{
+ if (udev->dev.pm.dev_remote_wakeup) {
+ /* enable remote wakeup signaling */
+ udev->regs.dr->DCTL |= DCTL_RWKUP;
+ }
+}
+
+/*!
+ \brief reset remote wakeup signaling
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+static inline void usb_rwkup_reset (usb_core_driver *udev)
+{
+ if (udev->dev.pm.dev_remote_wakeup) {
+ /* disable remote wakeup signaling */
+ udev->regs.dr->DCTL &= ~DCTL_RWKUP;
+ }
+}
+
+/* function declarations */
+/* initialize USB core registers for device mode */
+usb_status usb_devcore_init (usb_core_driver *udev);
+/* enable the USB device mode interrupts */
+usb_status usb_devint_enable (usb_core_driver *udev);
+/* active the USB endpoint 0 transaction */
+usb_status usb_transc0_active (usb_core_driver *udev, usb_transc *transc);
+/* active the USB transaction */
+usb_status usb_transc_active (usb_core_driver *udev, usb_transc *transc);
+/* deactivate the USB transaction */
+usb_status usb_transc_deactivate (usb_core_driver *udev, usb_transc *transc);
+/* configure USB transaction to start IN transfer */
+usb_status usb_transc_inxfer (usb_core_driver *udev, usb_transc *transc);
+/* configure USB transaction to start OUT transfer */
+usb_status usb_transc_outxfer (usb_core_driver *udev, usb_transc *transc);
+/* set the USB transaction STALL status */
+usb_status usb_transc_stall (usb_core_driver *udev, usb_transc *transc);
+/* clear the USB transaction STALL status */
+usb_status usb_transc_clrstall (usb_core_driver *udev, usb_transc *transc);
+/* read device IN endpoint interrupt flag register */
+uint32_t usb_iepintr_read (usb_core_driver *udev, uint8_t ep_num);
+/* configures OUT endpoint 0 to receive SETUP packets */
+void usb_ctlep_startout (usb_core_driver *udev);
+/* active remote wakeup signaling */
+void usb_rwkup_active (usb_core_driver *udev);
+/* active USB core clock */
+void usb_clock_active (usb_core_driver *udev);
+/* USB device suspend */
+void usb_dev_suspend (usb_core_driver *udev);
+/* stop the device and clean up FIFOs */
+void usb_dev_stop (usb_core_driver *udev);
+
+#endif /* __DRV_USB_DEV_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_host.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_host.h
new file mode 100644
index 0000000000..14a0989978
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_host.h
@@ -0,0 +1,193 @@
+/*!
+ \file drv_usb_host.h
+ \brief USB host mode low level driver header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USB_HOST_H
+#define __DRV_USB_HOST_H
+
+#include "drv_usb_regs.h"
+#include "usb_ch9_std.h"
+#include "drv_usb_core.h"
+
+typedef enum _usb_pipe_status
+{
+ PIPE_IDLE = 0U,
+ PIPE_XF,
+ PIPE_HALTED,
+ PIPE_NAK,
+ PIPE_NYET,
+ PIPE_STALL,
+ PIPE_TRACERR,
+ PIPE_BBERR,
+ PIPE_REQOVR,
+ PIPE_DTGERR,
+} usb_pipe_staus;
+
+typedef enum _usb_pipe_mode
+{
+ PIPE_PERIOD = 0U,
+ PIPE_NON_PERIOD = 1U
+} usb_pipe_mode;
+
+typedef enum _usb_urb_state
+{
+ URB_IDLE = 0U,
+ URB_DONE,
+ URB_NOTREADY,
+ URB_ERROR,
+ URB_STALL,
+ URB_PING
+} usb_urb_state;
+
+typedef struct _usb_pipe
+{
+ uint8_t in_used;
+ uint8_t dev_addr;
+ uint32_t dev_speed;
+
+ struct {
+ uint8_t num;
+ uint8_t dir;
+ uint8_t type;
+ uint16_t mps;
+ } ep;
+
+ uint8_t ping;
+ uint32_t DPID;
+
+ uint8_t *xfer_buf;
+ uint32_t xfer_len;
+ uint32_t xfer_count;
+
+ uint8_t data_toggle_in;
+ uint8_t data_toggle_out;
+
+ __IO uint32_t err_count;
+ __IO usb_pipe_staus pp_status;
+ __IO usb_urb_state urb_state;
+} usb_pipe;
+
+
+typedef struct _usb_host_drv
+{
+ __IO uint32_t connect_status;
+ __IO uint32_t port_enabled;
+ __IO uint32_t backup_xfercount[USBFS_MAX_TX_FIFOS];
+
+ usb_pipe pipe[USBFS_MAX_TX_FIFOS];
+ void *data;
+} usb_host_drv;
+
+typedef struct _usb_core_driver
+{
+ usb_core_basic bp;
+ usb_core_regs regs;
+ usb_host_drv host;
+} usb_core_driver;
+
+/*!
+ \brief get USB even frame
+ \param[in] pudev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+static inline uint8_t usb_frame_even (usb_core_driver *pudev)
+{
+ return (uint8_t)!(pudev->regs.hr->HFINFR & 0x01U);
+}
+
+/*!
+ \brief configure USB clock of PHY
+ \param[in] pudev: pointer to USB device
+ \param[in] clock: PHY clock
+ \param[out] none
+ \retval none
+*/
+static inline void usb_phyclock_config (usb_core_driver *pudev, uint8_t clock)
+{
+ pudev->regs.hr->HCTL &= ~HCTL_CLKSEL;
+ pudev->regs.hr->HCTL |= clock;
+}
+
+/*!
+ \brief read USB port
+ \param[in] pudev: pointer to USB device
+ \param[out] none
+ \retval port status
+*/
+static inline uint32_t usb_port_read (usb_core_driver *pudev)
+{
+ return *pudev->regs.HPCS & ~(HPCS_PE | HPCS_PCD | HPCS_PEDC);
+}
+
+/*!
+ \brief get USB current speed
+ \param[in] pudev: pointer to USB device
+ \param[out] none
+ \retval USB current speed
+*/
+static inline uint32_t usb_curspeed_get (usb_core_driver *pudev)
+{
+ return *pudev->regs.HPCS & HPCS_PS;
+}
+
+/*!
+ \brief get USB current frame
+ \param[in] pudev: pointer to USB device
+ \param[out] none
+ \retval USB current frame
+*/
+static inline uint32_t usb_curframe_get (usb_core_driver *pudev)
+{
+ return (pudev->regs.hr->HFINFR & 0xFFFFU);
+}
+
+/* function declarations */
+/* initializes USB core for host mode */
+usb_status usb_host_init (usb_core_driver *pudev);
+/* control the VBUS to power */
+void usb_portvbus_switch (usb_core_driver *pudev, uint8_t state);
+/* reset host port */
+uint32_t usb_port_reset (usb_core_driver *pudev);
+/* initialize host pipe */
+usb_status usb_pipe_init (usb_core_driver *pudev, uint8_t pipe_num);
+/* prepare host pipe for transferring packets */
+usb_status usb_pipe_xfer (usb_core_driver *pudev, uint8_t pipe_num);
+/* halt host pipe */
+usb_status usb_pipe_halt (usb_core_driver *pudev, uint8_t pipe_num);
+/* configure host pipe to do ping operation */
+usb_status usb_pipe_ping (usb_core_driver *pudev, uint8_t pipe_num);
+/* stop the USB host and clean up FIFO */
+void usb_host_stop (usb_core_driver *pudev);
+
+#endif /* __DRV_USB_HOST_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_hw.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_hw.h
new file mode 100644
index 0000000000..b8b423a0d5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_hw.h
@@ -0,0 +1,69 @@
+/*!
+ \file drv_usb_hw.h
+ \brief usb hardware configuration header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USB_HW_H
+#define __DRV_USB_HW_H
+
+#include "usb_conf.h"
+
+/* function declarations */
+/* configure USB clock */
+void usb_rcu_config (void);
+/* configure USB interrupt */
+void usb_intr_config (void);
+/* initializes delay unit using Timer2 */
+void usb_timer_init (void);
+/* delay in micro seconds */
+void usb_udelay (const uint32_t usec);
+/* delay in milliseconds */
+void usb_mdelay (const uint32_t msec);
+/* configures system clock after wakeup from STOP mode */
+void system_clk_config_stop(void);
+
+/* configure the CTC peripheral */
+#ifdef USE_IRC48M
+ void ctc_config(void);
+#endif /* USE_IRC48M */
+
+#ifdef USE_HOST_MODE
+ void systick_config(void);
+
+ /* configure USB VBus */
+ void usb_vbus_config (void);
+
+ /* drive USB VBus */
+ void usb_vbus_drive (uint8_t State);
+#endif /* USE_HOST_MODE */
+
+#endif /* __DRV_USB_HW_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_regs.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_regs.h
new file mode 100644
index 0000000000..877aea76cb
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usb_regs.h
@@ -0,0 +1,657 @@
+/*!
+ \file drv_usb_regs.h
+ \brief USB cell registers definition and handle macros
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USB_REGS_H
+#define __DRV_USB_REGS_H
+
+#include "usb_conf.h"
+
+#define USBHS_REG_BASE 0x40040000L /*!< base address of USBHS registers */
+#define USBFS_REG_BASE 0x50000000L /*!< base address of USBFS registers */
+
+#define USBFS_MAX_TX_FIFOS 15U /*!< FIFO number */
+
+#define USBFS_MAX_PACKET_SIZE 64U /*!< USBFS max packet size */
+#define USBFS_MAX_CHANNEL_COUNT 8U /*!< USBFS host channel count */
+#define USBFS_MAX_EP_COUNT 4U /*!< USBFS device endpoint count */
+#define USBFS_MAX_FIFO_WORDLEN 320U /*!< USBFS max fifo size in words */
+
+#define USBHS_MAX_PACKET_SIZE 512U /*!< USBHS max packet size */
+#define USBHS_MAX_CHANNEL_COUNT 12U /*!< USBHS host channel count */
+#define USBHS_MAX_EP_COUNT 6U /*!< USBHS device endpoint count */
+#define USBHS_MAX_FIFO_WORDLEN 1280U /*!< USBHS max fifo size in words */
+
+#define USB_DATA_FIFO_OFFSET 0x1000U /*!< USB data fifo offset */
+#define USB_DATA_FIFO_SIZE 0x1000U /*!< USB data fifo size */
+
+typedef enum
+{
+ USB_CORE_ENUM_HS = 0, /*!< USB core type is HS */
+ USB_CORE_ENUM_FS = 1 /*!< USB core type is FS */
+} usb_core_enum;
+
+enum USB_SPEED {
+ USB_SPEED_UNKNOWN = 0, /*!< USB speed unknown */
+ USB_SPEED_LOW, /*!< USB speed low */
+ USB_SPEED_FULL, /*!< USB speed full */
+ USB_SPEED_HIGH, /*!< USB speed high */
+};
+
+enum usb_reg_offset {
+ USB_REG_OFFSET_CORE = 0x0000U, /*!< global OTG control and status register */
+ USB_REG_OFFSET_DEV = 0x0800U, /*!< device mode control and status registers */
+ USB_REG_OFFSET_EP = 0x0020U,
+ USB_REG_OFFSET_EP_IN = 0x0900U, /*!< device IN endpoint 0 control register */
+ USB_REG_OFFSET_EP_OUT = 0x0B00U, /*!< device OUT endpoint 0 control register */
+ USB_REG_OFFSET_HOST = 0x0400U, /*!< host control register */
+ USB_REG_OFFSET_CH = 0x0020U,
+ USB_REG_OFFSET_PORT = 0x0440U, /*!< host port control and status register */
+ USB_REG_OFFSET_CH_INOUT = 0x0500U, /*!< Host channel-x control registers */
+ USB_REG_OFFSET_PWRCLKCTL = 0x0E00U, /*!< power and clock register */
+};
+
+typedef struct
+{
+ __IO uint32_t GOTGCS; /*!< USB global OTG control and status register 000h */
+ __IO uint32_t GOTGINTF; /*!< USB global OTG interrupt flag register 004h */
+ __IO uint32_t GAHBCS; /*!< USB global AHB control and status register 008h */
+ __IO uint32_t GUSBCS; /*!< USB global USB control and status register 00Ch */
+ __IO uint32_t GRSTCTL; /*!< USB global reset control register 010h */
+ __IO uint32_t GINTF; /*!< USB global interrupt flag register 014h */
+ __IO uint32_t GINTEN; /*!< USB global interrupt enable register 018h */
+ __IO uint32_t GRSTATR; /*!< USB receive status debug read register 01Ch */
+ __IO uint32_t GRSTATP; /*!< USB receive status and pop register 020h */
+ __IO uint32_t GRFLEN; /*!< USB global receive FIFO length register 024h */
+ __IO uint32_t DIEP0TFLEN_HNPTFLEN; /*!< USB device IN endpoint 0/host non-periodic transmit FIFO length register 028h */
+ __IO uint32_t HNPTFQSTAT; /*!< USB host non-periodic FIFO/queue status register 02Ch */
+ uint32_t Reserved30[2]; /*!< Reserved 030h */
+ __IO uint32_t GCCFG; /*!< USB global core configuration register 038h */
+ __IO uint32_t CID; /*!< USB core ID register 03Ch */
+ uint32_t Reserved40[48]; /*!< Reserved 040h-0FFh */
+ __IO uint32_t HPTFLEN; /*!< USB host periodic transmit FIFO length register 100h */
+ __IO uint32_t DIEPTFLEN[15]; /*!< USB device IN endpoint transmit FIFO length register 104h */
+} usb_gr;
+
+typedef struct
+{
+ __IO uint32_t HCTL; /*!< USB host control register 400h */
+ __IO uint32_t HFT; /*!< USB host frame interval register 404h */
+ __IO uint32_t HFINFR; /*!< USB host frame information remaining register 408h */
+ uint32_t Reserved40C; /*!< Reserved 40Ch */
+ __IO uint32_t HPTFQSTAT; /*!< USB host periodic transmit FIFO/queue status register 410h */
+ __IO uint32_t HACHINT; /*!< USB host all channels interrupt register 414h */
+ __IO uint32_t HACHINTEN; /*!< USB host all channels interrupt enable register 418h */
+} usb_hr;
+
+typedef struct
+{
+ __IO uint32_t HCHCTL; /*!< USB host channel control register 500h */
+ __IO uint32_t HCHSTCTL; /*!< Reserved 504h */
+ __IO uint32_t HCHINTF; /*!< USB host channel interrupt flag register 508h */
+ __IO uint32_t HCHINTEN; /*!< USB host channel interrupt enable register 50Ch */
+ __IO uint32_t HCHLEN; /*!< USB host channel transfer length register 510h */
+ __IO uint32_t HCHDMAADDR; /*!< USB host channel-x DMA address register 514h*/
+ uint32_t Reserved[2];
+} usb_pr;
+
+typedef struct
+{
+ __IO uint32_t DCFG; /*!< USB device configuration register 800h */
+ __IO uint32_t DCTL; /*!< USB device control register 804h */
+ __IO uint32_t DSTAT; /*!< USB device status register 808h */
+ uint32_t Reserved0C; /*!< Reserved 80Ch */
+ __IO uint32_t DIEPINTEN; /*!< USB device IN endpoint common interrupt enable register 810h */
+ __IO uint32_t DOEPINTEN; /*!< USB device OUT endpoint common interrupt enable register 814h */
+ __IO uint32_t DAEPINT; /*!< USB device all endpoints interrupt register 818h */
+ __IO uint32_t DAEPINTEN; /*!< USB device all endpoints interrupt enable register 81Ch */
+ uint32_t Reserved20; /*!< Reserved 820h */
+ uint32_t Reserved24; /*!< Reserved 824h */
+ __IO uint32_t DVBUSDT; /*!< USB device VBUS discharge time register 828h */
+ __IO uint32_t DVBUSPT; /*!< USB device VBUS pulsing time register 82Ch */
+ __IO uint32_t DTHRCTL; /*!< dev threshold control 830h */
+ __IO uint32_t DIEPFEINTEN; /*!< USB Device IN endpoint FIFO empty interrupt enable register 834h */
+ __IO uint32_t DEP1INT; /*!< USB device endpoint 1 interrupt register 838h */
+ __IO uint32_t DEP1INTEN; /*!< USB device endpoint 1 interrupt enable register 83Ch */
+ uint32_t Reserved40; /*!< Reserved 840h */
+ __IO uint32_t DIEP1INTEN; /*!< USB device IN endpoint-1 interrupt enable register 844h */
+ uint32_t Reserved48[15]; /*!< Reserved 848-880h */
+ __IO uint32_t DOEP1INTEN; /*!< USB device OUT endpoint-1 interrupt enable register 884h */
+} usb_dr;
+
+typedef struct
+{
+ __IO uint32_t DIEPCTL; /*!< USB device IN endpoint control register 900h + (EpNum * 20h) + 00h */
+ uint32_t Reserved04; /*!< Reserved 900h + (EpNum * 20h) + 04h */
+ __IO uint32_t DIEPINTF; /*!< USB device IN endpoint interrupt flag register 900h + (EpNum * 20h) + 08h */
+ uint32_t Reserved0C; /*!< Reserved 900h + (EpNum * 20h) + 0Ch */
+ __IO uint32_t DIEPLEN; /*!< USB device IN endpoint transfer length register 900h + (EpNum * 20h) + 10h */
+ __IO uint32_t DIEPDMAADDR; /*!< Device IN endpoint-x DMA address register 900h + (EpNum * 20h) + 14h */
+ __IO uint32_t DIEPTFSTAT; /*!< USB device IN endpoint transmit FIFO status register 900h + (EpNum * 20h) + 18h */
+} usb_erin;
+
+typedef struct
+{
+ __IO uint32_t DOEPCTL; /*!< USB device IN endpoint control register B00h + (EpNum * 20h) + 00h */
+ uint32_t Reserved04; /*!< Reserved B00h + (EpNum * 20h) + 04h */
+ __IO uint32_t DOEPINTF; /*!< USB device IN endpoint interrupt flag register B00h + (EpNum * 20h) + 08h */
+ uint32_t Reserved0C; /*!< Reserved B00h + (EpNum * 20h) + 0Ch */
+ __IO uint32_t DOEPLEN; /*!< USB device IN endpoint transfer length register B00h + (EpNum * 20h) + 10h */
+ __IO uint32_t DOEPDMAADDR; /*!< Device OUT endpoint-x DMA address register B00h + (EpNum * 20h) + 0Ch */
+} usb_erout;
+
+typedef struct _usb_regs
+{
+ usb_gr *gr; /*!< USBFS global registers */
+ usb_dr *dr; /*!< Device control and status registers */
+ usb_hr *hr; /*!< Host control and status registers */
+ usb_erin *er_in[6]; /*!< USB device IN endpoint register */
+ usb_erout *er_out[6]; /*!< USB device OUT endpoint register */
+ usb_pr *pr[15]; /*!< USB Host channel-x control register */
+
+ __IO uint32_t *HPCS; /*!< USB host port control and status register */
+ __IO uint32_t *DFIFO[USBFS_MAX_TX_FIFOS];
+ __IO uint32_t *PWRCLKCTL; /*!< USB power and clock control register */
+} usb_core_regs;
+
+/* global OTG control and status register bits definitions */
+#define GOTGCS_BSV BIT(19) /*!< B-Session Valid */
+#define GOTGCS_ASV BIT(18) /*!< A-session valid */
+#define GOTGCS_DI BIT(17) /*!< debounce interval */
+#define GOTGCS_CIDPS BIT(16) /*!< id pin status */
+#define GOTGCS_DHNPEN BIT(11) /*!< device HNP enable */
+#define GOTGCS_HHNPEN BIT(10) /*!< host HNP enable */
+#define GOTGCS_HNPREQ BIT(9) /*!< HNP request */
+#define GOTGCS_HNPS BIT(8) /*!< HNP successes */
+#define GOTGCS_SRPREQ BIT(1) /*!< SRP request */
+#define GOTGCS_SRPS BIT(0) /*!< SRP successes */
+
+/* global OTG interrupt flag register bits definitions */
+#define GOTGINTF_DF BIT(19) /*!< debounce finish */
+#define GOTGINTF_ADTO BIT(18) /*!< A-device timeout */
+#define GOTGINTF_HNPDET BIT(17) /*!< host negotiation request detected */
+#define GOTGINTF_HNPEND BIT(9) /*!< HNP end */
+#define GOTGINTF_SRPEND BIT(8) /*!< SRP end */
+#define GOTGINTF_SESEND BIT(2) /*!< session end */
+
+/* global AHB control and status register bits definitions */
+#define GAHBCS_PTXFTH BIT(8) /*!< periodic Tx FIFO threshold */
+#define GAHBCS_TXFTH BIT(7) /*!< tx FIFO threshold */
+#define GAHBCS_DMAEN BIT(5) /*!< DMA function Enable */
+#define GAHBCS_BURST BITS(1, 4) /*!< the AHB burst type used by DMA */
+#define GAHBCS_GINTEN BIT(0) /*!< global interrupt enable */
+
+/* global USB control and status register bits definitions */
+#define GUSBCS_FDM BIT(30) /*!< force device mode */
+#define GUSBCS_FHM BIT(29) /*!< force host mode */
+#define GUSBCS_ULPIEOI BIT(21) /*!< ULPI external over-current indicator */
+#define GUSBCS_ULPIEVD BIT(20) /*!< ULPI external VBUS driver */
+#define GUSBCS_UTT BITS(10, 13) /*!< USB turnaround time */
+#define GUSBCS_HNPCEN BIT(9) /*!< HNP capability enable */
+#define GUSBCS_SRPCEN BIT(8) /*!< SRP capability enable */
+#define GUSBCS_EMBPHY BIT(6) /*!< embedded PHY selected */
+#define GUSBCS_TOC BITS(0, 2) /*!< timeout calibration */
+
+/* global reset control register bits definitions */
+#define GRSTCTL_DMAIDL BIT(31) /*!< DMA idle state */
+#define GRSTCTL_DMABSY BIT(30) /*!< DMA busy */
+#define GRSTCTL_TXFNUM BITS(6, 10) /*!< tx FIFO number */
+#define GRSTCTL_TXFF BIT(5) /*!< tx FIFO flush */
+#define GRSTCTL_RXFF BIT(4) /*!< rx FIFO flush */
+#define GRSTCTL_HFCRST BIT(2) /*!< host frame counter reset */
+#define GRSTCTL_HCSRST BIT(1) /*!< HCLK soft reset */
+#define GRSTCTL_CSRST BIT(0) /*!< core soft reset */
+
+/* global interrupt flag register bits definitions */
+#define GINTF_WKUPIF BIT(31) /*!< wakeup interrupt flag */
+#define GINTF_SESIF BIT(30) /*!< session interrupt flag */
+#define GINTF_DISCIF BIT(29) /*!< disconnect interrupt flag */
+#define GINTF_IDPSC BIT(28) /*!< id pin status change */
+#define GINTF_PTXFEIF BIT(26) /*!< periodic tx FIFO empty interrupt flag */
+#define GINTF_HCIF BIT(25) /*!< host channels interrupt flag */
+#define GINTF_HPIF BIT(24) /*!< host port interrupt flag */
+#define GINTF_PXNCIF BIT(21) /*!< periodic transfer not complete interrupt flag */
+#define GINTF_ISOONCIF BIT(21) /*!< isochronous OUT transfer not complete interrupt flag */
+#define GINTF_ISOINCIF BIT(20) /*!< isochronous IN transfer not complete interrupt flag */
+#define GINTF_OEPIF BIT(19) /*!< OUT endpoint interrupt flag */
+#define GINTF_IEPIF BIT(18) /*!< IN endpoint interrupt flag */
+#define GINTF_EOPFIF BIT(15) /*!< end of periodic frame interrupt flag */
+#define GINTF_ISOOPDIF BIT(14) /*!< isochronous OUT packet dropped interrupt flag */
+#define GINTF_ENUMFIF BIT(13) /*!< enumeration finished */
+#define GINTF_RST BIT(12) /*!< USB reset */
+#define GINTF_SP BIT(11) /*!< USB suspend */
+#define GINTF_ESP BIT(10) /*!< early suspend */
+#define GINTF_GONAK BIT(7) /*!< global OUT NAK effective */
+#define GINTF_GNPINAK BIT(6) /*!< global IN non-periodic NAK effective */
+#define GINTF_NPTXFEIF BIT(5) /*!< non-periodic tx FIFO empty interrupt flag */
+#define GINTF_RXFNEIF BIT(4) /*!< rx FIFO non-empty interrupt flag */
+#define GINTF_SOF BIT(3) /*!< start of frame */
+#define GINTF_OTGIF BIT(2) /*!< OTG interrupt flag */
+#define GINTF_MFIF BIT(1) /*!< mode fault interrupt flag */
+#define GINTF_COPM BIT(0) /*!< current operation mode */
+
+/* global interrupt enable register bits definitions */
+#define GINTEN_WKUPIE BIT(31) /*!< wakeup interrupt enable */
+#define GINTEN_SESIE BIT(30) /*!< session interrupt enable */
+#define GINTEN_DISCIE BIT(29) /*!< disconnect interrupt enable */
+#define GINTEN_IDPSCIE BIT(28) /*!< id pin status change interrupt enable */
+#define GINTEN_PTXFEIE BIT(26) /*!< periodic tx FIFO empty interrupt enable */
+#define GINTEN_HCIE BIT(25) /*!< host channels interrupt enable */
+#define GINTEN_HPIE BIT(24) /*!< host port interrupt enable */
+#define GINTEN_IPXIE BIT(21) /*!< periodic transfer not complete interrupt enable */
+#define GINTEN_ISOONCIE BIT(21) /*!< isochronous OUT transfer not complete interrupt enable */
+#define GINTEN_ISOINCIE BIT(20) /*!< isochronous IN transfer not complete interrupt enable */
+#define GINTEN_OEPIE BIT(19) /*!< OUT endpoints interrupt enable */
+#define GINTEN_IEPIE BIT(18) /*!< IN endpoints interrupt enable */
+#define GINTEN_EOPFIE BIT(15) /*!< end of periodic frame interrupt enable */
+#define GINTEN_ISOOPDIE BIT(14) /*!< isochronous OUT packet dropped interrupt enable */
+#define GINTEN_ENUMFIE BIT(13) /*!< enumeration finish enable */
+#define GINTEN_RSTIE BIT(12) /*!< USB reset interrupt enable */
+#define GINTEN_SPIE BIT(11) /*!< USB suspend interrupt enable */
+#define GINTEN_ESPIE BIT(10) /*!< early suspend interrupt enable */
+#define GINTEN_GONAKIE BIT(7) /*!< global OUT NAK effective interrupt enable */
+#define GINTEN_GNPINAKIE BIT(6) /*!< global non-periodic IN NAK effective interrupt enable */
+#define GINTEN_NPTXFEIE BIT(5) /*!< non-periodic Tx FIFO empty interrupt enable */
+#define GINTEN_RXFNEIE BIT(4) /*!< receive FIFO non-empty interrupt enable */
+#define GINTEN_SOFIE BIT(3) /*!< start of frame interrupt enable */
+#define GINTEN_OTGIE BIT(2) /*!< OTG interrupt enable */
+#define GINTEN_MFIE BIT(1) /*!< mode fault interrupt enable */
+
+/* global receive status read and pop register bits definitions */
+#define GRSTATRP_RPCKST BITS(17, 20) /*!< received packet status */
+#define GRSTATRP_DPID BITS(15, 16) /*!< data PID */
+#define GRSTATRP_BCOUNT BITS(4, 14) /*!< byte count */
+#define GRSTATRP_CNUM BITS(0, 3) /*!< channel number */
+#define GRSTATRP_EPNUM BITS(0, 3) /*!< endpoint number */
+
+/* global receive FIFO length register bits definitions */
+#define GRFLEN_RXFD BITS(0, 15) /*!< rx FIFO depth */
+
+/* host non-periodic transmit FIFO length register bits definitions */
+#define HNPTFLEN_HNPTXFD BITS(16, 31) /*!< non-periodic Tx FIFO depth */
+#define HNPTFLEN_HNPTXRSAR BITS(0, 15) /*!< non-periodic Tx RAM start address */
+
+/* USB IN endpoint 0 transmit FIFO length register bits definitions */
+#define DIEP0TFLEN_IEP0TXFD BITS(16, 31) /*!< IN Endpoint 0 Tx FIFO depth */
+#define DIEP0TFLEN_IEP0TXRSAR BITS(0, 15) /*!< IN Endpoint 0 TX RAM start address */
+
+/* host non-periodic transmit FIFO/queue status register bits definitions */
+#define HNPTFQSTAT_NPTXRQTOP BITS(24, 30) /*!< top entry of the non-periodic Tx request queue */
+#define HNPTFQSTAT_NPTXRQS BITS(16, 23) /*!< non-periodic Tx request queue space */
+#define HNPTFQSTAT_NPTXFS BITS(0, 15) /*!< non-periodic Tx FIFO space */
+#define HNPTFQSTAT_CNUM BITS(27, 30) /*!< channel number*/
+#define HNPTFQSTAT_EPNUM BITS(27, 30) /*!< endpoint number */
+#define HNPTFQSTAT_TYPE BITS(25, 26) /*!< token type */
+#define HNPTFQSTAT_TMF BIT(24) /*!< terminate flag */
+
+/* global core configuration register bits definitions */
+#define GCCFG_VBUSIG BIT(21) /*!< vbus ignored */
+#define GCCFG_SOFOEN BIT(20) /*!< SOF output enable */
+#define GCCFG_VBUSBCEN BIT(19) /*!< the VBUS B-device comparer enable */
+#define GCCFG_VBUSACEN BIT(18) /*!< the VBUS A-device comparer enable */
+#define GCCFG_PWRON BIT(16) /*!< power on */
+
+/* core ID register bits definitions */
+#define CID_CID BITS(0, 31) /*!< core ID */
+
+/* host periodic transmit FIFO length register bits definitions */
+#define HPTFLEN_HPTXFD BITS(16, 31) /*!< host periodic Tx FIFO depth */
+#define HPTFLEN_HPTXFSAR BITS(0, 15) /*!< host periodic Tx RAM start address */
+
+/* device IN endpoint transmit FIFO length register bits definitions */
+#define DIEPTFLEN_IEPTXFD BITS(16, 31) /*!< IN endpoint Tx FIFO x depth */
+#define DIEPTFLEN_IEPTXRSAR BITS(0, 15) /*!< IN endpoint FIFOx Tx x RAM start address */
+
+/* host control register bits definitions */
+#define HCTL_SPDFSLS BIT(2) /*!< speed limited to FS and LS */
+#define HCTL_CLKSEL BITS(0, 1) /*!< clock select for USB clock */
+
+/* host frame interval register bits definitions */
+#define HFT_FRI BITS(0, 15) /*!< frame interval */
+
+/* host frame information remaining register bits definitions */
+#define HFINFR_FRT BITS(16, 31) /*!< frame remaining time */
+#define HFINFR_FRNUM BITS(0, 15) /*!< frame number */
+
+/* host periodic transmit FIFO/queue status register bits definitions */
+#define HPTFQSTAT_PTXREQT BITS(24, 31) /*!< top entry of the periodic Tx request queue */
+#define HPTFQSTAT_PTXREQS BITS(16, 23) /*!< periodic Tx request queue space */
+#define HPTFQSTAT_PTXFS BITS(0, 15) /*!< periodic Tx FIFO space */
+#define HPTFQSTAT_OEFRM BIT(31) /*!< odd/eveb frame */
+#define HPTFQSTAT_CNUM BITS(27, 30) /*!< channel number */
+#define HPTFQSTAT_EPNUM BITS(27, 30) /*!< endpoint number */
+#define HPTFQSTAT_TYPE BITS(25, 26) /*!< token type */
+#define HPTFQSTAT_TMF BIT(24) /*!< terminate flag */
+
+#define TFQSTAT_TXFS BITS(0, 15)
+#define TFQSTAT_CNUM BITS(27, 30)
+
+/* host all channels interrupt register bits definitions */
+#define HACHINT_HACHINT BITS(0, 11) /*!< host all channel interrupts */
+
+/* host all channels interrupt enable register bits definitions */
+#define HACHINTEN_CINTEN BITS(0, 11) /*!< channel interrupt enable */
+
+/* host port control and status register bits definitions */
+#define HPCS_PS BITS(17, 18) /*!< port speed */
+#define HPCS_PP BIT(12) /*!< port power */
+#define HPCS_PLST BITS(10, 11) /*!< port line status */
+#define HPCS_PRST BIT(8) /*!< port reset */
+#define HPCS_PSP BIT(7) /*!< port suspend */
+#define HPCS_PREM BIT(6) /*!< port resume */
+#define HPCS_PEDC BIT(3) /*!< port enable/disable change */
+#define HPCS_PE BIT(2) /*!< port enable */
+#define HPCS_PCD BIT(1) /*!< port connect detected */
+#define HPCS_PCST BIT(0) /*!< port connect status */
+
+/* host channel-x control register bits definitions */
+#define HCHCTL_CEN BIT(31) /*!< channel enable */
+#define HCHCTL_CDIS BIT(30) /*!< channel disable */
+#define HCHCTL_ODDFRM BIT(29) /*!< odd frame */
+#define HCHCTL_DAR BITS(22, 28) /*!< device address */
+#define HCHCTL_MPC BITS(20, 21) /*!< multiple packet count */
+#define HCHCTL_EPTYPE BITS(18, 19) /*!< endpoint type */
+#define HCHCTL_LSD BIT(17) /*!< low-speed device */
+#define HCHCTL_EPDIR BIT(15) /*!< endpoint direction */
+#define HCHCTL_EPNUM BITS(11, 14) /*!< endpoint number */
+#define HCHCTL_MPL BITS(0, 10) /*!< maximum packet length */
+
+/* host channel-x split transaction register bits definitions */
+#define HCHSTCTL_SPLEN BIT(31) /*!< enable high-speed split transaction */
+#define HCHSTCTL_CSPLT BIT(16) /*!< complete-split enable */
+#define HCHSTCTL_ISOPCE BITS(14, 15) /*!< isochronous OUT payload continuation encoding */
+#define HCHSTCTL_HADDR BITS(7, 13) /*!< HUB address */
+#define HCHSTCTL_PADDR BITS(0, 6) /*!< port address */
+
+/* host channel-x interrupt flag register bits definitions */
+#define HCHINTF_DTER BIT(10) /*!< data toggle error */
+#define HCHINTF_REQOVR BIT(9) /*!< request queue overrun */
+#define HCHINTF_BBER BIT(8) /*!< babble error */
+#define HCHINTF_USBER BIT(7) /*!< USB bus Error */
+#define HCHINTF_NYET BIT(6) /*!< NYET */
+#define HCHINTF_ACK BIT(5) /*!< ACK */
+#define HCHINTF_NAK BIT(4) /*!< NAK */
+#define HCHINTF_STALL BIT(3) /*!< STALL */
+#define HCHINTF_DMAER BIT(2) /*!< DMA error */
+#define HCHINTF_CH BIT(1) /*!< channel halted */
+#define HCHINTF_TF BIT(0) /*!< transfer finished */
+
+/* host channel-x interrupt enable register bits definitions */
+#define HCHINTEN_DTERIE BIT(10) /*!< data toggle error interrupt enable */
+#define HCHINTEN_REQOVRIE BIT(9) /*!< request queue overrun interrupt enable */
+#define HCHINTEN_BBERIE BIT(8) /*!< babble error interrupt enable */
+#define HCHINTEN_USBERIE BIT(7) /*!< USB bus error interrupt enable */
+#define HCHINTEN_NYETIE BIT(6) /*!< NYET interrupt enable */
+#define HCHINTEN_ACKIE BIT(5) /*!< ACK interrupt enable */
+#define HCHINTEN_NAKIE BIT(4) /*!< NAK interrupt enable */
+#define HCHINTEN_STALLIE BIT(3) /*!< STALL interrupt enable */
+#define HCHINTEN_DMAERIE BIT(2) /*!< DMA error interrupt enable */
+#define HCHINTEN_CHIE BIT(1) /*!< channel halted interrupt enable */
+#define HCHINTEN_TFIE BIT(0) /*!< transfer finished interrupt enable */
+
+/* host channel-x transfer length register bits definitions */
+#define HCHLEN_PING BIT(31) /*!< PING token request */
+#define HCHLEN_DPID BITS(29, 30) /*!< data PID */
+#define HCHLEN_PCNT BITS(19, 28) /*!< packet count */
+#define HCHLEN_TLEN BITS(0, 18) /*!< transfer length */
+
+/* host channel-x DMA address register bits definitions */
+#define HCHDMAADDR_DMAADDR BITS(0, 31) /*!< DMA address */
+
+#define PORT_SPEED(x) (((uint32_t)(x) << 17) & HPCS_PS) /*!< Port speed */
+
+#define PORT_SPEED_HIGH PORT_SPEED(0U) /*!< high speed */
+#define PORT_SPEED_FULL PORT_SPEED(1U) /*!< full speed */
+#define PORT_SPEED_LOW PORT_SPEED(2U) /*!< low speed */
+
+#define PIPE_CTL_DAR(x) (((uint32_t)(x) << 22) & HCHCTL_DAR) /*!< device address */
+#define PIPE_CTL_EPTYPE(x) (((uint32_t)(x) << 18) & HCHCTL_EPTYPE) /*!< endpoint type */
+#define PIPE_CTL_EPNUM(x) (((uint32_t)(x) << 11) & HCHCTL_EPNUM) /*!< endpoint number */
+#define PIPE_CTL_EPDIR(x) (((uint32_t)(x) << 15) & HCHCTL_EPDIR) /*!< endpoint direction */
+#define PIPE_CTL_EPMPL(x) (((uint32_t)(x) << 0) & HCHCTL_MPL) /*!< maximum packet length */
+#define PIPE_CTL_LSD(x) (((uint32_t)(x) << 17) & HCHCTL_LSD) /*!< low-Speed device */
+
+#define PIPE_XFER_PCNT(x) (((uint32_t)(x) << 19) & HCHLEN_PCNT) /*!< packet count */
+#define PIPE_XFER_DPID(x) (((uint32_t)(x) << 29) & HCHLEN_DPID) /*!< data PID */
+
+#define PIPE_DPID_DATA0 PIPE_XFER_DPID(0) /*!< DATA0 */
+#define PIPE_DPID_DATA1 PIPE_XFER_DPID(2) /*!< DATA1 */
+#define PIPE_DPID_DATA2 PIPE_XFER_DPID(1) /*!< DATA2 */
+#define PIPE_DPID_SETUP PIPE_XFER_DPID(3) /*!< MDATA (non-control)/SETUP (control) */
+
+extern const uint32_t PIPE_DPID[2];
+
+/* device configuration registers bits definitions */
+#define DCFG_EOPFT BITS(11, 12) /*!< end of periodic frame time */
+#define DCFG_DAR BITS(4, 10) /*!< device address */
+#define DCFG_NZLSOH BIT(2) /*!< non-zero-length status OUT handshake */
+#define DCFG_DS BITS(0, 1) /*!< device speed */
+
+/* device control registers bits definitions */
+#define DCTL_POIF BIT(11) /*!< power-on initialization finished */
+#define DCTL_CGONAK BIT(10) /*!< clear global OUT NAK */
+#define DCTL_SGONAK BIT(9) /*!< set global OUT NAK */
+#define DCTL_CGINAK BIT(8) /*!< clear global IN NAK */
+#define DCTL_SGINAK BIT(7) /*!< set global IN NAK */
+#define DCTL_GONS BIT(3) /*!< global OUT NAK status */
+#define DCTL_GINS BIT(2) /*!< global IN NAK status */
+#define DCTL_SD BIT(1) /*!< soft disconnect */
+#define DCTL_RWKUP BIT(0) /*!< remote wakeup */
+
+/* device status registers bits definitions */
+#define DSTAT_FNRSOF BITS(8, 21) /*!< the frame number of the received SOF. */
+#define DSTAT_ES BITS(1, 2) /*!< enumerated speed */
+#define DSTAT_SPST BIT(0) /*!< suspend status */
+
+/* device IN endpoint common interrupt enable registers bits definitions */
+#define DIEPINTEN_NAKEN BIT(13) /*!< NAK handshake sent by USBHS interrupt enable bit */
+#define DIEPINTEN_TXFEEN BIT(7) /*!< transmit FIFO empty interrupt enable bit */
+#define DIEPINTEN_IEPNEEN BIT(6) /*!< IN endpoint NAK effective interrupt enable bit */
+#define DIEPINTEN_EPTXFUDEN BIT(4) /*!< endpoint Tx FIFO underrun interrupt enable bit */
+#define DIEPINTEN_CITOEN BIT(3) /*!< control In Timeout interrupt enable bit */
+#define DIEPINTEN_EPDISEN BIT(1) /*!< endpoint disabled interrupt enable bit */
+#define DIEPINTEN_TFEN BIT(0) /*!< transfer finished interrupt enable bit */
+
+/* device OUT endpoint common interrupt enable registers bits definitions */
+#define DOEPINTEN_NYETEN BIT(14) /*!< NYET handshake is sent interrupt enable bit */
+#define DOEPINTEN_BTBSTPEN BIT(6) /*!< back-to-back SETUP packets interrupt enable bit */
+#define DOEPINTEN_EPRXFOVREN BIT(4) /*!< endpoint Rx FIFO overrun interrupt enable bit */
+#define DOEPINTEN_STPFEN BIT(3) /*!< SETUP phase finished interrupt enable bit */
+#define DOEPINTEN_EPDISEN BIT(1) /*!< endpoint disabled interrupt enable bit */
+#define DOEPINTEN_TFEN BIT(0) /*!< transfer finished interrupt enable bit */
+
+/* device all endpoints interrupt registers bits definitions */
+#define DAEPINT_OEPITB BITS(16, 21) /*!< device all OUT endpoint interrupt bits */
+#define DAEPINT_IEPITB BITS(0, 5) /*!< device all IN endpoint interrupt bits */
+
+/* device all endpoints interrupt enable registers bits definitions */
+#define DAEPINTEN_OEPIE BITS(16, 21) /*!< OUT endpoint interrupt enable */
+#define DAEPINTEN_IEPIE BITS(0, 3) /*!< IN endpoint interrupt enable */
+
+/* device Vbus discharge time registers bits definitions */
+#define DVBUSDT_DVBUSDT BITS(0, 15) /*!< device VBUS discharge time */
+
+/* device Vbus pulsing time registers bits definitions */
+#define DVBUSPT_DVBUSPT BITS(0, 11) /*!< device VBUS pulsing time */
+
+/* device IN endpoint FIFO empty interrupt enable register bits definitions */
+#define DIEPFEINTEN_IEPTXFEIE BITS(0, 5) /*!< IN endpoint Tx FIFO empty interrupt enable bits */
+
+/* device endpoint 0 control register bits definitions */
+#define DEP0CTL_EPEN BIT(31) /*!< endpoint enable */
+#define DEP0CTL_EPD BIT(30) /*!< endpoint disable */
+#define DEP0CTL_SNAK BIT(27) /*!< set NAK */
+#define DEP0CTL_CNAK BIT(26) /*!< clear NAK */
+#define DIEP0CTL_TXFNUM BITS(22, 25) /*!< tx FIFO number */
+#define DEP0CTL_STALL BIT(21) /*!< STALL handshake */
+#define DOEP0CTL_SNOOP BIT(20) /*!< snoop mode */
+#define DEP0CTL_EPTYPE BITS(18, 19) /*!< endpoint type */
+#define DEP0CTL_NAKS BIT(17) /*!< NAK status */
+#define DEP0CTL_EPACT BIT(15) /*!< endpoint active */
+#define DEP0CTL_MPL BITS(0, 1) /*!< maximum packet length */
+
+/* device endpoint x control register bits definitions */
+#define DEPCTL_EPEN BIT(31) /*!< endpoint enable */
+#define DEPCTL_EPD BIT(30) /*!< endpoint disable */
+#define DEPCTL_SODDFRM BIT(29) /*!< set odd frame */
+#define DEPCTL_SD1PID BIT(29) /*!< set DATA1 PID */
+#define DEPCTL_SEVNFRM BIT(28) /*!< set even frame */
+#define DEPCTL_SD0PID BIT(28) /*!< set DATA0 PID */
+#define DEPCTL_SNAK BIT(27) /*!< set NAK */
+#define DEPCTL_CNAK BIT(26) /*!< clear NAK */
+#define DIEPCTL_TXFNUM BITS(22, 25) /*!< tx FIFO number */
+#define DEPCTL_STALL BIT(21) /*!< STALL handshake */
+#define DOEPCTL_SNOOP BIT(20) /*!< snoop mode */
+#define DEPCTL_EPTYPE BITS(18, 19) /*!< endpoint type */
+#define DEPCTL_NAKS BIT(17) /*!< NAK status */
+#define DEPCTL_EOFRM BIT(16) /*!< even/odd frame */
+#define DEPCTL_DPID BIT(16) /*!< endpoint data PID */
+#define DEPCTL_EPACT BIT(15) /*!< endpoint active */
+#define DEPCTL_MPL BITS(0, 10) /*!< maximum packet length */
+
+/* device IN endpoint-x interrupt flag register bits definitions */
+#define DIEPINTF_NAK BIT(13) /*!< NAK handshake sent by USBHS */
+#define DIEPINTF_TXFE BIT(7) /*!< transmit FIFO empty */
+#define DIEPINTF_IEPNE BIT(6) /*!< IN endpoint NAK effective */
+#define DIEPINTF_EPTXFUD BIT(4) /*!< endpoint Tx FIFO underrun */
+#define DIEPINTF_CITO BIT(3) /*!< control In Timeout interrupt */
+#define DIEPINTF_EPDIS BIT(1) /*!< endpoint disabled */
+#define DIEPINTF_TF BIT(0) /*!< transfer finished */
+
+/* device OUT endpoint-x interrupt flag register bits definitions */
+#define DOEPINTF_NYET BIT(14) /*!< NYET handshake is sent */
+#define DOEPINTF_BTBSTP BIT(6) /*!< back-to-back SETUP packets */
+#define DOEPINTF_EPRXFOVR BIT(4) /*!< endpoint Rx FIFO overrun */
+#define DOEPINTF_STPF BIT(3) /*!< SETUP phase finished */
+#define DOEPINTF_EPDIS BIT(1) /*!< endpoint disabled */
+#define DOEPINTF_TF BIT(0) /*!< transfer finished */
+
+/* device IN endpoint 0 transfer length register bits definitions */
+#define DIEP0LEN_PCNT BITS(19, 20) /*!< packet count */
+#define DIEP0LEN_TLEN BITS(0, 6) /*!< transfer length */
+
+/* device OUT endpoint 0 transfer length register bits definitions */
+#define DOEP0LEN_STPCNT BITS(29, 30) /*!< SETUP packet count */
+#define DOEP0LEN_PCNT BIT(19) /*!< packet count */
+#define DOEP0LEN_TLEN BITS(0, 6) /*!< transfer length */
+
+/* device OUT endpoint-x transfer length register bits definitions */
+#define DOEPLEN_RXDPID BITS(29, 30) /*!< received data PID */
+#define DOEPLEN_STPCNT BITS(29, 30) /*!< SETUP packet count */
+#define DIEPLEN_MCNT BITS(29, 30) /*!< multi count */
+#define DEPLEN_PCNT BITS(19, 28) /*!< packet count */
+#define DEPLEN_TLEN BITS(0, 18) /*!< transfer length */
+
+/* device IN endpoint-x DMA address register bits definitions */
+#define DIEPDMAADDR_DMAADDR BITS(0, 31) /*!< DMA address */
+
+/* device OUT endpoint-x DMA address register bits definitions */
+#define DOEPDMAADDR_DMAADDR BITS(0, 31) /*!< DMA address */
+
+/* device IN endpoint-x transmit FIFO status register bits definitions */
+#define DIEPTFSTAT_IEPTFS BITS(0, 15) /*!< IN endpoint Tx FIFO space remaining */
+
+/* USB power and clock registers bits definition */
+#define PWRCLKCTL_SHCLK BIT(1) /*!< stop HCLK */
+#define PWRCLKCTL_SUCLK BIT(0) /*!< stop the USB clock */
+
+#define RSTAT_GOUT_NAK 1U /* global OUT NAK (triggers an interrupt) */
+#define RSTAT_DATA_UPDT 2U /* OUT data packet received */
+#define RSTAT_XFER_COMP 3U /* OUT transfer completed (triggers an interrupt) */
+#define RSTAT_SETUP_COMP 4U /* SETUP transaction completed (triggers an interrupt) */
+#define RSTAT_SETUP_UPDT 6U /* SETUP data packet received */
+
+#define DSTAT_EM_HS_PHY_30MHZ_60MHZ 0U /* USB enumerate speed use high-speed PHY clock in 30MHz or 60MHz */
+#define DSTAT_EM_FS_PHY_30MHZ_60MHZ 1U /* USB enumerate speed use full-speed PHY clock in 30MHz or 60MHz */
+#define DSTAT_EM_LS_PHY_6MHZ 2U /* USB enumerate speed use low-speed PHY clock in 6MHz */
+#define DSTAT_EM_FS_PHY_48MHZ 3U /* USB enumerate speed use full-speed PHY clock in 48MHz */
+
+#define DPID_DATA0 0U /* device endpoint data PID is DATA0 */
+#define DPID_DATA1 2U /* device endpoint data PID is DATA1 */
+#define DPID_DATA2 1U /* device endpoint data PID is DATA2 */
+#define DPID_MDATA 3U /* device endpoint data PID is MDATA */
+
+#define GAHBCS_DMAINCR(regval) (GAHBCS_BURST & ((regval) << 1)) /*!< AHB burst type used by DMA*/
+
+#define DMA_INCR0 GAHBCS_DMAINCR(0U) /*!< single burst type used by DMA*/
+#define DMA_INCR1 GAHBCS_DMAINCR(1U) /*!< 4-beat incrementing burst type used by DMA*/
+#define DMA_INCR4 GAHBCS_DMAINCR(3U) /*!< 8-beat incrementing burst type used by DMA*/
+#define DMA_INCR8 GAHBCS_DMAINCR(5U) /*!< 16-beat incrementing burst type used by DMA*/
+#define DMA_INCR16 GAHBCS_DMAINCR(7U) /*!< 32-beat incrementing burst type used by DMA*/
+
+#define DCFG_PFRI(regval) (DCFG_EOPFT & ((regval) << 11)) /*!< end of periodic frame time configuration */
+
+#define FRAME_INTERVAL_80 DCFG_PFRI(0U) /*!< 80% of the frame time */
+#define FRAME_INTERVAL_85 DCFG_PFRI(1U) /*!< 85% of the frame time */
+#define FRAME_INTERVAL_90 DCFG_PFRI(2U) /*!< 90% of the frame time */
+#define FRAME_INTERVAL_95 DCFG_PFRI(3U) /*!< 95% of the frame time */
+
+#define DCFG_DEVSPEED(regval) (DCFG_DS & ((regval) << 0)) /*!< device speed configuration */
+
+#define USB_SPEED_EXP_HIGH DCFG_DEVSPEED(0U) /*!< device external PHY high speed */
+#define USB_SPEED_EXP_FULL DCFG_DEVSPEED(1U) /*!< device external PHY full speed */
+#define USB_SPEED_INP_FULL DCFG_DEVSPEED(3U) /*!< device internal PHY full speed */
+
+#define DEP0_MPL(regval) (DEP0CTL_MPL & ((regval) << 0)) /*!< maximum packet length configuration */
+
+#define EP0MPL_64 DEP0_MPL(0U) /*!< maximum packet length 64 bytes */
+#define EP0MPL_32 DEP0_MPL(1U) /*!< maximum packet length 32 bytes */
+#define EP0MPL_16 DEP0_MPL(2U) /*!< maximum packet length 16 bytes */
+#define EP0MPL_8 DEP0_MPL(3U) /*!< maximum packet length 8 bytes */
+
+#define DOEP0_TLEN(regval) (DOEP0LEN_TLEN & ((regval) << 0)) /*!< Transfer length */
+#define DOEP0_PCNT(regval) (DOEP0LEN_PCNT & ((regval) << 19)) /*!< Packet count */
+#define DOEP0_STPCNT(regval) (DOEP0LEN_STPCNT & ((regval) << 29)) /*!< SETUP packet count */
+
+#define USB_ULPI_PHY 1U /*!< ULPI interface external PHY */
+#define USB_EMBEDDED_PHY 2U /*!< Embedded PHY */
+
+#define GRXSTS_PKTSTS_IN 2U
+#define GRXSTS_PKTSTS_IN_XFER_COMP 3U
+#define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5U
+#define GRXSTS_PKTSTS_CH_HALTED 7U
+
+#define HCTL_30_60MHZ 0U /*!< USB clock 30-60MHZ */
+#define HCTL_48MHZ 1U /*!< USB clock 48MHZ */
+#define HCTL_6MHZ 2U /*!< USB clock 6MHZ */
+
+#define EP0_OUT ((uint8_t)0x00) /*!< endpoint out 0 */
+#define EP0_IN ((uint8_t)0x80) /*!< endpoint in 0 */
+#define EP1_OUT ((uint8_t)0x01) /*!< endpoint out 1 */
+#define EP1_IN ((uint8_t)0x81) /*!< endpoint in 1 */
+#define EP2_OUT ((uint8_t)0x02) /*!< endpoint out 2 */
+#define EP2_IN ((uint8_t)0x82) /*!< endpoint in 2 */
+#define EP3_OUT ((uint8_t)0x03) /*!< endpoint out 3 */
+#define EP3_IN ((uint8_t)0x83) /*!< endpoint in 3 */
+
+#endif /* __DRV_USB_REGS_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usbd_int.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usbd_int.h
new file mode 100644
index 0000000000..2bc2720d00
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usbd_int.h
@@ -0,0 +1,45 @@
+/*!
+ \file drv_usbd_int.h
+ \brief USB device mode interrupt header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USBD_INT_H
+#define __DRV_USBD_INT_H
+
+#include "drv_usb_core.h"
+#include "drv_usb_dev.h"
+
+/* function declarations */
+/* USB device-mode interrupts global service routine handler */
+void usbd_isr (usb_core_driver *udev);
+
+#endif /* __DRV_USBD_INT_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usbh_int.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usbh_int.h
new file mode 100644
index 0000000000..a7be33a979
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Include/drv_usbh_int.h
@@ -0,0 +1,56 @@
+/*!
+ \file drv_usbh_int.h.h
+ \brief USB host mode interrupt management header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __DRV_USBH_INT_H
+#define __DRV_USBH_INT_H
+
+#include "drv_usb_host.h"
+#include "usbh_core.h"
+
+typedef struct _usbh_int_cb
+{
+ uint8_t (*connect) (usbh_host *puhost);
+ uint8_t (*disconnect) (usbh_host *puhost);
+ uint8_t (*port_enabled) (usbh_host *puhost);
+ uint8_t (*port_disabled) (usbh_host *puhost);
+ uint8_t (*SOF) (usbh_host *puhost);
+} usbh_int_cb;
+
+extern usbh_int_cb *usbh_int_fop;
+
+/* function declarations */
+/* handle global host interrupt */
+uint32_t usbh_isr (usb_core_driver *pudev);
+
+#endif /* __DRV_USBH_INT_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_core.c
new file mode 100644
index 0000000000..80d2d39811
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_core.c
@@ -0,0 +1,343 @@
+/*!
+ \file drv_usb_core.c
+ \brief USB core driver which can operate in host and device mode
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "drv_usb_core.h"
+#include "drv_usb_hw.h"
+
+/* local function prototypes ('static') */
+static void usb_core_reset (usb_core_regs *usb_regs);
+
+/*!
+ \brief configure USB core basic
+ \param[in] usb_basic: pointer to usb capabilities
+ \param[in] usb_regs: USB core registers
+ \param[in] usb_core: USB core
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_basic_init (usb_core_basic *usb_basic,
+ usb_core_regs *usb_regs,
+ usb_core_enum usb_core)
+{
+ /* configure USB default transfer mode as FIFO mode */
+ usb_basic->transfer_mode = (uint8_t)USB_USE_FIFO;
+
+ /* USB default speed is full-speed */
+ usb_basic->core_speed = (uint8_t)USB_SPEED_FULL;
+
+ usb_basic->core_enum = (uint8_t)usb_core;
+
+ switch (usb_core) {
+ case USB_CORE_ENUM_FS:
+ usb_basic->base_reg = (uint32_t)USBFS_REG_BASE;
+
+ /* set the host channel numbers */
+ usb_basic->num_pipe = USBFS_MAX_CHANNEL_COUNT;
+
+ /* set the device endpoint numbers */
+ usb_basic->num_ep = USBFS_MAX_EP_COUNT;
+
+ /* USBFS core use embedded physical layer */
+ usb_basic->phy_itf = USB_EMBEDDED_PHY;
+ break;
+
+ default:
+ return USB_FAIL;
+ }
+
+ usb_basic->sof_enable = USB_SOF_OUTPUT;
+ usb_basic->low_power = USB_LOW_POWER;
+
+ /* assign main registers address */
+ *usb_regs = (usb_core_regs) {
+ .gr = (usb_gr*) (usb_basic->base_reg + USB_REG_OFFSET_CORE),
+ .hr = (usb_hr*) (usb_basic->base_reg + USB_REG_OFFSET_HOST),
+ .dr = (usb_dr*) (usb_basic->base_reg + USB_REG_OFFSET_DEV),
+
+ .HPCS = (uint32_t*) (usb_basic->base_reg + USB_REG_OFFSET_PORT),
+ .PWRCLKCTL = (uint32_t*) (usb_basic->base_reg + USB_REG_OFFSET_PWRCLKCTL)
+ };
+
+ /* assign device endpoint registers address */
+ for (uint8_t i = 0U; i < usb_basic->num_ep; i++) {
+ usb_regs->er_in[i] = (usb_erin *) \
+ (usb_basic->base_reg + USB_REG_OFFSET_EP_IN + (i * USB_REG_OFFSET_EP));
+
+ usb_regs->er_out[i] = (usb_erout *)\
+ (usb_basic->base_reg + USB_REG_OFFSET_EP_OUT + (i * USB_REG_OFFSET_EP));
+ }
+
+ /* assign host pipe registers address */
+ for (uint8_t i = 0U; i < usb_basic->num_pipe; i++) {
+ usb_regs->pr[i] = (usb_pr *) \
+ (usb_basic->base_reg + USB_REG_OFFSET_CH_INOUT + (i * USB_REG_OFFSET_CH));
+
+ usb_regs->DFIFO[i] = (uint32_t *) \
+ (usb_basic->base_reg + USB_DATA_FIFO_OFFSET + (i * USB_DATA_FIFO_SIZE));
+ }
+
+ return USB_OK;
+}
+
+/*!
+ \brief initializes the USB controller registers and
+ prepares the core device mode or host mode operation
+ \param[in] usb_basic: pointer to USB capabilities
+ \param[in] usb_regs: pointer to USB core registers
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_core_init (usb_core_basic usb_basic, usb_core_regs *usb_regs)
+{
+ if (USB_ULPI_PHY == usb_basic.phy_itf) {
+ usb_regs->gr->GCCFG &= ~GCCFG_PWRON;
+
+ if (usb_basic.sof_enable) {
+ usb_regs->gr->GCCFG |= GCCFG_SOFOEN;
+ }
+
+ /* init the ULPI interface */
+ usb_regs->gr->GUSBCS &= ~(GUSBCS_EMBPHY | GUSBCS_ULPIEOI);
+
+#ifdef USBHS_EXTERNAL_VBUS_ENABLED
+ /* use external VBUS driver */
+ usb_regs->gr->GUSBCS |= GUSBCS_ULPIEVD;
+#else
+ /* use internal VBUS driver */
+ usb_regs->gr->GUSBCS &= ~GUSBCS_ULPIEVD;
+#endif /* USBHS_EXTERNAL_VBUS_ENABLED */
+
+ /* soft reset the core */
+ usb_core_reset (usb_regs);
+ } else {
+ usb_regs->gr->GUSBCS |= GUSBCS_EMBPHY;
+
+ /* soft reset the core */
+ usb_core_reset (usb_regs);
+
+ /* active the transceiver and enable VBUS sensing */
+ usb_regs->gr->GCCFG |= GCCFG_PWRON | GCCFG_VBUSACEN | GCCFG_VBUSBCEN;
+
+#ifndef VBUS_SENSING_ENABLED
+ usb_regs->gr->GCCFG |= GCCFG_VBUSIG;
+#endif /* VBUS_SENSING_ENABLED */
+
+ /* enable SOF output */
+ if (usb_basic.sof_enable) {
+ usb_regs->gr->GCCFG |= GCCFG_SOFOEN;
+ }
+
+ usb_mdelay(20U);
+ }
+
+ if ((uint8_t)USB_USE_DMA == usb_basic.transfer_mode) {
+ usb_regs->gr->GAHBCS &= ~GAHBCS_BURST;
+ usb_regs->gr->GAHBCS |= DMA_INCR8 | GAHBCS_DMAEN;
+ }
+
+#ifdef USE_OTG_MODE
+
+ /* enable USB OTG features */
+ usb_regs->gr->GUSBCS |= GUSBCS_HNPCEN | GUSBCS_SRPCEN;
+
+ /* enable the USB wakeup and suspend interrupts */
+ usb_regs->gr->GINTF = 0xBFFFFFFFU;
+
+ usb_regs->gr->GINTEN = GINTEN_WKUPIE | GINTEN_SPIE | \
+ GINTEN_OTGIE | GINTEN_SESIE | GINTEN_CIDPSCIE;
+
+#endif /* USE_OTG_MODE */
+
+ return USB_OK;
+}
+
+/*!
+ \brief write a packet into the Tx FIFO associated with the endpoint
+ \param[in] usb_regs: pointer to USB core registers
+ \param[in] src_buf: pointer to source buffer
+ \param[in] fifo_num: FIFO number which is in (0..3)
+ \param[in] byte_count: packet byte count
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_txfifo_write (usb_core_regs *usb_regs,
+ uint8_t *src_buf,
+ uint8_t fifo_num,
+ uint16_t byte_count)
+{
+ uint32_t word_count = (byte_count + 3U) / 4U;
+
+ __IO uint32_t *fifo = usb_regs->DFIFO[fifo_num];
+
+ while (word_count-- > 0U) {
+ *fifo = *((__packed uint32_t *)src_buf);
+
+ src_buf += 4U;
+ }
+
+ return USB_OK;
+}
+
+/*!
+ \brief read a packet from the Rx FIFO associated with the endpoint
+ \param[in] usb_regs: pointer to USB core registers
+ \param[in] dest_buf: pointer to destination buffer
+ \param[in] byte_count: packet byte count
+ \param[out] none
+ \retval void type pointer
+*/
+void *usb_rxfifo_read (usb_core_regs *usb_regs, uint8_t *dest_buf, uint16_t byte_count)
+{
+ uint32_t word_count = (byte_count + 3U) / 4U;
+
+ __IO uint32_t *fifo = usb_regs->DFIFO[0];
+
+ while (word_count-- > 0U) {
+ *(__packed uint32_t *)dest_buf = *fifo;
+
+ dest_buf += 4U;
+ }
+
+ return ((void *)dest_buf);
+}
+
+/*!
+ \brief flush a Tx FIFO or all Tx FIFOs
+ \param[in] usb_regs: pointer to USB core registers
+ \param[in] fifo_num: FIFO number which is in (0..3)
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_txfifo_flush (usb_core_regs *usb_regs, uint8_t fifo_num)
+{
+ usb_regs->gr->GRSTCTL = ((uint32_t)fifo_num << 6U) | GRSTCTL_TXFF;
+
+ /* wait for Tx FIFO flush bit is set */
+ while (usb_regs->gr->GRSTCTL & GRSTCTL_TXFF) {
+ /* no operation */
+ }
+
+ /* wait for 3 PHY clocks*/
+ usb_udelay(3U);
+
+ return USB_OK;
+}
+
+/*!
+ \brief flush the entire Rx FIFO
+ \param[in] usb_regs: pointer to usb core registers
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_rxfifo_flush (usb_core_regs *usb_regs)
+{
+ usb_regs->gr->GRSTCTL = GRSTCTL_RXFF;
+
+ /* wait for Rx FIFO flush bit is set */
+ while (usb_regs->gr->GRSTCTL & GRSTCTL_RXFF) {
+ /* no operation */
+ }
+
+ /* wait for 3 PHY clocks */
+ usb_udelay(3U);
+
+ return USB_OK;
+}
+
+/*!
+ \brief set endpoint or channel TX FIFO size
+ \param[in] usb_regs: pointer to USB core registers
+ \param[in] fifo: TX FIFO number
+ \param[in] size: assigned TX FIFO size
+ \param[out] none
+ \retval none
+*/
+void usb_set_txfifo(usb_core_regs *usb_regs, uint8_t fifo, uint16_t size)
+{
+ uint32_t tx_offset;
+
+ tx_offset = usb_regs->gr->GRFLEN;
+
+ if (fifo == 0U) {
+ usb_regs->gr->DIEP0TFLEN_HNPTFLEN = ((uint32_t)size << 16) | tx_offset;
+ } else {
+ tx_offset += (usb_regs->gr->DIEP0TFLEN_HNPTFLEN) >> 16;
+
+ for (uint8_t i = 0U; i < (fifo - 1U); i++) {
+ tx_offset += (usb_regs->gr->DIEPTFLEN[i] >> 16);
+ }
+
+ /* Multiply Tx_Size by 2 to get higher performance */
+ usb_regs->gr->DIEPTFLEN[fifo - 1U] = ((uint32_t)size << 16) | tx_offset;
+ }
+}
+
+/*!
+ \brief set USB current mode
+ \param[in] usb_regs: pointer to USB core registers
+ \param[out] none
+ \retval none
+*/
+void usb_curmode_set(usb_core_regs *usb_regs, uint8_t mode)
+{
+ usb_regs->gr->GUSBCS &= ~(GUSBCS_FDM | GUSBCS_FHM);
+
+ if (DEVICE_MODE == mode) {
+ usb_regs->gr->GUSBCS |= GUSBCS_FDM;
+ } else if (HOST_MODE == mode) {
+ usb_regs->gr->GUSBCS |= GUSBCS_FHM;
+ } else {
+ /* OTG mode and other mode can not be here! */
+ }
+}
+
+/*!
+ \brief configure USB core to soft reset
+ \param[in] usb_regs: pointer to USB core registers
+ \param[out] none
+ \retval none
+*/
+static void usb_core_reset (usb_core_regs *usb_regs)
+{
+ /* enable core soft reset */
+ usb_regs->gr->GRSTCTL |= GRSTCTL_CSRST;
+
+ /* wait for the core to be soft reset */
+ while (usb_regs->gr->GRSTCTL & GRSTCTL_CSRST) {
+ /* no operation */
+ }
+
+ /* wait for additional 3 PHY clocks */
+ usb_udelay(3U);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_dev.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_dev.c
new file mode 100644
index 0000000000..726b8ad1ed
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_dev.c
@@ -0,0 +1,612 @@
+/*!
+ \file drv_usb_dev.c
+ \brief USB device mode low level driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "drv_usb_hw.h"
+#include "drv_usb_core.h"
+#include "drv_usb_dev.h"
+
+/* endpoint 0 max packet length */
+static const uint8_t EP0_MAXLEN[4] = {
+ [DSTAT_EM_HS_PHY_30MHZ_60MHZ] = EP0MPL_64,
+ [DSTAT_EM_FS_PHY_30MHZ_60MHZ] = EP0MPL_64,
+ [DSTAT_EM_FS_PHY_48MHZ] = EP0MPL_64,
+ [DSTAT_EM_LS_PHY_6MHZ] = EP0MPL_8
+};
+
+#ifdef USB_FS_CORE
+
+/* USB endpoint Tx FIFO size */
+static uint16_t USBFS_TX_FIFO_SIZE[USBFS_MAX_EP_COUNT] =
+{
+ (uint16_t)TX0_FIFO_FS_SIZE,
+ (uint16_t)TX1_FIFO_FS_SIZE,
+ (uint16_t)TX2_FIFO_FS_SIZE,
+ (uint16_t)TX3_FIFO_FS_SIZE
+};
+
+#endif /* USBFS_CORE */
+
+/*!
+ \brief initialize USB core registers for device mode
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_devcore_init (usb_core_driver *udev)
+{
+ uint8_t i;
+
+ /* restart the PHY clock (maybe don't need to...) */
+ *udev->regs.PWRCLKCTL = 0U;
+
+ /* config periodic frame interval to default value */
+ udev->regs.dr->DCFG &= ~DCFG_EOPFT;
+ udev->regs.dr->DCFG |= FRAME_INTERVAL_80;
+
+ udev->regs.dr->DCFG &= ~DCFG_DS;
+
+#ifdef USB_FS_CORE
+ if (udev->bp.core_enum == (uint8_t)USB_CORE_ENUM_FS) {
+ /* set full-speed PHY */
+ udev->regs.dr->DCFG |= USB_SPEED_INP_FULL;
+
+ /* set Rx FIFO size */
+ usb_set_rxfifo(&udev->regs, RX_FIFO_FS_SIZE);
+
+ /* set endpoint 0 to 3's Tx FIFO length and RAM address */
+ for (i = 0U; i < USBFS_MAX_EP_COUNT; i++) {
+ usb_set_txfifo(&udev->regs, i, USBFS_TX_FIFO_SIZE[i]);
+ }
+ }
+#endif /* USB_FS_CORE */
+
+ /* make sure all FIFOs are flushed */
+
+ /* flush all Tx FIFOs */
+ (void)usb_txfifo_flush (&udev->regs, 0x10U);
+
+ /* flush entire Rx FIFO */
+ (void)usb_rxfifo_flush (&udev->regs);
+
+ /* clear all pending device interrupts */
+ udev->regs.dr->DIEPINTEN = 0U;
+ udev->regs.dr->DOEPINTEN = 0U;
+ udev->regs.dr->DAEPINT = 0xFFFFFFFFU;
+ udev->regs.dr->DAEPINTEN = 0U;
+
+ /* configure all IN/OUT endpoints */
+ for (i = 0U; i < udev->bp.num_ep; i++) {
+ if (udev->regs.er_in[i]->DIEPCTL & DEPCTL_EPEN) {
+ udev->regs.er_in[i]->DIEPCTL |= DEPCTL_EPD | DEPCTL_SNAK;
+ } else {
+ udev->regs.er_in[i]->DIEPCTL = 0U;
+ }
+
+ /* set IN endpoint transfer length to 0 */
+ udev->regs.er_in[i]->DIEPLEN = 0U;
+
+ /* clear all pending IN endpoint interrupts */
+ udev->regs.er_in[i]->DIEPINTF = 0xFFU;
+
+ if (udev->regs.er_out[i]->DOEPCTL & DEPCTL_EPEN) {
+ udev->regs.er_out[i]->DOEPCTL |= DEPCTL_EPD | DEPCTL_SNAK;
+ } else {
+ udev->regs.er_out[i]->DOEPCTL = 0U;
+ }
+
+ /* set OUT endpoint transfer length to 0 */
+ udev->regs.er_out[i]->DOEPLEN = 0U;
+
+ /* clear all pending OUT endpoint interrupts */
+ udev->regs.er_out[i]->DOEPINTF = 0xFFU;
+ }
+
+ udev->regs.dr->DIEPINTEN |= DIEPINTEN_EPTXFUDEN;
+
+ (void)usb_devint_enable (udev);
+
+ return USB_OK;
+}
+
+/*!
+ \brief enable the USB device mode interrupts
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_devint_enable (usb_core_driver *udev)
+{
+ /* clear any pending USB OTG interrupts */
+ udev->regs.gr->GOTGINTF = 0xFFFFFFFFU;
+
+ /* clear any pending interrupts */
+ udev->regs.gr->GINTF = 0xBFFFFFFFU;
+
+ /* enable the USB wakeup and suspend interrupts */
+ udev->regs.gr->GINTEN = GINTEN_WKUPIE | GINTEN_SPIE;
+
+ /* enable device_mode-related interrupts */
+ if ((uint8_t)USB_USE_FIFO == udev->bp.transfer_mode) {
+ udev->regs.gr->GINTEN |= GINTEN_RXFNEIE;
+ }
+
+ udev->regs.gr->GINTEN |= GINTEN_RSTIE | GINTEN_ENUMFIE | GINTEN_IEPIE |\
+ GINTEN_OEPIE | GINTEN_SOFIE | GINTEN_ISOONCIE | GINTEN_ISOINCIE;
+
+#ifdef VBUS_SENSING_ENABLED
+ udev->regs.gr->GINTEN |= GINTEN_SESIE | GINTEN_OTGIE;
+#endif /* VBUS_SENSING_ENABLED */
+
+ return USB_OK;
+}
+
+/*!
+ \brief active the USB endpoint0 transaction
+ \param[in] udev: pointer to USB device
+ \param[in] transc: the USB endpoint0 transaction
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_transc0_active (usb_core_driver *udev, usb_transc *transc)
+{
+ __IO uint32_t *reg_addr = NULL;
+
+ /* get the endpoint number */
+ uint8_t ep_num = transc->ep_addr.num;
+
+ if (ep_num) {
+ /* not endpoint 0 */
+ return USB_FAIL;
+ }
+
+ if (transc->ep_addr.dir) {
+ reg_addr = &udev->regs.er_in[0]->DIEPCTL;
+ } else {
+ reg_addr = &udev->regs.er_out[0]->DOEPCTL;
+ }
+
+ /* endpoint 0 is activated after USB clock is enabled */
+
+ *reg_addr &= ~(DEPCTL_MPL | DEPCTL_EPTYPE | DIEPCTL_TXFNUM);
+
+ /* set endpoint 0 maximum packet length */
+ *reg_addr |= EP0_MAXLEN[udev->regs.dr->DSTAT & DSTAT_ES];
+
+ /* activate endpoint */
+ *reg_addr |= ((uint32_t)transc->ep_type << 18U) | ((uint32_t)ep_num << 22U) | DEPCTL_SD0PID | DEPCTL_EPACT;
+
+ return USB_OK;
+}
+
+/*!
+ \brief active the USB transaction
+ \param[in] udev: pointer to USB device
+ \param[in] transc: the USB transaction
+ \param[out] none
+ \retval status
+*/
+usb_status usb_transc_active (usb_core_driver *udev, usb_transc *transc)
+{
+ __IO uint32_t *reg_addr = NULL;
+ __IO uint32_t epinten = 0U;
+
+ /* get the endpoint number */
+ uint8_t ep_num = transc->ep_addr.num;
+
+ /* enable endpoint interrupt number */
+ if (transc->ep_addr.dir) {
+ reg_addr = &udev->regs.er_in[ep_num]->DIEPCTL;
+
+ epinten = 1U << ep_num;
+ } else {
+ reg_addr = &udev->regs.er_out[ep_num]->DOEPCTL;
+
+ epinten = 1U << (16U + ep_num);
+ }
+
+ /* if the endpoint is not active, need change the endpoint control register */
+ if (!(*reg_addr & DEPCTL_EPACT)) {
+ *reg_addr &= ~(DEPCTL_MPL | DEPCTL_EPTYPE | DIEPCTL_TXFNUM);
+
+ /* set endpoint maximum packet length */
+ if (0U == ep_num) {
+ *reg_addr |= EP0_MAXLEN[udev->regs.dr->DSTAT & DSTAT_ES];
+ } else {
+ *reg_addr |= transc->max_len;
+ }
+
+ /* activate endpoint */
+ *reg_addr |= ((uint32_t)transc->ep_type << 18U) | ((uint32_t)ep_num << 22U) | DEPCTL_SD0PID | DEPCTL_EPACT;
+ }
+
+
+ /* enable the interrupts for this endpoint */
+ udev->regs.dr->DAEPINTEN |= epinten;
+
+ return USB_OK;
+}
+
+/*!
+ \brief deactivate the USB transaction
+ \param[in] udev: pointer to USB device
+ \param[in] transc: the USB transaction
+ \param[out] none
+ \retval status
+*/
+usb_status usb_transc_deactivate(usb_core_driver *udev, usb_transc *transc)
+{
+ uint32_t epinten = 0U;
+
+ uint8_t ep_num = transc->ep_addr.num;
+
+ /* disable endpoint interrupt number */
+ if (transc->ep_addr.dir) {
+ epinten = 1U << ep_num;
+
+ udev->regs.er_in[ep_num]->DIEPCTL &= ~DEPCTL_EPACT;
+ } else {
+ epinten = 1U << (ep_num + 16U);
+
+ udev->regs.er_out[ep_num]->DOEPCTL &= ~DEPCTL_EPACT;
+ }
+
+
+ /* disable the interrupts for this endpoint */
+ udev->regs.dr->DAEPINTEN &= ~epinten;
+
+ return USB_OK;
+}
+
+/*!
+ \brief configure USB transaction to start IN transfer
+ \param[in] udev: pointer to USB device
+ \param[in] transc: the USB IN transaction
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_transc_inxfer (usb_core_driver *udev, usb_transc *transc)
+{
+ usb_status status = USB_OK;
+
+ uint8_t ep_num = transc->ep_addr.num;
+
+ __IO uint32_t epctl = udev->regs.er_in[ep_num]->DIEPCTL;
+ __IO uint32_t eplen = udev->regs.er_in[ep_num]->DIEPLEN;
+
+ eplen &= ~(DEPLEN_TLEN | DEPLEN_PCNT);
+
+ /* zero length packet or endpoint 0 */
+ if (0U == transc->xfer_len) {
+ /* set transfer packet count to 1 */
+ eplen |= 1U << 19U;
+ } else {
+ /* set transfer packet count */
+ if (0U == ep_num) {
+ transc->xfer_len = USB_MIN(transc->xfer_len, transc->max_len);
+
+ eplen |= 1U << 19U;
+ } else {
+ eplen |= (((transc->xfer_len - 1U) + transc->max_len) / transc->max_len) << 19U;
+ }
+
+ /* set endpoint transfer length */
+ eplen |= transc->xfer_len;
+
+ if (transc->ep_type == (uint8_t)USB_EPTYPE_ISOC) {
+ eplen |= DIEPLEN_MCNT & (1U << 29U);
+ }
+ }
+
+ udev->regs.er_in[ep_num]->DIEPLEN = eplen;
+
+ if (transc->ep_type == (uint8_t)USB_EPTYPE_ISOC) {
+ if (((udev->regs.dr->DSTAT & DSTAT_FNRSOF) >> 8U) & 0x01U) {
+ epctl |= DEPCTL_SEVNFRM;
+ } else {
+ epctl |= DEPCTL_SODDFRM;
+ }
+ }
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ udev->regs.er_in[ep_num]->DIEPDMAADDR = transc->dma_addr;
+ }
+
+ /* enable the endpoint and clear the NAK */
+ epctl |= DEPCTL_CNAK | DEPCTL_EPEN;
+
+ udev->regs.er_in[ep_num]->DIEPCTL = epctl;
+
+ if ((uint8_t)USB_USE_FIFO == udev->bp.transfer_mode) {
+ udev->regs.er_in[ep_num]->DIEPCTL = epctl;
+
+ if (transc->ep_type != (uint8_t)USB_EPTYPE_ISOC) {
+ /* enable the Tx FIFO empty interrupt for this endpoint */
+ if (transc->xfer_len > 0U) {
+ udev->regs.dr->DIEPFEINTEN |= 1U << ep_num;
+ }
+ } else {
+ (void)usb_txfifo_write (&udev->regs, transc->xfer_buf, ep_num, (uint16_t)transc->xfer_len);
+ }
+ }
+
+ return status;
+}
+
+/*!
+ \brief configure usb transaction to start OUT transfer
+ \param[in] udev: pointer to usb device
+ \param[in] transc: the usb OUT transaction
+ \param[out] none
+ \retval status
+*/
+usb_status usb_transc_outxfer (usb_core_driver *udev, usb_transc *transc)
+{
+ usb_status status = USB_OK;
+
+ uint8_t ep_num = transc->ep_addr.num;
+
+ uint32_t epctl = udev->regs.er_out[ep_num]->DOEPCTL;
+ uint32_t eplen = udev->regs.er_out[ep_num]->DOEPLEN;
+
+ eplen &= ~(DEPLEN_TLEN | DEPLEN_PCNT);
+
+ /* zero length packet or endpoint 0 */
+ if ((0U == transc->xfer_len) || (0U == ep_num)) {
+ /* set the transfer length to max packet size */
+ eplen |= transc->max_len;
+
+ /* set the transfer packet count to 1 */
+ eplen |= 1U << 19U;
+ } else {
+ /* configure the transfer size and packet count as follows:
+ * pktcnt = N
+ * xfersize = N * maxpacket
+ */
+ uint32_t packet_count = (transc->xfer_len + transc->max_len - 1U) / transc->max_len;
+
+ eplen |= packet_count << 19U;
+ eplen |= packet_count * transc->max_len;
+ }
+
+ udev->regs.er_out[ep_num]->DOEPLEN = eplen;
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ udev->regs.er_out[ep_num]->DOEPDMAADDR = transc->dma_addr;
+ }
+
+ if (transc->ep_type == (uint8_t)USB_EPTYPE_ISOC) {
+ if (transc->frame_num) {
+ epctl |= DEPCTL_SD1PID;
+ } else {
+ epctl |= DEPCTL_SD0PID;
+ }
+ }
+
+ /* enable the endpoint and clear the NAK */
+ epctl |= DEPCTL_EPEN | DEPCTL_CNAK;
+
+ udev->regs.er_out[ep_num]->DOEPCTL = epctl;
+
+ return status;
+}
+
+/*!
+ \brief set the USB transaction STALL status
+ \param[in] udev: pointer to USB device
+ \param[in] transc: the USB transaction
+ \param[out] none
+ \retval status
+*/
+usb_status usb_transc_stall (usb_core_driver *udev, usb_transc *transc)
+{
+ __IO uint32_t *reg_addr = NULL;
+
+ uint8_t ep_num = transc->ep_addr.num;
+
+ if (transc->ep_addr.dir) {
+ reg_addr = &(udev->regs.er_in[ep_num]->DIEPCTL);
+
+ /* set the endpoint disable bit */
+ if (*reg_addr & DEPCTL_EPEN) {
+ *reg_addr |= DEPCTL_EPD;
+ }
+ } else {
+ /* set the endpoint stall bit */
+ reg_addr = &(udev->regs.er_out[ep_num]->DOEPCTL);
+ }
+
+ /* set the endpoint stall bit */
+ *reg_addr |= DEPCTL_STALL;
+
+ return USB_OK;
+}
+
+/*!
+ \brief clear the USB transaction STALL status
+ \param[in] udev: pointer to USB device
+ \param[in] transc: the USB transaction
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_transc_clrstall(usb_core_driver *udev, usb_transc *transc)
+{
+ __IO uint32_t *reg_addr = NULL;
+
+ uint8_t ep_num = transc->ep_addr.num;
+
+ if (transc->ep_addr.dir) {
+ reg_addr = &(udev->regs.er_in[ep_num]->DIEPCTL);
+ } else {
+ reg_addr = &(udev->regs.er_out[ep_num]->DOEPCTL);
+ }
+
+ /* clear the endpoint stall bits */
+ *reg_addr &= ~DEPCTL_STALL;
+
+ /* reset data PID of the periodic endpoints */
+ if ((transc->ep_type == (uint8_t)USB_EPTYPE_INTR) || (transc->ep_type == (uint8_t)USB_EPTYPE_BULK)) {
+ *reg_addr |= DEPCTL_SD0PID;
+ }
+
+ return USB_OK;
+}
+
+/*!
+ \brief read device IN endpoint interrupt flag register
+ \param[in] udev: pointer to USB device
+ \param[in] ep_num: endpoint number
+ \param[out] none
+ \retval interrupt value
+*/
+uint32_t usb_iepintr_read (usb_core_driver *udev, uint8_t ep_num)
+{
+ uint32_t value = 0U, fifoemptymask, commonintmask;
+
+ commonintmask = udev->regs.dr->DIEPINTEN;
+ fifoemptymask = udev->regs.dr->DIEPFEINTEN;
+
+ /* check FIFO empty interrupt enable bit */
+ commonintmask |= ((fifoemptymask >> ep_num) & 0x1U) << 7;
+
+ value = udev->regs.er_in[ep_num]->DIEPINTF & commonintmask;
+
+ return value;
+}
+
+/*!
+ \brief configures OUT endpoint 0 to receive SETUP packets
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+void usb_ctlep_startout (usb_core_driver *udev)
+{
+ /* set OUT endpoint 0 receive length to 24 bytes, 1 packet and 3 setup packets */
+ udev->regs.er_out[0]->DOEPLEN = DOEP0_TLEN(8U * 3U) | DOEP0_PCNT(1U) | DOEP0_STPCNT(3U);
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ udev->regs.er_out[0]->DOEPDMAADDR = (uint32_t)&udev->dev.control.req;
+
+ /* endpoint enable */
+ udev->regs.er_out[0]->DOEPCTL |= DEPCTL_EPACT | DEPCTL_EPEN;
+ }
+}
+
+/*!
+ \brief active remote wakeup signaling
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+void usb_rwkup_active (usb_core_driver *udev)
+{
+ if (udev->dev.pm.dev_remote_wakeup) {
+ if (udev->regs.dr->DSTAT & DSTAT_SPST) {
+ if (udev->bp.low_power) {
+ /* ungate USB core clock */
+ *udev->regs.PWRCLKCTL &= ~(PWRCLKCTL_SHCLK | PWRCLKCTL_SUCLK);
+ }
+
+ /* active remote wakeup signaling */
+ udev->regs.dr->DCTL |= DCTL_RWKUP;
+
+ usb_mdelay(5U);
+
+ udev->regs.dr->DCTL &= ~DCTL_RWKUP;
+ }
+ }
+}
+
+/*!
+ \brief active USB core clock
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+void usb_clock_active (usb_core_driver *udev)
+{
+ if (udev->bp.low_power) {
+ if (udev->regs.dr->DSTAT & DSTAT_SPST) {
+ /* un-gate USB Core clock */
+ *udev->regs.PWRCLKCTL &= ~(PWRCLKCTL_SHCLK | PWRCLKCTL_SUCLK);
+ }
+ }
+}
+
+/*!
+ \brief USB device suspend
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+void usb_dev_suspend (usb_core_driver *udev)
+{
+ __IO uint32_t devstat = udev->regs.dr->DSTAT;
+
+ if ((udev->bp.low_power) && (devstat & DSTAT_SPST)) {
+ /* switch-off the USB clocks */
+ *udev->regs.PWRCLKCTL |= PWRCLKCTL_SHCLK;
+
+ /* enter DEEP_SLEEP mode with LDO in low power mode */
+ pmu_to_deepsleepmode(PMU_LDO_LOWPOWER, WFI_CMD);
+ }
+}
+
+/*!
+ \brief stop the device and clean up FIFOs
+ \param[in] udev: pointer to USB device
+ \param[out] none
+ \retval none
+*/
+void usb_dev_stop (usb_core_driver *udev)
+{
+ uint32_t i;
+
+ udev->dev.cur_status = 1U;
+
+ /* clear all interrupt flag and enable bits */
+ for (i = 0U; i < udev->bp.num_ep; i++) {
+ udev->regs.er_in[i]->DIEPINTF = 0xFFU;
+ udev->regs.er_out[i]->DOEPINTF = 0xFFU;
+ }
+
+ udev->regs.dr->DIEPINTEN = 0U;
+ udev->regs.dr->DOEPINTEN = 0U;
+ udev->regs.dr->DAEPINTEN = 0U;
+ udev->regs.dr->DAEPINT = 0xFFFFFFFFU;
+
+ /* flush the FIFO */
+ (void)usb_rxfifo_flush (&udev->regs);
+ (void)usb_txfifo_flush (&udev->regs, 0x10U);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_host.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_host.c
new file mode 100644
index 0000000000..ca17b4f6fb
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usb_host.c
@@ -0,0 +1,452 @@
+/*!
+ \file drv_usb_host.c
+ \brief USB host mode low level driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "drv_usb_hw.h"
+#include "drv_usb_core.h"
+#include "drv_usb_host.h"
+
+const uint32_t PIPE_DPID[2] = {
+ PIPE_DPID_DATA0,
+ PIPE_DPID_DATA1
+};
+
+/*!
+ \brief initializes USB core for host mode
+ \param[in] pudev: pointer to selected usb host
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_host_init (usb_core_driver *pudev)
+{
+ uint32_t i = 0U, inten = 0U;
+
+ uint32_t nptxfifolen = 0U;
+ uint32_t ptxfifolen = 0U;
+
+ /* restart the PHY Clock */
+ *pudev->regs.PWRCLKCTL = 0U;
+
+ /* support FS/LS only */
+ pudev->regs.hr->HCTL &= ~HCTL_SPDFSLS;
+
+ /* configure data FIFOs size */
+#ifdef USB_FS_CORE
+ if (USB_CORE_ENUM_FS == pudev->bp.core_enum) {
+ /* set Rx FIFO size */
+ pudev->regs.gr->GRFLEN = USB_RX_FIFO_FS_SIZE;
+
+ /* set non-periodic Tx FIFO size and address */
+ nptxfifolen |= USB_RX_FIFO_FS_SIZE;
+ nptxfifolen |= USB_HTX_NPFIFO_FS_SIZE << 16U;
+ pudev->regs.gr->DIEP0TFLEN_HNPTFLEN = nptxfifolen;
+
+ /* set periodic Tx FIFO size and address */
+ ptxfifolen |= USB_RX_FIFO_FS_SIZE + USB_HTX_NPFIFO_FS_SIZE;
+ ptxfifolen |= USB_HTX_PFIFO_FS_SIZE << 16U;
+ pudev->regs.gr->HPTFLEN = ptxfifolen;
+ }
+#endif /* USB_FS_CORE */
+
+#ifdef USE_OTG_MODE
+
+ /* clear host set hnp enable in the usb_otg control register */
+ pudev->regs.gr->GOTGCS &= ~GOTGCS_HHNPEN;
+
+#endif /* USE_OTG_MODE */
+
+ /* make sure the FIFOs are flushed */
+
+ /* flush all Tx FIFOs in device or host mode */
+ usb_txfifo_flush (&pudev->regs, 0x10U);
+
+ /* flush the entire Rx FIFO */
+ usb_rxfifo_flush (&pudev->regs);
+
+ /* disable all interrupts */
+ pudev->regs.gr->GINTEN = 0U;
+
+ /* clear any pending USB OTG interrupts */
+ pudev->regs.gr->GOTGINTF = 0xFFFFFFFFU;
+
+ /* enable the USB wakeup and suspend interrupts */
+ pudev->regs.gr->GINTF = 0xBFFFFFFFU;
+
+ /* clear all pending host channel interrupts */
+ for (i = 0U; i < pudev->bp.num_pipe; i++) {
+ pudev->regs.pr[i]->HCHINTF = 0xFFFFFFFFU;
+ pudev->regs.pr[i]->HCHINTEN = 0U;
+ }
+
+#ifndef USE_OTG_MODE
+ usb_portvbus_switch (pudev, 1U);
+#endif /* USE_OTG_MODE */
+
+ pudev->regs.gr->GINTEN = GINTEN_WKUPIE | GINTEN_SPIE;
+
+ /* enable host_mode-related interrupts */
+ if (USB_USE_FIFO == pudev->bp.transfer_mode) {
+ inten = GINTEN_RXFNEIE;
+ }
+
+ inten |= GINTEN_SESIE | GINTEN_HPIE | GINTEN_HCIE | GINTEN_ISOINCIE;
+
+ pudev->regs.gr->GINTEN |= inten;
+
+ inten = GINTEN_DISCIE | GINTEN_SOFIE;
+
+ pudev->regs.gr->GINTEN &= ~inten;
+
+ return USB_OK;
+}
+
+/*!
+ \brief control the VBUS to power
+ \param[in] pudev: pointer to selected usb host
+ \param[in] state: VBUS state
+ \param[out] none
+ \retval none
+*/
+void usb_portvbus_switch (usb_core_driver *pudev, uint8_t state)
+{
+ uint32_t port = 0U;
+
+ /* enable or disable the external charge pump */
+ usb_vbus_drive (state);
+
+ /* turn on the host port power. */
+ port = usb_port_read (pudev);
+
+ if (!(port & HPCS_PP) && (1U == state)) {
+ port |= HPCS_PP;
+ }
+
+ if ((port & HPCS_PP) && (0U == state)) {
+ port &= ~HPCS_PP;
+ }
+
+ *pudev->regs.HPCS = port;
+
+ usb_mdelay (200U);
+}
+
+/*!
+ \brief reset host port
+ \param[in] pudev: pointer to usb device
+ \param[out] none
+ \retval operation status
+*/
+uint32_t usb_port_reset (usb_core_driver *pudev)
+{
+ __IO uint32_t port = usb_port_read (pudev);
+
+ *pudev->regs.HPCS = port | HPCS_PRST;
+
+ usb_mdelay(20U); /* see note */
+
+ *pudev->regs.HPCS = port & ~HPCS_PRST;
+
+ usb_mdelay(20U);
+
+ return 1U;
+}
+
+/*!
+ \brief initialize host pipe
+ \param[in] pudev: pointer to usb device
+ \param[in] pipe_num: host pipe number which is in (0..7)
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_pipe_init (usb_core_driver *pudev, uint8_t pipe_num)
+{
+ usb_status status = USB_OK;
+
+ __IO uint32_t pp_ctl = 0U;
+ __IO uint32_t pp_inten = HCHINTEN_TFIE;
+
+ usb_pipe *pp = &pudev->host.pipe[pipe_num];
+
+ /* clear old interrupt conditions for this host channel */
+ pudev->regs.pr[pipe_num]->HCHINTF = 0xFFFFFFFFU;
+
+ if (USB_USE_DMA == pudev->bp.transfer_mode) {
+ pp_inten |= HCHINTEN_DMAERIE;
+ }
+
+ if (pp->ep.dir) {
+ pp_inten |= HCHINTEN_BBERIE;
+ }
+
+ /* enable channel interrupts required for this transfer */
+ switch (pp->ep.type) {
+ case USB_EPTYPE_CTRL:
+ case USB_EPTYPE_BULK:
+ pp_inten |= HCHINTEN_STALLIE | HCHINTEN_USBERIE \
+ | HCHINTEN_DTERIE | HCHINTEN_NAKIE;
+
+ if (!pp->ep.dir) {
+ pp_inten |= HCHINTEN_NYETIE;
+
+ if (pp->ping) {
+ pp_inten |= HCHINTEN_ACKIE;
+ }
+ }
+ break;
+
+ case USB_EPTYPE_INTR:
+ pp_inten |= HCHINTEN_STALLIE | HCHINTEN_USBERIE | HCHINTEN_DTERIE \
+ | HCHINTEN_NAKIE | HCHINTEN_REQOVRIE;
+ break;
+
+ case USB_EPTYPE_ISOC:
+ pp_inten |= HCHINTEN_REQOVRIE | HCHINTEN_ACKIE;
+
+ if (pp->ep.dir) {
+ pp_inten |= HCHINTEN_USBERIE;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ pudev->regs.pr[pipe_num]->HCHINTEN = pp_inten;
+
+ /* enable the top level host channel interrupt */
+ pudev->regs.hr->HACHINTEN |= 1U << pipe_num;
+
+ /* make sure host channel interrupts are enabled */
+ pudev->regs.gr->GINTEN |= GINTEN_HCIE;
+
+ /* program the host channel control register */
+ pp_ctl |= PIPE_CTL_DAR(pp->dev_addr);
+ pp_ctl |= PIPE_CTL_EPNUM(pp->ep.num);
+ pp_ctl |= PIPE_CTL_EPDIR(pp->ep.dir);
+ pp_ctl |= PIPE_CTL_EPTYPE(pp->ep.type);
+ pp_ctl |= PIPE_CTL_LSD(pp->dev_speed == PORT_SPEED_LOW);
+
+ pp_ctl |= pp->ep.mps;
+ pp_ctl |= ((uint32_t)(pp->ep.type == USB_EPTYPE_INTR) << 29U) & HCHCTL_ODDFRM;
+
+ pudev->regs.pr[pipe_num]->HCHCTL = pp_ctl;
+
+ return status;
+}
+
+/*!
+ \brief prepare host channel for transferring packets
+ \param[in] pudev: pointer to usb device
+ \param[in] pipe_num: host pipe number which is in (0..7)
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_pipe_xfer (usb_core_driver *pudev, uint8_t pipe_num)
+{
+ usb_status status = USB_OK;
+
+ uint16_t dword_len = 0U;
+ uint16_t packet_count = 0U;
+
+ __IO uint32_t pp_ctl = 0U;
+
+ usb_pipe *pp = &pudev->host.pipe[pipe_num];
+
+ uint16_t max_packet_len = pp->ep.mps;
+
+ /* compute the expected number of packets associated to the transfer */
+ if (pp->xfer_len > 0U) {
+ packet_count = (uint16_t)((pp->xfer_len + max_packet_len - 1U) / max_packet_len);
+
+ if (packet_count > HC_MAX_PACKET_COUNT) {
+ packet_count = HC_MAX_PACKET_COUNT;
+ pp->xfer_len = (uint16_t)(packet_count * max_packet_len);
+ }
+ } else {
+ packet_count = 1U;
+ }
+
+ if (pp->ep.dir) {
+ pp->xfer_len = (uint16_t)(packet_count * max_packet_len);
+ }
+
+ /* initialize the host channel transfer information */
+ pudev->regs.pr[pipe_num]->HCHLEN = pp->xfer_len | pp->DPID | PIPE_XFER_PCNT(packet_count);
+
+ if (USB_USE_DMA == pudev->bp.transfer_mode) {
+ pudev->regs.pr[pipe_num]->HCHDMAADDR = (unsigned int)pp->xfer_buf;
+ }
+
+ pp_ctl = pudev->regs.pr[pipe_num]->HCHCTL;
+
+ if (usb_frame_even(pudev)) {
+ pp_ctl |= HCHCTL_ODDFRM;
+ } else {
+ pp_ctl &= ~HCHCTL_ODDFRM;
+ }
+
+ /* set host channel enabled */
+ pp_ctl |= HCHCTL_CEN;
+ pp_ctl &= ~HCHCTL_CDIS;
+
+ pudev->regs.pr[pipe_num]->HCHCTL = pp_ctl;
+
+ if (USB_USE_FIFO == pudev->bp.transfer_mode) {
+ if ((0U == pp->ep.dir) && (pp->xfer_len > 0U)) {
+ switch (pp->ep.type) {
+ /* non-periodic transfer */
+ case USB_EPTYPE_CTRL:
+ case USB_EPTYPE_BULK:
+ dword_len = (uint16_t)((pp->xfer_len + 3U) / 4U);
+
+ /* check if there is enough space in fifo space */
+ if (dword_len > (pudev->regs.gr->HNPTFQSTAT & HNPTFQSTAT_NPTXFS)) {
+ /* need to process data in nptxfempty interrupt */
+ pudev->regs.gr->GINTEN |= GINTEN_NPTXFEIE;
+ }
+ break;
+
+ /* periodic transfer */
+ case USB_EPTYPE_INTR:
+ case USB_EPTYPE_ISOC:
+ dword_len = (uint16_t)((pp->xfer_len + 3U) / 4U);
+
+ /* check if there is enough space in fifo space */
+ if (dword_len > (pudev->regs.hr->HPTFQSTAT & HPTFQSTAT_PTXFS)) {
+ /* need to process data in ptxfempty interrupt */
+ pudev->regs.gr->GINTEN |= GINTEN_PTXFEIE;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* write packet into the tx fifo. */
+ usb_txfifo_write (&pudev->regs, pp->xfer_buf, pipe_num, (uint16_t)pp->xfer_len);
+ }
+ }
+
+ return status;
+}
+
+/*!
+ \brief halt pipe
+ \param[in] pudev: pointer to usb device
+ \param[in] pipe_num: host pipe number which is in (0..7)
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_pipe_halt (usb_core_driver *pudev, uint8_t pipe_num)
+{
+ __IO uint32_t pp_ctl = pudev->regs.pr[pipe_num]->HCHCTL;
+
+ uint8_t ep_type = (uint8_t)((pp_ctl & HCHCTL_EPTYPE) >> 18U);
+
+ pp_ctl |= HCHCTL_CEN | HCHCTL_CDIS;
+
+ switch (ep_type) {
+ case USB_EPTYPE_CTRL:
+ case USB_EPTYPE_BULK:
+ if (0U == (pudev->regs.gr->HNPTFQSTAT & HNPTFQSTAT_NPTXFS)) {
+ pp_ctl &= ~HCHCTL_CEN;
+ }
+ break;
+
+ case USB_EPTYPE_INTR:
+ case USB_EPTYPE_ISOC:
+ if (0U == (pudev->regs.hr->HPTFQSTAT & HPTFQSTAT_PTXFS)) {
+ pp_ctl &= ~HCHCTL_CEN;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ pudev->regs.pr[pipe_num]->HCHCTL = pp_ctl;
+
+ return USB_OK;
+}
+
+/*!
+ \brief configure host pipe to do ping operation
+ \param[in] pudev: pointer to usb device
+ \param[in] pipe_num: host pipe number which is in (0..7)
+ \param[out] none
+ \retval operation status
+*/
+usb_status usb_pipe_ping (usb_core_driver *pudev, uint8_t pipe_num)
+{
+ uint32_t pp_ctl = 0U;
+
+ pudev->regs.pr[pipe_num]->HCHLEN = HCHLEN_PING | (HCHLEN_PCNT & (1U << 19U));
+
+ pp_ctl = pudev->regs.pr[pipe_num]->HCHCTL;
+
+ pp_ctl |= HCHCTL_CEN;
+ pp_ctl &= ~HCHCTL_CDIS;
+
+ pudev->regs.pr[pipe_num]->HCHCTL = pp_ctl;
+
+ return USB_OK;
+}
+
+/*!
+ \brief stop the USB host and clean up FIFO
+ \param[in] pudev: pointer to usb device
+ \param[out] none
+ \retval none
+*/
+void usb_host_stop (usb_core_driver *pudev)
+{
+ uint32_t i;
+ __IO uint32_t pp_ctl = 0U;
+
+ pudev->regs.hr->HACHINTEN = 0x0U;
+ pudev->regs.hr->HACHINT = 0xFFFFFFFFU;
+
+ /* flush out any leftover queued requests. */
+ for (i = 0U; i < pudev->bp.num_pipe; i++) {
+ pp_ctl = pudev->regs.pr[i]->HCHCTL;
+
+ pp_ctl &= ~(HCHCTL_CEN | HCHCTL_EPDIR);
+ pp_ctl |= HCHCTL_CDIS;
+
+ pudev->regs.pr[i]->HCHCTL = pp_ctl;
+ }
+
+ /* flush the FIFO */
+ usb_rxfifo_flush (&pudev->regs);
+ usb_txfifo_flush (&pudev->regs, 0x10U);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usbd_int.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usbd_int.c
new file mode 100644
index 0000000000..4550e6386c
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usbd_int.c
@@ -0,0 +1,489 @@
+/*!
+ \file drv_usbd_int.c
+ \brief USB device mode interrupt routines
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2021-05-19, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbd_conf.h"
+#include "drv_usbd_int.h"
+#include "usbd_transc.h"
+
+/* local function prototypes ('static') */
+static uint32_t usbd_int_epout (usb_core_driver *udev);
+static uint32_t usbd_int_epin (usb_core_driver *udev);
+static uint32_t usbd_int_rxfifo (usb_core_driver *udev);
+static uint32_t usbd_int_reset (usb_core_driver *udev);
+static uint32_t usbd_int_enumfinish (usb_core_driver *udev);
+static uint32_t usbd_int_suspend (usb_core_driver *udev);
+static uint32_t usbd_emptytxfifo_write (usb_core_driver *udev, uint32_t ep_num);
+
+static const uint8_t USB_SPEED[4] = {
+ [DSTAT_EM_HS_PHY_30MHZ_60MHZ] = (uint8_t)USB_SPEED_HIGH,
+ [DSTAT_EM_FS_PHY_30MHZ_60MHZ] = (uint8_t)USB_SPEED_FULL,
+ [DSTAT_EM_FS_PHY_48MHZ] = (uint8_t)USB_SPEED_FULL,
+ [DSTAT_EM_LS_PHY_6MHZ] = (uint8_t)USB_SPEED_LOW
+};
+
+/*!
+ \brief USB device-mode interrupts global service routine handler
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval none
+*/
+void usbd_isr (usb_core_driver *udev)
+{
+ if (HOST_MODE != (udev->regs.gr->GINTF & GINTF_COPM)) {
+ uint32_t intr = udev->regs.gr->GINTF & udev->regs.gr->GINTEN;
+
+ /* there are no interrupts, avoid spurious interrupt */
+ if (!intr) {
+ return;
+ }
+
+ /* OUT endpoints interrupts */
+ if (intr & GINTF_OEPIF) {
+ (void)usbd_int_epout (udev);
+ }
+
+ /* IN endpoints interrupts */
+ if (intr & GINTF_IEPIF) {
+ (void)usbd_int_epin (udev);
+ }
+
+ /* suspend interrupt */
+ if (intr & GINTF_SP) {
+ (void)usbd_int_suspend (udev);
+ }
+
+ /* wakeup interrupt */
+ if (intr & GINTF_WKUPIF) {
+ /* inform upper layer by the resume event */
+ udev->dev.cur_status = USBD_CONFIGURED;
+
+ /* clear interrupt */
+ udev->regs.gr->GINTF = GINTF_WKUPIF;
+ }
+
+ /* start of frame interrupt */
+ if (intr & GINTF_SOF) {
+ if (udev->dev.class_core->SOF) {
+ (void)udev->dev.class_core->SOF(udev);
+ }
+
+ /* clear interrupt */
+ udev->regs.gr->GINTF = GINTF_SOF;
+ }
+
+ /* receive FIFO not empty interrupt */
+ if (intr & GINTF_RXFNEIF) {
+ (void)usbd_int_rxfifo (udev);
+ }
+
+ /* USB reset interrupt */
+ if (intr & GINTF_RST) {
+ (void)usbd_int_reset (udev);
+ }
+
+ /* enumeration has been done interrupt */
+ if (intr & GINTF_ENUMFIF) {
+ (void)usbd_int_enumfinish (udev);
+ }
+
+ /* incomplete synchronization IN transfer interrupt*/
+ if (intr & GINTF_ISOINCIF) {
+ if (NULL != udev->dev.class_core->incomplete_isoc_in) {
+ (void)udev->dev.class_core->incomplete_isoc_in(udev);
+ }
+
+ /* Clear interrupt */
+ udev->regs.gr->GINTF = GINTF_ISOINCIF;
+ }
+
+ /* incomplete synchronization OUT transfer interrupt*/
+ if (intr & GINTF_ISOONCIF) {
+ if (NULL != udev->dev.class_core->incomplete_isoc_out) {
+ (void)udev->dev.class_core->incomplete_isoc_out(udev);
+ }
+
+ /* clear interrupt */
+ udev->regs.gr->GINTF = GINTF_ISOONCIF;
+ }
+
+#ifdef VBUS_SENSING_ENABLED
+
+ /* Session request interrupt */
+ if (intr & GINTF_SESIF) {
+ udev->regs.gr->GINTF = GINTF_SESIF;
+ }
+
+ /* OTG mode interrupt */
+ if (intr & GINTF_OTGIF) {
+ if(udev->regs.gr->GOTGINTF & GOTGINTF_SESEND) {
+
+ }
+
+ /* Clear OTG interrupt */
+ udev->regs.gr->GINTF = GINTF_OTGIF;
+ }
+#endif /* VBUS_SENSING_ENABLED */
+ }
+}
+
+/*!
+ \brief indicates that an OUT endpoint has a pending interrupt
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+static uint32_t usbd_int_epout (usb_core_driver *udev)
+{
+ uint32_t epintnum = 0U;
+ uint8_t ep_num = 0U;
+
+ for (epintnum = usb_oepintnum_read (udev); epintnum; epintnum >>= 1, ep_num++) {
+ if (epintnum & 0x01U) {
+ __IO uint32_t oepintr = usb_oepintr_read (udev, ep_num);
+
+ /* transfer complete interrupt */
+ if (oepintr & DOEPINTF_TF) {
+ /* clear the bit in DOEPINTF for this interrupt */
+ udev->regs.er_out[ep_num]->DOEPINTF = DOEPINTF_TF;
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ __IO uint32_t eplen = udev->regs.er_out[ep_num]->DOEPLEN;
+
+ udev->dev.transc_out[ep_num].xfer_count = udev->dev.transc_out[ep_num].max_len - \
+ (eplen & DEPLEN_TLEN);
+ }
+
+ /* inform upper layer: data ready */
+ (void)usbd_out_transc (udev, ep_num);
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ if ((0U == ep_num) && ((uint8_t)USB_CTL_STATUS_OUT == udev->dev.control.ctl_state)) {
+ usb_ctlep_startout (udev);
+ }
+ }
+ }
+
+ /* setup phase finished interrupt (control endpoints) */
+ if (oepintr & DOEPINTF_STPF) {
+ /* inform the upper layer that a setup packet is available */
+ (void)usbd_setup_transc (udev);
+
+ udev->regs.er_out[ep_num]->DOEPINTF = DOEPINTF_STPF;
+ }
+ }
+ }
+
+ return 1U;
+}
+
+/*!
+ \brief indicates that an IN endpoint has a pending interrupt
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+static uint32_t usbd_int_epin (usb_core_driver *udev)
+{
+ uint32_t epintnum = 0U;
+ uint8_t ep_num = 0U;
+
+ for (epintnum = usb_iepintnum_read (udev); epintnum; epintnum >>= 1, ep_num++) {
+ if (epintnum & 0x1U) {
+ __IO uint32_t iepintr = usb_iepintr_read (udev, ep_num);
+
+ if (iepintr & DIEPINTF_TF) {
+ udev->regs.er_in[ep_num]->DIEPINTF = DIEPINTF_TF;
+
+ /* data transmission is completed */
+ (void)usbd_in_transc (udev, ep_num);
+
+ if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) {
+ if ((0U == ep_num) && ((uint8_t)USB_CTL_STATUS_IN == udev->dev.control.ctl_state)) {
+ usb_ctlep_startout (udev);
+ }
+ }
+ }
+
+ if (iepintr & DIEPINTF_TXFE) {
+ usbd_emptytxfifo_write (udev, (uint32_t)ep_num);
+
+ udev->regs.er_in[ep_num]->DIEPINTF = DIEPINTF_TXFE;
+ }
+ }
+ }
+
+ return 1U;
+}
+
+
+
+/*!
+ \brief handle the RX status queue level interrupt
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+static uint32_t usbd_int_rxfifo (usb_core_driver *udev)
+{
+ usb_transc *transc = NULL;
+
+ uint8_t data_PID = 0U;
+ uint32_t bcount = 0U;
+
+ __IO uint32_t devrxstat = 0U;
+
+ /* disable the Rx status queue non-empty interrupt */
+ udev->regs.gr->GINTEN &= ~GINTEN_RXFNEIE;
+
+ /* get the status from the top of the FIFO */
+ devrxstat = udev->regs.gr->GRSTATP;
+
+ uint8_t ep_num = (uint8_t)(devrxstat & GRSTATRP_EPNUM);
+
+ transc = &udev->dev.transc_out[ep_num];
+
+ bcount = (devrxstat & GRSTATRP_BCOUNT) >> 4U;
+ data_PID = (uint8_t)((devrxstat & GRSTATRP_DPID) >> 15U);
+
+ switch ((devrxstat & GRSTATRP_RPCKST) >> 17U) {
+ case RSTAT_GOUT_NAK:
+ break;
+
+ case RSTAT_DATA_UPDT:
+ if (bcount > 0U) {
+ (void)usb_rxfifo_read (&udev->regs, transc->xfer_buf, (uint16_t)bcount);
+
+ transc->xfer_buf += bcount;
+ transc->xfer_count += bcount;
+ }
+ break;
+
+ case RSTAT_XFER_COMP:
+ /* trigger the OUT endpoint interrupt */
+ break;
+
+ case RSTAT_SETUP_COMP:
+ /* trigger the OUT endpoint interrupt */
+ break;
+
+ case RSTAT_SETUP_UPDT:
+ if ((0U == transc->ep_addr.num) && (8U == bcount) && (DPID_DATA0 == data_PID)) {
+ /* copy the setup packet received in FIFO into the setup buffer in RAM */
+ (void)usb_rxfifo_read (&udev->regs, (uint8_t *)&udev->dev.control.req, (uint16_t)bcount);
+
+ transc->xfer_count += bcount;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* enable the Rx status queue level interrupt */
+ udev->regs.gr->GINTEN |= GINTEN_RXFNEIE;
+
+ return 1U;
+}
+
+/*!
+ \brief handle USB reset interrupt
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval status
+*/
+static uint32_t usbd_int_reset (usb_core_driver *udev)
+{
+ uint32_t i;
+
+ /* clear the remote wakeup signaling */
+ udev->regs.dr->DCTL &= ~DCTL_RWKUP;
+
+ /* flush the Tx FIFO */
+ (void)usb_txfifo_flush (&udev->regs, 0U);
+
+ for (i = 0U; i < udev->bp.num_ep; i++) {
+ udev->regs.er_in[i]->DIEPINTF = 0xFFU;
+ udev->regs.er_out[i]->DOEPINTF = 0xFFU;
+ }
+
+ /* clear all pending device endpoint interrupts */
+ udev->regs.dr->DAEPINT = 0xFFFFFFFFU;
+
+ /* enable endpoint 0 interrupts */
+ udev->regs.dr->DAEPINTEN = 1U | (1U << 16U);
+
+ /* enable OUT endpoint interrupts */
+ udev->regs.dr->DOEPINTEN = DOEPINTEN_STPFEN | DOEPINTEN_TFEN;
+
+ /* enable IN endpoint interrupts */
+ udev->regs.dr->DIEPINTEN = DIEPINTEN_TFEN;
+
+ /* reset device address */
+ udev->regs.dr->DCFG &= ~DCFG_DAR;
+
+ /* configure endpoint 0 to receive SETUP packets */
+ usb_ctlep_startout (udev);
+
+ /* clear USB reset interrupt */
+ udev->regs.gr->GINTF = GINTF_RST;
+
+ udev->dev.transc_out[0].ep_type = USB_EPTYPE_CTRL;
+ udev->dev.transc_out[0].max_len = USB_FS_EP0_MAX_LEN;
+
+ (void)usb_transc_active (udev, &udev->dev.transc_out[0]);
+
+ udev->dev.transc_in[0].ep_addr.dir = 1U;
+ udev->dev.transc_in[0].ep_type = USB_EPTYPE_CTRL;
+ udev->dev.transc_in[0].max_len = USB_FS_EP0_MAX_LEN;
+
+ (void)usb_transc_active (udev, &udev->dev.transc_in[0]);
+
+ /* upon reset call user call back */
+ udev->dev.cur_status = (uint8_t)USBD_DEFAULT;
+
+ return 1U;
+}
+
+/*!
+ \brief handle USB speed enumeration finish interrupt
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval status
+*/
+static uint32_t usbd_int_enumfinish (usb_core_driver *udev)
+{
+ uint8_t enum_speed = (uint8_t)((udev->regs.dr->DSTAT & DSTAT_ES) >> 1U);
+
+ udev->regs.dr->DCTL &= ~DCTL_CGINAK;
+ udev->regs.dr->DCTL |= DCTL_CGINAK;
+
+ udev->regs.gr->GUSBCS &= ~GUSBCS_UTT;
+
+ /* set USB turn-around time based on device speed and PHY interface */
+ if (USB_SPEED[enum_speed] == (uint8_t)USB_SPEED_HIGH) {
+ udev->bp.core_speed = (uint8_t)USB_SPEED_HIGH;
+
+ udev->regs.gr->GUSBCS |= 0x09U << 10U;
+ } else {
+ udev->bp.core_speed = (uint8_t)USB_SPEED_FULL;
+
+ udev->regs.gr->GUSBCS |= 0x05U << 10U;
+ }
+
+ /* clear interrupt */
+ udev->regs.gr->GINTF = GINTF_ENUMFIF;
+
+ return 1U;
+}
+
+/*!
+ \brief USB suspend interrupt handler
+ \param[in] udev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+static uint32_t usbd_int_suspend (usb_core_driver *udev)
+{
+ __IO uint8_t low_power = udev->bp.low_power;
+ __IO uint8_t suspend = (uint8_t)(udev->regs.dr->DSTAT & DSTAT_SPST);
+ __IO uint8_t is_configured = (udev->dev.cur_status == (uint8_t)USBD_CONFIGURED)? 1U : 0U;
+
+ udev->dev.backup_status = udev->dev.cur_status;
+ udev->dev.cur_status = (uint8_t)USBD_SUSPENDED;
+
+ if (low_power && suspend && is_configured) {
+ /* switch-off the OTG clocks */
+ *udev->regs.PWRCLKCTL |= PWRCLKCTL_SUCLK | PWRCLKCTL_SHCLK;
+
+ /* enter DEEP_SLEEP mode with LDO in low power mode */
+ pmu_to_deepsleepmode(PMU_LDO_LOWPOWER, WFI_CMD);
+ }
+
+ /* clear interrupt */
+ udev->regs.gr->GINTF = GINTF_SP;
+
+ return 1U;
+}
+
+/*!
+ \brief check FIFO for the next packet to be loaded
+ \param[in] udev: pointer to USB device instance
+ \param[in] ep_num: endpoint identifier which is in (0..3)
+ \param[out] none
+ \retval status
+*/
+static uint32_t usbd_emptytxfifo_write (usb_core_driver *udev, uint32_t ep_num)
+{
+ uint32_t len;
+ uint32_t word_count;
+
+ usb_transc *transc = &udev->dev.transc_in[ep_num];
+
+ len = transc->xfer_len - transc->xfer_count;
+
+ /* get the data length to write */
+ if (len > transc->max_len) {
+ len = transc->max_len;
+ }
+
+ word_count = (len + 3U) / 4U;
+
+ while (((udev->regs.er_in[ep_num]->DIEPTFSTAT & DIEPTFSTAT_IEPTFS) >= word_count) && \
+ (transc->xfer_count < transc->xfer_len)) {
+ len = transc->xfer_len - transc->xfer_count;
+
+ if (len > transc->max_len) {
+ len = transc->max_len;
+ }
+
+ /* write FIFO in word(4bytes) */
+ word_count = (len + 3U) / 4U;
+
+ /* write the FIFO */
+ (void)usb_txfifo_write (&udev->regs, transc->xfer_buf, (uint8_t)ep_num, (uint16_t)len);
+
+ transc->xfer_buf += len;
+ transc->xfer_count += len;
+
+ if (transc->xfer_count == transc->xfer_len) {
+ /* disable the device endpoint FIFO empty interrupt */
+ udev->regs.dr->DIEPFEINTEN &= ~(0x01U << ep_num);
+ }
+ }
+
+ return 1U;
+}
+
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usbh_int.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usbh_int.c
new file mode 100644
index 0000000000..5a74c1faa6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/driver/Source/drv_usbh_int.c
@@ -0,0 +1,622 @@
+/*!
+ \file drv_usbh_int.c
+ \brief USB host mode interrupt handler file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "drv_usb_core.h"
+#include "drv_usb_host.h"
+#include "drv_usbh_int.h"
+#include "usbh_core.h"
+
+#if defined (__CC_ARM) /*!< ARM compiler */
+ #pragma O0
+#elif defined (__GNUC__) /*!< GNU compiler */
+ #pragma GCC optimize ("O0")
+#elif defined (__TASKING__) /*!< TASKING compiler */
+ #pragma optimize=0
+#endif /* __CC_ARM */
+
+/* local function prototypes ('static') */
+static uint32_t usbh_int_port (usb_core_driver *pudev);
+static uint32_t usbh_int_pipe (usb_core_driver *pudev);
+static uint32_t usbh_int_pipe_in (usb_core_driver *pudev, uint32_t pp_num);
+static uint32_t usbh_int_pipe_out (usb_core_driver *pudev, uint32_t pp_num);
+static uint32_t usbh_int_rxfifonoempty (usb_core_driver *pudev);
+static uint32_t usbh_int_txfifoempty (usb_core_driver *pudev, usb_pipe_mode pp_mode);
+
+/*!
+ \brief handle global host interrupt
+ \param[in] pudev: pointer to USB core instance
+ \param[out] none
+ \retval operation status
+*/
+uint32_t usbh_isr (usb_core_driver *pudev)
+{
+ uint32_t retval = 0U;
+
+ __IO uint32_t intr = 0U;
+
+ /* check if host mode */
+ if (HOST_MODE == (pudev->regs.gr->GINTF & GINTF_COPM)) {
+ intr = usb_coreintr_get(&pudev->regs);
+
+ if (!intr) {
+ return 0U;
+ }
+
+ if (intr & GINTF_SOF) {
+ usbh_int_fop->SOF(pudev->host.data);
+
+ /* clear interrupt */
+ pudev->regs.gr->GINTF = GINTF_SOF;
+ }
+
+ if (intr & GINTF_RXFNEIF) {
+ retval |= usbh_int_rxfifonoempty (pudev);
+ }
+
+ if (intr & GINTF_NPTXFEIF) {
+ retval |= usbh_int_txfifoempty (pudev, PIPE_NON_PERIOD);
+ }
+
+ if (intr & GINTF_PTXFEIF) {
+ retval |= usbh_int_txfifoempty (pudev, PIPE_PERIOD);
+ }
+
+ if (intr & GINTF_HCIF) {
+ retval |= usbh_int_pipe (pudev);
+ }
+
+ if (intr & GINTF_HPIF) {
+ retval |= usbh_int_port (pudev);
+ }
+
+ if (intr & GINTF_DISCIF) {
+ usbh_int_fop->disconnect(pudev->host.data);
+
+ /* clear interrupt */
+ pudev->regs.gr->GINTF = GINTF_DISCIF;
+ }
+
+ if (intr & GINTF_ISOONCIF) {
+ pudev->regs.pr[0]->HCHCTL |= HCHCTL_CEN | HCHCTL_CDIS;
+
+ /* clear interrupt */
+ pudev->regs.gr->GINTF = GINTF_ISOONCIF;
+ }
+
+ if (intr & GINTF_SESIF) {
+ usb_portvbus_switch (pudev, 1U);
+
+ pudev->regs.gr->GINTF = GINTF_SESIF;
+ }
+
+ if (intr & GINTF_WKUPIF) {
+ /* clear interrupt */
+ pudev->regs.gr->GINTF = GINTF_WKUPIF;
+ }
+ }
+
+ return retval;
+}
+
+/*!
+ \brief handle USB pipe halt
+ \param[in] pudev: pointer to USB core instance
+ \param[in] pp_num: pp_num: host channel number which is in (0..7)
+ \param[in] pp_int: pipe interrupt
+ \param[in] pp_status: pipe status
+ \param[out] none
+ \retval none
+*/
+static inline void usb_pp_halt (usb_core_driver *pudev,
+ uint8_t pp_num,
+ uint32_t pp_int,
+ usb_pipe_staus pp_status)
+{
+ pudev->regs.pr[pp_num]->HCHINTEN |= HCHINTEN_CHIE;
+
+ usb_pipe_halt(pudev, pp_num);
+
+ pudev->regs.pr[pp_num]->HCHINTF = pp_int;
+
+ pudev->host.pipe[pp_num].pp_status = pp_status;
+}
+
+/*!
+ \brief handle the host port interrupt
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+#if defined (__ICCARM__) /*!< IAR compiler */
+ #pragma optimize = none
+#endif /* __ICCARM */
+static uint32_t usbh_int_port (usb_core_driver *pudev)
+{
+ uint32_t retval = 0U;
+
+ /* note: when the USB PHY use USB HS PHY, the flag is needed */
+ uint8_t port_reset = 0U;
+
+ __IO uint32_t port_state = *pudev->regs.HPCS;
+
+ /* clear the interrupt bits in GINTSTS */
+ port_state &= ~(HPCS_PE | HPCS_PCD | HPCS_PEDC);
+
+ /* port connect detected */
+ if (*pudev->regs.HPCS & HPCS_PCD) {
+ port_state |= HPCS_PCD;
+
+ usbh_int_fop->connect(pudev->host.data);
+
+ retval |= 1U;
+ }
+
+ /* port enable changed */
+ if (*pudev->regs.HPCS & HPCS_PEDC) {
+ port_state |= HPCS_PEDC;
+
+ if (*pudev->regs.HPCS & HPCS_PE) {
+ uint32_t port_speed = usb_curspeed_get(pudev);
+ uint32_t clock_type = pudev->regs.hr->HCTL & HCTL_CLKSEL;
+
+ pudev->host.connect_status = 1U;
+
+ if (PORT_SPEED_LOW == port_speed) {
+ pudev->regs.hr->HFT = 6000U;
+
+ if (HCTL_6MHZ != clock_type) {
+ if (USB_EMBEDDED_PHY == pudev->bp.phy_itf) {
+ usb_phyclock_config (pudev, HCTL_6MHZ);
+ }
+
+ port_reset = 1U;
+ }
+ } else if (PORT_SPEED_FULL == port_speed) {
+ pudev->regs.hr->HFT = 48000U;
+
+ if (HCTL_48MHZ != clock_type) {
+ usb_phyclock_config (pudev, HCTL_48MHZ);
+ }
+
+ port_reset = 1U;
+ } else {
+ /* for high speed device and others */
+ port_reset = 1U;
+ }
+
+ usbh_int_fop->port_enabled(pudev->host.data);
+
+ pudev->regs.gr->GINTEN |= GINTEN_DISCIE | GINTEN_SOFIE;
+ } else {
+ usbh_int_fop->port_disabled(pudev->host.data);
+ }
+ }
+
+ if (port_reset) {
+ usb_port_reset(pudev);
+ }
+
+ /* clear port interrupts */
+ *pudev->regs.HPCS = port_state;
+
+ return retval;
+}
+
+/*!
+ \brief handle all host channels interrupt
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+static uint32_t usbh_int_pipe (usb_core_driver *pudev)
+{
+ uint32_t pp_num = 0U;
+ uint32_t retval = 0U;
+
+ for (pp_num = 0U; pp_num < pudev->bp.num_pipe; pp_num++) {
+ if ((pudev->regs.hr->HACHINT & HACHINT_HACHINT) & (1UL << pp_num)) {
+ if (pudev->regs.pr[pp_num]->HCHCTL & HCHCTL_EPDIR) {
+ retval |= usbh_int_pipe_in (pudev, pp_num);
+ } else {
+ retval |= usbh_int_pipe_out (pudev, pp_num);
+ }
+ }
+ }
+
+ return retval;
+}
+
+/*!
+ \brief handle the IN channel interrupt
+ \param[in] pudev: pointer to USB device instance
+ \param[in] pp_num: host channel number which is in (0..7)
+ \param[out] none
+ \retval operation status
+*/
+#if defined (__ICCARM__) /*!< IAR compiler */
+ #pragma optimize = none
+#endif /* __ICCARM */
+static uint32_t usbh_int_pipe_in (usb_core_driver *pudev, uint32_t pp_num)
+{
+ usb_pr *pp_reg = pudev->regs.pr[pp_num];
+
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ __IO uint32_t intr_pp = pp_reg->HCHINTF & pp_reg->HCHINTEN;
+
+ uint8_t ep_type = (uint8_t)((pp_reg->HCHCTL & HCHCTL_EPTYPE) >> 18U);
+
+ if (intr_pp & HCHINTF_ACK) {
+ pp_reg->HCHINTF = HCHINTF_ACK;
+ } else if (intr_pp & HCHINTF_STALL) {
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_STALL, PIPE_STALL);
+ pp_reg->HCHINTF = HCHINTF_NAK;
+
+ /* note: When there is a 'STALL', reset also NAK,
+ else, the pudev->host.pp_status = HC_STALL
+ will be overwritten by 'NAK' in code below */
+ intr_pp &= ~HCHINTF_NAK;
+ } else if (intr_pp & HCHINTF_DTER) {
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_DTER, PIPE_DTGERR);
+ pp_reg->HCHINTF = HCHINTF_NAK;
+ } else {
+ /* no operation */
+ }
+
+ if (intr_pp & HCHINTF_REQOVR) {
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_REQOVR, PIPE_REQOVR);
+ } else if (intr_pp & HCHINTF_TF) {
+ if ((uint8_t)USB_USE_DMA == pudev->bp.transfer_mode) {
+ pudev->host.backup_xfercount[pp_num] = pp->xfer_len - (pp_reg->HCHLEN & HCHLEN_TLEN);
+ }
+
+ pp->pp_status = PIPE_XF;
+ pp->err_count = 0U;
+
+ pp_reg->HCHINTF = HCHINTF_TF;
+
+ switch (ep_type) {
+ case USB_EPTYPE_CTRL:
+ case USB_EPTYPE_BULK:
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_NAK, PIPE_XF);
+
+ pp->data_toggle_in ^= 1U;
+ break;
+
+ case USB_EPTYPE_INTR:
+ case USB_EPTYPE_ISOC:
+ pp_reg->HCHCTL |= HCHCTL_ODDFRM;
+ pp->urb_state = URB_DONE;
+ break;
+
+ default:
+ break;
+ }
+ } else if (intr_pp & HCHINTF_CH) {
+ pp_reg->HCHINTEN &= ~HCHINTEN_CHIE;
+
+ switch (pp->pp_status) {
+ case PIPE_XF:
+ pp->urb_state = URB_DONE;
+ break;
+
+ case PIPE_STALL:
+ pp->urb_state = URB_STALL;
+ break;
+
+ case PIPE_TRACERR:
+ case PIPE_DTGERR:
+ pp->err_count = 0U;
+ pp->urb_state = URB_ERROR;
+
+ pp->data_toggle_in ^= 1U;
+ break;
+
+ case PIPE_IDLE:
+ case PIPE_HALTED:
+ case PIPE_NAK:
+ case PIPE_NYET:
+ case PIPE_BBERR:
+ case PIPE_REQOVR:
+ default:
+ if((uint8_t)USB_EPTYPE_INTR == ep_type) {
+ pp->data_toggle_in ^= 1U;
+ }
+ break;
+ }
+
+ pp_reg->HCHINTF = HCHINTF_CH;
+ } else if (intr_pp & HCHINTF_USBER) {
+ pp->err_count++;
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_USBER, PIPE_TRACERR);
+ } else if (intr_pp & HCHINTF_NAK) {
+ switch (ep_type) {
+ case USB_EPTYPE_CTRL:
+ case USB_EPTYPE_BULK:
+ /* re-activate the channel */
+ pp_reg->HCHCTL = (pp_reg->HCHCTL | HCHCTL_CEN) & ~HCHCTL_CDIS;
+ break;
+
+ case USB_EPTYPE_INTR:
+ pp_reg->HCHINTEN |= HCHINTEN_CHIE;
+
+ (void)usb_pipe_halt(pudev, (uint8_t)pp_num);
+ break;
+
+ default:
+ break;
+ }
+
+ pp->pp_status = PIPE_NAK;
+
+ pp_reg->HCHINTF = HCHINTF_NAK;
+ } else {
+ /* no operation */
+ }
+
+ return 1U;
+}
+
+/*!
+ \brief handle the OUT channel interrupt
+ \param[in] pudev: pointer to USB device instance
+ \param[in] pp_num: host channel number which is in (0..7)
+ \param[out] none
+ \retval operation status
+*/
+#if defined (__ICCARM__) /*!< IAR compiler */
+ #pragma optimize = none
+#endif /* __ICCARM */
+static uint32_t usbh_int_pipe_out (usb_core_driver *pudev, uint32_t pp_num)
+{
+ usb_pr *pp_reg = pudev->regs.pr[pp_num];
+
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ uint32_t intr_pp = pp_reg->HCHINTF & pp_reg->HCHINTEN;
+
+ if (intr_pp & HCHINTF_ACK) {
+ if (URB_PING == pp->urb_state) {
+ pp->err_count = 0U;
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_TF, PIPE_XF);
+ }
+
+ pp_reg->HCHINTF = HCHINTF_ACK;
+ } else if (intr_pp & HCHINTF_STALL) {
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_STALL, PIPE_STALL);
+ } else if (intr_pp & HCHINTF_DTER) {
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_DTER, PIPE_DTGERR);
+ pp_reg->HCHINTF = HCHINTF_NAK;
+ } else if (intr_pp & HCHINTF_REQOVR) {
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_REQOVR, PIPE_REQOVR);
+ } else if (intr_pp & HCHINTF_TF) {
+ pp->err_count = 0U;
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_TF, PIPE_XF);
+ } else if (intr_pp & HCHINTF_NAK) {
+ pp->err_count = 0U;
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_NAK, PIPE_NAK);
+ } else if (intr_pp & HCHINTF_USBER) {
+ pp->err_count++;
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_USBER, PIPE_TRACERR);
+ } else if (intr_pp & HCHINTF_NYET) {
+ pp->err_count = 0U;
+ usb_pp_halt (pudev, (uint8_t)pp_num, HCHINTF_NYET, PIPE_NYET);
+ } else if (intr_pp & HCHINTF_CH) {
+ pudev->regs.pr[pp_num]->HCHINTEN &= ~HCHINTEN_CHIE;
+
+ switch (pp->pp_status) {
+ case PIPE_XF:
+ pp->urb_state = URB_DONE;
+
+ if ((uint8_t)USB_EPTYPE_BULK == ((pp_reg->HCHCTL & HCHCTL_EPTYPE) >> 18U)) {
+ pp->data_toggle_out ^= 1U;
+ }
+ break;
+
+ case PIPE_NAK:
+
+ if (URB_PING == pp->urb_state) {
+ (void)usb_pipe_ping (pudev, (uint8_t)pp_num);
+ } else {
+ pp->urb_state = URB_NOTREADY;
+ }
+ break;
+
+ case PIPE_NYET:
+ if (1U == pudev->host.pipe[pp_num].ping) {
+ (void)usb_pipe_ping (pudev, (uint8_t)pp_num);
+ pp->urb_state = URB_PING;
+ }
+ else {
+ pp->urb_state = URB_NOTREADY;
+ }
+ break;
+
+ case PIPE_STALL:
+ pp->urb_state = URB_STALL;
+ break;
+
+ case PIPE_TRACERR:
+ if (3U == pp->err_count) {
+ pp->urb_state = URB_ERROR;
+ pp->err_count = 0U;
+ }
+ break;
+
+ case PIPE_IDLE:
+ case PIPE_HALTED:
+ case PIPE_BBERR:
+ case PIPE_REQOVR:
+ case PIPE_DTGERR:
+ default:
+ break;
+ }
+
+ pp_reg->HCHINTF = HCHINTF_CH;
+ } else {
+ /* no operation */
+ }
+
+ return 1U;
+}
+
+/*!
+ \brief handle the RX FIFO non-empty interrupt
+ \param[in] pudev: pointer to USB device instance
+ \param[out] none
+ \retval operation status
+*/
+#if defined (__ICCARM__) /*!< IAR compiler */
+ #pragma optimize = none
+#endif /* __ICCARM */
+static uint32_t usbh_int_rxfifonoempty (usb_core_driver *pudev)
+{
+ uint32_t count = 0U;
+
+ __IO uint8_t pp_num = 0U;
+ __IO uint32_t rx_stat = 0U;
+
+ /* disable the RX status queue level interrupt */
+ pudev->regs.gr->GINTEN &= ~GINTEN_RXFNEIE;
+
+ rx_stat = pudev->regs.gr->GRSTATP;
+ pp_num = (uint8_t)(rx_stat & GRSTATRP_CNUM);
+
+ switch ((rx_stat & GRSTATRP_RPCKST) >> 17U) {
+ case GRXSTS_PKTSTS_IN:
+ count = (rx_stat & GRSTATRP_BCOUNT) >> 4U;
+
+ /* read the data into the host buffer. */
+ if ((count > 0U) && (NULL != pudev->host.pipe[pp_num].xfer_buf)) {
+ (void)usb_rxfifo_read (&pudev->regs, pudev->host.pipe[pp_num].xfer_buf, (uint16_t)count);
+
+ /* manage multiple transfer packet */
+ pudev->host.pipe[pp_num].xfer_buf += count;
+ pudev->host.pipe[pp_num].xfer_count += count;
+
+ pudev->host.backup_xfercount[pp_num] = pudev->host.pipe[pp_num].xfer_count;
+
+ if (pudev->regs.pr[pp_num]->HCHLEN & HCHLEN_PCNT) {
+ /* re-activate the channel when more packets are expected */
+ __IO uint32_t pp_ctl = pudev->regs.pr[pp_num]->HCHCTL;
+
+ pp_ctl |= HCHCTL_CEN;
+ pp_ctl &= ~HCHCTL_CDIS;
+
+ pudev->regs.pr[pp_num]->HCHCTL = pp_ctl;
+ }
+ }
+ break;
+
+ case GRXSTS_PKTSTS_IN_XFER_COMP:
+ break;
+
+ case GRXSTS_PKTSTS_DATA_TOGGLE_ERR:
+ count = (rx_stat & GRSTATRP_BCOUNT) >> 4U;
+
+ while (count > 0U) {
+ rx_stat = pudev->regs.gr->GRSTATP;
+ count--;
+ }
+ break;
+
+ case GRXSTS_PKTSTS_CH_HALTED:
+ break;
+
+ default:
+ break;
+ }
+
+ /* enable the RX status queue level interrupt */
+ pudev->regs.gr->GINTEN |= GINTEN_RXFNEIE;
+
+ return 1U;
+}
+
+/*!
+ \brief handle the TX FIFO empty interrupt
+ \param[in] pudev: pointer to USB device instance
+ \param[in] pp_mode: pipe mode
+ \param[out] none
+ \retval operation status
+*/
+#if defined (__ICCARM__) /*!< IAR compiler */
+ #pragma optimize = none
+#endif /* __ICCARM */
+static uint32_t usbh_int_txfifoempty (usb_core_driver *pudev, usb_pipe_mode pp_mode)
+{
+ uint8_t pp_num = 0U;
+ uint16_t word_count = 0U, len = 0U;
+ __IO uint32_t *txfiforeg = 0U, txfifostate = 0U;
+
+ if (PIPE_NON_PERIOD == pp_mode) {
+ txfiforeg = &pudev->regs.gr->HNPTFQSTAT;
+ } else if (PIPE_PERIOD == pp_mode) {
+ txfiforeg = &pudev->regs.hr->HPTFQSTAT;
+ } else {
+ return 0U;
+ }
+
+ txfifostate = *txfiforeg;
+
+ pp_num = (uint8_t)((txfifostate & TFQSTAT_CNUM) >> 27U);
+
+ word_count = (uint16_t)(pudev->host.pipe[pp_num].xfer_len + 3U) / 4U;
+
+ while (((txfifostate & TFQSTAT_TXFS) >= word_count) && (0U != pudev->host.pipe[pp_num].xfer_len)) {
+ len = (uint16_t)(txfifostate & TFQSTAT_TXFS) * 4U;
+
+ if (len > pudev->host.pipe[pp_num].xfer_len) {
+ /* last packet */
+ len = (uint16_t)pudev->host.pipe[pp_num].xfer_len;
+
+ if (PIPE_NON_PERIOD == pp_mode) {
+ pudev->regs.gr->GINTEN &= ~GINTEN_NPTXFEIE;
+ } else {
+ pudev->regs.gr->GINTEN &= ~GINTEN_PTXFEIE;
+ }
+ }
+
+ word_count = (uint16_t)((pudev->host.pipe[pp_num].xfer_len + 3U) / 4U);
+ usb_txfifo_write (&pudev->regs, pudev->host.pipe[pp_num].xfer_buf, pp_num, len);
+
+ pudev->host.pipe[pp_num].xfer_buf += len;
+ pudev->host.pipe[pp_num].xfer_len -= len;
+ pudev->host.pipe[pp_num].xfer_count += len;
+
+ txfifostate = *txfiforeg;
+ }
+
+ return 1U;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_core.h
new file mode 100644
index 0000000000..e3f5e5109f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_core.h
@@ -0,0 +1,212 @@
+/*!
+ \file usbh_hid_core.h
+ \brief header file for the usbh_hid_core.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_HID_CORE_H
+#define __USBH_HID_CORE_H
+
+#include "usb_hid.h"
+#include "usbh_enum.h"
+#include "usbh_transc.h"
+
+#define HID_MIN_POLL 10U
+#define HID_REPORT_SIZE 16U
+#define HID_MAX_USAGE 10U
+#define HID_MAX_NBR_REPORT_FMT 10U
+#define HID_QUEUE_SIZE 10U
+
+#define HID_ITEM_LONG 0xFEU
+
+#define HID_ITEM_TYPE_MAIN 0x00U
+#define HID_ITEM_TYPE_GLOBAL 0x01U
+#define HID_ITEM_TYPE_LOCAL 0x02U
+#define HID_ITEM_TYPE_RESERVED 0x03U
+
+#define HID_MAIN_ITEM_TAG_INPUT 0x08U
+#define HID_MAIN_ITEM_TAG_OUTPUT 0x09U
+#define HID_MAIN_ITEM_TAG_COLLECTION 0x0AU
+#define HID_MAIN_ITEM_TAG_FEATURE 0x0BU
+#define HID_MAIN_ITEM_TAG_ENDCOLLECTION 0x0CU
+
+#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE 0x00U
+#define HID_GLOBAL_ITEM_TAG_LOG_MIN 0x01U
+#define HID_GLOBAL_ITEM_TAG_LOG_MAX 0x02U
+#define HID_GLOBAL_ITEM_TAG_PHY_MIN 0x03U
+#define HID_GLOBAL_ITEM_TAG_PHY_MAX 0x04U
+#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT 0x05U
+#define HID_GLOBAL_ITEM_TAG_UNIT 0x06U
+#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE 0x07U
+#define HID_GLOBAL_ITEM_TAG_REPORT_ID 0x08U
+#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT 0x09U
+#define HID_GLOBAL_ITEM_TAG_PUSH 0x0AU
+#define HID_GLOBAL_ITEM_TAG_POP 0x0BU
+
+#define HID_LOCAL_ITEM_TAG_USAGE 0x00U
+#define HID_LOCAL_ITEM_TAG_USAGE_MIN 0x01U
+#define HID_LOCAL_ITEM_TAG_USAGE_MAX 0x02U
+#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX 0x03U
+#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MIN 0x04U
+#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAX 0x05U
+#define HID_LOCAL_ITEM_TAG_STRING_INDEX 0x07U
+#define HID_LOCAL_ITEM_TAG_STRING_MIN 0x08U
+#define HID_LOCAL_ITEM_TAG_STRING_MAX 0x09U
+#define HID_LOCAL_ITEM_TAG_DELIMITER 0x0AU
+
+#define USB_HID_DESC_SIZE 9U
+
+/* states for HID state machine */
+typedef enum {
+ HID_INIT = 0U,
+ HID_IDLE,
+ HID_SEND_DATA,
+ HID_BUSY,
+ HID_GET_DATA,
+ HID_SYNC,
+ HID_POLL,
+ HID_ERROR,
+} hid_state;
+
+typedef enum {
+ HID_REQ_INIT = 0U,
+ HID_REQ_IDLE,
+ HID_REQ_GET_REPORT_DESC,
+ HID_REQ_GET_HID_DESC,
+ HID_REQ_SET_IDLE,
+ HID_REQ_SET_PROTOCOL,
+ HID_REQ_SET_REPORT,
+} hid_ctlstate;
+
+typedef enum
+{
+ HID_MOUSE = 0x01U,
+ HID_KEYBOARD = 0x02U,
+ HID_UNKNOWN = 0xFFU,
+} hid_type;
+
+typedef struct _hid_report_data
+{
+ uint8_t ReportID;
+ uint8_t ReportType;
+ uint16_t UsagePage;
+ uint32_t Usage[HID_MAX_USAGE];
+ uint32_t NbrUsage;
+ uint32_t UsageMin;
+ uint32_t UsageMax;
+ int32_t LogMin;
+ int32_t LogMax;
+ int32_t PhyMin;
+ int32_t PhyMax;
+ int32_t UnitExp;
+ uint32_t Unit;
+ uint32_t ReportSize;
+ uint32_t ReportCnt;
+ uint32_t Flag;
+ uint32_t PhyUsage;
+ uint32_t AppUsage;
+ uint32_t LogUsage;
+} hid_report_data;
+
+typedef struct _hid_report_ID
+{
+ uint8_t size; /*!< report size return by the device ID */
+ uint8_t reportID; /*!< report ID */
+ uint8_t type; /*!< report type (INPUT/OUTPUT/FEATURE) */
+} hid_report_ID;
+
+typedef struct _hid_collection
+{
+ uint32_t usage;
+ uint8_t type;
+ struct _hid_collection *next_ptr;
+} hid_collection;
+
+typedef struct _hid_appcollection
+{
+ uint32_t usage;
+ uint8_t type;
+ uint8_t nbr_report_fmt;
+ hid_report_data report_data[HID_MAX_NBR_REPORT_FMT];
+} hid_appcollection;
+
+typedef struct
+{
+ uint8_t *buf;
+ uint16_t head;
+ uint16_t tail;
+ uint16_t size;
+ uint8_t lock;
+} data_fifo;
+
+/* structure for HID process */
+typedef struct _hid_process
+{
+ uint8_t pipe_in;
+ uint8_t pipe_out;
+ uint8_t ep_addr;
+ uint8_t ep_in;
+ uint8_t ep_out;
+ __IO uint8_t data_ready;
+ uint8_t *pdata;
+ uint16_t len;
+ uint16_t poll;
+
+ __IO uint32_t timer;
+
+ data_fifo fifo;
+ usb_desc_hid hid_desc;
+ hid_report_data hid_report;
+
+ hid_state state;
+ hid_ctlstate ctl_state;
+ usbh_status (*init)(usb_core_driver *pudev, usbh_host *puhost);
+ void (*machine)(usb_core_driver *pudev, usbh_host *puhost);
+} usbh_hid_handler;
+
+extern usbh_class usbh_hid;
+
+/* function declarations */
+/* set HID report */
+usbh_status usbh_set_report (usb_core_driver *pudev,
+ usbh_host *puhost,
+ uint8_t report_type,
+ uint8_t report_ID,
+ uint8_t report_len,
+ uint8_t *report_buf);
+/* read data from FIFO */
+uint16_t usbh_hid_fifo_read (data_fifo *fifo, void *buf, uint16_t nbytes);
+/* write data to FIFO */
+uint16_t usbh_hid_fifo_write (data_fifo *fifo, void *buf, uint16_t nbytes);
+/* initialize FIFO */
+void usbh_hid_fifo_init (data_fifo *fifo, uint8_t *buf, uint16_t size);
+
+#endif /* __USBH_HID_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
new file mode 100644
index 0000000000..4777afe29e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_keybd.h
@@ -0,0 +1,303 @@
+/*!
+ \file usbh_hid_keybd.h
+ \brief header file for usbh_hid_keybd.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_HID_KEYBD_H
+#define __USBH_HID_KEYBD_H
+
+#include "usb_conf.h"
+#include "usbh_hid_core.h"
+
+//#define AZERTY_KEYBOARD
+#define QWERTY_KEYBOARD
+
+#define KBD_LEFT_CTRL 0x01U
+#define KBD_LEFT_SHIFT 0x02U
+#define KBD_LEFT_ALT 0x04U
+#define KBD_LEFT_GUI 0x08U
+#define KBD_RIGHT_CTRL 0x10U
+#define KBD_RIGHT_SHIFT 0x20U
+#define KBD_RIGHT_ALT 0x40U
+#define KBD_RIGHT_GUI 0x80U
+
+#define KEY_NONE 0x00U
+#define KEY_ERRORROLLOVER 0x01U
+#define KEY_POSTFAIL 0x02U
+#define KEY_ERRORUNDEFINED 0x03U
+#define KEY_A 0x04U
+#define KEY_B 0x05U
+#define KEY_C 0x06U
+#define KEY_D 0x07U
+#define KEY_E 0x08U
+#define KEY_F 0x09U
+#define KEY_G 0x0AU
+#define KEY_H 0x0BU
+#define KEY_I 0x0CU
+#define KEY_J 0x0DU
+#define KEY_K 0x0EU
+#define KEY_L 0x0FU
+#define KEY_M 0x10U
+#define KEY_N 0x11U
+#define KEY_O 0x12U
+#define KEY_P 0x13U
+#define KEY_Q 0x14U
+#define KEY_R 0x15U
+#define KEY_S 0x16U
+#define KEY_T 0x17U
+#define KEY_U 0x18U
+#define KEY_V 0x19U
+#define KEY_W 0x1AU
+#define KEY_X 0x1BU
+#define KEY_Y 0x1CU
+#define KEY_Z 0x1DU
+#define KEY_1_EXCLAMATION_MARK 0x1EU
+#define KEY_2_AT 0x1FU
+#define KEY_3_NUMBER_SIGN 0x20U
+#define KEY_4_DOLLAR 0x21U
+#define KEY_5_PERCENT 0x22U
+#define KEY_6_CARET 0x23U
+#define KEY_7_AMPERSAND 0x24U
+#define KEY_8_ASTERISK 0x25U
+#define KEY_9_OPARENTHESIS 0x26U
+#define KEY_0_CPARENTHESIS 0x27U
+#define KEY_ENTER 0x28U
+#define KEY_ESCAPE 0x29U
+#define KEY_BACKSPACE 0x2AU
+#define KEY_TAB 0x2BU
+#define KEY_SPACEBAR 0x2CU
+#define KEY_MINUS_UNDERSCORE 0x2DU
+#define KEY_EQUAL_PLUS 0x2EU
+#define KEY_OBRACKET_AND_OBRACE 0x2FU
+#define KEY_CBRACKET_AND_CBRACE 0x30U
+#define KEY_BACKSLASH_VERTICAL_BAR 0x31U
+#define KEY_NONUS_NUMBER_SIGN_TILDE 0x32U
+#define KEY_SEMICOLON_COLON 0x33U
+#define KEY_SINGLE_AND_DOUBLE_QUOTE 0x34U
+#define KEY_GRAVE ACCENT AND TILDE 0x35U
+#define KEY_COMMA_AND_LESS 0x36U
+#define KEY_DOT_GREATER 0x37U
+#define KEY_SLASH_QUESTION 0x38U
+#define KEY_CAPS LOCK 0x39U
+#define KEY_F1 0x3AU
+#define KEY_F2 0x3BU
+#define KEY_F3 0x3CU
+#define KEY_F4 0x3DU
+#define KEY_F5 0x3EU
+#define KEY_F6 0x3FU
+#define KEY_F7 0x40U
+#define KEY_F8 0x41U
+#define KEY_F9 0x42U
+#define KEY_F10 0x43U
+#define KEY_F11 0x44U
+#define KEY_F12 0x45U
+#define KEY_PRINTSCREEN 0x46U
+#define KEY_SCROLL LOCK 0x47U
+#define KEY_PAUSE 0x48U
+#define KEY_INSERT 0x49U
+#define KEY_HOME 0x4AU
+#define KEY_PAGEUP 0x4BU
+#define KEY_DELETE 0x4CU
+#define KEY_END1 0x4DU
+#define KEY_PAGEDOWN 0x4EU
+#define KEY_RIGHTARROW 0x4FU
+#define KEY_LEFTARROW 0x50U
+#define KEY_DOWNARROW 0x51U
+#define KEY_UPARROW 0x52U
+#define KEY_KEYPAD_NUM_LOCK_AND_CLEAR 0x53U
+#define KEY_KEYPAD_SLASH 0x54U
+#define KEY_KEYPAD_ASTERIKS 0x55U
+#define KEY_KEYPAD_MINUS 0x56U
+#define KEY_KEYPAD_PLUS 0x57U
+#define KEY_KEYPAD_ENTER 0x58U
+#define KEY_KEYPAD_1_END 0x59U
+#define KEY_KEYPAD_2_DOWN_ARROW 0x5AU
+#define KEY_KEYPAD_3_PAGEDN 0x5BU
+#define KEY_KEYPAD_4_LEFT_ARROW 0x5CU
+#define KEY_KEYPAD_5 0x5DU
+#define KEY_KEYPAD_6_RIGHT_ARROW 0x5EU
+#define KEY_KEYPAD_7_HOME 0x5FU
+#define KEY_KEYPAD_8_UP_ARROW 0x60U
+#define KEY_KEYPAD_9_PAGEUP 0x61U
+#define KEY_KEYPAD_0_INSERT 0x62U
+#define KEY_KEYPAD_DECIMAL_SEPARATOR_DELETE 0x63U
+#define KEY_NONUS_BACK_SLASH_VERTICAL_BAR 0x64U
+#define KEY_APPLICATION 0x65U
+#define KEY_POWER 0x66U
+#define KEY_KEYPAD_EQUAL 0x67U
+#define KEY_F13 0x68U
+#define KEY_F14 0x69U
+#define KEY_F15 0x6AU
+#define KEY_F16 0x6BU
+#define KEY_F17 0x6CU
+#define KEY_F18 0x6DU
+#define KEY_F19 0x6EU
+#define KEY_F20 0x6FU
+#define KEY_F21 0x70U
+#define KEY_F22 0x71U
+#define KEY_F23 0x72U
+#define KEY_F24 0x73U
+#define KEY_EXECUTE 0x74U
+#define KEY_HELP 0x75U
+#define KEY_MENU 0x76U
+#define KEY_SELECT 0x77U
+#define KEY_STOP 0x78U
+#define KEY_AGAIN 0x79U
+#define KEY_UNDO 0x7AU
+#define KEY_CUT 0x7BU
+#define KEY_COPY 0x7CU
+#define KEY_PASTE 0x7DU
+#define KEY_FIND 0x7EU
+#define KEY_MUTE 0x7FU
+#define KEY_VOLUME_UP 0x80U
+#define KEY_VOLUME_DOWN 0x81U
+#define KEY_LOCKING_CAPS_LOCK 0x82U
+#define KEY_LOCKING_NUM_LOCK 0x83U
+#define KEY_LOCKING_SCROLL_LOCK 0x84U
+#define KEY_KEYPAD_COMMA 0x85U
+#define KEY_KEYPAD_EQUAL_SIGN 0x86U
+#define KEY_INTERNATIONAL1 0x87U
+#define KEY_INTERNATIONAL2 0x88U
+#define KEY_INTERNATIONAL3 0x89U
+#define KEY_INTERNATIONAL4 0x8AU
+#define KEY_INTERNATIONAL5 0x8BU
+#define KEY_INTERNATIONAL6 0x8CU
+#define KEY_INTERNATIONAL7 0x8DU
+#define KEY_INTERNATIONAL8 0x8EU
+#define KEY_INTERNATIONAL9 0x8FU
+#define KEY_LANG1 0x90U
+#define KEY_LANG2 0x91U
+#define KEY_LANG3 0x92U
+#define KEY_LANG4 0x93U
+#define KEY_LANG5 0x94U
+#define KEY_LANG6 0x95U
+#define KEY_LANG7 0x96U
+#define KEY_LANG8 0x97U
+#define KEY_LANG9 0x98U
+#define KEY_ALTERNATE_ERASE 0x99U
+#define KEY_SYSREQ 0x9AU
+#define KEY_CANCEL 0x9BU
+#define KEY_CLEAR 0x9CU
+#define KEY_PRIOR 0x9DU
+#define KEY_RETURN 0x9EU
+#define KEY_SEPARATOR 0x9FU
+#define KEY_OUT 0xA0U
+#define KEY_OPER 0xA1U
+#define KEY_CLEAR_AGAIN 0xA2U
+#define KEY_CRSEL 0xA3U
+#define KEY_EXSEL 0xA4U
+#define KEY_KEYPAD_00 0xB0U
+#define KEY_KEYPAD_000 0xB1U
+#define KEY_THOUSANDS_SEPARATOR 0xB2U
+#define KEY_DECIMAL_SEPARATOR 0xB3U
+#define KEY_CURRENCY_UNIT 0xB4U
+#define KEY_CURRENCY_SUB_UNIT 0xB5U
+#define KEY_KEYPAD_OPARENTHESIS 0xB6U
+#define KEY_KEYPAD_CPARENTHESIS 0xB7U
+#define KEY_KEYPAD_OBRACE 0xB8U
+#define KEY_KEYPAD_CBRACE 0xB9U
+#define KEY_KEYPAD_TAB 0xBAU
+#define KEY_KEYPAD_BACKSPACE 0xBBU
+#define KEY_KEYPAD_A 0xBCU
+#define KEY_KEYPAD_B 0xBDU
+#define KEY_KEYPAD_C 0xBEU
+#define KEY_KEYPAD_D 0xBFU
+#define KEY_KEYPAD_E 0xC0U
+#define KEY_KEYPAD_F 0xC1U
+#define KEY_KEYPAD_XOR 0xC2U
+#define KEY_KEYPAD_CARET 0xC3U
+#define KEY_KEYPAD_PERCENT 0xC4U
+#define KEY_KEYPAD_LESS 0xC5U
+#define KEY_KEYPAD_GREATER 0xC6U
+#define KEY_KEYPAD_AMPERSAND 0xC7U
+#define KEY_KEYPAD_LOGICAL_AND 0xC8U
+#define KEY_KEYPAD_VERTICAL_BAR 0xC9U
+#define KEY_KEYPAD_LOGIACL_OR 0xCAU
+#define KEY_KEYPAD_COLON 0xCBU
+#define KEY_KEYPAD_NUMBER_SIGN 0xCCU
+#define KEY_KEYPAD_SPACE 0xCDU
+#define KEY_KEYPAD_AT 0xCEU
+#define KEY_KEYPAD_EXCLAMATION_MARK 0xCFU
+#define KEY_KEYPAD_MEMORY_STORE 0xD0U
+#define KEY_KEYPAD_MEMORY_RECALL 0xD1U
+#define KEY_KEYPAD_MEMORY_CLEAR 0xD2U
+#define KEY_KEYPAD_MEMORY_ADD 0xD3U
+#define KEY_KEYPAD_MEMORY_SUBTRACT 0xD4U
+#define KEY_KEYPAD_MEMORY_MULTIPLY 0xD5U
+#define KEY_KEYPAD_MEMORY_DIVIDE 0xD6U
+#define KEY_KEYPAD_PLUSMINUS 0xD7U
+#define KEY_KEYPAD_CLEAR 0xD8U
+#define KEY_KEYPAD_CLEAR_ENTRY 0xD9U
+#define KEY_KEYPAD_BINARY 0xDAU
+#define KEY_KEYPAD_OCTAL 0xDBU
+#define KEY_KEYPAD_DECIMAL 0xDCU
+#define KEY_KEYPAD_HEXADECIMAL 0xDDU
+#define KEY_LEFTCONTROL 0xE0U
+#define KEY_LEFTSHIFT 0xE1U
+#define KEY_LEFTALT 0xE2U
+#define KEY_LEFT_GUI 0xE3U
+#define KEY_RIGHTCONTROL 0xE4U
+#define KEY_RIGHTSHIFT 0xE5U
+#define KEY_RIGHTALT 0xE6U
+#define KEY_RIGHT_GUI 0xE7U
+
+#define KBR_MAX_NBR_PRESSED 6U
+
+typedef struct
+{
+ uint8_t state;
+ uint8_t lctrl;
+ uint8_t lshift;
+ uint8_t lalt;
+ uint8_t lgui;
+ uint8_t rctrl;
+ uint8_t rshift;
+ uint8_t ralt;
+ uint8_t rgui;
+ uint8_t keys[6];
+} hid_keybd_info;
+
+/* function declarations */
+/* initialize keyboard */
+void USR_KEYBRD_Init (void);
+/* process keyboard data */
+void USR_KEYBRD_ProcessData (uint8_t pbuf);
+/* initialize the keyboard function */
+usbh_status usbh_hid_keybd_init (usb_core_driver *pudev, usbh_host *puhost);
+/* get keyboard information */
+hid_keybd_info *usbh_hid_keybd_info_get (usb_core_driver *pudev, usbh_host *puhost);
+/* get the ascii code of hid */
+uint8_t usbh_hid_ascii_code_get (hid_keybd_info *info);
+/* keyboard machine */
+void usbh_hid_keybrd_machine (usb_core_driver *pudev, usbh_host *puhost);
+
+#endif /* __USBH_HID_KEYBD_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
new file mode 100644
index 0000000000..a09e108679
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_mouse.h
@@ -0,0 +1,59 @@
+/*!
+ \file usbh_hid_mouse.h
+ \brief header file for the usbh_hid_mouse.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_HID_MOUSE_H
+#define __USBH_HID_MOUSE_H
+
+#include "usbh_hid_core.h"
+
+typedef struct _hid_mouse_info
+{
+ uint8_t x;
+ uint8_t y;
+ uint8_t buttons[3];
+} hid_mouse_info;
+
+/* function declarations */
+/* initialize mouse */
+void USR_MOUSE_Init (void);
+/* process mouse data */
+void USR_MOUSE_ProcessData (hid_mouse_info *data);
+/* initialize mouse function */
+usbh_status usbh_hid_mouse_init (usb_core_driver *pudev, usbh_host *puhost);
+/* get mouse information */
+hid_mouse_info *usbh_hid_mouse_info_get (usb_core_driver *pudev, usbh_host *puhost);
+/* mouse machine */
+void usbh_hid_mouse_machine (usb_core_driver *pudev, usbh_host *puhost);
+
+#endif /* __USBH_HID_MOUSE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_parser.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
new file mode 100644
index 0000000000..796af7c5f6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_parser.h
@@ -0,0 +1,61 @@
+/*!
+ \file usbh_hid_core.h
+ \brief header file for the usbh_hid_core.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_HID_PARSER_H
+#define __USBH_HID_PARSER_H
+
+#include "usbh_hid_core.h"
+#include "usbh_hid_usage.h"
+
+typedef struct
+{
+ uint8_t *data;
+ uint32_t size;
+ uint8_t shift;
+ uint8_t count;
+ uint8_t sign;
+ uint32_t logical_min; /*min value device can return*/
+ uint32_t logical_max; /*max value device can return*/
+ uint32_t physical_min; /*min vale read can report*/
+ uint32_t physical_max; /*max value read can report*/
+ uint32_t resolution;
+} hid_report_item;
+
+/* function declarations */
+/* read a hid report item */
+uint32_t hid_item_read (hid_report_item *ri, uint8_t ndx);
+/* write a hid report item */
+uint32_t hid_item_write (hid_report_item *ri, uint32_t value, uint8_t ndx);
+
+#endif /* __USBH_HID_PARSER_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_usage.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
new file mode 100644
index 0000000000..2bcb7d9d12
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Include/usbh_hid_usage.h
@@ -0,0 +1,141 @@
+/*!
+ \file usbh_hid_core.h
+ \brief header file for the usbh_hid_core.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USDH_HID_USAGE_H
+#define __USDH_HID_USAGE_H
+
+/* HID 1.11 usage pages */
+#define HID_USAGE_PAGE_UNDEFINED uint16_t (0x00) /* Undefined */
+
+/* top level pages */
+#define HID_USAGE_PAGE_GEN_DES uint16_t (0x01) /* Generic Desktop Controls*/
+#define HID_USAGE_PAGE_SIM_CTR uint16_t (0x02) /* Simulation Controls */
+#define HID_USAGE_PAGE_VR_CTR uint16_t (0x03) /* VR Controls */
+#define HID_USAGE_PAGE_SPORT_CTR uint16_t (0x04) /* Sport Controls */
+#define HID_USAGE_PAGE_GAME_CTR uint16_t (0x05) /* Game Controls */
+#define HID_USAGE_PAGE_GEN_DEV uint16_t (0x06) /* Generic Device Controls */
+#define HID_USAGE_PAGE_KEYB uint16_t (0x07) /* Keyboard/Keypad */
+#define HID_USAGE_PAGE_LED uint16_t (0x08) /* LEDs */
+#define HID_USAGE_PAGE_BUTTON uint16_t (0x09) /* Button */
+#define HID_USAGE_PAGE_ORDINAL uint16_t (0x0A) /* Ordinal */
+#define HID_USAGE_PAGE_PHONE uint16_t (0x0B) /* Telephony */
+#define HID_USAGE_PAGE_CONSUMER uint16_t (0x0C) /* Consumer */
+#define HID_USAGE_PAGE_DIGITIZER uint16_t (0x0D) /* Digitizer*/
+#define HID_USAGE_PAGE_PID uint16_t (0x0F) /* PID Page (force feedback and related devices) */
+#define HID_USAGE_PAGE_UNICODE uint16_t (0x10) /* Unicode */
+#define HID_USAGE_PAGE_ALNUM_DISP uint16_t (0x14) /* Alphanumeric Display */
+/* end of top level pages */
+
+#define HID_USAGE_PAGE_MEDICAL uint16_t (0x40) /* Medical Instruments */
+
+/* 80-83 Monitor pages USB Device Class Definition for Monitor Devices */
+/* 84-87 Power pages USB Device Class Definition for Power Devices */
+#define HID_USAGE_PAGE_BARCODE uint16_t (0x8C) /* Bar Code Scanner page */
+#define HID_USAGE_PAGE_SCALE uint16_t (0x8D) /* Scale page */
+#define HID_USAGE_PAGE_MSR uint16_t (0x8E) /* Magnetic Stripe Reading (MSR) Devices */
+#define HID_USAGE_PAGE_POS uint16_t (0x8F) /* Reserved Point of Sale pages */
+#define HID_USAGE_PAGE_CAMERA_CTR uint16_t (0x90) /* Camera Control Page */
+#define HID_USAGE_PAGE_ARCADE uint16_t (0x91) /* Arcade Page */
+
+/* usage definitions for the "generic desktop" page */
+#define HID_USAGE_UNDEFINED uint16_t (0x00) /* Undefined */
+#define HID_USAGE_POINTER uint16_t (0x01) /* Pointer (Physical Collection) */
+#define HID_USAGE_MOUSE uint16_t (0x02) /* Mouse (Application Collection) */
+#define HID_USAGE_JOYSTICK uint16_t (0x04) /* Joystick (Application Collection) */
+#define HID_USAGE_GAMEPAD uint16_t (0x05) /* Game Pad (Application Collection) */
+#define HID_USAGE_KBD uint16_t (0x06) /* Keyboard (Application Collection) */
+#define HID_USAGE_KEYPAD uint16_t (0x07) /* Keypad (Application Collection) */
+#define HID_USAGE_MAX_CTR uint16_t (0x08) /* Multi-axis Controller (Application Collection) */
+#define HID_USAGE_X uint16_t (0x30) /* X (Dynamic Value) */
+#define HID_USAGE_Y uint16_t (0x31) /* Y (Dynamic Value) */
+#define HID_USAGE_Z uint16_t (0x32) /* Z (Dynamic Value) */
+#define HID_USAGE_RX uint16_t (0x33) /* Rx (Dynamic Value) */
+#define HID_USAGE_RY uint16_t (0x34) /* Ry (Dynamic Value) */
+#define HID_USAGE_RZ uint16_t (0x35) /* Rz (Dynamic Value) */
+#define HID_USAGE_SLIDER uint16_t (0x36) /* Slider (Dynamic Value) */
+#define HID_USAGE_DIAL uint16_t (0x37) /* Dial (Dynamic Value) */
+#define HID_USAGE_WHEEL uint16_t (0x38) /* Wheel (Dynamic Value) */
+#define HID_USAGE_HATSW uint16_t (0x39) /* Hat switch (Dynamic Value) */
+#define HID_USAGE_COUNTEDBUF uint16_t (0x3A) /* Counted Buffer (Logical Collection) */
+#define HID_USAGE_BYTECOUNT uint16_t (0x3B) /* Byte Count (Dynamic Value) */
+#define HID_USAGE_MOTIONWAKE uint16_t (0x3C) /* Motion Wakeup (One Shot Control) */
+#define HID_USAGE_START uint16_t (0x3D) /* Start (On/Off Control) */
+#define HID_USAGE_SELECT uint16_t (0x3E) /* Select (On/Off Control) */
+#define HID_USAGE_VX uint16_t (0x40) /* Vx (Dynamic Value) */
+#define HID_USAGE_VY uint16_t (0x41) /* Vy (Dynamic Value) */
+#define HID_USAGE_VZ uint16_t (0x42) /* Vz (Dynamic Value) */
+#define HID_USAGE_VBRX uint16_t (0x43) /* Vbrx (Dynamic Value) */
+#define HID_USAGE_VBRY uint16_t (0x44) /* Vbry (Dynamic Value) */
+#define HID_USAGE_VBRZ uint16_t (0x45) /* Vbrz (Dynamic Value) */
+#define HID_USAGE_VNO uint16_t (0x46) /* Vno (Dynamic Value) */
+#define HID_USAGE_FEATNOTIF uint16_t (0x47) /* Feature Notification (Dynamic Value),(Dynamic Flag) */
+#define HID_USAGE_SYSCTL uint16_t (0x80) /* System Control (Application Collection) */
+#define HID_USAGE_PWDOWN uint16_t (0x81) /* System Power Down (One Shot Control) */
+#define HID_USAGE_SLEEP uint16_t (0x82) /* System Sleep (One Shot Control) */
+#define HID_USAGE_WAKEUP uint16_t (0x83) /* System Wake Up (One Shot Control) */
+#define HID_USAGE_CONTEXTM uint16_t (0x84) /* System Context Menu (One Shot Control) */
+#define HID_USAGE_MAINM uint16_t (0x85) /* System Main Menu (One Shot Control) */
+#define HID_USAGE_APPM uint16_t (0x86) /* System App Menu (One Shot Control) */
+#define HID_USAGE_MENUHELP uint16_t (0x87) /* System Menu Help (One Shot Control) */
+#define HID_USAGE_MENUEXIT uint16_t (0x88) /* System Menu Exit (One Shot Control) */
+#define HID_USAGE_MENUSELECT uint16_t (0x89) /* System Menu Select (One Shot Control) */
+#define HID_USAGE_SYSM_RIGHT uint16_t (0x8A) /* System Menu Right (Re-Trigger Control) */
+#define HID_USAGE_SYSM_LEFT uint16_t (0x8B) /* System Menu Left (Re-Trigger Control) */
+#define HID_USAGE_SYSM_UP uint16_t (0x8C) /* System Menu Up (Re-Trigger Control) */
+#define HID_USAGE_SYSM_DOWN uint16_t (0x8D) /* System Menu Down (Re-Trigger Control) */
+#define HID_USAGE_COLDRESET uint16_t (0x8E) /* System Cold Restart (One Shot Control) */
+#define HID_USAGE_WARMRESET uint16_t (0x8F) /* System Warm Restart (One Shot Control) */
+#define HID_USAGE_DUP uint16_t (0x90) /* D-pad Up (On/Off Control) */
+#define HID_USAGE_DDOWN uint16_t (0x91) /* D-pad Down (On/Off Control) */
+#define HID_USAGE_DRIGHT uint16_t (0x92) /* D-pad Right (On/Off Control) */
+#define HID_USAGE_DLEFT uint16_t (0x93) /* D-pad Left (On/Off Control) */
+#define HID_USAGE_SYS_DOCK uint16_t (0xA0) /* System Dock (One Shot Control) */
+#define HID_USAGE_SYS_UNDOCK uint16_t (0xA1) /* System Undock (One Shot Control) */
+#define HID_USAGE_SYS_SETUP uint16_t (0xA2) /* System Setup (One Shot Control) */
+#define HID_USAGE_SYS_BREAK uint16_t (0xA3) /* System Break (One Shot Control) */
+#define HID_USAGE_SYS_DBGBRK uint16_t (0xA4) /* System Debugger Break (One Shot Control) */
+#define HID_USAGE_APP_BRK uint16_t (0xA5) /* Application Break (One Shot Control) */
+#define HID_USAGE_APP_DBGBRK uint16_t (0xA6) /* Application Debugger Break (One Shot Control) */
+#define HID_USAGE_SYS_SPKMUTE uint16_t (0xA7) /* System Speaker Mute (One Shot Control) */
+#define HID_USAGE_SYS_HIBERN uint16_t (0xA8) /* System Hibernate (One Shot Control) */
+#define HID_USAGE_SYS_SIDPINV uint16_t (0xB0) /* System Display Invert (One Shot Control) */
+#define HID_USAGE_SYS_DISPINT uint16_t (0xB1) /* System Display Internal (One Shot Control) */
+#define HID_USAGE_SYS_DISPEXT uint16_t (0xB2) /* System Display External (One Shot Control) */
+#define HID_USAGE_SYS_DISPBOTH uint16_t (0xB3) /* System Display Both (One Shot Control) */
+#define HID_USAGE_SYS_DISPDUAL uint16_t (0xB4) /* System Display Dual (One Shot Control) */
+#define HID_USAGE_SYS_DISPTGLIE uint16_t (0xB5) /* System Display Toggle Int/Ext (One Shot Control) */
+#define HID_USAGE_SYS_DISP_SWAP uint16_t (0xB6) /* System Display Swap Primary/Secondary (One Shot Control) */
+#define HID_USAGE_SYS_DIPS_LCDA uint16_t (0xB7) /* System Display LCD Autoscale (One Shot Control) */
+
+#endif /* __USDH_HID_USAGE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_core.c
new file mode 100644
index 0000000000..a9ec57dce2
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_core.c
@@ -0,0 +1,675 @@
+/*!
+ \file usbh_hid_core.c
+ \brief USB host HID class driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_pipe.h"
+#include "usbh_hid_core.h"
+#include "usbh_hid_mouse.h"
+#include "usbh_hid_keybd.h"
+#include
+#include
+
+/* local function prototypes ('static') */
+static void usbh_hiddesc_parse (usb_desc_hid *hid_desc, uint8_t *buf);
+static void usbh_hid_itf_deinit (usbh_host *puhost);
+static usbh_status usbh_hid_itf_init (usbh_host *puhost);
+static usbh_status usbh_hid_class_req (usbh_host *puhost);
+static usbh_status usbh_hid_handle (usbh_host *puhost);
+static usbh_status usbh_hid_reportdesc_get (usbh_host *puhost, uint16_t len);
+static usbh_status usbh_hid_sof(usbh_host *puhost);
+static usbh_status usbh_hid_desc_get (usbh_host *puhost, uint16_t len);
+static usbh_status usbh_set_idle (usbh_host *puhost, uint8_t duration, uint8_t report_ID);
+static usbh_status usbh_set_protocol (usbh_host *puhost, uint8_t protocol);
+
+usbh_class usbh_hid =
+{
+ USB_HID_CLASS,
+ usbh_hid_itf_init,
+ usbh_hid_itf_deinit,
+ usbh_hid_class_req,
+ usbh_hid_handle,
+ usbh_hid_sof
+};
+
+/*!
+ \brief get report
+ \param[in] puhost: pointer to usb host
+ \param[in] report_type: duration for HID set idle request
+ \param[in] report_ID: targeted report ID for HID set idle request
+ \param[in] report_len: length of data report to be send
+ \param[in] report_buf: report buffer
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_get_report (usbh_host *puhost,
+ uint8_t report_type,
+ uint8_t report_ID,
+ uint8_t report_len,
+ uint8_t *report_buf)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_RECPTYPE_ITF | USB_REQTYPE_CLASS,
+ .bRequest = GET_REPORT,
+ .wValue = (report_type << 8U) | report_ID,
+ .wIndex = 0U,
+ .wLength = report_len
+ };
+
+ usbh_ctlstate_config (puhost, report_buf, report_len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief set report
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[in] report_type: duration for HID set idle request
+ \param[in] report_ID: targeted report ID for HID set idle request
+ \param[in] report_len: length of data report to be send
+ \param[in] report_buf: report buffer
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_set_report (usb_core_driver *pudev,
+ usbh_host *puhost,
+ uint8_t report_type,
+ uint8_t report_ID,
+ uint8_t report_len,
+ uint8_t *report_buf)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_ITF | USB_REQTYPE_CLASS,
+ .bRequest = SET_REPORT,
+ .wValue = (report_type << 8U) | report_ID,
+ .wIndex = 0U,
+ .wLength = report_len
+ };
+
+ usbh_ctlstate_config (puhost, report_buf, report_len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief de-initialize the host pipes used for the HID class
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+void usbh_hid_itf_deinit (usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ if (0x00U != hid->pipe_in) {
+ usb_pipe_halt (puhost->data, hid->pipe_in);
+
+ usbh_pipe_free (puhost->data, hid->pipe_in);
+
+ hid->pipe_in = 0U; /* reset the pipe as free */
+ }
+
+ if (0x00U != hid->pipe_out) {
+ usb_pipe_halt (puhost->data, hid->pipe_out);
+
+ usbh_pipe_free (puhost->data, hid->pipe_out);
+
+ hid->pipe_out = 0U; /* reset the channel as free */
+ }
+}
+
+/*!
+ \brief return device type
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval hid_type
+*/
+hid_type usbh_hid_device_type_get(usb_core_driver *pudev, usbh_host *puhost)
+{
+ hid_type type = HID_UNKNOWN;
+ uint8_t interface_protocol;
+
+ if (HOST_CLASS_HANDLER == puhost->cur_state) {
+ interface_protocol = puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].itf_desc.bInterfaceProtocol;
+
+ if (USB_HID_PROTOCOL_KEYBOARD == interface_protocol) {
+ type = HID_KEYBOARD;
+ } else {
+ if (USB_HID_PROTOCOL_MOUSE == interface_protocol) {
+ type = HID_MOUSE;
+ }
+ }
+ }
+
+ return type;
+}
+
+/*!
+ \brief return HID device poll time
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval poll time (ms)
+*/
+uint8_t usbh_hid_poll_interval_get (usb_core_driver *pudev, usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ if ((HOST_CLASS_ENUM == puhost->cur_state) ||
+ (HOST_USER_INPUT == puhost->cur_state) ||
+ (HOST_CHECK_CLASS == puhost->cur_state) ||
+ (HOST_CLASS_HANDLER == puhost->cur_state)) {
+ return (uint8_t)(hid->poll);
+ } else {
+ return 0U;
+ }
+}
+
+/*!
+ \brief read from FIFO
+ \param[in] fifo: fifo address
+ \param[in] buf: read buffer
+ \param[in] nbytes: number of item to read
+ \param[out] none
+ \retval number of read items
+*/
+uint16_t usbh_hid_fifo_read (data_fifo *fifo, void *buf, uint16_t nbytes)
+{
+ uint16_t i = 0U;
+ uint8_t *p = (uint8_t*) buf;
+
+ if (0U == fifo->lock) {
+ fifo->lock = 1U;
+
+ for (i = 0U; i < nbytes; i++) {
+ if (fifo->tail != fifo->head) {
+ *p++ = fifo->buf[fifo->tail];
+ fifo->tail++;
+
+ if (fifo->tail == fifo->size) {
+ fifo->tail = 0U;
+ }
+ } else {
+ fifo->lock = 0U;
+
+ return i;
+ }
+ }
+ }
+
+ fifo->lock = 0U;
+
+ return nbytes;
+}
+
+/*!
+ \brief write to FIFO
+ \param[in] fifo: fifo address
+ \param[in] buf: read buffer
+ \param[in] nbytes: number of item to read
+ \param[out] none
+ \retval number of write items
+*/
+uint16_t usbh_hid_fifo_write (data_fifo *fifo, void *buf, uint16_t nbytes)
+{
+ uint16_t i = 0U;
+ uint8_t *p = (uint8_t*) buf;
+
+ if (0U == fifo->lock) {
+ fifo->lock = 1U;
+
+ for (i = 0U; i < nbytes; i++) {
+ if ((fifo->head + 1U == fifo->tail) ||
+ ((fifo->head + 1U == fifo->size) && (0U == fifo->tail))) {
+ fifo->lock = 0U;
+
+ return i;
+ } else {
+ fifo->buf[fifo->head] = *p++;
+ fifo->head++;
+
+ if (fifo->head == fifo->size) {
+ fifo->head = 0U;
+ }
+ }
+ }
+ }
+
+ fifo->lock = 0U;
+
+ return nbytes;
+}
+
+/*!
+ \brief initialize FIFO
+ \param[in] fifo: fifo address
+ \param[in] buf: read buffer
+ \param[in] size: size of FIFO
+ \param[out] none
+ \retval none
+*/
+void usbh_hid_fifo_init (data_fifo *fifo, uint8_t *buf, uint16_t size)
+{
+ fifo->head = 0U;
+ fifo->tail = 0U;
+ fifo->lock = 0U;
+ fifo->size = size;
+ fifo->buf = buf;
+}
+
+/*!
+ \brief initialize the hid class
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_itf_init (usbh_host *puhost)
+{
+ uint8_t num = 0U, ep_num = 0U, interface = 0U;
+ usbh_status status = USBH_BUSY;
+
+ interface = usbh_interface_find(&puhost->dev_prop, USB_HID_CLASS, USB_HID_SUBCLASS_BOOT_ITF, 0xFFU);
+
+ if (0xFFU == interface) {
+ puhost->usr_cb->dev_not_supported();
+
+ status = USBH_FAIL;
+ } else {
+ usbh_interface_select(&puhost->dev_prop, interface);
+
+ static usbh_hid_handler hid_handler;
+
+ memset((void*)&hid_handler, 0, sizeof(usbh_hid_handler));
+
+ hid_handler.state = HID_ERROR;
+
+ uint8_t itf_protocol = puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].itf_desc.bInterfaceProtocol;
+ if (USB_HID_PROTOCOL_KEYBOARD == itf_protocol) {
+ hid_handler.init = usbh_hid_keybd_init;
+ hid_handler.machine = usbh_hid_keybrd_machine;
+ } else if (USB_HID_PROTOCOL_MOUSE == itf_protocol) {
+ hid_handler.init = usbh_hid_mouse_init;
+ hid_handler.machine = usbh_hid_mouse_machine;
+ } else {
+ status = USBH_FAIL;
+ }
+
+ hid_handler.state = HID_INIT;
+ hid_handler.ctl_state = HID_REQ_INIT;
+ hid_handler.ep_addr = puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].ep_desc[0].bEndpointAddress;
+ hid_handler.len = puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].ep_desc[0].wMaxPacketSize;
+ hid_handler.poll = puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].ep_desc[0].bInterval;
+
+ if (hid_handler.poll < HID_MIN_POLL) {
+ hid_handler.poll = HID_MIN_POLL;
+ }
+
+ /* check for available number of endpoints */
+ /* find the number of endpoints in the interface descriptor */
+ /* choose the lower number in order not to overrun the buffer allocated */
+ ep_num = USB_MIN(puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].itf_desc.bNumEndpoints, USBH_MAX_EP_NUM);
+
+ /* decode endpoint IN and OUT address from interface descriptor */
+ for (num = 0U; num < ep_num; num++) {
+ usb_desc_ep *ep_desc = &puhost->dev_prop.cfg_desc_set.itf_desc_set[puhost->dev_prop.cur_itf][0].ep_desc[num];
+
+ uint8_t ep_addr = ep_desc->bEndpointAddress;
+
+ if (ep_addr & 0x80U) {
+ hid_handler.ep_in = ep_addr;
+ hid_handler.pipe_in = usbh_pipe_allocate (puhost->data, ep_addr);
+
+ /* open channel for IN endpoint */
+ usbh_pipe_create (puhost->data,
+ &puhost->dev_prop,
+ hid_handler.pipe_in,
+ USB_EPTYPE_INTR,
+ hid_handler.len);
+
+ usbh_pipe_toggle_set(puhost->data, hid_handler.pipe_in, 0U);
+ } else {
+ hid_handler.ep_out = ep_addr;
+ hid_handler.pipe_out = usbh_pipe_allocate (puhost->data, ep_addr);
+
+ /* open channel for OUT endpoint */
+ usbh_pipe_create (puhost->data,
+ &puhost->dev_prop,
+ hid_handler.pipe_out,
+ USB_EPTYPE_INTR,
+ hid_handler.len);
+
+ usbh_pipe_toggle_set(puhost->data, hid_handler.pipe_out, 0U);
+ }
+ }
+
+ puhost->active_class->class_data = (void *)&hid_handler;
+
+ status = USBH_OK;
+ }
+
+ return status;
+}
+
+/*!
+ \brief handle HID class requests for HID class
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_class_req (usbh_host *puhost)
+{
+ usbh_status status = USBH_BUSY;
+ usbh_status class_req_status = USBH_BUSY;
+
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ /* handle HID control state machine */
+ switch (hid->ctl_state) {
+ case HID_REQ_INIT:
+ case HID_REQ_GET_HID_DESC:
+ /* get HID descriptor */
+ if (USBH_OK == usbh_hid_desc_get (puhost, USB_HID_DESC_SIZE)) {
+ usbh_hiddesc_parse(&hid->hid_desc, puhost->dev_prop.data);
+
+ hid->ctl_state = HID_REQ_GET_REPORT_DESC;
+ }
+ break;
+
+ case HID_REQ_GET_REPORT_DESC:
+ /* get report descriptor */
+ if (USBH_OK == usbh_hid_reportdesc_get(puhost, hid->hid_desc.wDescriptorLength)) {
+ hid->ctl_state = HID_REQ_SET_IDLE;
+ }
+ break;
+
+ case HID_REQ_SET_IDLE:
+ class_req_status = usbh_set_idle (puhost, 0U, 0U);
+
+ /* set idle */
+ if (USBH_OK == class_req_status) {
+ hid->ctl_state = HID_REQ_SET_PROTOCOL;
+ } else {
+ if(USBH_NOT_SUPPORTED == class_req_status) {
+ hid->ctl_state = HID_REQ_SET_PROTOCOL;
+ }
+ }
+ break;
+
+ case HID_REQ_SET_PROTOCOL:
+ /* set protocol */
+ if (USBH_OK == usbh_set_protocol (puhost, 0U)) {
+ hid->ctl_state = HID_REQ_IDLE;
+
+ /* all requests performed */
+ status = USBH_OK;
+ }
+ break;
+
+ case HID_REQ_IDLE:
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief manage state machine for HID data transfers
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_handle (usbh_host *puhost)
+{
+ usbh_status status = USBH_OK;
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ switch (hid->state) {
+ case HID_INIT:
+ hid->init(puhost->data, puhost);
+ hid->state = HID_IDLE;
+ break;
+
+ case HID_IDLE:
+ hid->state = HID_SYNC;
+ status = USBH_OK;
+ break;
+
+ case HID_SYNC:
+ /* sync with start of even frame */
+ if (true == usb_frame_even(puhost->data)) {
+ hid->state = HID_GET_DATA;
+ }
+ break;
+
+ case HID_GET_DATA:
+ usbh_data_recev (puhost->data, hid->pdata, hid->pipe_in, hid->len);
+
+ hid->state = HID_POLL;
+ hid->timer = usb_curframe_get (puhost->data);
+ hid->data_ready = 0U;
+ break;
+
+ case HID_POLL:
+ if (URB_DONE == usbh_urbstate_get (puhost->data, hid->pipe_in)) {
+ if (0U == hid->data_ready) { /* handle data once */
+ usbh_hid_fifo_write(&hid->fifo, hid->pdata, hid->len);
+ hid->data_ready = 1U;
+
+ hid->machine(puhost->data, puhost);
+ }
+ } else {
+ if (URB_STALL == usbh_urbstate_get (puhost->data, hid->pipe_in)) { /* IN endpoint stalled */
+ /* issue clear feature on interrupt in endpoint */
+ if (USBH_OK == (usbh_clrfeature (puhost, hid->ep_addr, hid->pipe_in))) {
+ /* change state to issue next in token */
+ hid->state = HID_GET_DATA;
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ return status;
+}
+
+/*!
+ \brief send get report descriptor command to the device
+ \param[in] puhost: pointer to usb host
+ \param[in] len: HID report descriptor length
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_reportdesc_get (usbh_host *puhost, uint16_t len)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_RECPTYPE_ITF | USB_REQTYPE_STRD,
+ .bRequest = USB_GET_DESCRIPTOR,
+ .wValue = USBH_DESC(USB_DESCTYPE_REPORT),
+ .wIndex = 0U,
+ .wLength = len
+ };
+
+ usbh_ctlstate_config (puhost, puhost->dev_prop.data, len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief managing the SOF process
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_sof(usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ if (HID_POLL == hid->state) {
+ uint32_t frame_count = usb_curframe_get (puhost->data);
+
+ if ((frame_count > hid->timer) && ((frame_count - hid->timer) >= hid->poll)) {
+ hid->state = HID_GET_DATA;
+ } else if ((frame_count < hid->timer) && ((frame_count + 0x3FFFU - hid->timer) >= hid->poll)) {
+ hid->state = HID_GET_DATA;
+ } else {
+ /* no operation */
+ }
+ }
+
+ return USBH_OK;
+}
+
+/*!
+ \brief send the command of get HID descriptor to the device
+ \param[in] puhost: pointer to usb host
+ \param[in] len: HID descriptor length
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_desc_get (usbh_host *puhost, uint16_t len)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_RECPTYPE_ITF | USB_REQTYPE_STRD,
+ .bRequest = USB_GET_DESCRIPTOR,
+ .wValue = USBH_DESC(USB_DESCTYPE_HID),
+ .wIndex = 0U,
+ .wLength = len
+ };
+
+ usbh_ctlstate_config (puhost, puhost->dev_prop.data, len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief set idle state
+ \param[in] puhost: pointer to usb host
+ \param[in] duration: duration for HID set idle request
+ \param[in] report_ID: targeted report ID for HID set idle request
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_set_idle (usbh_host *puhost, uint8_t duration, uint8_t report_ID)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_ITF | USB_REQTYPE_CLASS,
+ .bRequest = SET_IDLE,
+ .wValue = (duration << 8U) | report_ID,
+ .wIndex = 0U,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief set protocol state
+ \param[in] puhost: pointer to usb host
+ \param[in] protocol: boot/report protocol
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_set_protocol (usbh_host *puhost, uint8_t protocol)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_ITF | USB_REQTYPE_CLASS,
+ .bRequest = SET_PROTOCOL,
+ .wValue = !protocol,
+ .wIndex = 0U,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief parse the HID descriptor
+ \param[in] hid_desc: pointer to HID descriptor
+ \param[in] buf: pointer to buffer where the source descriptor is available
+ \param[out] none
+ \retval none
+*/
+static void usbh_hiddesc_parse (usb_desc_hid *hid_desc, uint8_t *buf)
+{
+ hid_desc->header.bLength = *(uint8_t *)(buf + 0U);
+ hid_desc->header.bDescriptorType = *(uint8_t *)(buf + 1U);
+ hid_desc->bcdHID = BYTE_SWAP(buf + 2U);
+ hid_desc->bCountryCode = *(uint8_t *)(buf + 4U);
+ hid_desc->bNumDescriptors = *(uint8_t *)(buf + 5U);
+ hid_desc->bDescriptorType = *(uint8_t *)(buf + 6U);
+ hid_desc->wDescriptorLength = BYTE_SWAP(buf + 7U);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
new file mode 100644
index 0000000000..4332595497
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_keybd.c
@@ -0,0 +1,399 @@
+/*!
+ \file usbh_hid_keybd.c
+ \brief USB host HID keyboard driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_hid_keybd.h"
+#include "usbh_hid_parser.h"
+#include
+
+hid_keybd_info keybd_info;
+
+uint32_t keybd_report_data[2];
+
+static const hid_report_item imp_0_lctrl =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 0, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_lshift =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 1, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_lalt =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 2, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_lgui =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 3, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_rctrl =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 4, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_rshift =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 5, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_ralt =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 6, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_rgui =
+{
+ (uint8_t*)(void *)keybd_report_data + 0, /* data */
+ 1, /* size */
+ 7, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+static const hid_report_item imp_0_key_array =
+{
+ (uint8_t*)(void *)keybd_report_data + 2, /* data */
+ 8, /* size */
+ 0, /* shift */
+ 6, /* count (only for array items) */
+ 0, /* signed */
+ 0, /* min value read can return */
+ 101, /* max value read can return */
+ 0, /* min vale device can report */
+ 101, /* max value device can report */
+ 1 /* resolution */
+};
+
+/* local constants */
+static const uint8_t hid_keybrd_codes[] =
+{
+ 0, 0, 0, 0, 31, 50, 48, 33,
+ 19, 34, 35, 36, 24, 37, 38, 39, /* 0x00 - 0x0F */
+ 52, 51, 25, 26, 17, 20, 32, 21,
+ 23, 49, 18, 47, 22, 46, 2, 3, /* 0x10 - 0x1F */
+ 4, 5, 6, 7, 8, 9, 10, 11,
+ 43, 110, 15, 16, 61, 12, 13, 27, /* 0x20 - 0x2F */
+ 28, 29, 42, 40, 41, 1, 53, 54,
+ 55, 30, 112, 113, 114, 115, 116, 117, /* 0x30 - 0x3F */
+ 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 75, 80, 85, 76, 81, 86, 89, /* 0x40 - 0x4F */
+ 79, 84, 83, 90, 95, 100, 105, 106,
+ 108, 93, 98, 103, 92, 97, 102, 91, /* 0x50 - 0x5F */
+ 96, 101, 99, 104, 45, 129, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 - 0x6F */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 - 0x7F */
+ 0, 0, 0, 0, 0, 107, 0, 56,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 - 0x8F */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 - 0x9F */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0xA0 - 0xAF */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0xB0 - 0xBF */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0xC0 - 0xCF */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, /* 0xD0 - 0xDF */
+ 58, 44, 60, 127, 64, 57, 62, 128 /* 0xE0 - 0xE7 */
+};
+
+#ifdef QWERTY_KEYBOARD
+
+static const int8_t hid_keybrd_key[] =
+{
+ '\0', '`', '1', '2', '3', '4', '5', '6',
+ '7', '8', '9', '0', '-', '=', '\0', '\r',
+ '\t', 'q', 'w', 'e', 'r', 't', 'y', 'u',
+ 'i', 'o', 'p', '[', ']', '\\',
+ '\0', 'a', 's', 'd', 'f', 'g', 'h', 'j',
+ 'k', 'l', ';', '\'', '\0', '\n',
+ '\0', '\0', 'z', 'x', 'c', 'v', 'b', 'n',
+ 'm', ',', '.', '/', '\0', '\0',
+ '\0', '\0', '\0', ' ', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\r', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '7', '4', '1',
+ '\0', '/', '8', '5', '2',
+ '0', '*', '9', '6', '3',
+ '.', '-', '+', '\0', '\n', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0'
+};
+
+static const int8_t hid_keybrd_shiftkey[] = {
+ '\0', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')',
+ '_', '+', '\0', '\0', '\0', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U',
+ 'I', 'O', 'P', '{', '}', '|', '\0', 'A', 'S', 'D', 'F', 'G',
+ 'H', 'J', 'K', 'L', ':', '"', '\0', '\n', '\0', '\0', 'Z', 'X',
+ 'C', 'V', 'B', 'N', 'M', '<', '>', '?', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'
+};
+
+#else
+
+static const int8_t hid_keybrd_key[] = {
+ '\0', '`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
+ '-', '=', '\0', '\r', '\t', 'a', 'z', 'e', 'r', 't', 'y', 'u',
+ 'i', 'o', 'p', '[', ']', '\\', '\0', 'q', 's', 'd', 'f', 'g',
+ 'h', 'j', 'k', 'l', 'm', '\0', '\0', '\n', '\0', '\0', 'w', 'x',
+ 'c', 'v', 'b', 'n', ',', ';', ':', '!', '\0', '\0', '\0', '\0',
+ '\0', ' ', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\r', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '7', '4', '1', '\0', '/',
+ '8', '5', '2', '0', '*', '9', '6', '3', '.', '-', '+', '\0',
+ '\n', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'
+};
+
+static const int8_t hid_keybrd_shiftkey[] = {
+ '\0', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_',
+ '+', '\0', '\0', '\0', 'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I', 'O',
+ 'P', '{', '}', '*', '\0', 'Q', 'S', 'D', 'F', 'G', 'H', 'J', 'K',
+ 'L', 'M', '%', '\0', '\n', '\0', '\0', 'W', 'X', 'C', 'V', 'B', 'N',
+ '?', '.', '/', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
+ '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'
+};
+
+#endif
+
+/* local function prototypes ('static') */
+static usbh_status usbh_hid_keybrd_decode (usb_core_driver *pudev, usbh_host *puhost);
+
+/*!
+ \brief initialize the keyboard function
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_hid_keybd_init (usb_core_driver *pudev, usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ keybd_info.lctrl = keybd_info.lshift = 0U;
+ keybd_info.lalt = keybd_info.lgui = 0U;
+ keybd_info.rctrl = keybd_info.rshift = 0U;
+ keybd_info.ralt = keybd_info.rgui = 0U;
+
+ for (uint32_t x = 0U; x < (sizeof(keybd_report_data) / sizeof(uint32_t)); x++) {
+ keybd_report_data[x] = 0U;
+ }
+
+ if (hid->len > (sizeof(keybd_report_data) / sizeof(uint32_t))) {
+ hid->len = (sizeof(keybd_report_data) / sizeof(uint32_t));
+ }
+
+ hid->pdata = (uint8_t*)(void *)keybd_report_data;
+
+ usbh_hid_fifo_init (&hid->fifo, puhost->dev_prop.data, HID_QUEUE_SIZE * sizeof(keybd_report_data));
+
+ /* call user init*/
+ USR_KEYBRD_Init();
+
+ return USBH_OK;
+}
+
+/*!
+ \brief get keyboard information
+ \param[in] pudev: pointer to USB core instance
+ \param[in] puhost: pointer to USB host handler
+ \param[out] none
+ \retval keyboard information
+*/
+hid_keybd_info *usbh_hid_keybd_info_get (usb_core_driver *pudev, usbh_host *puhost)
+{
+ if (USBH_OK == usbh_hid_keybrd_decode(pudev, puhost)) {
+ return &keybd_info;
+ } else {
+ return NULL;
+ }
+}
+
+/*!
+ \brief get ascii code
+ \param[in] info: keyboard information
+ \param[out] none
+ \retval output
+*/
+uint8_t usbh_hid_ascii_code_get (hid_keybd_info *info)
+{
+ uint8_t output;
+ if ((1U == info->lshift) || (info->rshift)) {
+ output = hid_keybrd_shiftkey[hid_keybrd_codes[info->keys[0]]];
+ } else {
+ output = hid_keybrd_key[hid_keybrd_codes[info->keys[0]]];
+ }
+
+ return output;
+}
+
+/*!
+ \brief decode the pressed keys
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval none
+*/
+void usbh_hid_keybrd_machine (usb_core_driver *pudev, usbh_host *puhost)
+{
+ hid_keybd_info *k_pinfo;
+
+ k_pinfo = usbh_hid_keybd_info_get(pudev, puhost);
+
+ if (k_pinfo != NULL) {
+ char c = usbh_hid_ascii_code_get(k_pinfo);
+
+ if (c != 0U) {
+ USR_KEYBRD_ProcessData(c);
+ }
+ }
+}
+
+/*!
+ \brief decode keyboard information
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_keybrd_decode (usb_core_driver *pudev, usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ if (hid->len == 0U) {
+ return USBH_FAIL;
+ }
+
+ /* fill report */
+ if (usbh_hid_fifo_read (&hid->fifo, &keybd_report_data, hid->len) == hid->len) {
+ keybd_info.lctrl = (uint8_t)hid_item_read((hid_report_item *)&imp_0_lctrl, 0U);
+ keybd_info.lshift = (uint8_t)hid_item_read((hid_report_item *)&imp_0_lshift, 0U);
+ keybd_info.lalt = (uint8_t)hid_item_read((hid_report_item *)&imp_0_lalt, 0U);
+ keybd_info.lgui = (uint8_t)hid_item_read((hid_report_item *)&imp_0_lgui, 0U);
+ keybd_info.rctrl = (uint8_t)hid_item_read((hid_report_item *)&imp_0_rctrl, 0U);
+ keybd_info.rshift = (uint8_t)hid_item_read((hid_report_item *)&imp_0_rshift, 0U);
+ keybd_info.ralt = (uint8_t)hid_item_read((hid_report_item *)&imp_0_ralt, 0U);
+ keybd_info.rgui = (uint8_t)hid_item_read((hid_report_item *)&imp_0_rgui, 0U);
+
+ for (uint8_t x = 0U; x < sizeof(keybd_info.keys); x++) {
+ keybd_info.keys[x] = (uint8_t)hid_item_read((hid_report_item *)&imp_0_key_array, x);
+ }
+
+ return USBH_OK;
+ }
+
+ return USBH_FAIL;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
new file mode 100644
index 0000000000..8d67377759
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_mouse.c
@@ -0,0 +1,216 @@
+/*!
+ \file usbh_hid_mouse.c
+ \brief USB host HID mouse driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_hid_mouse.h"
+#include "usbh_hid_parser.h"
+
+hid_mouse_info mouse_info;
+uint32_t mouse_report_data[1];
+
+/* structures defining how to access items in a hid mouse report */
+/* access button 1 state. */
+static const hid_report_item prop_b1 =
+{
+ (uint8_t *)(void *)mouse_report_data + 0, /* data */
+ 1, /* size */
+ 0, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed? */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min value device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+/* access button 2 state. */
+static const hid_report_item prop_b2 =
+{
+ (uint8_t *)(void *)mouse_report_data + 0, /* data */
+ 1, /* size */
+ 1, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed? */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min value device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+/* access button 3 state. */
+static const hid_report_item prop_b3 =
+{
+ (uint8_t *)(void *)mouse_report_data + 0, /* data */
+ 1, /* size */
+ 2, /* shift */
+ 0, /* count (only for array items) */
+ 0, /* signed? */
+ 0, /* min value read can return */
+ 1, /* max value read can return */
+ 0, /* min vale device can report */
+ 1, /* max value device can report */
+ 1 /* resolution */
+};
+
+/* access x coordinate change. */
+static const hid_report_item prop_x =
+{
+ (uint8_t *)(void *)mouse_report_data + 1, /* data */
+ 8, /* size */
+ 0, /* shift */
+ 0, /* count (only for array items) */
+ 1, /* signed? */
+ 0, /* min value read can return */
+ 0xFFFF,/* max value read can return */
+ 0, /* min vale device can report */
+ 0xFFFF,/* max value device can report */
+ 1 /* resolution */
+};
+
+/* access y coordinate change. */
+static const hid_report_item prop_y =
+{
+ (uint8_t *)(void *)mouse_report_data + 2, /* data */
+ 8, /* size */
+ 0, /* shift */
+ 0, /* count (only for array items) */
+ 1, /* signed? */
+ 0, /* min value read can return */
+ 0xFFFF,/* max value read can return */
+ 0, /* min vale device can report */
+ 0xFFFF,/* max value device can report */
+ 1 /* resolution */
+};
+
+/* local function prototypes ('static') */
+static usbh_status usbh_hid_mouse_decode(usb_core_driver *pudev, usbh_host *puhost);
+
+/*!
+ \brief initialize the mouse function
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval none
+*/
+usbh_status usbh_hid_mouse_init (usb_core_driver *pudev, usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ mouse_info.x = 0U;
+ mouse_info.y = 0U;
+ mouse_info.buttons[0] = 0U;
+ mouse_info.buttons[1] = 0U;
+ mouse_info.buttons[2] = 0U;
+
+ mouse_report_data[0] = 0U;
+
+ if(hid->len > sizeof(mouse_report_data)) {
+ hid->len = sizeof(mouse_report_data);
+ }
+
+ hid->pdata = (uint8_t *)(void *)mouse_report_data;
+
+ usbh_hid_fifo_init(&hid->fifo, puhost->dev_prop.data, HID_QUEUE_SIZE * sizeof(mouse_report_data));
+
+ USR_MOUSE_Init();
+
+ return USBH_OK;
+}
+
+/*!
+ \brief get mouse information
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval mouse information
+*/
+hid_mouse_info *usbh_hid_mouse_info_get (usb_core_driver *pudev, usbh_host *puhost)
+{
+ if(usbh_hid_mouse_decode(pudev, puhost)== USBH_OK) {
+ return &mouse_info;
+ } else {
+ return NULL;
+ }
+}
+
+/*!
+ \brief decode mouse data
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval none
+*/
+void usbh_hid_mouse_machine (usb_core_driver *pudev, usbh_host *puhost)
+{
+ hid_mouse_info *m_pinfo = NULL;
+
+ m_pinfo = usbh_hid_mouse_info_get(pudev, puhost);
+
+ if (NULL != m_pinfo) {
+ /* handle mouse data position */
+ USR_MOUSE_ProcessData(&mouse_info);
+ }
+}
+
+/*!
+ \brief decode mouse information
+ \param[in] pudev: pointer to usb core instance
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_hid_mouse_decode(usb_core_driver *pudev, usbh_host *puhost)
+{
+ usbh_hid_handler *hid = (usbh_hid_handler *)puhost->active_class->class_data;
+
+ if (0U == hid->len) {
+ return USBH_FAIL;
+ }
+
+ /* fill report */
+ if (usbh_hid_fifo_read(&hid->fifo, &mouse_report_data, hid->len) == hid->len) {
+ /* decode report */
+ mouse_info.x = (uint8_t)hid_item_read((hid_report_item *)&prop_x, 0U);
+ mouse_info.y = (uint8_t)hid_item_read((hid_report_item *)&prop_y, 0U);
+
+ mouse_info.buttons[0] = (uint8_t)hid_item_read((hid_report_item *)&prop_b1, 0U);
+ mouse_info.buttons[1] = (uint8_t)hid_item_read((hid_report_item *)&prop_b2, 0U);
+ mouse_info.buttons[2] = (uint8_t)hid_item_read((hid_report_item *)&prop_b3, 0U);
+
+ return USBH_OK;
+ }
+
+ return USBH_FAIL;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_parser.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
new file mode 100644
index 0000000000..4e51c360ec
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/hid/Source/usbh_hid_parser.c
@@ -0,0 +1,148 @@
+/*!
+ \file usbh_hid_parser.c
+ \brief USB host HID parser driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_hid_parser.h"
+
+/*!
+ \brief read a hid report item
+ \param[in] ri: pointer to report item
+ \param[in] ndx: report index
+ \param[out] none
+ \retval operation status (0: fail otherwise: item value)
+*/
+uint32_t hid_item_read (hid_report_item *ri, uint8_t ndx)
+{
+ uint32_t val = 0U;
+ uint32_t bofs = 0U;
+ uint8_t *data = ri->data;
+ uint8_t shift = ri->shift;
+
+ /* get the logical value of the item */
+
+ /* if this is an array, wee may need to offset ri->data.*/
+ if (ri->count > 0U) {
+ /* if app tries to read outside of the array. */
+ if (ri->count <= ndx) {
+ return(0U);
+ }
+
+ /* calculate bit offset */
+ bofs = ndx * ri->size;
+ bofs += shift;
+
+ /* calculate byte offset + shift pair from bit offset. */
+ data += bofs / 8U;
+ shift = (uint8_t)(bofs % 8U);
+ }
+
+ /* read data bytes in little endian order */
+ for (uint32_t x = 0U; x < ((ri->size & 0x7U) ? (ri->size / 8U) + 1U : (ri->size / 8U)); x++) {
+ val=(uint32_t)((uint32_t)(*data) << (x * 8U));
+ }
+
+ val=(val >> shift) & ((1U << ri->size) - 1U);
+
+ if ((val < ri->logical_min) || (val > ri->logical_max)) {
+ return(0U);
+ }
+
+ /* convert logical value to physical value */
+ /* see if the number is negative or not. */
+ if ((ri->sign) && (val & (1U << (ri->size - 1U)))) {
+ /* yes, so sign extend value to 32 bits. */
+ uint32_t vs = (uint32_t)((0xffffffffU & ~((1U << (ri->size)) - 1U)) | val);
+
+ if (1U == ri->resolution) {
+ return((uint32_t)vs);
+ }
+ return((uint32_t)(vs * ri->resolution));
+ } else {
+ if (1U == ri->resolution) {
+ return(val);
+ }
+
+ return (val * ri->resolution);
+ }
+}
+
+/*!
+ \brief write a hid report item
+ \param[in] ri: pointer to report item
+ \param[in] value: the value to be write
+ \param[in] ndx: report index
+ \param[out] none
+ \retval operation status (1: fail 0: Ok)
+*/
+uint32_t hid_item_write(hid_report_item *ri, uint32_t value, uint8_t ndx)
+{
+ uint32_t mask;
+ uint32_t bofs;
+ uint8_t *data = ri->data;
+ uint8_t shift = ri->shift;
+
+ if ((value < ri->physical_min) || (value > ri->physical_max)) {
+ return(1U);
+ }
+
+ /* if this is an array, wee may need to offset ri->data.*/
+ if (ri->count > 0U) {
+ /* if app tries to read outside of the array. */
+ if (ri->count >= ndx) {
+ return(0U);
+ }
+
+ /* calculate bit offset */
+ bofs = ndx * ri->size;
+ bofs += shift;
+
+ /* calculate byte offset + shift pair from bit offset. */
+ data += bofs / 8U;
+ shift = (uint8_t)(bofs % 8U);
+ }
+
+ /* convert physical value to logical value. */
+ if (1U != ri->resolution) {
+ value = value / ri->resolution;
+ }
+
+ /* write logical value to report in little endian order. */
+ mask = (1U << ri->size) - 1U;
+ value = (value & mask) << shift;
+
+ for (uint32_t x = 0U; x < ((ri->size & 0x7U) ? (ri->size / 8U) + 1U : (ri->size / 8U)); x++) {
+ *(ri->data + x) = (uint8_t)((*(ri->data+x) & ~(mask>>(x* 8U))) | ((value >> (x * 8U)) & (mask >> (x * 8U))));
+ }
+
+ return 0U;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
new file mode 100644
index 0000000000..08f9001fb6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_bbb.h
@@ -0,0 +1,150 @@
+/*!
+ \file usbh_msc_bbb.h
+ \brief header file for usbh_msc_bbb.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_MSC_BBB_H
+#define __USBH_MSC_BBB_H
+
+#include "usbh_enum.h"
+#include "msc_bbb.h"
+
+typedef union {
+ msc_bbb_cbw field;
+
+ uint8_t CBWArray[31];
+}usbh_cbw_pkt;
+
+typedef union {
+ msc_bbb_csw field;
+
+ uint8_t CSWArray[13];
+}usbh_csw_pkt;
+
+enum usbh_msc_state {
+ USBH_MSC_BOT_INIT_STATE = 0U,
+ USBH_MSC_BOT_RESET,
+ USBH_MSC_GET_MAX_LUN,
+ USBH_MSC_TEST_UNIT_READY,
+ USBH_MSC_READ_CAPACITY10,
+ USBH_MSC_MODE_SENSE6,
+ USBH_MSC_REQUEST_SENSE,
+ USBH_MSC_BOT_USB_TRANSFERS,
+ USBH_MSC_DEFAULT_APPLI_STATE,
+ USBH_MSC_CTRL_ERROR_STATE,
+ USBH_MSC_UNRECOVERED_STATE
+};
+
+typedef enum
+{
+ BOT_OK = 0U,
+ BOT_FAIL,
+ BOT_PHASE_ERROR,
+ BOT_BUSY
+} bot_status;
+
+typedef enum
+{
+ BOT_CMD_IDLE = 0U,
+ BOT_CMD_SEND,
+ BOT_CMD_WAIT,
+} bot_cmd_state;
+
+/* csw status definitions */
+typedef enum
+{
+ BOT_CSW_CMD_PASSED = 0U,
+ BOT_CSW_CMD_FAILED,
+ BOT_CSW_PHASE_ERROR,
+} bot_csw_status;
+
+typedef enum
+{
+ BOT_SEND_CBW = 1U,
+ BOT_SEND_CBW_WAIT,
+ BOT_DATA_IN,
+ BOT_DATA_IN_WAIT,
+ BOT_DATA_OUT,
+ BOT_DATA_OUT_WAIT,
+ BOT_RECEIVE_CSW,
+ BOT_RECEIVE_CSW_WAIT,
+ BOT_ERROR_IN,
+ BOT_ERROR_OUT,
+ BOT_UNRECOVERED_ERROR
+} bot_state;
+
+typedef struct
+{
+ uint8_t *pbuf;
+ uint32_t data[16];
+ bot_state state;
+ bot_state prev_state;
+ bot_cmd_state cmd_state;
+ usbh_cbw_pkt cbw;
+ usbh_csw_pkt csw;
+} bot_handle;
+
+#define USBH_MSC_BOT_CBW_TAG 0x20304050U
+
+#define USBH_MSC_CSW_MAX_LENGTH 63U
+
+#define USBH_MSC_SEND_CSW_DISABLE 0U
+#define USBH_MSC_SEND_CSW_ENABLE 1U
+
+#define USBH_MSC_DIR_IN 0U
+#define USBH_MSC_DIR_OUT 1U
+#define USBH_MSC_BOTH_DIR 2U
+
+#define USBH_MSC_PAGE_LENGTH 512U
+
+#define CBW_CB_LENGTH 16U
+#define CBW_LENGTH 10U
+#define CBW_LENGTH_TEST_UNIT_READY 0U
+
+#define MAX_BULK_STALL_COUNT_LIMIT 0x04U /*!< If STALL is seen on Bulk
+ Endpoint continously, this means
+ that device and Host has phase error
+ Hence a Reset is needed */
+
+/* function declarations */
+/* initialize the mass storage parameters */
+void usbh_msc_bot_init (usbh_host *puhost);
+/* manage the different states of BOT transfer and updates the status to upper layer */
+usbh_status usbh_msc_bot_process (usbh_host *puhost, uint8_t lun);
+/* manages the different error handling for stall */
+usbh_status usbh_msc_bot_abort (usbh_host *puhost, uint8_t direction);
+/* reset msc bot request struct */
+usbh_status usbh_msc_bot_reset (usbh_host *puhost);
+/* decode the CSW received by the device and updates the same to upper layer */
+bot_csw_status usbh_msc_csw_decode (usbh_host *puhost);
+
+#endif /* __USBH_MSC_BBB_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_core.h
new file mode 100644
index 0000000000..ea8c4ede72
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_core.h
@@ -0,0 +1,124 @@
+/*!
+ \file usbh_core.h
+ \brief header file for the usbh_core.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_MSC_CORE_H
+#define __USBH_MSC_CORE_H
+
+#include "usb_msc.h"
+#include "usbh_msc_scsi.h"
+#include "usbh_msc_bbb.h"
+
+#define MSC_MAX_SUPPORTED_LUN 2U
+
+typedef enum
+{
+ MSC_INIT = 0U,
+ MSC_IDLE,
+ MSC_TEST_UNIT_READY,
+ MSC_READ_CAPACITY10,
+ MSC_READ_INQUIRY,
+ MSC_REQUEST_SENSE,
+ MSC_READ,
+ MSC_WRITE,
+ MSC_UNRECOVERED_ERROR,
+ MSC_PERIODIC_CHECK,
+} msc_state;
+
+typedef enum
+{
+ MSC_OK,
+ MSC_NOT_READY,
+ MSC_ERROR,
+} msc_error;
+
+typedef enum
+{
+ MSC_REQ_IDLE = 0U,
+ MSC_REQ_RESET,
+ MSC_REQ_GET_MAX_LUN,
+ MSC_REQ_ERROR,
+} msc_req_state;
+
+/* Structure for LUN */
+typedef struct
+{
+ msc_state state;
+ msc_error error;
+ msc_scsi_sense sense;
+ scsi_capacity capacity;
+ scsi_std_inquiry_data inquiry;
+ usbh_status prev_ready_state;
+ uint8_t state_changed;
+} msc_lun;
+
+/* structure for msc process */
+typedef struct _msc_process
+{
+ uint8_t pipe_in;
+ uint8_t pipe_out;
+ uint8_t ep_in;
+ uint8_t ep_out;
+ uint16_t ep_size_in;
+ uint16_t ep_size_out;
+ uint8_t cur_lun;
+ uint16_t rw_lun;
+ uint32_t max_lun;
+ msc_state state;
+ msc_error error;
+ msc_req_state req_state;
+ msc_req_state prev_req_state;
+ bot_handle bot;
+ msc_lun unit[MSC_MAX_SUPPORTED_LUN];
+ uint32_t timer;
+} usbh_msc_handler;
+
+extern usbh_class usbh_msc;
+
+/* function declarations */
+/* get msc logic unit information */
+usbh_status usbh_msc_lun_info_get (usbh_host *puhost, uint8_t lun, msc_lun *info);
+/* msc read interface */
+usbh_status usbh_msc_read (usbh_host *puhost,
+ uint8_t lun,
+ uint32_t address,
+ uint8_t *pbuf,
+ uint32_t length);
+/* msc write interface */
+usbh_status usbh_msc_write (usbh_host *puhost,
+ uint8_t lun,
+ uint32_t address,
+ uint8_t *pbuf,
+ uint32_t length);
+
+#endif /* __USBH_MSC_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
new file mode 100644
index 0000000000..44db871642
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Include/usbh_msc_scsi.h
@@ -0,0 +1,100 @@
+/*!
+ \file usbh_msc_scsi.h
+ \brief header file for usbh_msc_scsi.c
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_MSC_SCSI_H
+#define __USBH_MSC_SCSI_H
+
+#include "msc_scsi.h"
+#include "usbh_enum.h"
+
+/* capacity data */
+typedef struct
+{
+ uint32_t block_nbr;
+ uint16_t block_size;
+} scsi_capacity;
+
+/* inquiry data */
+typedef struct
+{
+ uint8_t peripheral_qualifier;
+ uint8_t device_type;
+ uint8_t removable_media;
+ uint8_t vendor_id[9];
+ uint8_t product_id[17];
+ uint8_t revision_id[5];
+} scsi_std_inquiry_data;
+
+typedef struct
+{
+ uint32_t msc_capacity;
+ uint32_t msc_sense_key;
+ uint16_t msc_page_len;
+ uint8_t msc_write_protect;
+}usbh_msc_parameter;
+
+#define DESC_REQUEST_SENSE 0x00U
+#define ALLOCATION_LENGTH_REQUEST_SENSE 63U
+#define XFER_LEN_MODE_SENSE6 63U
+
+#define MASK_MODE_SENSE_WRITE_PROTECT 0x80U
+#define MODE_SENSE_PAGE_CONTROL_FIELD 0x00U
+#define MODE_SENSE_PAGE_CODE 0x3FU
+#define DISK_WRITE_PROTECTED 0x01U
+
+/* function declarations */
+/* send 'Inquiry' command to the device */
+usbh_status usbh_msc_scsi_inquiry (usbh_host *puhost, uint8_t lun, scsi_std_inquiry_data *inquiry);
+/* send 'Test unit ready' command to the device */
+usbh_status usbh_msc_test_unitready (usbh_host *puhost, uint8_t lun);
+/* send the read capacity command to the device */
+usbh_status usbh_msc_read_capacity10 (usbh_host *puhost, uint8_t lun, scsi_capacity *capacity);
+/* send the mode sense6 command to the device */
+usbh_status usbh_msc_mode_sense6 (usbh_host *puhost, uint8_t lun);
+/* send the Request Sense command to the device */
+usbh_status usbh_msc_request_sense (usbh_host *puhost, uint8_t lun, msc_scsi_sense *sense_data);
+/* send the write10 command to the device */
+usbh_status usbh_msc_write10 (usbh_host *puhost,
+ uint8_t lun,
+ uint8_t *data_buf,
+ uint32_t addr,
+ uint32_t byte_num);
+/* send the read10 command to the device */
+usbh_status usbh_msc_read10 (usbh_host *puhost,
+ uint8_t lun,
+ uint8_t *data_buf,
+ uint32_t addr,
+ uint32_t byte_num);
+
+#endif /* __USBH_MSC_SCSI_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
new file mode 100644
index 0000000000..307da030fb
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_bbb.c
@@ -0,0 +1,362 @@
+/*!
+ \file usbh_msc_bbb.c
+ \brief USB MSC BBB protocol related functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_pipe.h"
+#include "usbh_msc_core.h"
+#include "usbh_msc_scsi.h"
+#include "usbh_msc_bbb.h"
+#include "usbh_transc.h"
+#include "drv_usbh_int.h"
+
+/*!
+ \brief initialize the mass storage parameters
+ \param[in] puhost: pointer to usb host handler
+ \param[out] none
+ \retval none
+*/
+void usbh_msc_bot_init (usbh_host *puhost)
+{
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ msc->bot.cbw.field.dCBWSignature = BBB_CBW_SIGNATURE;
+ msc->bot.cbw.field.dCBWTag = USBH_MSC_BOT_CBW_TAG;
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_SEND;
+}
+
+/*!
+ \brief manage the different states of BOT transfer and updates the status to upper layer
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_bot_process (usbh_host *puhost, uint8_t lun)
+{
+ bot_csw_status csw_status = BOT_CSW_CMD_FAILED;
+ usbh_status status = USBH_BUSY;
+ usbh_status error = USBH_BUSY;
+ usb_urb_state urb_status = URB_IDLE;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.state) {
+ case BOT_SEND_CBW:
+ msc->bot.cbw.field.bCBWLUN = lun;
+ msc->bot.state = BOT_SEND_CBW_WAIT;
+ /* send CBW */
+ usbh_data_send (puhost->data,
+ msc->bot.cbw.CBWArray,
+ msc->pipe_out,
+ BBB_CBW_LENGTH);
+ break;
+
+ case BOT_SEND_CBW_WAIT:
+ urb_status = usbh_urbstate_get(puhost->data, msc->pipe_out);
+
+ if (URB_DONE == urb_status) {
+ if (0U != msc->bot.cbw.field.dCBWDataTransferLength) {
+ if (USB_TRX_IN == (msc->bot.cbw.field.bmCBWFlags & USB_TRX_MASK)) {
+ msc->bot.state = BOT_DATA_IN;
+ } else {
+ msc->bot.state = BOT_DATA_OUT;
+ }
+ } else {
+ msc->bot.state = BOT_RECEIVE_CSW;
+ }
+
+ } else if (URB_NOTREADY == urb_status) {
+ msc->bot.state = BOT_SEND_CBW;
+ } else {
+ if (URB_STALL == urb_status) {
+ msc->bot.state = BOT_ERROR_OUT;
+ }
+ }
+ break;
+
+ case BOT_DATA_IN:
+ usbh_data_recev (puhost->data,
+ msc->bot.pbuf,
+ msc->pipe_in,
+ msc->ep_size_in);
+
+ msc->bot.state = BOT_DATA_IN_WAIT;
+ break;
+
+ case BOT_DATA_IN_WAIT:
+ urb_status = usbh_urbstate_get(puhost->data, msc->pipe_in);
+
+ /* BOT DATA IN stage */
+ if (URB_DONE == urb_status) {
+ if (msc->bot.cbw.field.dCBWDataTransferLength > msc->ep_size_in) {
+ msc->bot.pbuf += msc->ep_size_in;
+ msc->bot.cbw.field.dCBWDataTransferLength -= msc->ep_size_in;
+ } else {
+ msc->bot.cbw.field.dCBWDataTransferLength = 0U;
+ }
+
+ if (msc->bot.cbw.field.dCBWDataTransferLength > 0U) {
+ usbh_data_recev (puhost->data,
+ msc->bot.pbuf,
+ msc->pipe_in,
+ msc->ep_size_in);
+ } else {
+ msc->bot.state = BOT_RECEIVE_CSW;
+ }
+ } else if(URB_STALL == urb_status) {
+ /* this is data stage stall condition */
+ msc->bot.state = BOT_ERROR_IN;
+ } else {
+ /* no operation */
+ }
+ break;
+
+ case BOT_DATA_OUT:
+ usbh_data_send (puhost->data,
+ msc->bot.pbuf,
+ msc->pipe_out,
+ msc->ep_size_out);
+
+ msc->bot.state = BOT_DATA_OUT_WAIT;
+ break;
+
+ case BOT_DATA_OUT_WAIT:
+ /* BOT DATA OUT stage */
+ urb_status = usbh_urbstate_get(puhost->data, msc->pipe_out);
+ if (URB_DONE == urb_status) {
+ if (msc->bot.cbw.field.dCBWDataTransferLength > msc->ep_size_out) {
+ msc->bot.pbuf += msc->ep_size_out;
+ msc->bot.cbw.field.dCBWDataTransferLength -= msc->ep_size_out;
+ } else {
+ msc->bot.cbw.field.dCBWDataTransferLength = 0; /* reset this value and keep in same state */
+ }
+
+ if (msc->bot.cbw.field.dCBWDataTransferLength > 0) {
+ usbh_data_send (puhost->data,
+ msc->bot.pbuf,
+ msc->pipe_out,
+ msc->ep_size_out);
+ } else {
+ msc->bot.state = BOT_RECEIVE_CSW;
+ }
+ } else if (URB_NOTREADY == urb_status) {
+ msc->bot.state = BOT_DATA_OUT;
+ } else if (URB_STALL == urb_status) {
+ msc->bot.state = BOT_ERROR_OUT;
+ } else {
+ /* no operation */
+ }
+ break;
+
+ case BOT_RECEIVE_CSW:
+ /* BOT CSW stage */
+ usbh_data_recev (puhost->data,
+ msc->bot.csw.CSWArray,
+ msc->pipe_in,
+ BBB_CSW_LENGTH);
+
+ msc->bot.state = BOT_RECEIVE_CSW_WAIT;
+ break;
+
+ case BOT_RECEIVE_CSW_WAIT:
+ urb_status = usbh_urbstate_get(puhost->data, msc->pipe_in);
+
+ /* decode CSW */
+ if (URB_DONE == urb_status) {
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_SEND;
+
+ csw_status = usbh_msc_csw_decode(puhost);
+ if (BOT_CSW_CMD_PASSED == csw_status) {
+ status = USBH_OK;
+ } else {
+ status = USBH_FAIL;
+ }
+ } else if (URB_STALL == urb_status) {
+ msc->bot.state = BOT_ERROR_IN;
+ } else {
+ /* no operation */
+ }
+ break;
+
+ case BOT_ERROR_IN:
+ error = usbh_msc_bot_abort(puhost, USBH_MSC_DIR_IN);
+
+ if (USBH_OK == error) {
+ msc->bot.state = BOT_RECEIVE_CSW;
+ } else if (USBH_UNRECOVERED_ERROR == status) {
+ /* this means that there is a stall error limit, do reset recovery */
+ msc->bot.state = BOT_UNRECOVERED_ERROR;
+ } else {
+ /* no operation */
+ }
+ break;
+
+ case BOT_ERROR_OUT:
+ status = usbh_msc_bot_abort (puhost, USBH_MSC_DIR_OUT);
+
+ if (USBH_OK == status) {
+ uint8_t toggle = usbh_pipe_toggle_get(puhost->data, msc->pipe_out);
+ usbh_pipe_toggle_set(puhost->data, msc->pipe_out, 1U - toggle);
+ usbh_pipe_toggle_set(puhost->data, msc->pipe_in, 0U);
+ msc->bot.state = BOT_ERROR_IN;
+ } else {
+ if (USBH_UNRECOVERED_ERROR == status) {
+ msc->bot.state = BOT_UNRECOVERED_ERROR;
+ }
+ }
+ break;
+
+ case BOT_UNRECOVERED_ERROR:
+ status = usbh_msc_bot_reset(puhost);
+ if (USBH_OK == status) {
+ msc->bot.state = BOT_SEND_CBW;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief manages the different error handling for stall
+ \param[in] puhost: pointer to usb host handler
+ \param[in] direction: data IN or OUT
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_bot_abort (usbh_host *puhost, uint8_t direction)
+{
+ usbh_status status = USBH_BUSY;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (direction) {
+ case USBH_MSC_DIR_IN :
+ /* send clrfeture command on bulk IN endpoint */
+ status = usbh_clrfeature(puhost,
+ msc->ep_in,
+ msc->pipe_in);
+ break;
+
+ case USBH_MSC_DIR_OUT :
+ /*send clrfeature command on bulk OUT endpoint */
+ status = usbh_clrfeature(puhost,
+ msc->ep_out,
+ msc->pipe_out);
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief reset msc bot transfer
+ \param[in] puhost: pointer to usb host handler
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_bot_reset (usbh_host *puhost)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (CTL_IDLE == puhost->control.ctl_state) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_REQTYPE_CLASS | USB_RECPTYPE_ITF,
+ .bRequest = BBB_RESET,
+ .wValue = 0U,
+ .wIndex = 0U,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief decode the CSW received by the device and updates the same to upper layer
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval on success USBH_MSC_OK, on failure USBH_MSC_FAIL
+ \notes
+ Refer to USB Mass-Storage Class: BOT (www.usb.org)
+ 6.3.1 Valid CSW Conditions :
+ The host shall consider the CSW valid when:
+ 1. dCSWSignature is equal to 53425355h
+ 2. the CSW is 13 (Dh) bytes in length,
+ 3. dCSWTag matches the dCBWTag from the corresponding CBW.
+*/
+bot_csw_status usbh_msc_csw_decode (usbh_host *puhost)
+{
+ bot_csw_status status = BOT_CSW_CMD_FAILED;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ /* checking if the transfer length is different than 13 */
+ if (BBB_CSW_LENGTH != usbh_xfercount_get (puhost->data, msc->pipe_in)) {
+ status = BOT_CSW_PHASE_ERROR;
+ } else {
+ /* CSW length is correct */
+
+ /* check validity of the CSW Signature and CSWStatus */
+ if (BBB_CSW_SIGNATURE == msc->bot.csw.field.dCSWSignature) {
+ /* check condition 1. dCSWSignature is equal to 53425355h */
+ if (msc->bot.csw.field.dCSWTag == msc->bot.cbw.field.dCBWTag) {
+ /* check condition 3. dCSWTag matches the dCBWTag from the corresponding CBW */
+ if (0U == msc->bot.csw.field.bCSWStatus) {
+ status = BOT_CSW_CMD_PASSED;
+ } else if (1U == msc->bot.csw.field.bCSWStatus) {
+ status = BOT_CSW_CMD_FAILED;
+ } else if (2U == msc->bot.csw.field.bCSWStatus) {
+ status = BOT_CSW_PHASE_ERROR;
+ } else {
+ /* no operation */
+ }
+ }
+ } else {
+ /* If the CSW signature is not valid, we will return the phase error to
+ upper layers for reset recovery */
+ status = BOT_CSW_PHASE_ERROR;
+ }
+ }
+
+ return status;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_core.c
new file mode 100644
index 0000000000..e45c4ece76
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_core.c
@@ -0,0 +1,562 @@
+/*!
+ \file usbh_core.c
+ \brief USB MSC(mass storage device) class driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+ \version 2021-02-25, V1.1.1, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_msc_core.h"
+#include "usbh_msc_scsi.h"
+#include "usbh_msc_bbb.h"
+#include "usbh_pipe.h"
+#include "usbh_transc.h"
+#include
+#include
+
+/* local function prototypes ('static') */
+static void usbh_msc_itf_deinit (usbh_host *puhost);
+static usbh_status usbh_msc_itf_init (usbh_host *puhost);
+static usbh_status usbh_msc_req (usbh_host *puhost);
+static usbh_status usbh_msc_handle (usbh_host *puhost);
+static usbh_status usbh_msc_maxlun_get (usbh_host *puhost, uint8_t *maxlun);
+static usbh_status usbh_msc_rdwr_process(usbh_host *puhost, uint8_t lun);
+
+usbh_class usbh_msc =
+{
+ USB_CLASS_MSC,
+ usbh_msc_itf_init,
+ usbh_msc_itf_deinit,
+ usbh_msc_req,
+ usbh_msc_handle,
+};
+
+/*!
+ \brief interface initialization for MSC class
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_msc_itf_init (usbh_host *puhost)
+{
+ usbh_status status = USBH_OK;
+
+ uint8_t interface = usbh_interface_find(&puhost->dev_prop, MSC_CLASS, USB_MSC_SUBCLASS_SCSI, MSC_PROTOCOL);
+
+ if (0xFFU == interface) {
+ puhost->usr_cb->dev_not_supported();
+
+ status = USBH_FAIL;
+ } else {
+ static usbh_msc_handler msc_handler;
+
+ memset((void*)&msc_handler, 0, sizeof(usbh_msc_handler));
+
+ puhost->active_class->class_data = (void *)&msc_handler;
+
+ usbh_interface_select(&puhost->dev_prop, interface);
+
+ usb_desc_ep *ep_desc = &puhost->dev_prop.cfg_desc_set.itf_desc_set[interface][0].ep_desc[0];
+
+ if (ep_desc->bEndpointAddress & 0x80) {
+ msc_handler.ep_in = ep_desc->bEndpointAddress;
+ msc_handler.ep_size_in = ep_desc->wMaxPacketSize;
+ } else {
+ msc_handler.ep_out = ep_desc->bEndpointAddress;
+ msc_handler.ep_size_out = ep_desc->wMaxPacketSize;
+ }
+
+ ep_desc = &puhost->dev_prop.cfg_desc_set.itf_desc_set[interface][0].ep_desc[1];
+
+ if (ep_desc->bEndpointAddress & 0x80) {
+ msc_handler.ep_in = ep_desc->bEndpointAddress;
+ msc_handler.ep_size_in = ep_desc->wMaxPacketSize;
+ } else {
+ msc_handler.ep_out = ep_desc->bEndpointAddress;
+ msc_handler.ep_size_out = ep_desc->wMaxPacketSize;
+ }
+
+ msc_handler.state = MSC_INIT;
+ msc_handler.error = MSC_OK;
+ msc_handler.req_state = MSC_REQ_IDLE;
+ msc_handler.pipe_out = usbh_pipe_allocate(puhost->data, msc_handler.ep_out);
+ msc_handler.pipe_in = usbh_pipe_allocate(puhost->data, msc_handler.ep_in);
+
+ usbh_msc_bot_init(puhost);
+
+ /* open the new channels */
+ usbh_pipe_create (puhost->data,
+ &puhost->dev_prop,
+ msc_handler.pipe_out,
+ USB_EPTYPE_BULK,
+ msc_handler.ep_size_out);
+
+ usbh_pipe_create (puhost->data,
+ &puhost->dev_prop,
+ msc_handler.pipe_in,
+ USB_EPTYPE_BULK,
+ msc_handler.ep_size_in);
+
+ usbh_pipe_toggle_set (puhost->data, msc_handler.pipe_out, 0U);
+ usbh_pipe_toggle_set (puhost->data, msc_handler.pipe_in, 0U);
+ }
+
+ return status;
+}
+
+/*!
+ \brief de-initialize interface by freeing host channels allocated to interface
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+void usbh_msc_itf_deinit (usbh_host *puhost)
+{
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ if (msc->pipe_out) {
+ usb_pipe_halt (puhost->data, msc->pipe_out);
+ usbh_pipe_free (puhost->data, msc->pipe_out);
+
+ msc->pipe_out = 0U;
+ }
+
+ if (msc->pipe_in) {
+ usb_pipe_halt (puhost->data, msc->pipe_in);
+ usbh_pipe_free (puhost->data, msc->pipe_in);
+
+ msc->pipe_in = 0U;
+ }
+}
+
+/*!
+ \brief initialize the MSC state machine
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_msc_req (usbh_host *puhost)
+{
+ usbh_status status = USBH_BUSY;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->req_state) {
+ case MSC_REQ_IDLE:
+ case MSC_REQ_GET_MAX_LUN:
+ /* issue Get_MaxLun request */
+ status = usbh_msc_maxlun_get (puhost, (uint8_t *)&msc->max_lun);
+
+ if (USBH_OK == status) {
+ msc->max_lun = ((uint8_t)msc->max_lun > MSC_MAX_SUPPORTED_LUN) ? MSC_MAX_SUPPORTED_LUN : (uint8_t)msc->max_lun + 1U;
+
+ for (uint8_t i = 0U; i < msc->max_lun; i++) {
+ msc->unit[i].prev_ready_state = USBH_FAIL;
+ msc->unit[i].state_changed = 0U;
+ }
+ } else {
+ if (USBH_NOT_SUPPORTED == status) {
+ msc->max_lun = 0U;
+ status = USBH_OK;
+ }
+ }
+ break;
+
+ case MSC_REQ_ERROR:
+ /* issue clear feature request */
+ if (USBH_OK == usbh_clrfeature(puhost, 0x00U, puhost->control.pipe_out_num)) {
+ msc->req_state = msc->prev_req_state;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief MSC state machine handler
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_msc_handle (usbh_host *puhost)
+{
+ usbh_status status = USBH_BUSY;
+ uint8_t scsi_status = USBH_BUSY;
+ uint8_t ready_status = USBH_BUSY;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+
+ switch (msc->state) {
+ case MSC_INIT:
+ if (msc->cur_lun < msc->max_lun) {
+ msc->unit[msc->cur_lun].error = MSC_NOT_READY;
+
+ switch (msc->unit[msc->cur_lun].state) {
+ case MSC_INIT:
+ msc->unit[msc->cur_lun].state = MSC_READ_INQUIRY;
+ msc->timer = puhost->control.timer;
+ break;
+
+ case MSC_READ_INQUIRY:
+ scsi_status = usbh_msc_scsi_inquiry(puhost, msc->cur_lun, &msc->unit[msc->cur_lun].inquiry);
+
+ if (USBH_OK == scsi_status) {
+ msc->unit[msc->cur_lun].state = MSC_TEST_UNIT_READY;
+ } else if (scsi_status == USBH_FAIL) {
+ msc->unit[msc->cur_lun].state = MSC_REQUEST_SENSE;
+ } else {
+ if (scsi_status == USBH_UNRECOVERED_ERROR) {
+ msc->unit[msc->cur_lun].state = MSC_IDLE;
+ msc->unit[msc->cur_lun].error = MSC_ERROR;
+ }
+ }
+ break;
+
+ case MSC_TEST_UNIT_READY:
+ /* issue SCSI command TestUnitReady */
+ ready_status = usbh_msc_test_unitready(puhost, msc->cur_lun);
+
+ if (USBH_OK == ready_status) {
+ if (USBH_OK != msc->unit[msc->cur_lun].prev_ready_state) {
+ msc->unit[msc->cur_lun].state_changed = 1U;
+ } else {
+ msc->unit[msc->cur_lun].state_changed = 0U;
+ }
+
+ msc->unit[msc->cur_lun].state = MSC_READ_CAPACITY10;
+ msc->unit[msc->cur_lun].error = MSC_OK;
+ msc->unit[msc->cur_lun].prev_ready_state = USBH_OK;
+ } else if (USBH_FAIL == ready_status) {
+ if (USBH_FAIL != msc->unit[msc->cur_lun].prev_ready_state) {
+ msc->unit[msc->cur_lun].state_changed = 1U;
+ } else {
+ msc->unit[msc->cur_lun].state_changed = 0U;
+ }
+
+ msc->unit[msc->cur_lun].state = MSC_REQUEST_SENSE;
+ msc->unit[msc->cur_lun].error = MSC_NOT_READY;
+ msc->unit[msc->cur_lun].prev_ready_state = USBH_FAIL;
+ } else {
+ if (USBH_UNRECOVERED_ERROR == ready_status) {
+ msc->unit[msc->cur_lun].state = MSC_IDLE;
+ msc->unit[msc->cur_lun].error = MSC_ERROR;
+ }
+ }
+ break;
+
+ case MSC_READ_CAPACITY10:
+ /* issue READ_CAPACITY10 SCSI command */
+ scsi_status = usbh_msc_read_capacity10(puhost, msc->cur_lun, &msc->unit[msc->cur_lun].capacity);
+
+ if (USBH_OK == scsi_status) {
+ if (1U == msc->unit[msc->cur_lun].state_changed) {
+ }
+ msc->unit[msc->cur_lun].state = MSC_IDLE;
+ msc->unit[msc->cur_lun].error = MSC_OK;
+ msc->cur_lun ++;
+ } else if (USBH_FAIL == scsi_status) {
+ msc->unit[msc->cur_lun].state = MSC_REQUEST_SENSE;
+ } else {
+ if (USBH_UNRECOVERED_ERROR == scsi_status) {
+ msc->unit[msc->cur_lun].state = MSC_IDLE;
+ msc->unit[msc->cur_lun].error = MSC_ERROR;
+ }
+ }
+ break;
+
+ case MSC_REQUEST_SENSE:
+ /* issue RequestSense SCSI command for recovering error code */
+ scsi_status = usbh_msc_request_sense (puhost, msc->cur_lun, &msc->unit[msc->cur_lun].sense);
+ if (USBH_OK == scsi_status) {
+ if ((msc->unit[msc->cur_lun].sense.SenseKey == UNIT_ATTENTION) || (msc->unit[msc->cur_lun].sense.SenseKey == NOT_READY)) {
+ if (((puhost->control.timer > msc->timer) && ((puhost->control.timer - msc->timer) < 10000U)) \
+ || ((puhost->control.timer < msc->timer) && ((puhost->control.timer + 0x3FFFU - msc->timer) < 10000U))) {
+ msc->unit[msc->cur_lun].state = MSC_TEST_UNIT_READY;
+ break;
+ }
+ }
+
+ msc->unit[msc->cur_lun].state = MSC_IDLE;
+ msc->cur_lun++;
+ } else if (USBH_FAIL == scsi_status) {
+ msc->unit[msc->cur_lun].state = MSC_UNRECOVERED_ERROR;
+ } else {
+ if (MSC_UNRECOVERED_ERROR == scsi_status) {
+ msc->unit[msc->cur_lun].state = MSC_IDLE;
+ msc->unit[msc->cur_lun].error = MSC_ERROR;
+ }
+ }
+ break;
+
+ case MSC_UNRECOVERED_ERROR:
+ msc->cur_lun ++;
+ break;
+
+ default:
+ break;
+ }
+ } else {
+ msc->cur_lun = 0U;
+ msc->state = MSC_IDLE;
+ }
+ break;
+
+ case MSC_IDLE:
+ puhost->usr_cb->dev_user_app();
+ status = USBH_OK;
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief get max lun of the mass storage device
+ \param[in] puhost: pointer to USB host
+ \param[in] maxlun: pointer to max lun
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_msc_maxlun_get (usbh_host *puhost, uint8_t *maxlun)
+{
+ usbh_status status = USBH_BUSY;
+
+ if (puhost->control.ctl_state == CTL_IDLE) {
+ puhost->control.setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_REQTYPE_CLASS | USB_RECPTYPE_ITF,
+ .bRequest = BBB_GET_MAX_LUN,
+ .wValue = 0U,
+ .wIndex = 0U,
+ .wLength = 1U
+ };
+
+ usbh_ctlstate_config (puhost, maxlun, 1U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief get max lun of the mass storage device
+ \param[in] puhost: pointer to USB host
+ \param[in] lun: logic unit number
+ \param[out] none
+ \retval operation status
+*/
+static usbh_status usbh_msc_rdwr_process(usbh_host *puhost, uint8_t lun)
+{
+ usbh_status error = USBH_BUSY;
+ usbh_status scsi_status = USBH_BUSY;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ /* switch msc req state machine */
+ switch (msc->unit[lun].state) {
+ case MSC_READ:
+ scsi_status = usbh_msc_read10(puhost, lun, NULL, 0U, 0U);
+
+ if (USBH_OK == scsi_status) {
+ msc->unit[lun].state = MSC_IDLE;
+ error = USBH_OK;
+ } else if (USBH_FAIL == scsi_status) {
+ msc->unit[lun].state = MSC_REQUEST_SENSE;
+ } else {
+ if (USBH_UNRECOVERED_ERROR == scsi_status) {
+ msc->unit[lun].state = MSC_UNRECOVERED_ERROR;
+ error = USBH_FAIL;
+ }
+ }
+ break;
+
+ case MSC_WRITE:
+ scsi_status = usbh_msc_write10(puhost, lun, NULL, 0U, 0U);
+
+ if (USBH_OK == scsi_status) {
+ msc->unit[lun].state = MSC_IDLE;
+ error = USBH_OK;
+ } else if(USBH_FAIL == scsi_status) {
+ msc->unit[lun].state = MSC_REQUEST_SENSE;
+ } else {
+ if (USBH_UNRECOVERED_ERROR == scsi_status) {
+ msc->unit[lun].state = MSC_UNRECOVERED_ERROR;
+ error = USBH_FAIL;
+ }
+ }
+ break;
+
+ case MSC_REQUEST_SENSE:
+ scsi_status = usbh_msc_request_sense (puhost, lun, &msc->unit[lun].sense);
+
+ if (USBH_OK == scsi_status) {
+ msc->unit[lun].state = MSC_IDLE;
+ msc->unit[lun].error = MSC_ERROR;
+
+ error = USBH_FAIL;
+ }
+
+ if (USBH_FAIL == scsi_status) {
+ } else {
+ if (USBH_UNRECOVERED_ERROR == scsi_status) {
+ msc->unit[lun].state = MSC_UNRECOVERED_ERROR;
+ error = USBH_FAIL;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return error;
+}
+
+/*!
+ \brief get lun information
+ \param[in] puhost: pointer to USB host
+ \param[in] lun: logic unit number
+ \param[in] info: pointer to lun information
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_lun_info_get (usbh_host *puhost, uint8_t lun, msc_lun *info)
+{
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ if (HOST_CLASS_HANDLER == puhost->cur_state) {
+ memcpy(info, &msc->unit[lun], sizeof(msc_lun));
+
+ return USBH_OK;
+ } else {
+ return USBH_FAIL;
+ }
+}
+
+/*!
+ \brief handle msc read operation
+ \param[in] puhost: pointer to USB host
+ \param[in] lun: logic unit number
+ \param[in] address: data address
+ \param[in] pbuf: pointer to data buffer
+ \param[in] length: buffer length
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_read (usbh_host *puhost,
+ uint8_t lun,
+ uint32_t address,
+ uint8_t *pbuf,
+ uint32_t length)
+{
+ uint32_t timeout = 0U;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+ usb_core_driver *pudev = (usb_core_driver *)puhost->data;
+
+ if ((0U == pudev->host.connect_status) ||
+ (HOST_CLASS_HANDLER != puhost->cur_state) ||
+ (MSC_IDLE != msc->unit[lun].state)) {
+ return USBH_FAIL;
+ }
+
+ msc->state = MSC_READ;
+ msc->unit[lun].state = MSC_READ;
+ msc->rw_lun = lun;
+
+ usbh_msc_read10(puhost, lun, pbuf, address, length);
+
+ timeout = puhost->control.timer;
+
+ while (USBH_BUSY == usbh_msc_rdwr_process(puhost, lun)) {
+ if (((puhost->control.timer > timeout) && ((puhost->control.timer - timeout) > (1000U * length))) \
+ || ((puhost->control.timer < timeout) && ((puhost->control.timer + 0x3FFFU - timeout) > (1000U * length))) \
+ || (0U == pudev->host.connect_status)) {
+ msc->state = MSC_IDLE;
+ return USBH_FAIL;
+ }
+ }
+
+ msc->state = MSC_IDLE;
+
+ return USBH_OK;
+}
+
+/*!
+ \brief handle msc write operation
+ \param[in] puhost: pointer to USB host
+ \param[in] lun: logic unit number
+ \param[in] address: data address
+ \param[in] pbuf: pointer to data buffer
+ \param[in] length: buffer length
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_write (usbh_host *puhost,
+ uint8_t lun,
+ uint32_t address,
+ uint8_t *pbuf,
+ uint32_t length)
+{
+ uint32_t timeout = 0U;
+ usb_core_driver *pudev = (usb_core_driver *)puhost->data;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ if ((0U == pudev->host.connect_status) ||
+ (HOST_CLASS_HANDLER != puhost->cur_state) ||
+ (MSC_IDLE != msc->unit[lun].state)) {
+ return USBH_FAIL;
+ }
+
+ msc->state = MSC_WRITE;
+ msc->unit[lun].state = MSC_WRITE;
+ msc->rw_lun = lun;
+
+ usbh_msc_write10(puhost, lun, pbuf, address, length);
+
+ timeout = puhost->control.timer;
+
+ while (USBH_BUSY == usbh_msc_rdwr_process(puhost, lun)) {
+ if (((puhost->control.timer > timeout) && ((puhost->control.timer - timeout) > (1000U * length))) \
+ || ((puhost->control.timer < timeout) && ((puhost->control.timer + 0x3FFFU - timeout) > (1000U * length))) \
+ || (0U == pudev->host.connect_status)) {
+ msc->state = MSC_IDLE;
+ return USBH_FAIL;
+ }
+ }
+
+ msc->state = MSC_IDLE;
+
+ return USBH_OK;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
new file mode 100644
index 0000000000..b61a068699
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_fatfs.c
@@ -0,0 +1,233 @@
+/*!
+ \file usbh_msc_fatfs.c
+ \brief USB MSC host FATFS related functions
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usb_conf.h"
+#include "diskio.h"
+#include "usbh_msc_core.h"
+
+static volatile DSTATUS state = STA_NOINIT; /* disk status */
+
+extern usbh_host usb_host;
+
+/*!
+ \brief initialize the disk drive
+ \param[in] drv: physical drive number (0)
+ \param[out] none
+ \retval operation status
+*/
+DSTATUS disk_initialize (BYTE drv)
+{
+ usb_core_driver *pudev = (usb_core_driver *)usb_host.data;
+
+ if (pudev->host.connect_status) {
+ state &= ~STA_NOINIT;
+ }
+
+ return state;
+}
+
+/*!
+ \brief get disk status
+ \param[in] drv: physical drive number (0)
+ \param[out] none
+ \retval operation status
+*/
+DSTATUS disk_status (BYTE drv)
+{
+ if (drv) {
+ return STA_NOINIT; /* supports only single drive */
+ }
+
+ return state;
+}
+
+/*!
+ \brief read sectors
+ \param[in] drv: physical drive number (0)
+ \param[in] buff: pointer to the data buffer to store read data
+ \param[in] sector: start sector number (LBA)
+ \param[in] count: sector count (1..255)
+ \param[out] none
+ \retval operation status
+*/
+DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, UINT count)
+{
+ BYTE status = USBH_OK;
+ usb_core_driver *pudev = (usb_core_driver *)usb_host.data;
+
+ if (drv || (!count)) {
+ return RES_PARERR;
+ }
+
+ if (state & STA_NOINIT) {
+ return RES_NOTRDY;
+ }
+
+ if (pudev->host.connect_status) {
+ do {
+ status = usbh_msc_read (&usb_host, drv, sector, buff, count);
+
+ if (!pudev->host.connect_status) {
+ return RES_ERROR;
+ }
+ } while(status == USBH_BUSY);
+ }
+
+ if (status == USBH_OK) {
+ return RES_OK;
+ }
+
+ return RES_ERROR;
+}
+
+#if _READONLY == 0U
+
+/*!
+ \brief write sectors
+ \param[in] drv: physical drive number (0)
+ \param[in] buff: pointer to the data buffer to store read data
+ \param[in] sector: start sector number (LBA)
+ \param[in] count: sector count (1..255)
+ \param[out] none
+ \retval operation status
+*/
+DRESULT disk_write (BYTE drv, const BYTE *buff, DWORD sector, UINT count)
+{
+ BYTE status = USBH_OK;
+ usb_core_driver *pudev = (usb_core_driver *)usb_host.data;
+
+ if ((!count) || drv) {
+ return RES_PARERR;
+ }
+
+ if (state & STA_NOINIT) {
+ return RES_NOTRDY;
+ }
+
+ if (state & STA_PROTECT) {
+ return RES_WRPRT;
+ }
+
+ if (pudev->host.connect_status) {
+ do {
+ status = usbh_msc_write (&usb_host, drv, sector, (BYTE*)buff, count);
+
+ if (!pudev->host.connect_status) {
+ return RES_ERROR;
+ }
+ } while(status == USBH_BUSY);
+ }
+
+ if (status == USBH_OK) {
+ return RES_OK;
+ }
+
+ return RES_ERROR;
+}
+
+#endif /* _READONLY == 0 */
+
+/*!
+ \brief I/O control function
+ \param[in] drv: physical drive number (0)
+ \param[in] ctrl: control code
+ \param[in] buff: pointer to the data buffer to store read data
+ \param[out] none
+ \retval operation status
+*/
+DRESULT disk_ioctl (BYTE drv, BYTE ctrl, void *buff)
+{
+ DRESULT res = RES_OK;
+ msc_lun info;
+
+ if (drv) {
+ return RES_PARERR;
+ }
+
+ res = RES_ERROR;
+
+ if (state & STA_NOINIT) {
+ return RES_NOTRDY;
+ }
+
+ switch (ctrl) {
+ /* make sure that no pending write process */
+ case CTRL_SYNC:
+ res = RES_OK;
+ break;
+
+ /* get number of sectors on the disk (dword) */
+ case GET_SECTOR_COUNT:
+ if (USBH_OK == usbh_msc_lun_info_get(&usb_host, drv, &info)) {
+ *(DWORD*)buff = (DWORD)info.capacity.block_nbr;
+ res = RES_OK;
+ }
+ break;
+
+ /* get r/w sector size (word) */
+ case GET_SECTOR_SIZE:
+ if (USBH_OK == usbh_msc_lun_info_get(&usb_host, drv, &info)) {
+ *(WORD*)buff = (DWORD)info.capacity.block_size;
+ res = RES_OK;
+ }
+ break;
+
+ /* get erase block size in unit of sector (dword) */
+ case GET_BLOCK_SIZE:
+ *(DWORD*)buff = 512;
+ break;
+
+ default:
+ res = RES_PARERR;
+ break;
+ }
+
+ return res;
+}
+
+/*!
+ \brief get fat time
+ \param[in] none
+ \param[out] none
+ \retval time value
+*/
+DWORD get_fattime(void) {
+
+ return ((DWORD)(2019U - 1980U) << 25U) /* Year 2019 */
+ | ((DWORD)1U << 21U) /* Month 1 */
+ | ((DWORD)1U << 16U) /* Mday 1 */
+ | ((DWORD)0U << 11U) /* Hour 0 */
+ | ((DWORD)0U << 5U) /* Min 0 */
+ | ((DWORD)0U >> 1U); /* Sec 0 */
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
new file mode 100644
index 0000000000..8ffd26cd6c
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/class/msc/Source/usbh_msc_scsi.c
@@ -0,0 +1,397 @@
+/*!
+ \file usbh_msc_scsi.c
+ \brief USB MSC SCSI commands implementation
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_msc_core.h"
+#include "usbh_msc_scsi.h"
+#include "usbh_msc_bbb.h"
+#include
+
+/*!
+ \brief send 'Inquiry' command to the device
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[in] inquiry: pointer to the inquiry structure
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_scsi_inquiry (usbh_host *puhost, uint8_t lun, scsi_std_inquiry_data *inquiry)
+{
+ usbh_status error = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ /* prepare the cbw and relevant field*/
+ msc->bot.cbw.field.dCBWDataTransferLength = STANDARD_INQUIRY_DATA_LEN;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_IN;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_INQUIRY;
+ msc->bot.cbw.field.CBWCB[1] = (lun << 5U);
+ msc->bot.cbw.field.CBWCB[4] = 0x24U;
+
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+ msc->bot.pbuf = (uint8_t *)(void *)msc->bot.data;
+ error = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ error = usbh_msc_bot_process(puhost, lun);
+
+ if (USBH_OK == error) {
+ memset(inquiry, 0U, sizeof(scsi_std_inquiry_data));
+
+ /* assign inquiry data */
+ inquiry->device_type = msc->bot.pbuf[0] & 0x1FU;
+ inquiry->peripheral_qualifier = msc->bot.pbuf[0] >> 5U;
+
+ if (0x80U == ((uint32_t)msc->bot.pbuf[1] & 0x80U)) {
+ inquiry->removable_media = 1U;
+ } else {
+ inquiry->removable_media = 0U;
+ }
+
+ memcpy (inquiry->vendor_id, &msc->bot.pbuf[8], 8U);
+ memcpy (inquiry->product_id, &msc->bot.pbuf[16], 16U);
+ memcpy (inquiry->revision_id, &msc->bot.pbuf[32], 4U);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return error;
+}
+
+/*!
+ \brief send 'Test unit ready' command to the device
+ \param[in] puhost: pointer to USB host handler
+ \param[in] lun: logic unit number
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_test_unitready (usbh_host *puhost, uint8_t lun)
+{
+ usbh_status status = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ /* prepare the CBW and relevant field */
+ msc->bot.cbw.field.dCBWDataTransferLength = CBW_LENGTH_TEST_UNIT_READY;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_OUT;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_CB_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_TEST_UNIT_READY;
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+
+ status = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ status = usbh_msc_bot_process(puhost, lun);
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief send the read capacity command to the device
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[in] capacity: pointer to scsi capacity
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_read_capacity10 (usbh_host *puhost, uint8_t lun, scsi_capacity *capacity)
+{
+ usbh_status status = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ /* prepare the CBW and relevant field */
+ msc->bot.cbw.field.dCBWDataTransferLength = READ_CAPACITY10_DATA_LEN;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_IN;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_CB_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_READ_CAPACITY10;
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+ msc->bot.pbuf = (uint8_t *)(void *)msc->bot.data;
+
+ status = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ status = usbh_msc_bot_process(puhost, lun);
+
+ if (USBH_OK == status) {
+ capacity->block_nbr = msc->bot.pbuf[3] | \
+ ((uint32_t)msc->bot.pbuf[2] << 8U) | \
+ ((uint32_t)msc->bot.pbuf[1] << 16U) | \
+ ((uint32_t)msc->bot.pbuf[0] << 24U);
+
+ capacity->block_size = (uint16_t)(msc->bot.pbuf[7] | ((uint32_t)msc->bot.pbuf[6] << 8U));
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief send the mode sense6 command to the device
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_mode_sense6 (usbh_host *puhost, uint8_t lun)
+{
+ usbh_status status = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ /* prepare the CBW and relevant field */
+ msc->bot.cbw.field.dCBWDataTransferLength = XFER_LEN_MODE_SENSE6;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_IN;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_CB_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_MODE_SENSE6;
+ msc->bot.cbw.field.CBWCB[2] = MODE_SENSE_PAGE_CONTROL_FIELD | MODE_SENSE_PAGE_CODE;
+ msc->bot.cbw.field.CBWCB[4] = XFER_LEN_MODE_SENSE6;
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+ msc->bot.pbuf = (uint8_t *)(void *)msc->bot.data;
+
+ status = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ status = usbh_msc_bot_process(puhost, lun);
+
+ if (USBH_OK == status) {
+ if (msc->bot.data[2] & MASK_MODE_SENSE_WRITE_PROTECT) {
+
+ } else {
+
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief send the Request Sense command to the device
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[in] sense_data: pointer to sense data
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_request_sense (usbh_host *puhost, uint8_t lun, msc_scsi_sense *sense_data)
+{
+ usbh_status status = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ /* prepare the cbw and relevant field */
+ msc->bot.cbw.field.dCBWDataTransferLength = ALLOCATION_LENGTH_REQUEST_SENSE;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_IN;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_CB_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_REQUEST_SENSE;
+ msc->bot.cbw.field.CBWCB[1] = (lun << 5U);
+ msc->bot.cbw.field.CBWCB[4] = ALLOCATION_LENGTH_REQUEST_SENSE;
+
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+ msc->bot.pbuf = (uint8_t *)(void *)msc->bot.data;
+
+ status = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ status = usbh_msc_bot_process(puhost, lun);
+
+ if (status == USBH_OK) {
+ /* get sense data */
+ sense_data->SenseKey = msc->bot.pbuf[2] & 0x0FU;
+ sense_data->ASC = msc->bot.pbuf[12];
+ sense_data->ASCQ = msc->bot.pbuf[13];
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief send the write10 command to the device
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[in] data_buf: data buffer contains the data to write
+ \param[in] addr: address to which the data will be written
+ \param[in] sector_num: number of sector to be written
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_write10 (usbh_host *puhost, uint8_t lun, uint8_t *data_buf, uint32_t addr, uint32_t sector_num)
+{
+ usbh_status status = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ msc->bot.cbw.field.dCBWDataTransferLength = sector_num * msc->unit[lun].capacity.block_size;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_OUT;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_CB_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_WRITE10;
+
+ /* logical block address */
+ msc->bot.cbw.field.CBWCB[2] = (((uint8_t*)&addr)[3]);
+ msc->bot.cbw.field.CBWCB[3] = (((uint8_t*)&addr)[2]);
+ msc->bot.cbw.field.CBWCB[4] = (((uint8_t*)&addr)[1]);
+ msc->bot.cbw.field.CBWCB[5] = (((uint8_t*)&addr)[0]);
+
+ /* transfer length */
+ msc->bot.cbw.field.CBWCB[7] = (((uint8_t *)§or_num)[1]);
+ msc->bot.cbw.field.CBWCB[8] = (((uint8_t *)§or_num)[0]);
+
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+ msc->bot.pbuf = data_buf;
+
+ status = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ status = usbh_msc_bot_process(puhost, lun);
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief send the read10 command to the device
+ \param[in] puhost: pointer to usb host handler
+ \param[in] lun: logic unit number
+ \param[in] data_buf: data buffer contains the data to write
+ \param[in] addr: address to which the data will be read
+ \param[in] sector_num: number of sector to be read
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_msc_read10 (usbh_host *puhost, uint8_t lun, uint8_t *data_buf, uint32_t addr, uint32_t sector_num)
+{
+ usbh_status status = USBH_FAIL;
+ usbh_msc_handler *msc = (usbh_msc_handler *)puhost->active_class->class_data;
+
+ switch (msc->bot.cmd_state) {
+ case BOT_CMD_SEND:
+ /* prepare the CBW and relevant field */
+ msc->bot.cbw.field.dCBWDataTransferLength = sector_num * msc->unit[lun].capacity.block_size;
+ msc->bot.cbw.field.bmCBWFlags = USB_TRX_IN;
+ msc->bot.cbw.field.bCBWCBLength = CBW_LENGTH;
+
+ memset(msc->bot.cbw.field.CBWCB, 0U, CBW_CB_LENGTH);
+
+ msc->bot.cbw.field.CBWCB[0] = SCSI_READ10;
+
+ /* logical block address */
+ msc->bot.cbw.field.CBWCB[2] = (((uint8_t*)&addr)[3]);
+ msc->bot.cbw.field.CBWCB[3] = (((uint8_t*)&addr)[2]);
+ msc->bot.cbw.field.CBWCB[4] = (((uint8_t*)&addr)[1]);
+ msc->bot.cbw.field.CBWCB[5] = (((uint8_t*)&addr)[0]);
+
+ /* transfer length */
+ msc->bot.cbw.field.CBWCB[7] = (((uint8_t *)§or_num)[1]);
+ msc->bot.cbw.field.CBWCB[8] = (((uint8_t *)§or_num)[0]);
+
+ msc->bot.state = BOT_SEND_CBW;
+ msc->bot.cmd_state = BOT_CMD_WAIT;
+ msc->bot.pbuf = data_buf;
+
+ status = USBH_BUSY;
+ break;
+
+ case BOT_CMD_WAIT:
+ status = usbh_msc_bot_process(puhost, lun);
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_core.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_core.h
new file mode 100644
index 0000000000..57e15de592
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_core.h
@@ -0,0 +1,274 @@
+/*!
+ \file usbh_core.h
+ \brief USB host core state machine header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_CORE_H
+#define __USBH_CORE_H
+
+#include "usbh_conf.h"
+#include "drv_usb_host.h"
+
+#define MSC_CLASS 0x08U
+#define HID_CLASS 0x03U
+#define MSC_PROTOCOL 0x50U
+#define CBI_PROTOCOL 0x01U
+
+#define USBH_MAX_ERROR_COUNT 3U
+
+#define USBH_DEV_ADDR_DEFAULT 0U
+#define USBH_DEV_ADDR 1U
+
+typedef enum
+{
+ USBH_OK = 0U,
+ USBH_BUSY,
+ USBH_FAIL,
+ USBH_NOT_SUPPORTED,
+ USBH_UNRECOVERED_ERROR,
+ USBH_SPEED_UNKNOWN_ERROR,
+ USBH_APPLY_DEINIT
+} usbh_status;
+
+/* USB host global operation state */
+typedef enum
+{
+ HOST_DEFAULT = 0U,
+ HOST_DETECT_DEV_SPEED,
+ HOST_DEV_ATTACHED,
+ HOST_DEV_DETACHED,
+ HOST_ENUM,
+ HOST_SET_WAKEUP_FEATURE,
+ HOST_CHECK_CLASS,
+ HOST_CLASS_ENUM,
+ HOST_CLASS_HANDLER,
+ HOST_USER_INPUT,
+ HOST_SUSPENDED,
+ HOST_WAKEUP,
+ HOST_ERROR
+} usb_host_state;
+
+/* USB host enumeration state */
+typedef enum
+{
+ ENUM_DEFAULT = 0U,
+ ENUM_GET_DEV_DESC,
+ ENUM_SET_ADDR,
+ ENUM_GET_CFG_DESC,
+ ENUM_GET_CFG_DESC_SET,
+ ENUM_GET_STR_DESC,
+#ifdef USB_MTP
+ ENUM_GET_MTP_STR,
+#endif
+ ENUM_SET_CONFIGURATION,
+ ENUM_DEV_CONFIGURED
+} usbh_enum_state;
+
+/* USB host control transfer state */
+typedef enum
+{
+ CTL_IDLE = 0U,
+ CTL_SETUP,
+ CTL_SETUP_WAIT,
+ CTL_DATA_IN,
+ CTL_DATA_IN_WAIT,
+ CTL_DATA_OUT,
+ CTL_DATA_OUT_WAIT,
+ CTL_STATUS_IN,
+ CTL_STATUS_IN_WAIT,
+ CTL_STATUS_OUT,
+ CTL_STATUS_OUT_WAIT,
+ CTL_ERROR,
+ CTL_FINISH
+} usbh_ctl_state;
+
+/* user action state */
+typedef enum
+{
+ USBH_USER_NO_RESP = 0U,
+ USBH_USER_RESP_OK = 1U,
+} usbh_user_status;
+
+typedef enum
+{
+ USBH_PORT_EVENT = 1U,
+ USBH_URB_EVENT,
+ USBH_CONTROL_EVENT,
+ USBH_CLASS_EVENT,
+ USBH_STATE_CHANGED_EVENT,
+}usbh_os_event;
+
+/* control transfer information */
+typedef struct _usbh_control
+{
+ uint8_t pipe_in_num;
+ uint8_t pipe_out_num;
+ uint8_t max_len;
+ uint8_t error_count;
+
+ uint8_t *buf;
+ uint16_t ctl_len;
+ uint16_t timer;
+
+ usb_setup setup;
+ usbh_ctl_state ctl_state;
+} usbh_control;
+
+/* USB interface descriptor set */
+typedef struct _usb_desc_itf_set
+{
+ usb_desc_itf itf_desc;
+ usb_desc_ep ep_desc[USBH_MAX_EP_NUM];
+} usb_desc_itf_set;
+
+/* USB configure descriptor set */
+typedef struct _usb_desc_cfg_set
+{
+ usb_desc_config cfg_desc;
+ usb_desc_itf_set itf_desc_set[USBH_MAX_INTERFACES_NUM][USBH_MAX_ALT_SETTING];
+} usb_desc_cfg_set;
+
+/* USB device property */
+typedef struct
+{
+ uint8_t data[USBH_DATA_BUF_MAX_LEN]; /* if DMA is used, the data array must be located in the first position */
+ uint8_t cur_itf;
+ uint8_t addr;
+
+ uint32_t speed;
+
+ usb_desc_dev dev_desc;
+ usb_desc_cfg_set cfg_desc_set;
+
+#if (USBH_KEEP_CFG_DESCRIPTOR == 1U)
+ uint8_t cfgdesc_rawdata[USBH_CFGSET_MAX_LEN];
+#endif /* (USBH_KEEP_CFG_DESCRIPTOR == 1U) */
+} usb_dev_prop;
+
+struct _usbh_host;
+
+/* device class callbacks */
+typedef struct
+{
+ uint8_t class_code; /*!< USB class type */
+
+ usbh_status (*class_init) (struct _usbh_host *phost);
+ void (*class_deinit) (struct _usbh_host *phost);
+ usbh_status (*class_requests) (struct _usbh_host *phost);
+ usbh_status (*class_machine) (struct _usbh_host *phost);
+ usbh_status (*class_sof) (struct _usbh_host *puhost);
+
+ void *class_data;
+} usbh_class;
+
+/* user callbacks */
+typedef struct
+{
+ void (*dev_init) (void);
+ void (*dev_deinit) (void);
+ void (*dev_attach) (void);
+ void (*dev_reset) (void);
+ void (*dev_detach) (void);
+ void (*dev_over_currented) (void);
+ void (*dev_speed_detected) (uint32_t dev_speed);
+ void (*dev_devdesc_assigned) (void *dev_desc);
+ void (*dev_address_set) (void);
+
+ void (*dev_cfgdesc_assigned) (usb_desc_config *cfg_desc,
+ usb_desc_itf *itf_desc,
+ usb_desc_ep *ep_desc);
+
+ void (*dev_mfc_str) (void *mfc_str);
+ void (*dev_prod_str) (void *prod_str);
+ void (*dev_seral_str) (void *serial_str);
+ void (*dev_enumerated) (void);
+ usbh_user_status (*dev_user_input) (void);
+ int (*dev_user_app) (void);
+ void (*dev_not_supported) (void);
+ void (*dev_error) (void);
+} usbh_user_cb;
+
+/* host information */
+typedef struct _usbh_host
+{
+ usb_host_state cur_state; /*!< host state machine value */
+ usb_host_state backup_state; /*!< backup of previous state machine value */
+ usbh_enum_state enum_state; /*!< enumeration state machine */
+ usbh_control control; /*!< USB host control state machine */
+ usb_dev_prop dev_prop; /*!< USB device property */
+
+ usbh_class *uclass[USBH_MAX_SUPPORTED_CLASS]; /*!< USB host supported class */
+ usbh_class *active_class; /*!< USB active class */
+ usbh_user_cb *usr_cb; /*!< USB user callback */
+
+ uint8_t class_num; /*!< USB class number */
+
+ void *data; /*!< used for... */
+} usbh_host;
+
+/*!
+ \brief get USB URB state
+ \param[in] pudev: pointer to USB core instance
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval none
+*/
+static inline usb_urb_state usbh_urbstate_get (usb_core_driver *pudev, uint8_t pp_num)
+{
+ return pudev->host.pipe[pp_num].urb_state;
+}
+
+/*!
+ \brief get USB transfer data count
+ \param[in] pudev: pointer to USB core instance
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval none
+*/
+static inline uint32_t usbh_xfercount_get (usb_core_driver *pudev, uint8_t pp_num)
+{
+ return pudev->host.backup_xfercount[pp_num];
+}
+
+/* function declarations */
+/* USB host stack initializations */
+void usbh_init (usbh_host *puhost, usbh_user_cb *user_cb);
+/* USB host register device class */
+usbh_status usbh_class_register (usbh_host *puhost, usbh_class *puclass);
+/* de-initialize USB host */
+usbh_status usbh_deinit (usbh_host *puhost);
+/* USB host core main state machine process */
+void usbh_core_task (usbh_host *puhost);
+/* handle the error on USB host side */
+void usbh_error_handler (usbh_host *puhost, usbh_status err_type);
+
+#endif /* __USBH_CORE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_enum.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_enum.h
new file mode 100644
index 0000000000..b31e690fdc
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_enum.h
@@ -0,0 +1,71 @@
+/*!
+ \file usbh_enum.h
+ \brief USB host mode USB enumeration header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_ENUM_H
+#define __USBH_ENUM_H
+
+#include "usb_conf.h"
+#include "usbh_core.h"
+
+/* function declarations */
+/* configure USB control status parameters */
+void usbh_ctlstate_config (usbh_host *puhost, uint8_t *buf, uint16_t len);
+/* get device descriptor from the USB device */
+usbh_status usbh_devdesc_get (usbh_host *puhost, uint8_t len);
+/* get configuration descriptor from the USB device */
+usbh_status usbh_cfgdesc_get (usbh_host *puhost, uint16_t len);
+/* get string descriptor from the USB device */
+usbh_status usbh_strdesc_get (usbh_host *puhost,uint8_t str_index, uint8_t *buf, uint16_t len);
+/* set the address to the connected device */
+usbh_status usbh_setaddress (usbh_host *puhost, uint8_t dev_addr);
+/* set the configuration value to the connected device */
+usbh_status usbh_setcfg (usbh_host *puhost, uint16_t config);
+/* set the interface value to the connected device */
+usbh_status usbh_setinterface (usbh_host *puhost, uint8_t itf_num, uint8_t alter_setting);
+/* set or enable a specific device feature */
+usbh_status usbh_setdevfeature (usbh_host *puhost, uint8_t feature_selector, uint16_t windex);
+/* clear or disable a specific device feature */
+usbh_status usbh_clrdevfeature (usbh_host *puhost, uint8_t feature_selector, uint16_t windex);
+/* clear or disable a specific feature */
+usbh_status usbh_clrfeature (usbh_host *puhost, uint8_t ep_addr, uint8_t pp_num);
+/* get the next descriptor header */
+usb_desc_header *usbh_nextdesc_get (uint8_t *pbuf, uint16_t *ptr);
+/* select an interface */
+usbh_status usbh_interface_select (usb_dev_prop *udev, uint8_t interface);
+/* find the interface index for a specific class */
+uint8_t usbh_interface_find (usb_dev_prop *udev, uint8_t main_class, uint8_t sub_class, uint8_t protocol);
+/* find the interface index for a specific class interface and alternate setting number */
+uint8_t usbh_interfaceindex_find (usb_dev_prop *udev, uint8_t interface_number, uint8_t alt_settings);
+
+#endif /* __USBH_ENUM_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_pipe.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_pipe.h
new file mode 100644
index 0000000000..8c7593c9b8
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_pipe.h
@@ -0,0 +1,100 @@
+/*!
+ \file usbh_pipe.h
+ \brief USB host mode pipe header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_PIPE_H
+#define __USBH_PIPE_H
+
+#include "usbh_core.h"
+
+#define HC_MAX 8U
+
+#define HC_OK 0x0000U
+#define HC_USED 0x8000U
+#define HC_ERROR 0xFFFFU
+#define HC_USED_MASK 0x7FFFU
+
+/*!
+ \brief set toggle for a pipe
+ \param[in] pudev: pointer to USB core instance
+ \param[in] pp_num: pipe number
+ \param[in] toggle: toggle (0/1)
+ \param[out] none
+ \retval operation status
+*/
+static inline void usbh_pipe_toggle_set (usb_core_driver *pudev, uint8_t pp_num, uint8_t toggle)
+{
+ if (pudev->host.pipe[pp_num].ep.dir) {
+ pudev->host.pipe[pp_num].data_toggle_in = toggle;
+ } else {
+ pudev->host.pipe[pp_num].data_toggle_out = toggle;
+ }
+}
+
+/*!
+ \brief get toggle flag of pipe
+ \param[in] pudev: pointer to USB core instance
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval operation status
+*/
+static inline uint8_t usbh_pipe_toggle_get (usb_core_driver *pudev, uint8_t pp_num)
+{
+ if (pudev->host.pipe[pp_num].ep.dir) {
+ return pudev->host.pipe[pp_num].data_toggle_in;
+ } else {
+ return pudev->host.pipe[pp_num].data_toggle_out;
+ }
+}
+
+/* function declarations */
+/* create a pipe */
+uint8_t usbh_pipe_create (usb_core_driver *pudev,
+ usb_dev_prop *udev,
+ uint8_t pp_num,
+ uint8_t ep_type,
+ uint16_t ep_mpl);
+/* modify a pipe */
+uint8_t usbh_pipe_update (usb_core_driver *pudev,
+ uint8_t pp_num,
+ uint8_t dev_addr,
+ uint32_t dev_speed,
+ uint16_t ep_mpl);
+/* allocate a new pipe */
+uint8_t usbh_pipe_allocate (usb_core_driver *pudev, uint8_t ep_addr);
+/* free a pipe */
+uint8_t usbh_pipe_free (usb_core_driver *pudev, uint8_t pp_num);
+/* delete all USB host pipe */
+uint8_t usbh_pipe_delete (usb_core_driver *pudev);
+
+#endif /* __USBH_PIPE_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_transc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_transc.h
new file mode 100644
index 0000000000..975f49d68b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Include/usbh_transc.h
@@ -0,0 +1,51 @@
+/*!
+ \file usbh_transc.h
+ \brief USB host mode transactions header file
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USBH_TRANSC_H
+#define __USBH_TRANSC_H
+
+#include "usb_conf.h"
+#include "usbh_core.h"
+
+/* function declarations */
+/* send the setup packet to the USB device */
+usbh_status usbh_ctlsetup_send (usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num);
+/* send a data packet to the USB device */
+usbh_status usbh_data_send (usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len);
+/* receive a data packet from the USB device */
+usbh_status usbh_data_recev (usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len);
+/* USB control transfer handler */
+usbh_status usbh_ctl_handler (usbh_host *puhost);
+
+#endif /* __USBH_TRANSC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_core.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_core.c
new file mode 100644
index 0000000000..249af9192d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_core.c
@@ -0,0 +1,650 @@
+/*!
+ \file usbh_core.c
+ \brief USB host core state machine driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "drv_usb_hw.h"
+#include "usbh_pipe.h"
+#include "usbh_enum.h"
+#include "usbh_core.h"
+#include "drv_usbh_int.h"
+#include
+
+usb_core_driver usbh_core;
+
+/* local function prototypes ('static') */
+static uint8_t usbh_sof (usbh_host *puhost);
+static uint8_t usbh_connect (usbh_host *puhost);
+static uint8_t usbh_disconnect (usbh_host *puhost);
+static uint8_t usbh_port_enabled (usbh_host *puhost);
+static uint8_t usbh_port_disabled (usbh_host *puhost);
+static usbh_status usbh_enum_task (usbh_host *puhost);
+
+#ifdef USB_FS_LOW_PWR_ENABLE
+static void usb_hwp_suspend(usb_core_driver *pudev);
+static void usb_hwp_resume(usb_core_driver *pudev);
+#endif
+
+usbh_int_cb usbh_int_op =
+{
+ usbh_connect,
+ usbh_disconnect,
+ usbh_port_enabled,
+ usbh_port_disabled,
+ usbh_sof
+};
+
+usbh_int_cb *usbh_int_fop = &usbh_int_op;
+
+/*!
+ \brief USB host stack initializations
+ \param[in] puhost: pointer to USB host
+ \param[in] user_cb: pointer to user callback
+ \param[out] none
+ \retval none
+*/
+void usbh_init (usbh_host *puhost, usbh_user_cb *user_cb)
+{
+ /* host de-initializations */
+ usbh_deinit(puhost);
+
+ puhost->usr_cb = user_cb;
+
+ usbh_core.host.connect_status = 0U;
+
+ for (uint8_t i = 0U; i < USBFS_MAX_TX_FIFOS; i++) {
+ usbh_core.host.pipe[i].err_count = 0U;
+ usbh_core.host.pipe[i].pp_status = PIPE_IDLE;
+ usbh_core.host.backup_xfercount[i] = 0U;
+ }
+
+ usbh_core.host.pipe[0].ep.mps = 8U;
+
+#ifdef USE_USB_FS
+ usb_basic_init (&usbh_core.bp, &usbh_core.regs, USB_CORE_ENUM_FS);
+#endif /* USE_USB_FS */
+
+#ifndef DUAL_ROLE_MODE_ENABLED
+ usb_globalint_disable(&usbh_core.regs);
+
+ usb_core_init (usbh_core.bp, &usbh_core.regs);
+
+#ifndef USE_OTG_MODE
+ usb_curmode_set (&usbh_core.regs, HOST_MODE);
+#endif /* USE_OTG_MODE */
+
+ usb_host_init (&usbh_core);
+
+ usb_globalint_enable(&usbh_core.regs);
+#endif /* DUAL_ROLE_MODE_ENABLED */
+
+ /* link driver to the stack */
+ usbh_core.host.data = (void *)puhost;
+ puhost->data = (void *)&usbh_core;
+
+ /* upon init call usr call back */
+ puhost->usr_cb->dev_init();
+}
+
+/*!
+ \brief USB host register device class
+ \param[in] puhost: pointer to usb host instance
+ \param[in] puclass: pointer to USB device class
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_class_register (usbh_host *puhost, usbh_class *puclass)
+{
+ usbh_status status = USBH_OK;
+
+ if (NULL != puclass) {
+ if (puhost->class_num < USBH_MAX_SUPPORTED_CLASS) {
+ puhost->uclass[puhost->class_num++] = puclass;
+ } else {
+ status = USBH_FAIL;
+ }
+ } else {
+ status = USBH_FAIL;
+ }
+
+ return status;
+}
+
+/*!
+ \brief de-initialize USB host
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_deinit(usbh_host *puhost)
+{
+ /* software init */
+ puhost->cur_state = HOST_DEFAULT;
+ puhost->backup_state = HOST_DEFAULT;
+ puhost->enum_state = ENUM_DEFAULT;
+
+ puhost->control.ctl_state = CTL_IDLE;
+ puhost->control.max_len = USB_FS_EP0_MAX_LEN;
+
+ puhost->dev_prop.addr = USBH_DEV_ADDR_DEFAULT;
+ puhost->dev_prop.speed = PORT_SPEED_FULL;
+ puhost->dev_prop.cur_itf = 0xFFU;
+
+ usbh_pipe_free(&usbh_core, puhost->control.pipe_in_num);
+ usbh_pipe_free(&usbh_core, puhost->control.pipe_out_num);
+
+ return USBH_OK;
+}
+
+/*!
+ \brief USB host core main state machine process
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval none
+*/
+void usbh_core_task (usbh_host *puhost)
+{
+ volatile usbh_status status = USBH_FAIL;
+
+ /* check for host port events */
+ if (((0U == usbh_core.host.connect_status) || (0U == usbh_core.host.port_enabled)) && (HOST_DEFAULT != puhost->cur_state)) {
+ if (puhost->cur_state != HOST_DEV_DETACHED) {
+ puhost->cur_state = HOST_DEV_DETACHED;
+ }
+ }
+
+ switch (puhost->cur_state) {
+ case HOST_DEFAULT:
+ if (usbh_core.host.connect_status) {
+ puhost->cur_state = HOST_DETECT_DEV_SPEED;
+
+ usb_mdelay (100U);
+
+ usb_port_reset (&usbh_core);
+
+ puhost->usr_cb->dev_reset();
+ }
+ break;
+
+ case HOST_DETECT_DEV_SPEED:
+ if (usbh_core.host.port_enabled) {
+ puhost->cur_state = HOST_DEV_ATTACHED;
+
+ puhost->dev_prop.speed = usb_curspeed_get (&usbh_core);
+
+ puhost->usr_cb->dev_speed_detected(puhost->dev_prop.speed);
+
+ usb_mdelay (50U);
+ }
+ break;
+
+ case HOST_DEV_ATTACHED:
+ puhost->usr_cb->dev_attach();
+ puhost->control.pipe_out_num = usbh_pipe_allocate(&usbh_core, 0x00U);
+ puhost->control.pipe_in_num = usbh_pipe_allocate(&usbh_core, 0x80U);
+
+ /* open IN control pipe */
+ usbh_pipe_create (&usbh_core,
+ &puhost->dev_prop,
+ puhost->control.pipe_in_num,
+ USB_EPTYPE_CTRL,
+ (uint16_t)puhost->control.max_len);
+
+ /* open OUT control pipe */
+ usbh_pipe_create (&usbh_core,
+ &puhost->dev_prop,
+ puhost->control.pipe_out_num,
+ USB_EPTYPE_CTRL,
+ (uint16_t)puhost->control.max_len);
+
+ puhost->cur_state = HOST_ENUM;
+ break;
+
+ case HOST_ENUM:
+ /* check for enumeration status */
+ if (USBH_OK == usbh_enum_task (puhost)) {
+ /* the function shall return USBH_OK when full enumeration is complete */
+
+ /* user callback for end of device basic enumeration */
+ puhost->usr_cb->dev_enumerated();
+
+#ifdef USB_FS_LOW_PWR_ENABLE
+ puhost->cur_state = HOST_SUSPENDED;
+#else
+ puhost->cur_state = HOST_SET_WAKEUP_FEATURE;
+#endif
+ }
+ break;
+
+ case HOST_SET_WAKEUP_FEATURE:
+ if ((puhost->dev_prop.cfg_desc_set.cfg_desc.bmAttributes) & (1U << 5)) {
+ if (usbh_setdevfeature(puhost, FEATURE_SELECTOR_REMOTEWAKEUP, 0U) == USBH_OK) {
+ puhost->cur_state = HOST_CHECK_CLASS;
+ }
+ } else {
+ puhost->cur_state = HOST_CHECK_CLASS;
+ }
+ break;
+
+ case HOST_CHECK_CLASS:
+ if (puhost->class_num == 0U) {
+ puhost->cur_state = HOST_ERROR;
+ } else {
+ puhost->active_class = NULL;
+
+ uint8_t itf_class = puhost->dev_prop.cfg_desc_set.itf_desc_set[0][0].itf_desc.bInterfaceClass;
+
+ for (uint8_t index = 0U; index < puhost->class_num; index++) {
+ if ((puhost->uclass[index]->class_code == itf_class) || (0xFFU == itf_class)) {
+ puhost->active_class = puhost->uclass[index];
+ }
+ }
+
+ if (puhost->active_class != NULL) {
+ puhost->cur_state = HOST_USER_INPUT;
+ } else {
+ puhost->cur_state = HOST_ERROR;
+ }
+ }
+ break;
+
+ case HOST_USER_INPUT:
+ /* the function should return user response true to move to class state */
+ if (USBH_USER_RESP_OK == puhost->usr_cb->dev_user_input()) {
+ if ((USBH_OK == puhost->active_class->class_init(puhost))) {
+ puhost->cur_state = HOST_CLASS_ENUM;
+ }
+ }
+ break;
+
+#ifdef USB_FS_LOW_PWR_ENABLE
+ case HOST_SUSPENDED:
+ if (USBH_OK == usbh_setdevfeature(puhost, FEATURE_SELECTOR_DEV, 0U)) {
+ puhost->suspend_flag = 1;
+ usb_hwp_suspend(puhost->data);
+ puhost->usr_cb->dev_user_input();
+ pmu_to_deepsleepmode(PMU_LDO_LOWPOWER, WFI_CMD);
+ puhost->cur_state = HOST_WAKEUP;
+ }
+ break;
+
+ case HOST_WAKEUP:
+ if (USBH_OK == usbh_clrdevfeature(puhost, FEATURE_SELECTOR_DEV, 0U)) {
+ /* user callback for initalization */
+ puhost->usr_cb->dev_init();
+
+ puhost->cur_state = HOST_CHECK_CLASS;
+ }
+ break;
+#endif
+
+ case HOST_CLASS_ENUM:
+ /* process class standard contol requests state machine */
+ status = puhost->active_class->class_requests(puhost);
+
+ if (USBH_OK == status) {
+ puhost->cur_state = HOST_CLASS_HANDLER;
+ } else {
+ usbh_error_handler (puhost, status);
+ }
+ break;
+
+ case HOST_CLASS_HANDLER:
+ /* process class state machine */
+ status = puhost->active_class->class_machine(puhost);
+
+ usbh_error_handler (puhost, status);
+ break;
+
+ case HOST_ERROR:
+ /* re-initilaize host for new enumeration */
+ usbh_deinit (puhost);
+ puhost->usr_cb->dev_deinit();
+ puhost->active_class->class_deinit(puhost);
+ break;
+
+ case HOST_DEV_DETACHED:
+ /* manage user disconnect operations*/
+ puhost->usr_cb->dev_detach();
+
+ /* re-initilaize host for new enumeration */
+ usbh_deinit(puhost);
+ puhost->usr_cb->dev_deinit();
+ puhost->active_class->class_deinit(puhost);
+ usbh_pipe_delete(&usbh_core);
+ puhost->cur_state = HOST_DEFAULT;
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*!
+ \brief handle the error on USB host side
+ \param[in] puhost: pointer to USB host
+ \param[in] err_type: type of error or busy/OK state
+ \param[out] none
+ \retval none
+*/
+void usbh_error_handler (usbh_host *puhost, usbh_status err_type)
+{
+ /* error unrecovered or not supported device speed */
+ if ((USBH_SPEED_UNKNOWN_ERROR == err_type) || (USBH_UNRECOVERED_ERROR == err_type)) {
+ puhost->usr_cb->dev_error();
+
+ puhost->cur_state = HOST_ERROR;
+ } else if (USBH_APPLY_DEINIT == err_type) {
+ puhost->cur_state = HOST_ERROR;
+
+ /* user callback for initalization */
+ puhost->usr_cb->dev_init();
+ } else {
+ /* no operation */
+ }
+}
+
+/*!
+ \brief USB SOF callback function from the interrupt
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static uint8_t usbh_sof (usbh_host *puhost)
+{
+ /* this callback could be used to implement a scheduler process */
+ puhost->control.timer = (uint16_t)usb_curframe_get(&usbh_core);
+
+ if (puhost->active_class != NULL) {
+ if (puhost->active_class->class_sof != NULL) {
+ puhost->active_class->class_sof(puhost);
+ }
+ }
+
+ return 0U;
+}
+
+/*!
+ \brief USB connect callback function from the interrupt
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static uint8_t usbh_connect (usbh_host *puhost)
+{
+ usbh_core.host.connect_status = 1U;
+
+ return 0U;
+}
+
+/*!
+ \brief USB disconnect callback function from the interrupt
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static uint8_t usbh_disconnect (usbh_host *puhost)
+{
+ usbh_core.host.connect_status = 0U;
+
+ return 0U;
+}
+
+/*!
+ \brief USB port enable callback function from the interrupt
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static uint8_t usbh_port_enabled (usbh_host *puhost)
+{
+ usbh_core.host.port_enabled = 1U;
+
+ return 0U;
+}
+
+/*!
+ \brief USB port disabled callback function from the interrupt
+ \param[in] puhost: pointer to usb host
+ \param[out] none
+ \retval operation status
+*/
+static uint8_t usbh_port_disabled (usbh_host *puhost)
+{
+ usbh_core.host.port_enabled = 0U;
+
+ return 0U;
+}
+
+/*!
+ \brief handle the USB enumeration task
+ \param[in] puhost: pointer to host
+ \param[out] none
+ \retval none
+*/
+static usbh_status usbh_enum_task (usbh_host *puhost)
+{
+ uint8_t str_buf[64];
+
+ usbh_status status = USBH_BUSY;
+
+ static uint8_t index_mfc_str = 0U, index_prod_str = 0U, index_serial_str = 0U;
+
+ switch (puhost->enum_state) {
+ case ENUM_DEFAULT:
+ /* get device descriptor for only 1st 8 bytes : to get ep0 maxpacketsize */
+ if (USBH_OK == usbh_devdesc_get (puhost, 8U)) {
+ puhost->control.max_len = puhost->dev_prop.dev_desc.bMaxPacketSize0;
+
+ /* modify control channels configuration for maximum packet size */
+ usbh_pipe_update (&usbh_core,
+ puhost->control.pipe_out_num,
+ 0U, 0U,
+ (uint16_t)puhost->control.max_len);
+
+ usbh_pipe_update (&usbh_core,
+ puhost->control.pipe_in_num,
+ 0U, 0U,
+ (uint16_t)puhost->control.max_len);
+
+ puhost->enum_state = ENUM_GET_DEV_DESC;
+ }
+ break;
+
+ case ENUM_GET_DEV_DESC:
+ /* get full device descriptor */
+ if (USBH_OK == usbh_devdesc_get (puhost, USB_DEV_DESC_LEN)) {
+ puhost->usr_cb->dev_devdesc_assigned(&puhost->dev_prop.dev_desc);
+
+ index_mfc_str = puhost->dev_prop.dev_desc.iManufacturer;
+ index_prod_str = puhost->dev_prop.dev_desc.iProduct;
+ index_serial_str = puhost->dev_prop.dev_desc.iSerialNumber;
+
+ puhost->enum_state = ENUM_SET_ADDR;
+ }
+ break;
+
+ case ENUM_SET_ADDR:
+ /* set address */
+ if (USBH_OK == usbh_setaddress (puhost, USBH_DEV_ADDR)) {
+ usb_mdelay (2U);
+
+ puhost->dev_prop.addr = USBH_DEV_ADDR;
+
+ /* user callback for device address assigned */
+ puhost->usr_cb->dev_address_set();
+
+ /* modify control channels to update device address */
+ usbh_pipe_update (&usbh_core,
+ puhost->control.pipe_in_num,
+ puhost->dev_prop.addr,
+ 0U, 0U);
+
+ usbh_pipe_update (&usbh_core,
+ puhost->control.pipe_out_num,
+ puhost->dev_prop.addr,
+ 0U, 0U);
+
+ puhost->enum_state = ENUM_GET_CFG_DESC;
+ }
+ break;
+
+ case ENUM_GET_CFG_DESC:
+ /* get standard configuration descriptor */
+ if (USBH_OK == usbh_cfgdesc_get (puhost, USB_CFG_DESC_LEN)) {
+ puhost->enum_state = ENUM_GET_CFG_DESC_SET;
+ }
+ break;
+
+ case ENUM_GET_CFG_DESC_SET:
+ /* get full config descriptor (config, interface, endpoints) */
+ if (USBH_OK == usbh_cfgdesc_get (puhost, puhost->dev_prop.cfg_desc_set.cfg_desc.wTotalLength)) {
+ /* user callback for configuration descriptors available */
+ puhost->usr_cb->dev_cfgdesc_assigned (&puhost->dev_prop.cfg_desc_set.cfg_desc,
+ &puhost->dev_prop.cfg_desc_set.itf_desc_set[0][0].itf_desc,
+ &puhost->dev_prop.cfg_desc_set.itf_desc_set[0][0].ep_desc[0]);
+
+ puhost->enum_state = ENUM_GET_STR_DESC;
+ }
+ break;
+
+ case ENUM_GET_STR_DESC:
+ if (index_mfc_str) {
+ if (USBH_OK == usbh_strdesc_get (puhost,
+ puhost->dev_prop.dev_desc.iManufacturer,
+ str_buf,
+ 0xFFU)) {
+ /* user callback for manufacturing string */
+ puhost->usr_cb->dev_mfc_str(str_buf);
+
+ index_mfc_str = 0U;
+ }
+ } else {
+ if (index_prod_str) {
+ /* check that product string is available */
+ if (USBH_OK == usbh_strdesc_get (puhost,
+ puhost->dev_prop.dev_desc.iProduct,
+ str_buf,
+ 0xFFU)) {
+ puhost->usr_cb->dev_prod_str(str_buf);
+
+ index_prod_str = 0U;
+ }
+ } else {
+ if (index_serial_str) {
+ if (USBH_OK == usbh_strdesc_get (puhost,
+ puhost->dev_prop.dev_desc.iSerialNumber,
+ str_buf,
+ 0xFFU)) {
+ puhost->usr_cb->dev_seral_str(str_buf);
+ puhost->enum_state = ENUM_SET_CONFIGURATION;
+ index_serial_str = 0U;
+ }
+ } else {
+ puhost->enum_state = ENUM_SET_CONFIGURATION;
+ }
+ }
+ }
+ break;
+
+ case ENUM_SET_CONFIGURATION:
+ if (USBH_OK == usbh_setcfg (puhost, (uint16_t)puhost->dev_prop.cfg_desc_set.cfg_desc.bConfigurationValue)) {
+ puhost->enum_state = ENUM_DEV_CONFIGURED;
+ }
+ break;
+
+ case ENUM_DEV_CONFIGURED:
+ status = USBH_OK;
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+
+#ifdef USB_FS_LOW_PWR_ENABLE
+
+/*!
+ \brief handles the USB resume from suspend mode
+ \param[in] pudev: pointer to selected USB device
+ \param[out] none
+ \retval none
+*/
+static void usb_hwp_resume(usb_core_driver *pudev)
+{
+ __IO uint32_t hprt = 0U;
+
+ /* switch-on the clocks */
+ *pudev->regs.PWRCLKCTL &= ~PWRCLKCTL_SUCLK;
+
+ *pudev->regs.PWRCLKCTL &= ~PWRCLKCTL_SHCLK;
+
+ hprt = usb_port_read(pudev);
+
+ hprt &= ~HPCS_PSP;
+ hprt |= HPCS_PREM;
+
+ *pudev->regs.HPCS = hprt;
+
+ usb_mdelay (20U);
+
+ hprt &= ~HPCS_PREM;
+
+ *pudev->regs.HPCS = hprt;
+}
+
+/*!
+ \brief handles the USB enter to suspend mode
+ \param[in] pudev: pointer to selected USB device
+ \param[out] none
+ \retval none
+*/
+static void usb_hwp_suspend(usb_core_driver *pudev)
+{
+ __IO uint32_t hprt = 0U;
+
+ hprt = usb_port_read(pudev);
+
+ hprt |= HPCS_PSP;
+
+ *pudev->regs.HPCS = hprt;
+
+ /* switch-off the clocks */
+ *pudev->regs.PWRCLKCTL |= PWRCLKCTL_SUCLK;
+
+ *pudev->regs.PWRCLKCTL |= PWRCLKCTL_SHCLK;
+}
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_enum.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_enum.c
new file mode 100644
index 0000000000..1189a21301
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_enum.c
@@ -0,0 +1,693 @@
+/*!
+ \file usbh_enum.c
+ \brief USB host mode enumeration driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_pipe.h"
+#include "usbh_transc.h"
+#include "usbh_enum.h"
+
+/* local function prototypes ('static') */
+static void usbh_devdesc_parse (usb_desc_dev *dev_desc, uint8_t *buf, uint16_t len);
+static void usbh_cfgdesc_parse (usb_desc_config *cfg_desc, uint8_t *buf);
+static void usbh_cfgset_parse (usb_dev_prop *udev, uint8_t *buf);
+static void usbh_itfdesc_parse (usb_desc_itf *itf_desc, uint8_t *buf);
+static void usbh_epdesc_parse (usb_desc_ep *ep_desc, uint8_t *buf);
+static void usbh_strdesc_parse (uint8_t *psrc, uint8_t *pdest, uint16_t len);
+
+/*!
+ \brief configure USB control status parameters
+ \param[in] puhost: pointer to usb host
+ \param[in] buf: control transfer data buffer pointer
+ \param[in] len: length of the data buffer
+ \param[out] none
+ \retval none
+*/
+void usbh_ctlstate_config (usbh_host *puhost, uint8_t *buf, uint16_t len)
+{
+ /* prepare the transactions */
+ puhost->control.buf = buf;
+ puhost->control.ctl_len = len;
+
+ puhost->control.ctl_state = CTL_SETUP;
+}
+
+/*!
+ \brief get device descriptor from the USB device
+ \param[in] puhost: pointer to usb host
+ \param[in] len: length of the descriptor
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_devdesc_get (usbh_host *puhost, uint8_t len)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_GET_DESCRIPTOR,
+ .wValue = USBH_DESC(USB_DESCTYPE_DEV),
+ .wIndex = 0U,
+ .wLength = len
+ };
+
+ usbh_ctlstate_config (puhost, puhost->dev_prop.data, (uint16_t)len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ if (USBH_OK == status) {
+ /* commands successfully sent and response received */
+ usbh_devdesc_parse (&puhost->dev_prop.dev_desc, puhost->dev_prop.data, (uint16_t)len);
+ }
+
+ return status;
+}
+
+/*!
+ \brief get configuration descriptor from the USB device
+ \param[in] puhost: pointer to usb host
+ \param[in] len: length of the descriptor
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_cfgdesc_get (usbh_host *puhost, uint16_t len)
+{
+ uint8_t *pdata = NULL;
+
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+#if (USBH_KEEP_CFG_DESCRIPTOR == 1U)
+ pdata = puhost->dev_prop.cfgdesc_rawdata;
+#else
+ pdata = puhost->dev_prop.data;
+#endif
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_GET_DESCRIPTOR,
+ .wValue = USBH_DESC(USB_DESCTYPE_CONFIG),
+ .wIndex = 0U,
+ .wLength = len
+ };
+
+ usbh_ctlstate_config (puhost, pdata, len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ if (USBH_OK == status) {
+ if (len <= USB_CFG_DESC_LEN) {
+ usbh_cfgdesc_parse (&puhost->dev_prop.cfg_desc_set.cfg_desc, pdata);
+ } else {
+ usbh_cfgset_parse (&puhost->dev_prop, pdata);
+ }
+ }
+
+ return status;
+}
+
+/*!
+ \brief get string descriptor from the USB device
+ \param[in] puhost: pointer to usb host
+ \param[in] str_index: index for the string descriptor
+ \param[in] buf: buffer pointer to the string descriptor
+ \param[in] len: length of the descriptor
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_strdesc_get (usbh_host *puhost,
+ uint8_t str_index,
+ uint8_t *buf,
+ uint16_t len)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_IN | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_GET_DESCRIPTOR,
+ .wValue = USBH_DESC(USB_DESCTYPE_STR) | str_index,
+ .wIndex = 0x0409U,
+ .wLength = len
+ };
+
+ usbh_ctlstate_config (puhost, puhost->dev_prop.data, len);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ if (USBH_OK == status) {
+ /* commands successfully sent and response received */
+ usbh_strdesc_parse (puhost->dev_prop.data, buf, len);
+ }
+
+ return status;
+}
+
+/*!
+ \brief set the address to the connected device
+ \param[in] puhost: pointer to usb host
+ \param[in] dev_addr: device address to assign
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_setaddress (usbh_host *puhost, uint8_t dev_addr)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_SET_ADDRESS,
+ .wValue = (uint16_t)dev_addr,
+ .wIndex = 0U,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief set the configuration value to the connected device
+ \param[in] puhost: pointer to usb host
+ \param[in] config_index: configuration value
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_setcfg (usbh_host *puhost, uint16_t config_index)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_SET_CONFIGURATION,
+ .wValue = config_index,
+ .wIndex = 0U,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief set the interface value to the connected device
+ \param[in] puhost: pointer to usb host
+ \param[in] itf_num: interface number
+ \param[in] set: alternated setting value
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_setinterface (usbh_host *puhost, uint8_t itf_num, uint8_t set)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_ITF | USB_REQTYPE_STRD,
+ .bRequest = USB_SET_INTERFACE,
+ .wValue = set,
+ .wIndex = itf_num,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief set the interface value to the connected device
+ \param[in] puhost: pointer to usb host
+ \param[in] feature_selector: feature selector
+ \param[in] windex: index value
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_setdevfeature (usbh_host *puhost, uint8_t feature_selector, uint16_t windex)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_SET_FEATURE,
+ .wValue = feature_selector,
+ .wIndex = windex,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief clear the interface value to the connected device
+ \param[in] puhost: pointer to usb host
+ \param[in] feature_selector: feature selector
+ \param[in] windex: index value
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_clrdevfeature (usbh_host *puhost, uint8_t feature_selector, uint16_t windex)
+{
+ usbh_status status = USBH_BUSY;
+
+ usbh_control *usb_ctl = &puhost->control;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_DEV | USB_REQTYPE_STRD,
+ .bRequest = USB_CLEAR_FEATURE,
+ .wValue = feature_selector,
+ .wIndex = windex,
+ .wLength = 0U
+ };
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief clear or disable a specific feature
+ \param[in] puhost: pointer to usb host
+ \param[in] ep_addr: endpoint address
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_clrfeature (usbh_host *puhost, uint8_t ep_addr, uint8_t pp_num)
+{
+ usbh_status status = USBH_BUSY;
+ usbh_control *usb_ctl = &puhost->control;
+ usb_core_driver *pudev = (usb_core_driver *)puhost->data;
+
+ if (CTL_IDLE == usb_ctl->ctl_state) {
+ usb_ctl->setup.req = (usb_req) {
+ .bmRequestType = USB_TRX_OUT | USB_RECPTYPE_EP | USB_REQTYPE_STRD,
+ .bRequest = USB_CLEAR_FEATURE,
+ .wValue = FEATURE_SELECTOR_EP,
+ .wIndex = ep_addr,
+ .wLength = 0U
+ };
+
+ if (EP_ID(ep_addr) == pudev->host.pipe[pp_num].ep.num) {
+ usbh_pipe_toggle_set(pudev, pp_num, 0U);
+ } else {
+ return USBH_FAIL;
+ }
+
+ usbh_ctlstate_config (puhost, NULL, 0U);
+ }
+
+ status = usbh_ctl_handler (puhost);
+
+ return status;
+}
+
+/*!
+ \brief get the next descriptor header
+ \param[in] pbuf: pointer to buffer where the configuration descriptor set is available
+ \param[in] ptr: data pointer inside the configuration descriptor set
+ \param[out] none
+ \retval return descriptor header
+*/
+usb_desc_header *usbh_nextdesc_get (uint8_t *pbuf, uint16_t *ptr)
+{
+ usb_desc_header *pnext;
+
+ *ptr += ((usb_desc_header *)pbuf)->bLength;
+
+ pnext = (usb_desc_header *)((uint8_t *)pbuf + ((usb_desc_header *)pbuf)->bLength);
+
+ return (pnext);
+}
+
+/*!
+ \brief get the next descriptor header
+ \param[in] udev: pointer to device property
+ \param[in] interface: interface number
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_interface_select (usb_dev_prop *udev, uint8_t interface)
+{
+ usbh_status status = USBH_OK;
+
+ if (interface < udev->cfg_desc_set.cfg_desc.bNumInterfaces) {
+ udev->cur_itf = interface;
+ } else {
+ status = USBH_FAIL;
+ }
+
+ return status;
+}
+
+/*!
+ \brief find the interface index for a specific class
+ \param[in] udev: pointer to device property
+ \param[in] main_class: class code
+ \param[in] sub_class: subclass code
+ \param[in] protocol: Protocol code
+ \param[out] none
+ \retval interface index in the configuration structure
+ \note interface index 0xFF means interface index not found
+*/
+uint8_t usbh_interface_find (usb_dev_prop *udev, uint8_t main_class, uint8_t sub_class, uint8_t protocol)
+{
+ usb_desc_itf *pif;
+
+ uint8_t if_ix = 0U;
+
+ pif = (usb_desc_itf *)0;
+
+ while (if_ix < udev->cfg_desc_set.cfg_desc.bNumInterfaces) {
+ pif = &udev->cfg_desc_set.itf_desc_set[if_ix][0].itf_desc;
+
+ if (((pif->bInterfaceClass == main_class) || (main_class == 0xFFU))&&
+ ((pif->bInterfaceSubClass == sub_class) || (sub_class == 0xFFU))&&
+ ((pif->bInterfaceProtocol == protocol) || (protocol == 0xFFU))) {
+ return if_ix;
+ }
+
+ if_ix++;
+ }
+
+ return 0xFFU;
+}
+
+/*!
+ \brief find the interface index for a specific class interface and alternate setting number
+ \param[in] udev: pointer to device property
+ \param[in] interface_number: interface number
+ \param[in] alt_settings: alternate setting number
+ \param[out] none
+ \retval interface index in the configuration structure
+ \note interface index 0xFF means interface index not found
+*/
+uint8_t usbh_interfaceindex_find (usb_dev_prop *udev, uint8_t interface_number, uint8_t alt_settings)
+{
+ usb_desc_itf *pif;
+
+ uint8_t if_ix = 0U;
+
+ pif = (usb_desc_itf *)0;
+
+ while (if_ix < USBH_MAX_INTERFACES_NUM) {
+ pif = &udev->cfg_desc_set.itf_desc_set[if_ix][alt_settings].itf_desc;
+
+ if ((pif->bInterfaceNumber == interface_number) && (pif->bAlternateSetting == alt_settings)) {
+ return if_ix;
+ }
+
+ if_ix++;
+ }
+
+ return 0xFFU;
+}
+
+/*!
+ \brief parse the device descriptor
+ \param[in] dev_desc: pointer to usb device descriptor buffer
+ \param[in] buf: pointer to the source descriptor buffer
+ \param[in] len: length of the descriptor
+ \param[out] none
+ \retval none
+*/
+static void usbh_devdesc_parse (usb_desc_dev *dev_desc, uint8_t *buf, uint16_t len)
+{
+ *dev_desc = (usb_desc_dev) {
+ .header = {
+ .bLength = *(uint8_t *)(buf + 0U),
+ .bDescriptorType = *(uint8_t *)(buf + 1U)
+ },
+
+ .bcdUSB = BYTE_SWAP(buf + 2U),
+ .bDeviceClass = *(uint8_t *)(buf + 4U),
+ .bDeviceSubClass = *(uint8_t *)(buf + 5U),
+ .bDeviceProtocol = *(uint8_t *)(buf + 6U),
+ .bMaxPacketSize0 = *(uint8_t *)(buf + 7U)
+ };
+
+ if (len > 8U) {
+ /* for 1st time after device connection, host may issue only 8 bytes for device descriptor length */
+ dev_desc->idVendor = BYTE_SWAP(buf + 8U);
+ dev_desc->idProduct = BYTE_SWAP(buf + 10U);
+ dev_desc->bcdDevice = BYTE_SWAP(buf + 12U);
+ dev_desc->iManufacturer = *(uint8_t *)(buf + 14U);
+ dev_desc->iProduct = *(uint8_t *)(buf + 15U);
+ dev_desc->iSerialNumber = *(uint8_t *)(buf + 16U);
+ dev_desc->bNumberConfigurations = *(uint8_t *)(buf + 17U);
+ }
+}
+
+/*!
+ \brief parse the configuration descriptor
+ \param[in] cfg_desc: pointer to usb configuration descriptor buffer
+ \param[in] buf: pointer to the source descriptor buffer
+ \param[out] none
+ \retval none
+*/
+static void usbh_cfgdesc_parse (usb_desc_config *cfg_desc, uint8_t *buf)
+{
+ /* parse configuration descriptor */
+ *cfg_desc = (usb_desc_config) {
+ .header = {
+ .bLength = *(uint8_t *)(buf + 0U),
+ .bDescriptorType = *(uint8_t *)(buf + 1U),
+ },
+
+ .wTotalLength = BYTE_SWAP(buf + 2U),
+ .bNumInterfaces = *(uint8_t *)(buf + 4U),
+ .bConfigurationValue = *(uint8_t *)(buf + 5U),
+ .iConfiguration = *(uint8_t *)(buf + 6U),
+ .bmAttributes = *(uint8_t *)(buf + 7U),
+ .bMaxPower = *(uint8_t *)(buf + 8U)
+ };
+}
+
+/*!
+ \brief parse the configuration descriptor set
+ \param[in] udev: pointer to device property
+ \param[in] buf: pointer to the source descriptor buffer
+ \param[out] none
+ \retval none
+*/
+static void usbh_cfgset_parse (usb_dev_prop *udev, uint8_t *buf)
+{
+ usb_desc_ep *ep = NULL;
+ usb_desc_itf_set *itf = NULL;
+ usb_desc_itf itf_value;
+ usb_desc_config *cfg = NULL;
+
+ usb_desc_header *pdesc = (usb_desc_header *)buf;
+
+ uint8_t itf_index = 0U, ep_index = 0U, alt_setting = 0U;
+ uint8_t pre_itf_index = 0U;
+ uint16_t ptr;
+
+ /* parse configuration descriptor */
+ usbh_cfgdesc_parse (&udev->cfg_desc_set.cfg_desc, buf);
+ cfg = &udev->cfg_desc_set.cfg_desc;
+ ptr = USB_CFG_DESC_LEN;
+
+ if (cfg->bNumInterfaces > USBH_MAX_INTERFACES_NUM) {
+ return;
+ }
+
+ while (ptr < cfg->wTotalLength) {
+ pdesc = usbh_nextdesc_get ((uint8_t *)pdesc, &ptr);
+
+ if (pdesc->bDescriptorType == USB_DESCTYPE_ITF) {
+ itf_index = *(((uint8_t *)pdesc) + 2U);
+
+ if (pre_itf_index != itf_index) {
+ alt_setting = 0U;
+ }
+
+ itf = &udev->cfg_desc_set.itf_desc_set[itf_index][alt_setting];
+
+ alt_setting++;
+
+ if ((*((uint8_t *)pdesc + 3U)) < 3U) {
+ usbh_itfdesc_parse (&itf_value, (uint8_t *)pdesc);
+
+ /* parse endpoint descriptors relative to the current interface */
+ if (itf_value.bNumEndpoints > USBH_MAX_EP_NUM) {
+ return;
+ }
+
+ usbh_itfdesc_parse (&itf->itf_desc, (uint8_t *)&itf_value);
+
+ /* store the previous interface index */
+ pre_itf_index = itf_index;
+
+ if (0U == itf_value.bNumEndpoints) {
+ continue;
+ }
+
+ for (ep_index = 0U; ep_index < itf_value.bNumEndpoints; ) {
+ pdesc = usbh_nextdesc_get ((void*)pdesc, &ptr);
+
+ if (pdesc->bDescriptorType == USB_DESCTYPE_EP) {
+ ep = &itf->ep_desc[ep_index];
+
+ usbh_epdesc_parse (ep, (uint8_t *)pdesc);
+
+ ep_index++;
+ }
+ }
+ }
+ }
+ }
+}
+
+/*!
+ \brief parse the interface descriptor
+ \param[in] itf_desc: pointer to usb interface descriptor buffer
+ \param[in] buf: pointer to the source descriptor buffer
+ \param[out] none
+ \retval none
+*/
+static void usbh_itfdesc_parse (usb_desc_itf *itf_desc, uint8_t *buf)
+{
+ *itf_desc = (usb_desc_itf) {
+ .header = {
+ .bLength = *(uint8_t *)(buf + 0U),
+ .bDescriptorType = *(uint8_t *)(buf + 1U),
+ },
+
+ .bInterfaceNumber = *(uint8_t *)(buf + 2U),
+ .bAlternateSetting = *(uint8_t *)(buf + 3U),
+ .bNumEndpoints = *(uint8_t *)(buf + 4U),
+ .bInterfaceClass = *(uint8_t *)(buf + 5U),
+ .bInterfaceSubClass = *(uint8_t *)(buf + 6U),
+ .bInterfaceProtocol = *(uint8_t *)(buf + 7U),
+ .iInterface = *(uint8_t *)(buf + 8U)
+ };
+}
+
+/*!
+ \brief parse the endpoint descriptor
+ \param[in] ep_desc: pointer to usb endpoint descriptor buffer
+ \param[in] buf: pointer to the source descriptor buffer
+ \param[out] none
+ \retval none
+*/
+static void usbh_epdesc_parse (usb_desc_ep *ep_desc, uint8_t *buf)
+{
+ *ep_desc = (usb_desc_ep) {
+ .header = {
+ .bLength = *(uint8_t *)(buf + 0U),
+ .bDescriptorType = *(uint8_t *)(buf + 1U)
+ },
+
+ .bEndpointAddress = *(uint8_t *)(buf + 2U),
+ .bmAttributes = *(uint8_t *)(buf + 3U),
+ .wMaxPacketSize = BYTE_SWAP(buf + 4U),
+ .bInterval = *(uint8_t *)(buf + 6U)
+ };
+}
+
+/*!
+ \brief parse the string descriptor
+ \param[in] psrc: source pointer containing the descriptor data
+ \param[in] pdest: destination address pointer
+ \param[in] len: length of the descriptor
+ \param[out] none
+ \retval none
+*/
+static void usbh_strdesc_parse (uint8_t *psrc, uint8_t *pdest, uint16_t len)
+{
+ uint16_t str_len = 0U, index = 0U;
+
+ /* the unicode string descriptor is not NULL-terminated. The string length is
+ * computed by substracting two from the value of the first byte of the descriptor.
+ */
+
+ /* check which is lower size, the size of string or the length of bytes read from the device */
+ if (USB_DESCTYPE_STR == psrc[1]) {
+ /* make sure the descriptor is string type */
+
+ /* psrc[0] contains Size of Descriptor, subtract 2 to get the length of string */
+ str_len = USB_MIN((uint16_t)psrc[0] - 2U, len);
+
+ psrc += 2U; /* adjust the offset ignoring the string len and descriptor type */
+
+ for (index = 0U; index < str_len; index += 2U) {
+ /* copy only the string and ignore the unicode id, hence add the src */
+ *pdest = psrc[index];
+
+ pdest++;
+ }
+
+ *pdest = 0U; /* mark end of string */
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_pipe.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_pipe.c
new file mode 100644
index 0000000000..76cda95110
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_pipe.c
@@ -0,0 +1,174 @@
+/*!
+ \file usbh_pipe.c
+ \brief USB host mode pipe operation driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "usbh_pipe.h"
+
+/* local function prototypes ('static') */
+static uint16_t usbh_freepipe_get (usb_core_driver *pudev);
+
+/*!
+ \brief create a pipe
+ \param[in] pudev: pointer to usb core instance
+ \param[in] udev: USB device
+ \param[in] pp_num: pipe number
+ \param[in] ep_type: endpoint type
+ \param[in] ep_mpl: endpoint max packet length
+ \param[out] none
+ \retval operation status
+*/
+uint8_t usbh_pipe_create (usb_core_driver *pudev,
+ usb_dev_prop *udev,
+ uint8_t pp_num,
+ uint8_t ep_type,
+ uint16_t ep_mpl)
+{
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ pp->dev_addr = udev->addr;
+ pp->dev_speed = udev->speed;
+ pp->ep.type = ep_type;
+ pp->ep.mps = ep_mpl;
+ pp->ping = (uint8_t)(udev->speed == PORT_SPEED_HIGH);
+
+ usb_pipe_init (pudev, pp_num);
+
+ return HC_OK;
+}
+
+/*!
+ \brief modify a pipe
+ \param[in] pudev: pointer to usb core instance
+ \param[in] pp_num: pipe number
+ \param[in] dev_addr: device address
+ \param[in] dev_speed: device speed
+ \param[in] ep_mpl: endpoint max packet length
+ \param[out] none
+ \retval operation status
+*/
+uint8_t usbh_pipe_update (usb_core_driver *pudev,
+ uint8_t pp_num,
+ uint8_t dev_addr,
+ uint32_t dev_speed,
+ uint16_t ep_mpl)
+{
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ if ((pp->dev_addr != dev_addr) && (dev_addr)) {
+ pp->dev_addr = dev_addr;
+ }
+
+ if ((pp->dev_speed != dev_speed) && (dev_speed)) {
+ pp->dev_speed = dev_speed;
+ }
+
+ if ((pp->ep.mps != ep_mpl) && (ep_mpl)) {
+ pp->ep.mps = ep_mpl;
+ }
+
+ usb_pipe_init (pudev, pp_num);
+
+ return HC_OK;
+}
+
+/*!
+ \brief allocate a new pipe
+ \param[in] pudev: pointer to usb core instance
+ \param[in] ep_addr: endpoint address
+ \param[out] none
+ \retval operation status
+*/
+uint8_t usbh_pipe_allocate (usb_core_driver *pudev, uint8_t ep_addr)
+{
+ uint16_t pp_num = usbh_freepipe_get (pudev);
+
+ if (HC_ERROR != pp_num) {
+ pudev->host.pipe[pp_num].in_used = 1U;
+ pudev->host.pipe[pp_num].ep.dir = EP_DIR(ep_addr);
+ pudev->host.pipe[pp_num].ep.num = EP_ID(ep_addr);
+ }
+
+ return (uint8_t)pp_num;
+}
+
+/*!
+ \brief free a pipe
+ \param[in] pudev: pointer to usb core instance
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval operation status
+*/
+uint8_t usbh_pipe_free (usb_core_driver *pudev, uint8_t pp_num)
+{
+ if (pp_num < HC_MAX) {
+ pudev->host.pipe[pp_num].in_used = 0U;
+ }
+
+ return USBH_OK;
+}
+
+/*!
+ \brief delete all USB host pipe
+ \param[in] pudev: pointer to usb core instance
+ \param[out] none
+ \retval operation status
+*/
+uint8_t usbh_pipe_delete (usb_core_driver *pudev)
+{
+ uint8_t pp_num = 0U;
+
+ for (pp_num = 2U; pp_num < HC_MAX; pp_num++) {
+ pudev->host.pipe[pp_num] = (usb_pipe) {0};
+ }
+
+ return USBH_OK;
+}
+
+/*!
+ \brief get a free pipe number for allocation
+ \param[in] pudev: pointer to usb core instance
+ \param[out] none
+ \retval operation status
+*/
+static uint16_t usbh_freepipe_get (usb_core_driver *pudev)
+{
+ uint8_t pp_num = 0U;
+
+ for (pp_num = 0U; pp_num < HC_MAX; pp_num++) {
+ if (0U == pudev->host.pipe[pp_num].in_used) {
+ return (uint16_t)pp_num;
+ }
+ }
+
+ return HC_ERROR;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_transc.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_transc.c
new file mode 100644
index 0000000000..ad20a423f7
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/host/core/Source/usbh_transc.c
@@ -0,0 +1,370 @@
+/*!
+ \file usbh_transc.c
+ \brief USB host mode transactions driver
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#include "drv_usb_hw.h"
+#include "usbh_pipe.h"
+#include "usbh_transc.h"
+
+/* local function prototypes ('static') */
+static usb_urb_state usbh_urb_wait (usbh_host *puhost, uint8_t pp_num, uint32_t wait_time);
+static void usbh_setup_transc (usbh_host *puhost);
+static void usbh_data_in_transc (usbh_host *puhost);
+static void usbh_data_out_transc (usbh_host *puhost);
+static void usbh_status_in_transc (usbh_host *puhost);
+static void usbh_status_out_transc (usbh_host *puhost);
+static uint32_t usbh_request_submit (usb_core_driver *pudev, uint8_t pp_num);
+
+/*!
+ \brief send the setup packet to the USB device
+ \param[in] pudev: pointer to usb core instance
+ \param[in] buf: data buffer which will be sent to USB device
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_ctlsetup_send (usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num)
+{
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ pp->DPID = PIPE_DPID_SETUP;
+ pp->xfer_buf = buf;
+ pp->xfer_len = USB_SETUP_PACKET_LEN;
+
+ return (usbh_status)usbh_request_submit (pudev, pp_num);
+}
+
+/*!
+ \brief send a data packet to the USB device
+ \param[in] pudev: pointer to usb core instance
+ \param[in] buf: data buffer which will be sent to USB device
+ \param[in] pp_num: pipe number
+ \param[in] len: length of the data to be sent
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_data_send (usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len)
+{
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ pp->xfer_buf = buf;
+ pp->xfer_len = len;
+
+ switch (pp->ep.type) {
+ case USB_EPTYPE_CTRL:
+ if (0U == len) {
+ pp->data_toggle_out = 1U;
+ }
+
+ pp->DPID = PIPE_DPID[pp->data_toggle_out];
+ break;
+
+ case USB_EPTYPE_INTR:
+ pp->DPID = PIPE_DPID[pp->data_toggle_out];
+
+ pp->data_toggle_out ^= 1U;
+ break;
+
+ case USB_EPTYPE_BULK:
+ pp->DPID = PIPE_DPID[pp->data_toggle_out];
+ break;
+
+ case USB_EPTYPE_ISOC:
+ pp->DPID = PIPE_DPID[0];
+ break;
+
+ default:
+ break;
+ }
+
+ usbh_request_submit (pudev, pp_num);
+
+ return USBH_OK;
+}
+
+/*!
+ \brief receive a data packet from the USB device
+ \param[in] pudev: pointer to usb core instance
+ \param[in] buf: data buffer which will be received from USB device
+ \param[in] pp_num: pipe number
+ \param[in] len: length of the data to be received
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_data_recev (usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len)
+{
+ usb_pipe *pp = &pudev->host.pipe[pp_num];
+
+ pp->xfer_buf = buf;
+ pp->xfer_len = len;
+
+ switch (pp->ep.type) {
+ case USB_EPTYPE_CTRL:
+ pp->DPID = PIPE_DPID[1];
+ break;
+
+ case USB_EPTYPE_INTR:
+ pp->DPID = PIPE_DPID[pp->data_toggle_in];
+
+ /* Toggle DATA PID */
+ pp->data_toggle_in ^= 1U;
+ break;
+
+ case USB_EPTYPE_BULK:
+ pp->DPID = PIPE_DPID[pp->data_toggle_in];
+ break;
+
+ case USB_EPTYPE_ISOC:
+ pp->DPID = PIPE_DPID[0];
+ break;
+
+ default:
+ break;
+ }
+
+ usbh_request_submit (pudev, pp_num);
+
+ return USBH_OK;
+}
+
+/*!
+ \brief USB control transfer handler
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval operation status
+*/
+usbh_status usbh_ctl_handler (usbh_host *puhost)
+{
+ usbh_status status = USBH_BUSY;
+
+ switch (puhost->control.ctl_state) {
+ case CTL_SETUP:
+ usbh_setup_transc (puhost);
+ break;
+
+ case CTL_DATA_IN:
+ usbh_data_in_transc (puhost);
+ break;
+
+ case CTL_DATA_OUT:
+ usbh_data_out_transc (puhost);
+ break;
+
+ case CTL_STATUS_IN:
+ usbh_status_in_transc (puhost);
+ break;
+
+ case CTL_STATUS_OUT:
+ usbh_status_out_transc (puhost);
+ break;
+
+ case CTL_FINISH:
+ puhost->control.ctl_state = CTL_IDLE;
+
+ status = USBH_OK;
+ break;
+
+ case CTL_ERROR:
+ if (++puhost->control.error_count <= USBH_MAX_ERROR_COUNT) {
+ /* do the transmission again, starting from SETUP packet */
+ puhost->control.ctl_state = CTL_SETUP;
+ } else {
+ status = USBH_FAIL;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return status;
+}
+
+/*!
+ \brief wait for USB URB(USB request block) state
+ \param[in] puhost: pointer to USB host
+ \param[in] pp_num: pipe number
+ \param[in] wait_time: wait time
+ \param[out] none
+ \retval USB URB state
+*/
+static usb_urb_state usbh_urb_wait (usbh_host *puhost, uint8_t pp_num, uint32_t wait_time)
+{
+ usb_urb_state urb_status = URB_IDLE;
+
+ while (URB_DONE != (urb_status = usbh_urbstate_get(puhost->data, pp_num))) {
+ if (URB_NOTREADY == urb_status) {
+ break;
+ } else if (URB_STALL == urb_status) {
+ puhost->control.ctl_state = CTL_SETUP;
+ break;
+ } else if (URB_ERROR == urb_status) {
+ puhost->control.ctl_state = CTL_ERROR;
+ break;
+ } else if ((wait_time > 0U) && ((usb_curframe_get(puhost->data)- puhost->control.timer) > wait_time)) {
+ /* timeout for in transfer */
+ puhost->control.ctl_state = CTL_ERROR;
+ break;
+ } else {
+ /* no operation, just wait */
+ }
+ }
+
+ return urb_status;
+}
+
+/*!
+ \brief USB setup transaction
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval none
+*/
+static void usbh_setup_transc (usbh_host *puhost)
+{
+ /* send a SETUP packet */
+ usbh_ctlsetup_send (puhost->data,
+ puhost->control.setup.data,
+ puhost->control.pipe_out_num);
+
+ if (URB_DONE == usbh_urb_wait (puhost, puhost->control.pipe_out_num, 0U)) {
+ uint8_t dir = (puhost->control.setup.req.bmRequestType & USB_TRX_MASK);
+
+ if (puhost->control.setup.req.wLength) {
+ if (USB_TRX_IN == dir) {
+ puhost->control.ctl_state = CTL_DATA_IN;
+ } else {
+ puhost->control.ctl_state = CTL_DATA_OUT;
+ }
+ } else {
+ if (USB_TRX_IN == dir) {
+ puhost->control.ctl_state = CTL_STATUS_OUT;
+ } else {
+ puhost->control.ctl_state = CTL_STATUS_IN;
+ }
+ }
+
+ /* set the delay timer to enable timeout for data stage completion */
+ puhost->control.timer = (uint16_t)usb_curframe_get(puhost->data);
+ }
+}
+
+/*!
+ \brief USB data IN transaction
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval none
+*/
+static void usbh_data_in_transc (usbh_host *puhost)
+{
+ usbh_data_recev (puhost->data,
+ puhost->control.buf,
+ puhost->control.pipe_in_num,
+ puhost->control.ctl_len);
+
+ if (URB_DONE == usbh_urb_wait (puhost, puhost->control.pipe_in_num, DATA_STAGE_TIMEOUT)) {
+ puhost->control.ctl_state = CTL_STATUS_OUT;
+
+ puhost->control.timer = (uint16_t)usb_curframe_get(puhost->data);
+ }
+}
+
+/*!
+ \brief USB data OUT transaction
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval none
+*/
+static void usbh_data_out_transc (usbh_host *puhost)
+{
+ usbh_pipe_toggle_set(puhost->data, puhost->control.pipe_out_num, 1U);
+
+ usbh_data_send (puhost->data,
+ puhost->control.buf,
+ puhost->control.pipe_out_num,
+ puhost->control.ctl_len);
+
+ if (URB_DONE == usbh_urb_wait (puhost, puhost->control.pipe_out_num, DATA_STAGE_TIMEOUT)) {
+ puhost->control.ctl_state = CTL_STATUS_IN;
+
+ puhost->control.timer = (uint16_t)usb_curframe_get(puhost->data);
+ }
+}
+
+/*!
+ \brief USB status IN transaction
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval none
+*/
+static void usbh_status_in_transc (usbh_host *puhost)
+{
+ uint8_t pp_num = puhost->control.pipe_in_num;
+
+ usbh_data_recev (puhost->data, NULL, pp_num, 0U);
+
+ if (URB_DONE == usbh_urb_wait (puhost, pp_num, NODATA_STAGE_TIMEOUT)) {
+ puhost->control.ctl_state = CTL_FINISH;
+ }
+}
+
+/*!
+ \brief USB status OUT transaction
+ \param[in] puhost: pointer to USB host
+ \param[out] none
+ \retval none
+*/
+static void usbh_status_out_transc (usbh_host *puhost)
+{
+ uint8_t pp_num = puhost->control.pipe_out_num;
+
+ usbh_data_send (puhost->data, NULL, pp_num, 0U);
+
+ if (URB_DONE == usbh_urb_wait (puhost, pp_num, NODATA_STAGE_TIMEOUT)) {
+ puhost->control.ctl_state = CTL_FINISH;
+ }
+}
+
+/*!
+ \brief prepare a pipe and start a transfer
+ \param[in] pudev: pointer to usb core instance
+ \param[in] pp_num: pipe number
+ \param[out] none
+ \retval operation status
+*/
+static uint32_t usbh_request_submit (usb_core_driver *pudev, uint8_t pp_num)
+{
+ pudev->host.pipe[pp_num].urb_state = URB_IDLE;
+ pudev->host.pipe[pp_num].xfer_count = 0U;
+
+ return (uint32_t)usb_pipe_xfer (pudev, pp_num);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/cdc/usb_cdc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/cdc/usb_cdc.h
new file mode 100644
index 0000000000..88d9970403
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/cdc/usb_cdc.h
@@ -0,0 +1,180 @@
+/*!
+ \file usb_cdc.h
+ \brief the header file of communication device class standard
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USB_CDC_H
+#define __USB_CDC_H
+
+#include "usb_ch9_std.h"
+
+/* communications device class code */
+#define USB_CLASS_CDC 0x02U
+
+/* communications interface class control protocol codes */
+#define USB_CDC_PROTOCOL_NONE 0x00U
+#define USB_CDC_PROTOCOL_AT 0x01U
+#define USB_CDC_PROTOCOL_VENDOR 0xFFU
+
+/* data interface class code */
+#define USB_CLASS_DATA 0x0AU
+
+#define USB_DESCTYPE_CDC_ACM 0x21U
+#define USB_DESCTYPE_CS_INTERFACE 0x24U
+
+#define USB_CDC_ACM_CONFIG_DESC_SIZE 0x43U
+
+/* class-specific notification codes for pstn subclasses */
+#define USB_CDC_NOTIFY_SERIAL_STATE 0x20U
+
+/* class-specific request codes */
+#define SEND_ENCAPSULATED_COMMAND 0x00U
+#define GET_ENCAPSULATED_RESPONSE 0x01U
+#define SET_COMM_FEATURE 0x02U
+#define GET_COMM_FEATURE 0x03U
+#define CLEAR_COMM_FEATURE 0x04U
+
+#define SET_AUX_LINE_STATE 0x10U
+#define SET_HOOK_STATE 0x11U
+#define PULSE_SETUP 0x12U
+#define SEND_PULSE 0x13U
+#define SET_PULSE_TIME 0x14U
+#define RING_AUX_JACK 0x15U
+
+#define SET_LINE_CODING 0x20U
+#define GET_LINE_CODING 0x21U
+#define SET_CONTROL_LINE_STATE 0x22U
+#define SEND_BREAK 0x23U
+#define NO_CMD 0xFFU
+
+#define SET_RINGER_PARMS 0x30U
+#define GET_RINGER_PARMS 0x31U
+#define SET_OPERATION_PARMS 0x32U
+#define GET_OPERATION_PARMS 0x33U
+#define SET_LINE_PARMS 0x34U
+#define GET_LINE_PARMS 0x35U
+#define DIAL_DIGITS 0x36U
+#define SET_UNIT_PARAMETER 0x37U
+#define GET_UNIT_PARAMETER 0x38U
+#define CLEAR_UNIT_PARAMETER 0x39U
+#define GET_PROFILE 0x3AU
+
+#define SET_ETHERNET_MULTICAST_FILTERS 0x40U
+#define SET_ETHERNET_POWER_MANAGEMENT_PATTERN FILTER 0x41U
+#define GET_ETHERNET_POWER_MANAGEMENT_PATTERN FILTER 0x42U
+#define SET_ETHERNET_PACKET_FILTER 0x43U
+#define GET_ETHERNET_STATISTIC 0x44U
+
+#define SET_ATM_DATA_FORMAT 0x50U
+#define GET_ATM_DEVICE_STATISTICS 0x51U
+#define SET_ATM_DEFAULT_VC 0x52U
+#define GET_ATM_VC_STATISTICS 0x53U
+
+/* wValue for set control line state */
+#define CDC_ACTIVATE_CARRIER_SIGNAL_RTS 0x0002U
+#define CDC_DEACTIVATE_CARRIER_SIGNAL_RTS 0x0000U
+#define CDC_ACTIVATE_SIGNAL_DTR 0x0001U
+#define CDC_DEACTIVATE_SIGNAL_DTR 0x0000U
+
+/* CDC subclass code */
+enum usb_cdc_subclass {
+ USB_CDC_SUBCLASS_RESERVED = 0U, /*!< reserved */
+ USB_CDC_SUBCLASS_DLCM, /*!< direct line control mode */
+ USB_CDC_SUBCLASS_ACM, /*!< abstract control mode */
+ USB_CDC_SUBCLASS_TCM, /*!< telephone control mode */
+ USB_CDC_SUBCLASS_MCM, /*!< multichannel control model */
+ USB_CDC_SUBCLASS_CCM, /*!< CAPI control model */
+ USB_CDC_SUBCLASS_ENCM, /*!< ethernet networking control model */
+ USB_CDC_SUBCLASS_ANCM /*!< ATM networking control model */
+};
+
+#pragma pack(1)
+
+/* cdc acm line coding structure */
+typedef struct {
+ uint32_t dwDTERate; /*!< data terminal rate */
+ uint8_t bCharFormat; /*!< stop bits */
+ uint8_t bParityType; /*!< parity */
+ uint8_t bDataBits; /*!< data bits */
+} acm_line;
+
+/* notification structure */
+typedef struct {
+ uint8_t bmRequestType; /*!< type of request */
+ uint8_t bNotification; /*!< communication interface class notifications */
+ uint16_t wValue; /*!< value of notification */
+ uint16_t wIndex; /*!< index of interface */
+ uint16_t wLength; /*!< length of notification data */
+} acm_notification;
+
+typedef struct {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+ uint8_t bDescriptorSubtype; /*!< bDescriptorSubtype: header function descriptor */
+ uint16_t bcdCDC; /*!< bcdCDC: low byte of spec release number (CDC1.10) */
+} usb_desc_header_func;
+
+typedef struct {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+ uint8_t bDescriptorSubtype; /*!< bDescriptorSubtype: call management function descriptor */
+ uint8_t bmCapabilities; /*!< bmCapabilities: D0 is reset, D1 is ignored */
+ uint8_t bDataInterface; /*!< bDataInterface: 1 interface used for call management */
+} usb_desc_call_managment_func;
+
+typedef struct {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+ uint8_t bDescriptorSubtype; /*!< bDescriptorSubtype: abstract control management descriptor */
+ uint8_t bmCapabilities; /*!< bmCapabilities: D1 */
+} usb_desc_acm_func;
+
+typedef struct {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+ uint8_t bDescriptorSubtype; /*!< bDescriptorSubtype: union function descriptor */
+ uint8_t bMasterInterface; /*!< bMasterInterface: communication class interface */
+ uint8_t bSlaveInterface0; /*!< bSlaveInterface0: data class interface */
+} usb_desc_union_func;
+
+#pragma pack()
+
+typedef struct {
+ usb_desc_config config;
+ usb_desc_itf cmd_itf;
+ usb_desc_header_func cdc_header;
+ usb_desc_call_managment_func cdc_call_managment;
+ usb_desc_acm_func cdc_acm;
+ usb_desc_union_func cdc_union;
+ usb_desc_ep cdc_cmd_endpoint;
+ usb_desc_itf cdc_data_interface;
+ usb_desc_ep cdc_out_endpoint;
+ usb_desc_ep cdc_in_endpoint;
+} usb_cdc_desc_config_set;
+
+#endif /* __USB_CDC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/hid/usb_hid.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/hid/usb_hid.h
new file mode 100644
index 0000000000..34325104b1
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/hid/usb_hid.h
@@ -0,0 +1,83 @@
+/*!
+ \file usb_hid.h
+ \brief definitions for the USB HID class
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USB_HID_H
+#define __USB_HID_H
+
+#include "usb_ch9_std.h"
+
+#define USB_HID_CLASS 0x03U
+
+#define USB_DESCTYPE_HID 0x21U
+#define USB_DESCTYPE_REPORT 0x22U
+
+/* HID subclass code */
+#define USB_HID_SUBCLASS_BOOT_ITF 0x01U
+
+/* HID protocol codes */
+#define USB_HID_PROTOCOL_KEYBOARD 0x01U
+#define USB_HID_PROTOCOL_MOUSE 0x02U
+
+#define GET_REPORT 0x01U
+#define GET_IDLE 0x02U
+#define GET_PROTOCOL 0x03U
+#define SET_REPORT 0x09U
+#define SET_IDLE 0x0AU
+#define SET_PROTOCOL 0x0BU
+
+#pragma pack(1)
+
+typedef struct
+{
+ usb_desc_header header; /*!< regular descriptor header containing the descriptor's type and length */
+
+ uint16_t bcdHID; /*!< BCD encoded version that the HID descriptor and device complies to */
+ uint8_t bCountryCode; /*!< country code of the localized device, or zero if universal */
+ uint8_t bNumDescriptors; /*!< total number of HID report descriptors for the interface */
+ uint8_t bDescriptorType; /*!< type of HID report */
+ uint16_t wDescriptorLength; /*!< length of the associated HID report descriptor, in bytes */
+} usb_desc_hid;
+
+#pragma pack()
+
+typedef struct
+{
+ usb_desc_config config;
+ usb_desc_itf hid_itf;
+ usb_desc_hid hid_vendor;
+ usb_desc_ep hid_epin;
+ usb_desc_ep hid_epout;
+}usb_hid_desc_config_set;
+
+#endif /* __USB_HID_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/msc_bbb.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/msc_bbb.h
new file mode 100644
index 0000000000..9ad59a37f1
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/msc_bbb.h
@@ -0,0 +1,69 @@
+/*!
+ \file msc_bbb.h
+ \brief definitions for the USB MSC BBB(bulk/bulk/bulk) protocol
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __MSC_BBB_H
+#define __MSC_BBB_H
+
+#include "usb_ch9_std.h"
+
+#define BBB_CBW_SIGNATURE 0x43425355U
+#define BBB_CSW_SIGNATURE 0x53425355U
+#define BBB_CBW_LENGTH 31U
+#define BBB_CSW_LENGTH 13U
+
+typedef struct {
+ uint32_t dCBWSignature;
+ uint32_t dCBWTag;
+ uint32_t dCBWDataTransferLength;
+ uint8_t bmCBWFlags;
+ uint8_t bCBWLUN;
+ uint8_t bCBWCBLength;
+ uint8_t CBWCB[16];
+}msc_bbb_cbw;
+
+typedef struct {
+ uint32_t dCSWSignature;
+ uint32_t dCSWTag;
+ uint32_t dCSWDataResidue;
+ uint8_t bCSWStatus;
+}msc_bbb_csw;
+
+/* CSW command status */
+enum msc_csw_status {
+ CSW_CMD_PASSED = 0,
+ CSW_CMD_FAILED,
+ CSW_PHASE_ERROR
+};
+
+#endif /* __MSC_BBB_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/msc_scsi.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/msc_scsi.h
new file mode 100644
index 0000000000..7207c9c082
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/msc_scsi.h
@@ -0,0 +1,117 @@
+/*!
+ \file msc_scsi.h
+ \brief definitions for the USB MSC SCSI commands
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __MSC_SCSI_H
+#define __MSC_SCSI_H
+
+#include "usb_ch9_std.h"
+
+/* SCSI commands */
+#define SCSI_FORMAT_UNIT 0x04U
+#define SCSI_INQUIRY 0x12U
+#define SCSI_MODE_SELECT6 0x15U
+#define SCSI_MODE_SELECT10 0x55U
+#define SCSI_MODE_SENSE6 0x1AU
+#define SCSI_READ_TOC_DATA 0x43U
+#define SCSI_MODE_SENSE10 0x5AU
+#define SCSI_ALLOW_MEDIUM_REMOVAL 0x1EU
+#define SCSI_READ6 0x08U
+#define SCSI_READ10 0x28U
+#define SCSI_READ12 0xA8U
+#define SCSI_READ16 0x88U
+
+#define SCSI_READ_CAPACITY10 0x25U
+#define SCSI_READ_CAPACITY16 0x9EU
+
+#define SCSI_REQUEST_SENSE 0x03U
+#define SCSI_START_STOP_UNIT 0x1BU
+#define SCSI_TEST_UNIT_READY 0x00U
+#define SCSI_WRITE6 0x0AU
+#define SCSI_WRITE10 0x2AU
+#define SCSI_WRITE12 0xAAU
+#define SCSI_WRITE16 0x8AU
+
+#define SCSI_VERIFY10 0x2FU
+#define SCSI_VERIFY12 0xAFU
+#define SCSI_VERIFY16 0x8FU
+
+#define SCSI_SEND_DIAGNOSTIC 0x1DU
+#define SCSI_READ_FORMAT_CAPACITIES 0x23U
+
+#define INVALID_CDB 0x20U
+#define INVALID_FIELED_IN_COMMAND 0x24U
+#define PARAMETER_LIST_LENGTH_ERROR 0x1AU
+#define INVALID_FIELD_IN_PARAMETER_LIST 0x26U
+#define ADDRESS_OUT_OF_RANGE 0x21U
+#define MEDIUM_NOT_PRESENT 0x3AU
+#define MEDIUM_HAVE_CHANGED 0x28U
+#define WRITE_PROTECTED 0x27U
+#define UNRECOVERED_READ_ERROR 0x11U
+#define WRITE_FAULT 0x03U
+
+#define READ_FORMAT_CAPACITY_DATA_LEN 0x0CU
+#define READ_CAPACITY10_DATA_LEN 0x08U
+#define MODE_SENSE10_DATA_LEN 0x08U
+#define MODE_SENSE6_DATA_LEN 0x04U
+#define READ_TOC_CMD_LEN 0x14U
+#define REQUEST_SENSE_DATA_LEN 0x12U
+#define STANDARD_INQUIRY_DATA_LEN 0x24U
+#define BLKVFY 0x04U
+
+enum sense_state {
+ NO_SENSE = 0U,
+ RECOVERED_ERROR,
+ NOT_READY,
+ MEDIUM_ERROR,
+ HARDWARE_ERROR,
+ ILLEGAL_REQUEST,
+ UNIT_ATTENTION,
+ DATA_PROTECT,
+ BLANK_CHECK,
+ VENDOR_SPECIFIC,
+ COPY_ABORTED,
+ ABORTED_COMMAND,
+ RESERVED,
+ VOLUME_OVERFLOW,
+ MISCOMPARE
+};
+
+typedef struct {
+ uint8_t SenseKey;
+ uint32_t Information;
+ uint8_t ASC;
+ uint8_t ASCQ;
+} msc_scsi_sense;
+
+#endif /* __MSC_SCSI_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/usb_msc.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/usb_msc.h
new file mode 100644
index 0000000000..759fee5e1d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/class/msc/usb_msc.h
@@ -0,0 +1,68 @@
+/*!
+ \file usb_msc.h
+ \brief definitions for the USB MSC class
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USB_MSC_H
+#define __USB_MSC_H
+
+#include "usb_ch9_std.h"
+
+/* mass storage device class code */
+#define USB_CLASS_MSC 0x08U
+
+/* mass storage subclass code */
+#define USB_MSC_SUBCLASS_RBC 0x01U
+#define USB_MSC_SUBCLASS_ATAPI 0x02U
+#define USB_MSC_SUBCLASS_UFI 0x04U
+#define USB_MSC_SUBCLASS_SCSI 0x06U
+#define USB_MSC_SUBCLASS_LOCKABLE 0x07U
+#define USB_MSC_SUBCLASS_IEEE1667 0x08U
+
+/* mass storage interface class control protocol codes */
+#define USB_MSC_PROTOCOL_CBI 0x00U
+#define USB_MSC_PROTOCOL_CBI_ALT 0x01U
+#define USB_MSC_PROTOCOL_BBB 0x50U
+
+/* mass storage request codes */
+#define USB_MSC_REQ_CODES_ADSC 0x00U
+#define USB_MSC_REQ_CODES_GET 0xFCU
+#define USB_MSC_REQ_CODES_PUT 0xFDU
+#define USB_MSC_REQ_CODES_GML 0xFEU
+#define USB_MSC_REQ_CODES_BOMSR 0xFFU
+
+#define BBB_GET_MAX_LUN 0xFEU
+#define BBB_RESET 0xFFU
+
+#define SCSI_CMD_LENGTH 16U
+
+#endif /* __USB_MSC_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/common/usb_ch9_std.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/common/usb_ch9_std.h
new file mode 100644
index 0000000000..c398c0f1ca
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/GD32VF103_usbfs_library/ustd/common/usb_ch9_std.h
@@ -0,0 +1,248 @@
+/*!
+ \file usb_ch9_std.h
+ \brief USB 2.0 standard defines
+
+ \version 2020-08-04, V1.1.0, firmware for GD32VF103
+*/
+
+/*
+ Copyright (c) 2020, GigaDevice Semiconductor Inc.
+
+ Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+*/
+
+#ifndef __USB_CH9_STD_H
+#define __USB_CH9_STD_H
+
+#include "usb_conf.h"
+
+#define USB_DEV_QUALIFIER_DESC_LEN 0x0AU /*!< USB device qualifier descriptor length */
+#define USB_DEV_DESC_LEN 0x12U /*!< USB device descriptor length */
+#define USB_CFG_DESC_LEN 0x09U /*!< USB configuration descriptor length */
+#define USB_ITF_DESC_LEN 0x09U /*!< USB interface descriptor length */
+#define USB_EP_DESC_LEN 0x07U /*!< USB endpoint descriptor length */
+#define USB_IAD_DESC_LEN 0x08U /*!< USB IAD descriptor length */
+#define USB_OTG_DESC_LEN 0x03U /*!< USB device OTG descriptor length */
+
+#define USB_SETUP_PACKET_LEN 0x08U /*!< USB setup packet length */
+
+/* bit 7 of bmRequestType: data phase transfer direction */
+#define USB_TRX_MASK 0x80U /*!< USB transfer direction mask */
+#define USB_TRX_OUT 0x00U /*!< USB transfer OUT direction */
+#define USB_TRX_IN 0x80U /*!< USB transfer IN direction */
+
+/* bit 6..5 of bmRequestType: request type */
+#define USB_REQTYPE_STRD 0x00U /*!< USB standard request */
+#define USB_REQTYPE_CLASS 0x20U /*!< USB class request */
+#define USB_REQTYPE_VENDOR 0x40U /*!< USB vendor request */
+#define USB_REQTYPE_MASK 0x60U /*!< USB request mask */
+
+#define USBD_BUS_POWERED 0x00U /*!< USB bus power supply */
+#define USBD_SELF_POWERED 0x01U /*!< USB self power supply */
+
+#define USB_STATUS_REMOTE_WAKEUP 2U /*!< USB is in remote wakeup status */
+#define USB_STATUS_SELF_POWERED 1U /*!< USB is in self powered status */
+
+/* bit 4..0 of bmRequestType: recipient type */
+enum _usb_recp_type {
+ USB_RECPTYPE_DEV = 0x0U, /*!< USB device request type */
+ USB_RECPTYPE_ITF = 0x1U, /*!< USB interface request type */
+ USB_RECPTYPE_EP = 0x2U, /*!< USB endpoint request type */
+ USB_RECPTYPE_MASK = 0x3U /*!< USB request type mask */
+};
+
+/* bRequest value */
+enum _usb_request {
+ USB_GET_STATUS = 0x0U, /*!< USB get status request */
+ USB_CLEAR_FEATURE = 0x1U, /*!< USB clear feature request */
+ USB_RESERVED2 = 0x2U,
+ USB_SET_FEATURE = 0x3U, /*!< USB set feature request */
+ USB_RESERVED4 = 0x4U,
+ USB_SET_ADDRESS = 0x5U, /*!< USB set address request */
+ USB_GET_DESCRIPTOR = 0x6U, /*!< USB get descriptor request */
+ USB_SET_DESCRIPTOR = 0x7U, /*!< USB set descriptor request */
+ USB_GET_CONFIGURATION = 0x8U, /*!< USB get configuration request */
+ USB_SET_CONFIGURATION = 0x9U, /*!< USB set configuration request */
+ USB_GET_INTERFACE = 0xAU, /*!< USB get interface request */
+ USB_SET_INTERFACE = 0xBU, /*!< USB set interface request */
+ USB_SYNCH_FRAME = 0xCU /*!< USB synchronize frame request */
+};
+
+/* descriptor types of USB specifications */
+enum _usb_desctype {
+ USB_DESCTYPE_DEV = 0x1U, /*!< USB device descriptor type */
+ USB_DESCTYPE_CONFIG = 0x2U, /*!< USB configuration descriptor type */
+ USB_DESCTYPE_STR = 0x3U, /*!< USB string descriptor type */
+ USB_DESCTYPE_ITF = 0x4U, /*!< USB interface descriptor type */
+ USB_DESCTYPE_EP = 0x5U, /*!< USB endpoint descriptor type */
+ USB_DESCTYPE_DEV_QUALIFIER = 0x6U, /*!< USB device qualifier descriptor type */
+ USB_DESCTYPE_OTHER_SPD_CONFIG = 0x7U, /*!< USB other speed configuration descriptor type */
+ USB_DESCTYPE_ITF_POWER = 0x8U, /*!< USB interface power descriptor type */
+ USB_DESCTYPE_IAD = 0xBU, /*!< USB interface association descriptor type */
+ USB_DESCTYPE_BOS = 0xFU /*!< USB BOS descriptor type */
+};
+
+/* USB Endpoint Descriptor bmAttributes bit definitions */
+/* bits 1..0 : transfer type */
+enum _usbx_type {
+ USB_EP_ATTR_CTL = 0x0U, /*!< USB control transfer type */
+ USB_EP_ATTR_ISO = 0x1U, /*!< USB Isochronous transfer type */
+ USB_EP_ATTR_BULK = 0x2U, /*!< USB Bulk transfer type */
+ USB_EP_ATTR_INT = 0x3U /*!< USB Interrupt transfer type */
+};
+
+/* bits 3..2 : Sync type (only if ISOCHRONOUS) */
+#define USB_EP_ATTR_NOSYNC 0x00U /*!< No Synchronization */
+#define USB_EP_ATTR_ASYNC 0x04U /*!< Asynchronous */
+#define USB_EP_ATTR_ADAPTIVE 0x08U /*!< Adaptive */
+#define USB_EP_ATTR_SYNC 0x0CU /*!< Synchronous */
+#define USB_EP_ATTR_SYNCTYPE 0x0CU /*!< Synchronous type */
+
+/* bits 5..4 : usage type (only if ISOCHRONOUS) */
+#define USB_EP_ATTR_DATA 0x00U /*!< Data endpoint */
+#define USB_EP_ATTR_FEEDBACK 0x10U /*!< Feedback endpoint */
+#define USB_EP_ATTR_IMPLICIT_FEEDBACK_DATA 0x20U /*!< Implicit feedback Data endpoint */
+#define USB_EP_ATTR_USAGETYPE 0x30U /*!< Usage type */
+
+/* endpoint max packet size bits12..11 */
+#define USB_EP_MPS_ADD_0 (0x00 << 11) /*!< None(1 transaction per microframe */
+#define USB_EP_MPS_ADD_1 (0x01 << 11) /*!< 1 additional(2 transaction per microframe */
+#define USB_EP_MPS_ADD_2 (0x02 << 11) /*!< 2 additional(3 transaction per microframe */
+
+#define FEATURE_SELECTOR_EP 0x00U /*!< USB endpoint feature selector */
+#define FEATURE_SELECTOR_DEV 0x01U /*!< USB device feature selector */
+#define FEATURE_SELECTOR_REMOTEWAKEUP 0x01U /*!< USB feature selector remote wakeup */
+
+#define BYTE_SWAP(addr) (((uint16_t)(*((uint8_t *)(addr)))) + \
+ (uint16_t)(((uint16_t)(*(((uint8_t *)(addr)) + 1U))) << 8U))
+
+#define BYTE_LOW(x) ((uint8_t)((x) & 0x00FFU))
+#define BYTE_HIGH(x) ((uint8_t)(((x) & 0xFF00U) >> 8U))
+
+#define USB_MIN(a, b) (((a) < (b)) ? (a) : (b))
+
+#define USB_DEFAULT_CONFIG 0U
+
+/* USB classes */
+#define USB_CLASS_HID 0x03U /*!< USB HID class */
+#define USB_CLASS_MSC 0x08U /*!< USB MSC class */
+
+/* use the following values when USB host need to get descriptor */
+#define USBH_DESC(x) (((x)<< 8U) & 0xFF00U)
+
+/* as per USB specs 9.2.6.4 :standard request with data request timeout: 5sec
+ standard request with no data stage timeout : 50ms */
+#define DATA_STAGE_TIMEOUT 5000U /*!< USB data stage timeout*/
+#define NODATA_STAGE_TIMEOUT 50U /*!< USB no data stage timeout*/
+
+#pragma pack(1)
+
+/* USB standard device request structure */
+typedef struct _usb_req {
+ uint8_t bmRequestType; /*!< type of request */
+ uint8_t bRequest; /*!< request of setup packet */
+ uint16_t wValue; /*!< value of setup packet */
+ uint16_t wIndex; /*!< index of setup packet */
+ uint16_t wLength; /*!< length of setup packet */
+} usb_req;
+
+/* USB setup packet define */
+typedef union _usb_setup {
+ uint8_t data[8];
+
+ usb_req req;
+} usb_setup;
+
+/* USB descriptor defines */
+
+typedef struct _usb_desc_header {
+ uint8_t bLength; /*!< size of the descriptor */
+ uint8_t bDescriptorType; /*!< type of the descriptor */
+} usb_desc_header;
+
+typedef struct _usb_desc_dev {
+ usb_desc_header header; /*!< descriptor header, including type and size */
+
+ uint16_t bcdUSB; /*!< BCD of the supported USB specification */
+ uint8_t bDeviceClass; /*!< USB device class */
+ uint8_t bDeviceSubClass; /*!< USB device subclass */
+ uint8_t bDeviceProtocol; /*!< USB device protocol */
+ uint8_t bMaxPacketSize0; /*!< size of the control (address 0) endpoint's bank in bytes */
+ uint16_t idVendor; /*!< vendor ID for the USB product */
+ uint16_t idProduct; /*!< unique product ID for the USB product */
+ uint16_t bcdDevice; /*!< product release (version) number */
+ uint8_t iManufacturer; /*!< string index for the manufacturer's name */
+ uint8_t iProduct; /*!< string index for the product name/details */
+ uint8_t iSerialNumber; /*!< string index for the product's globally unique hexadecimal serial number */
+ uint8_t bNumberConfigurations; /*!< total number of configurations supported by the device */
+} usb_desc_dev;
+
+typedef struct _usb_desc_config {
+ usb_desc_header header; /*!< descriptor header, including type and size */
+
+ uint16_t wTotalLength; /*!< size of the configuration descriptor header,and all sub descriptors inside the configuration */
+ uint8_t bNumInterfaces; /*!< total number of interfaces in the configuration */
+ uint8_t bConfigurationValue; /*!< configuration index of the current configuration */
+ uint8_t iConfiguration; /*!< index of a string descriptor describing the configuration */
+ uint8_t bmAttributes; /*!< configuration attributes */
+ uint8_t bMaxPower; /*!< maximum power consumption of the device while in the current configuration */
+} usb_desc_config;
+
+typedef struct _usb_desc_itf {
+ usb_desc_header header; /*!< descriptor header, including type and size */
+
+ uint8_t bInterfaceNumber; /*!< index of the interface in the current configuration */
+ uint8_t bAlternateSetting; /*!< alternate setting for the interface number */
+ uint8_t bNumEndpoints; /*!< total number of endpoints in the interface */
+ uint8_t bInterfaceClass; /*!< interface class ID */
+ uint8_t bInterfaceSubClass; /*!< interface subclass ID */
+ uint8_t bInterfaceProtocol; /*!< interface protocol ID */
+ uint8_t iInterface; /*!< index of the string descriptor describing the interface */
+} usb_desc_itf;
+
+typedef struct _usb_desc_ep {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+
+ uint8_t bEndpointAddress; /*!< logical address of the endpoint */
+ uint8_t bmAttributes; /*!< endpoint attributes */
+ uint16_t wMaxPacketSize; /*!< size of the endpoint bank, in bytes */
+ uint8_t bInterval; /*!< polling interval in milliseconds for the endpoint if it is an INTERRUPT or ISOCHRONOUS type */
+} usb_desc_ep;
+
+typedef struct _usb_desc_LANGID {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+ uint16_t wLANGID; /*!< LANGID code */
+} usb_desc_LANGID;
+
+typedef struct _usb_desc_str {
+ usb_desc_header header; /*!< descriptor header, including type and size. */
+ uint16_t unicode_string[64]; /*!< unicode string data */
+} usb_desc_str;
+
+#pragma pack()
+
+/* compute string descriptor length */
+#define USB_STRING_LEN(unicode_chars) (sizeof(usb_desc_header) + ((unicode_chars) << 1U))
+
+#endif /* __USB_CH9_STD_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_eclic.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_eclic.h
new file mode 100644
index 0000000000..a7b3240a5e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_eclic.h
@@ -0,0 +1,46 @@
+/* See LICENSE file for licence details */
+
+#ifndef N200_ECLIC_H
+#define N200_ECLIC_H
+
+#include
+
+#define ECLICINTCTLBITS 4
+
+/*ECLIC memory map */
+/* Offset */
+/* 0x0000 1B RW ecliccfg */
+#define ECLIC_CFG_OFFSET 0x0
+/* 0x0004 4B R eclicinfo */
+#define ECLIC_INFO_OFFSET 0x4
+/* 0x000B 1B RW mintthresh */
+#define ECLIC_MTH_OFFSET 0xB
+
+/* 0x1000+4*i 1B/input RW eclicintip[i] */
+#define ECLIC_INT_IP_OFFSET _AC(0x1000,UL)
+/* 0x1001+4*i 1B/input RW eclicintie[i] */
+#define ECLIC_INT_IE_OFFSET _AC(0x1001,UL)
+/* 0x1002+4*i 1B/input RW eclicintattr[i]*/
+#define ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)
+
+#define ECLIC_INT_ATTR_SHV 0x01
+#define ECLIC_INT_ATTR_TRIG_LEVEL 0x00
+#define ECLIC_INT_ATTR_TRIG_EDGE 0x02
+#define ECLIC_INT_ATTR_TRIG_POS 0x00
+#define ECLIC_INT_ATTR_TRIG_NEG 0x04
+
+/* 0x1003+4*i 1B/input RW eclicintctl[i] */
+#define ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)
+
+#define ECLIC_ADDR_BASE 0xd2000000
+
+
+#define ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)
+#define ECLIC_CFG_NLBITS_LSB (1u)
+
+#define MSIP_HANDLER eclic_msip_handler
+#define MTIME_HANDLER eclic_mtip_handler
+#define BWEI_HANDLER eclic_bwei_handler
+#define PMOVI_HANDLER eclic_pmovi_handler
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.c
new file mode 100644
index 0000000000..fb8b0e950a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.c
@@ -0,0 +1,424 @@
+/* See LICENSE for license details. */
+#include
+#include
+#include
+#include
+
+#if defined (__ICCRISCV__)
+ #include "compiler.h"
+#elif defined ( __GNUC__ )
+ #include
+#endif
+
+#include "riscv_encoding.h"
+#include "n200_func.h"
+
+/* Configure PMP to make all the address space accesable and executable */
+void pmp_open_all_space(void){
+ /* Config entry0 addr to all 1s to make the range cover all space */
+ asm volatile ("li x6, 0xffffffff":::"x6");
+ asm volatile ("csrw pmpaddr0, x6":::);
+ /* Config entry0 cfg to make it NAPOT address mode, and R/W/X okay */
+ asm volatile ("li x6, 0x7f":::"x6");
+ asm volatile ("csrw pmpcfg0, x6":::);
+}
+
+void switch_m2u_mode(void){
+#if defined (__ICCRISCV__)
+ clear_csr (CSR_MSTATUS,MSTATUS_MPP);
+#elif defined ( __GNUC__ )
+ clear_csr (mstatus,MSTATUS_MPP);
+#endif
+ /* printf("\nIn the m2u function, the mstatus is 0x%x\n", read_csr(mstatus)); */
+ /* printf("\nIn the m2u function, the mepc is 0x%x\n", read_csr(mepc)); */
+#if defined ( __GNUC__ )
+ asm volatile ("la x6, 1f ":::"x6");
+#endif
+ asm volatile ("csrw mepc, x6":::);
+ asm volatile ("mret":::);
+ asm volatile ("1:":::);
+}
+
+uint32_t mtime_lo(void)
+{
+ return *(volatile uint32_t *)(TIMER_CTRL_ADDR + TIMER_MTIME);
+}
+
+
+uint32_t mtime_hi(void)
+{
+ return *(volatile uint32_t *)(TIMER_CTRL_ADDR + TIMER_MTIME + 4);
+}
+
+uint64_t get_timer_value(void)
+{
+ while (1) {
+ uint32_t hi = mtime_hi();
+ uint32_t lo = mtime_lo();
+ if (hi == mtime_hi())
+ return ((uint64_t)hi << 32) | lo;
+ }
+}
+
+uint32_t get_timer_freq(void)
+{
+ return TIMER_FREQ;
+}
+
+uint64_t get_instret_value(void)
+{
+ while (1) {
+#if defined (__ICCRISCV__)
+ uint32_t hi = read_csr(CSR_MINSTRETH);
+ uint32_t lo = read_csr(CSR_MINSTRETH);
+ if (hi == read_csr(CSR_MINSTRETH))
+#elif defined ( __GNUC__ )
+ uint32_t hi = read_csr(minstreth);
+ uint32_t lo = read_csr(minstret);
+ if (hi == read_csr(minstreth))
+#endif
+
+ return ((uint64_t)hi << 32) | lo;
+ }
+}
+
+uint64_t get_cycle_value(void)
+{
+ while (1) {
+#if defined (__ICCRISCV__)
+ uint32_t hi = read_csr(CSR_MCYCLEH);
+ uint32_t lo = read_csr(CSR_MCYCLE);
+ if (hi == read_csr(CSR_MCYCLEH))
+#elif defined ( __GNUC__ )
+ uint32_t hi = read_csr(mcycleh);
+ uint32_t lo = read_csr(mcycle);
+ if (hi == read_csr(mcycleh))
+#endif
+
+ return ((uint64_t)hi << 32) | lo;
+ }
+}
+
+uint32_t __attribute__((noinline)) measure_cpu_freq(size_t n)
+{
+ uint32_t start_mtime, delta_mtime;
+ uint32_t mtime_freq = get_timer_freq();
+
+ /* Don't start measuruing until we see an mtime tick */
+ uint32_t tmp = mtime_lo();
+ do {
+ start_mtime = mtime_lo();
+ } while (start_mtime == tmp);
+
+#if defined (__ICCRISCV__)
+ uint32_t start_mcycle = read_csr(CSR_MCYCLE);
+#elif defined ( __GNUC__ )
+ uint32_t start_mcycle = read_csr(mcycle);
+#endif
+
+ do {
+ delta_mtime = mtime_lo() - start_mtime;
+ } while (delta_mtime < n);
+
+#if defined (__ICCRISCV__)
+ uint32_t delta_mcycle = read_csr(CSR_MCYCLE) - start_mcycle;
+#elif defined ( __GNUC__ )
+ uint32_t delta_mcycle = read_csr(mcycle) - start_mcycle;
+#endif
+
+ return (delta_mcycle / delta_mtime) * mtime_freq
+ + ((delta_mcycle % delta_mtime) * mtime_freq) / delta_mtime;
+}
+
+uint32_t get_cpu_freq(void)
+{
+ uint32_t cpu_freq;
+
+ /* warm up */
+ measure_cpu_freq(1);
+ /* measure for real */
+ cpu_freq = measure_cpu_freq(100);
+
+ return cpu_freq;
+}
+
+/* Note that there are no assertions or bounds checking on these */
+/* parameter values. */
+void eclic_init ( uint32_t num_irq )
+{
+
+ typedef volatile uint32_t vuint32_t;
+
+ /* clear cfg register */
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET)=0;
+
+ /* clear minthresh register */
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_MTH_OFFSET)=0;
+
+ /* clear all IP/IE/ATTR/CTRL bits for all interrupt sources */
+ vuint32_t * ptr;
+
+ vuint32_t * base = (vuint32_t*)(ECLIC_ADDR_BASE + ECLIC_INT_IP_OFFSET);
+ vuint32_t * upper = (vuint32_t*)(base + num_irq*4);
+
+ for (ptr = base; ptr < upper; ptr=ptr+4){
+ *ptr = 0;
+ }
+}
+
+void eclic_enable_interrupt (uint32_t source) {
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_IE_OFFSET+source*4) = 1;
+}
+
+void eclic_disable_interrupt (uint32_t source){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_IE_OFFSET+source*4) = 0;
+}
+
+void eclic_set_pending(uint32_t source){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_IP_OFFSET+source*4) = 1;
+}
+
+void eclic_clear_pending(uint32_t source){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_IP_OFFSET+source*4) = 0;
+}
+
+void eclic_set_intctrl (uint32_t source, uint8_t intctrl){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_CTRL_OFFSET+source*4) = intctrl;
+}
+
+uint8_t eclic_get_intctrl (uint32_t source){
+ return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_CTRL_OFFSET+source*4);
+}
+
+void eclic_set_intattr (uint32_t source, uint8_t intattr){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_ATTR_OFFSET+source*4) = intattr;
+}
+
+uint8_t eclic_get_intattr (uint32_t source){
+ return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_ATTR_OFFSET+source*4);
+}
+
+void eclic_set_cliccfg (uint8_t cliccfg){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET) = cliccfg;
+}
+
+uint8_t eclic_get_cliccfg (void){
+ return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET);
+}
+
+void eclic_set_mth (uint8_t mth){
+ *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_MTH_OFFSET) = mth;
+}
+
+uint8_t eclic_get_mth (void){
+ return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_MTH_OFFSET);
+}
+
+/* sets nlbits */
+void eclic_set_nlbits(uint8_t nlbits) {
+ /* shift nlbits to correct position */
+ uint8_t nlbits_shifted = nlbits << ECLIC_CFG_NLBITS_LSB;
+
+ /* read the current cliccfg */
+ uint8_t old_cliccfg = eclic_get_cliccfg();
+ uint8_t new_cliccfg = (old_cliccfg & (~ECLIC_CFG_NLBITS_MASK)) | (ECLIC_CFG_NLBITS_MASK & nlbits_shifted);
+
+ eclic_set_cliccfg(new_cliccfg);
+}
+
+/* get nlbits */
+uint8_t eclic_get_nlbits(void) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_cliccfg();
+ nlbits = (nlbits & ECLIC_CFG_NLBITS_MASK) >> ECLIC_CFG_NLBITS_LSB;
+ return nlbits;
+}
+
+/* sets an interrupt level based encoding of nlbits and ECLICINTCTLBITS */
+void eclic_set_irq_lvl(uint32_t source, uint8_t lvl) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_nlbits();
+ if (nlbits > ECLICINTCTLBITS) {
+ nlbits = ECLICINTCTLBITS;
+ }
+
+ /* shift lvl right to mask off unused bits */
+ lvl = lvl >> (8-nlbits);
+ /* shift lvl into correct bit position */
+ lvl = lvl << (8-nlbits);
+
+ /* write to clicintctrl */
+ uint8_t current_intctrl = eclic_get_intctrl(source);
+ /* shift intctrl left to mask off unused bits */
+ current_intctrl = current_intctrl << nlbits;
+ /* shift intctrl into correct bit position */
+ current_intctrl = current_intctrl >> nlbits;
+
+ eclic_set_intctrl(source, (current_intctrl | lvl));
+}
+
+/* gets an interrupt level based encoding of nlbits */
+uint8_t eclic_get_irq_lvl(uint32_t source) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_nlbits();
+ if (nlbits > ECLICINTCTLBITS) {
+ nlbits = ECLICINTCTLBITS;
+ }
+
+ uint8_t intctrl = eclic_get_intctrl(source);
+
+ /* shift intctrl */
+ intctrl = intctrl >> (8-nlbits);
+ /* shift intctrl */
+ uint8_t lvl = intctrl << (8-nlbits);
+
+ return lvl;
+}
+
+void eclic_set_irq_lvl_abs(uint32_t source, uint8_t lvl_abs) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_nlbits();
+ if (nlbits > ECLICINTCTLBITS) {
+ nlbits = ECLICINTCTLBITS;
+ }
+
+ /* shift lvl_abs into correct bit position */
+ uint8_t lvl = lvl_abs << (8-nlbits);
+
+ /* write to clicintctrl */
+ uint8_t current_intctrl = eclic_get_intctrl(source);
+ /* shift intctrl left to mask off unused bits */
+ current_intctrl = current_intctrl << nlbits;
+ /* shift intctrl into correct bit position */
+ current_intctrl = current_intctrl >> nlbits;
+
+ eclic_set_intctrl(source, (current_intctrl | lvl));
+}
+
+uint8_t eclic_get_irq_lvl_abs(uint32_t source) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_nlbits();
+ if (nlbits > ECLICINTCTLBITS) {
+ nlbits = ECLICINTCTLBITS;
+ }
+
+ uint8_t intctrl = eclic_get_intctrl(source);
+
+ /* shift intctrl */
+ intctrl = intctrl >> (8-nlbits);
+ /* shift intctrl */
+ uint8_t lvl_abs = intctrl;
+
+ return lvl_abs;
+}
+
+/* sets an interrupt priority based encoding of nlbits and ECLICINTCTLBITS */
+uint8_t eclic_set_irq_priority(uint32_t source, uint8_t priority) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_nlbits();
+ if (nlbits >= ECLICINTCTLBITS) {
+ nlbits = ECLICINTCTLBITS;
+ return 0;
+ }
+
+ /* shift priority into correct bit position */
+ priority = priority << (8 - ECLICINTCTLBITS);
+
+ /* write to eclicintctrl */
+ uint8_t current_intctrl = eclic_get_intctrl(source);
+ /* shift intctrl right to mask off unused bits */
+ current_intctrl = current_intctrl >> (8-nlbits);
+ /* shift intctrl into correct bit position */
+ current_intctrl = current_intctrl << (8-nlbits);
+
+ eclic_set_intctrl(source, (current_intctrl | priority));
+
+ return priority;
+}
+
+/* gets an interrupt priority based encoding of nlbits */
+uint8_t eclic_get_irq_priority(uint32_t source) {
+ /* extract nlbits */
+ uint8_t nlbits = eclic_get_nlbits();
+ if (nlbits > ECLICINTCTLBITS) {
+ nlbits = ECLICINTCTLBITS;
+ }
+
+ uint8_t intctrl = eclic_get_intctrl(source);
+
+ /* shift intctrl */
+ intctrl = intctrl << nlbits;
+ /* shift intctrl */
+ uint8_t priority = intctrl >> (nlbits+(8 - ECLICINTCTLBITS));
+
+ return priority;
+}
+
+void eclic_mode_enable() {
+#if defined (__ICCRISCV__)
+ uint32_t mtvec_value = read_csr(CSR_MTVEC);
+ mtvec_value = mtvec_value & 0xFFFFFFC0;
+ mtvec_value = mtvec_value | 0x00000003;
+ write_csr(CSR_MTVEC,mtvec_value);
+#elif defined ( __GNUC__ )
+ uint32_t mtvec_value = read_csr(mtvec);
+ mtvec_value = mtvec_value & 0xFFFFFFC0;
+ mtvec_value = mtvec_value | 0x00000003;
+ write_csr(mtvec,mtvec_value);
+#endif
+
+}
+
+/* sets vector-mode or non-vector mode */
+void eclic_set_vmode(uint32_t source) {
+ /* read the current attr */
+ uint8_t old_intattr = eclic_get_intattr(source);
+ /* Keep other bits unchanged and only set the LSB bit */
+ uint8_t new_intattr = (old_intattr | 0x1);
+
+ eclic_set_intattr(source,new_intattr);
+}
+
+void eclic_set_nonvmode(uint32_t source) {
+ /* read the current attr */
+ uint8_t old_intattr = eclic_get_intattr(source);
+ /* Keep other bits unchanged and only clear the LSB bit*/
+ uint8_t new_intattr = (old_intattr & (~0x1));
+
+ eclic_set_intattr(source,new_intattr);
+}
+
+/* sets interrupt as level sensitive
+Bit 1, trig[0], is defined as "edge-triggered" (0: level-triggered, 1: edge-triggered);
+Bit 2, trig[1], is defined as "negative-edge" (0: positive-edge, 1: negative-edge).*/
+
+void eclic_set_level_trig(uint32_t source) {
+ /* read the current attr */
+ uint8_t old_intattr = eclic_get_intattr(source);
+ /* Keep other bits unchanged and only clear the bit 1 */
+ uint8_t new_intattr = (old_intattr & (~0x2));
+
+ eclic_set_intattr(source,new_intattr);
+}
+
+void eclic_set_posedge_trig(uint32_t source) {
+ /* read the current attr */
+ uint8_t old_intattr = eclic_get_intattr(source);
+ /* Keep other bits unchanged and only set the bit 1 */
+ uint8_t new_intattr = (old_intattr | 0x2);
+ /* Keep other bits unchanged and only clear the bit 2 */
+ new_intattr = (old_intattr & (~0x4));
+
+ eclic_set_intattr(source,new_intattr);
+}
+
+void eclic_set_negedge_trig(uint32_t source) {
+ /*read the current attr */
+ uint8_t old_intattr = eclic_get_intattr(source);
+ /* Keep other bits unchanged and only set the bit 1*/
+ uint8_t new_intattr = (old_intattr | 0x2);
+ /* Keep other bits unchanged and only set the bit 2*/
+ new_intattr = (old_intattr | 0x4);
+
+ eclic_set_intattr(source,new_intattr);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.h
new file mode 100644
index 0000000000..9af91ae20a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.h
@@ -0,0 +1,105 @@
+/* See LICENSE file for licence details */
+
+#ifndef N200_FUNC_H
+#define N200_FUNC_H
+
+
+#include
+#include "n200_timer.h"
+#include "n200_eclic.h"
+
+#define ECLIC_GROUP_LEVEL0_PRIO4 0
+#define ECLIC_GROUP_LEVEL1_PRIO3 1
+#define ECLIC_GROUP_LEVEL2_PRIO2 2
+#define ECLIC_GROUP_LEVEL3_PRIO1 3
+#define ECLIC_GROUP_LEVEL4_PRIO0 4
+
+void pmp_open_all_space(void);
+
+void switch_m2u_mode(void);
+
+uint32_t get_mtime_freq(void);
+
+uint32_t mtime_lo(void);
+
+uint32_t mtime_hi(void);
+
+uint64_t get_mtime_value(void);
+
+uint64_t get_instret_value(void);
+
+uint64_t get_cycle_value(void);
+
+uint32_t get_cpu_freq(void);
+
+uint32_t __attribute__((noinline)) measure_cpu_freq(size_t n);
+
+/* ECLIC relevant functions */
+void eclic_init ( uint32_t num_irq );
+uint64_t get_timer_value(void);
+void eclic_enable_interrupt (uint32_t source);
+void eclic_disable_interrupt (uint32_t source);
+
+void eclic_set_pending(uint32_t source);
+void eclic_clear_pending(uint32_t source);
+
+void eclic_set_intctrl (uint32_t source, uint8_t intctrl);
+uint8_t eclic_get_intctrl (uint32_t source);
+
+void eclic_set_intattr (uint32_t source, uint8_t intattr);
+uint8_t eclic_get_intattr (uint32_t source);
+
+void eclic_set_cliccfg (uint8_t cliccfg);
+uint8_t eclic_get_cliccfg (void);
+
+void eclic_set_mth (uint8_t mth);
+uint8_t eclic_get_mth(void);
+
+/* sets nlbits */
+void eclic_set_nlbits(uint8_t nlbits);
+
+
+/* get nlbits */
+uint8_t eclic_get_nlbits(void);
+
+void eclic_set_irq_lvl(uint32_t source, uint8_t lvl);
+uint8_t eclic_get_irq_lvl(uint32_t source);
+
+void eclic_set_irq_lvl_abs(uint32_t source, uint8_t lvl_abs);
+uint8_t eclic_get_irq_lvl_abs(uint32_t source);
+
+uint8_t eclic_set_irq_priority(uint32_t source, uint8_t priority);
+uint8_t eclic_get_irq_priority(uint32_t source);
+
+void eclic_mode_enable(void);
+
+void eclic_set_vmode(uint32_t source);
+void eclic_set_nonvmode(uint32_t source);
+
+void eclic_set_level_trig(uint32_t source);
+void eclic_set_posedge_trig(uint32_t source);
+void eclic_set_negedge_trig(uint32_t source);
+
+
+/** \brief Wait For Interrupt
+
+ Wait For Interrupt is a hint instruction that suspends execution
+ until one of a number of events occurs.
+ */
+__attribute__( ( always_inline ) ) static inline void __WFI(void) {
+ __asm volatile ("wfi");
+}
+
+/** \brief Wait For Event
+
+ Wait For Event is a hint instruction that permits the processor to enter
+ a low-power state until one of a number of events occurs.
+ */
+__attribute__( ( always_inline ) ) static inline void __WFE(void) {
+ __asm volatile ("csrs 0x810, 0x1");
+ __asm volatile ("wfi");
+ __asm volatile ("csrc 0x810, 0x1");
+}
+
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.s
new file mode 100644
index 0000000000..77ba94116d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_func.s
@@ -0,0 +1,26445 @@
+ .file "n200_func.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl pmp_open_all_space
+ .type pmp_open_all_space, @function
+pmp_open_all_space:
+.LFB6:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers\\n200_func.c"
+ .loc 1 17 30
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 19 5
+ #APP
+# 19 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ li x6, 0xffffffff
+# 0 "" 2
+ .loc 1 20 5
+# 20 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrw pmpaddr0, x6
+# 0 "" 2
+ .loc 1 22 5
+# 22 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ li x6, 0x7f
+# 0 "" 2
+ .loc 1 23 5
+# 23 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrw pmpcfg0, x6
+# 0 "" 2
+ .loc 1 24 1
+ #NO_APP
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size pmp_open_all_space, .-pmp_open_all_space
+ .align 1
+ .globl switch_m2u_mode
+ .type switch_m2u_mode, @function
+switch_m2u_mode:
+.LFB7:
+ .loc 1 26 27
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+.LBB2:
+ .loc 1 30 186
+ li a5,8192
+ addi a5,a5,-2048
+ #APP
+# 30 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrrc a5, mstatus, a5
+# 0 "" 2
+ #NO_APP
+ sw a5,-20(s0)
+.LBE2:
+ .loc 1 35 5
+ #APP
+# 35 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ la x6, 1f
+# 0 "" 2
+ .loc 1 37 5
+# 37 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrw mepc, x6
+# 0 "" 2
+ .loc 1 38 5
+# 38 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ mret
+# 0 "" 2
+ .loc 1 39 5
+# 39 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ 1:
+# 0 "" 2
+ .loc 1 40 1
+ #NO_APP
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE7:
+ .size switch_m2u_mode, .-switch_m2u_mode
+ .align 1
+ .globl mtime_lo
+ .type mtime_lo, @function
+mtime_lo:
+.LFB8:
+ .loc 1 43 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 44 10
+ li a5,-788529152
+ lw a5,0(a5)
+ .loc 1 45 1
+ mv a0,a5
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE8:
+ .size mtime_lo, .-mtime_lo
+ .align 1
+ .globl mtime_hi
+ .type mtime_hi, @function
+mtime_hi:
+.LFB9:
+ .loc 1 49 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 50 10
+ li a5,-788529152
+ addi a5,a5,4
+ lw a5,0(a5)
+ .loc 1 51 1
+ mv a0,a5
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE9:
+ .size mtime_hi, .-mtime_hi
+ .align 1
+ .globl get_timer_value
+ .type get_timer_value, @function
+get_timer_value:
+.LFB10:
+ .loc 1 54 1
+ .cfi_startproc
+ addi sp,sp,-64
+ .cfi_def_cfa_offset 64
+ sw ra,60(sp)
+ sw s0,56(sp)
+ sw s2,52(sp)
+ sw s3,48(sp)
+ sw s4,44(sp)
+ sw s5,40(sp)
+ sw s6,36(sp)
+ sw s7,32(sp)
+ sw s8,28(sp)
+ sw s9,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ .cfi_offset 18, -12
+ .cfi_offset 19, -16
+ .cfi_offset 20, -20
+ .cfi_offset 21, -24
+ .cfi_offset 22, -28
+ .cfi_offset 23, -32
+ .cfi_offset 24, -36
+ .cfi_offset 25, -40
+ addi s0,sp,64
+ .cfi_def_cfa 8, 0
+.L10:
+.LBB3:
+ .loc 1 56 19
+ call mtime_hi
+ sw a0,-52(s0)
+ .loc 1 57 19
+ call mtime_lo
+ sw a0,-56(s0)
+ .loc 1 58 15
+ call mtime_hi
+ mv a4,a0
+ .loc 1 58 8
+ lw a5,-52(s0)
+ bne a5,a4,.L10
+ .loc 1 59 15
+ lw a5,-52(s0)
+ mv s8,a5
+ li s9,0
+ .loc 1 59 28
+ slli s3,s8,0
+ li s2,0
+ .loc 1 59 35
+ lw a5,-56(s0)
+ mv s4,a5
+ li s5,0
+ or s6,s2,s4
+ or s7,s3,s5
+ mv a4,s6
+ mv a5,s7
+.LBE3:
+ .loc 1 61 1
+ mv a0,a4
+ mv a1,a5
+ lw ra,60(sp)
+ .cfi_restore 1
+ lw s0,56(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 64
+ lw s2,52(sp)
+ .cfi_restore 18
+ lw s3,48(sp)
+ .cfi_restore 19
+ lw s4,44(sp)
+ .cfi_restore 20
+ lw s5,40(sp)
+ .cfi_restore 21
+ lw s6,36(sp)
+ .cfi_restore 22
+ lw s7,32(sp)
+ .cfi_restore 23
+ lw s8,28(sp)
+ .cfi_restore 24
+ lw s9,24(sp)
+ .cfi_restore 25
+ addi sp,sp,64
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE10:
+ .size get_timer_value, .-get_timer_value
+ .align 1
+ .globl get_timer_freq
+ .type get_timer_freq, @function
+get_timer_freq:
+.LFB11:
+ .loc 1 64 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 65 11
+ lla a5,SystemCoreClock
+ lw a5,0(a5)
+ .loc 1 65 36
+ srli a5,a5,2
+ .loc 1 66 1
+ mv a0,a5
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE11:
+ .size get_timer_freq, .-get_timer_freq
+ .align 1
+ .globl get_instret_value
+ .type get_instret_value, @function
+get_instret_value:
+.LFB12:
+ .loc 1 69 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+.L17:
+.LBB4:
+.LBB5:
+ .loc 1 76 43
+ #APP
+# 76 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr t1, minstreth
+# 0 "" 2
+ #NO_APP
+ sw t1,-20(s0)
+ .loc 1 76 97
+ lw t1,-20(s0)
+.LBE5:
+ .loc 1 76 14
+ sw t1,-24(s0)
+.LBB6:
+ .loc 1 77 43
+ #APP
+# 77 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr t1, minstret
+# 0 "" 2
+ #NO_APP
+ sw t1,-28(s0)
+ .loc 1 77 96
+ lw t1,-28(s0)
+.LBE6:
+ .loc 1 77 14
+ sw t1,-32(s0)
+.LBB7:
+ .loc 1 78 39
+ #APP
+# 78 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr t1, minstreth
+# 0 "" 2
+ #NO_APP
+ sw t1,-36(s0)
+ .loc 1 78 93
+ lw t3,-36(s0)
+.LBE7:
+ .loc 1 78 8
+ lw t1,-24(s0)
+ bne t3,t1,.L17
+ .loc 1 81 15
+ lw t1,-24(s0)
+ mv a6,t1
+ li a7,0
+ .loc 1 81 28
+ slli a5,a6,0
+ li a4,0
+ .loc 1 81 35
+ lw a6,-32(s0)
+ mv a2,a6
+ li a3,0
+ or a0,a4,a2
+ or a1,a5,a3
+ mv a4,a0
+ mv a5,a1
+.LBE4:
+ .loc 1 83 1
+ mv a0,a4
+ mv a1,a5
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE12:
+ .size get_instret_value, .-get_instret_value
+ .align 1
+ .globl get_cycle_value
+ .type get_cycle_value, @function
+get_cycle_value:
+.LFB13:
+ .loc 1 86 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+.L22:
+.LBB8:
+.LBB9:
+ .loc 1 93 43
+ #APP
+# 93 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr t1, mcycleh
+# 0 "" 2
+ #NO_APP
+ sw t1,-20(s0)
+ .loc 1 93 95
+ lw t1,-20(s0)
+.LBE9:
+ .loc 1 93 14
+ sw t1,-24(s0)
+.LBB10:
+ .loc 1 94 43
+ #APP
+# 94 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr t1, mcycle
+# 0 "" 2
+ #NO_APP
+ sw t1,-28(s0)
+ .loc 1 94 94
+ lw t1,-28(s0)
+.LBE10:
+ .loc 1 94 14
+ sw t1,-32(s0)
+.LBB11:
+ .loc 1 95 39
+ #APP
+# 95 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr t1, mcycleh
+# 0 "" 2
+ #NO_APP
+ sw t1,-36(s0)
+ .loc 1 95 91
+ lw t3,-36(s0)
+.LBE11:
+ .loc 1 95 8
+ lw t1,-24(s0)
+ bne t3,t1,.L22
+ .loc 1 98 15
+ lw t1,-24(s0)
+ mv a6,t1
+ li a7,0
+ .loc 1 98 28
+ slli a5,a6,0
+ li a4,0
+ .loc 1 98 35
+ lw a6,-32(s0)
+ mv a2,a6
+ li a3,0
+ or a0,a4,a2
+ or a1,a5,a3
+ mv a4,a0
+ mv a5,a1
+.LBE8:
+ .loc 1 100 1
+ mv a0,a4
+ mv a1,a5
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE13:
+ .size get_cycle_value, .-get_cycle_value
+ .align 1
+ .globl measure_cpu_freq
+ .type measure_cpu_freq, @function
+measure_cpu_freq:
+.LFB14:
+ .loc 1 103 1
+ .cfi_startproc
+ addi sp,sp,-64
+ .cfi_def_cfa_offset 64
+ sw ra,60(sp)
+ sw s0,56(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,64
+ .cfi_def_cfa 8, 0
+ sw a0,-52(s0)
+ .loc 1 105 25
+ call get_timer_freq
+ sw a0,-20(s0)
+ .loc 1 108 18
+ call mtime_lo
+ sw a0,-24(s0)
+.L25:
+ .loc 1 110 19 discriminator 1
+ call mtime_lo
+ sw a0,-28(s0)
+ .loc 1 111 3 discriminator 1
+ lw a4,-28(s0)
+ lw a5,-24(s0)
+ beq a4,a5,.L25
+.LBB12:
+ .loc 1 116 51
+ #APP
+# 116 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr a5, mcycle
+# 0 "" 2
+ #NO_APP
+ sw a5,-32(s0)
+ .loc 1 116 102
+ lw a5,-32(s0)
+.LBE12:
+ .loc 1 116 12
+ sw a5,-36(s0)
+.L26:
+ .loc 1 120 19 discriminator 1
+ call mtime_lo
+ mv a4,a0
+ .loc 1 120 17 discriminator 1
+ lw a5,-28(s0)
+ sub a5,a4,a5
+ sw a5,-40(s0)
+ .loc 1 121 3 discriminator 1
+ lw a4,-40(s0)
+ lw a5,-52(s0)
+ bltu a4,a5,.L26
+.LBB13:
+ .loc 1 126 51
+ #APP
+# 126 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr a5, mcycle
+# 0 "" 2
+ #NO_APP
+ sw a5,-44(s0)
+ .loc 1 126 102
+ lw a4,-44(s0)
+.LBE13:
+ .loc 1 126 12
+ lw a5,-36(s0)
+ sub a5,a4,a5
+ sw a5,-48(s0)
+ .loc 1 129 24
+ lw a4,-48(s0)
+ lw a5,-40(s0)
+ divu a4,a4,a5
+ .loc 1 129 39
+ lw a5,-20(s0)
+ mul a4,a4,a5
+ .loc 1 130 27
+ lw a3,-48(s0)
+ lw a5,-40(s0)
+ remu a3,a3,a5
+ .loc 1 130 42
+ lw a5,-20(s0)
+ mul a3,a3,a5
+ .loc 1 130 56
+ lw a5,-40(s0)
+ divu a5,a3,a5
+ .loc 1 130 10
+ add a5,a4,a5
+ .loc 1 131 1
+ mv a0,a5
+ lw ra,60(sp)
+ .cfi_restore 1
+ lw s0,56(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 64
+ addi sp,sp,64
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE14:
+ .size measure_cpu_freq, .-measure_cpu_freq
+ .align 1
+ .globl get_cpu_freq
+ .type get_cpu_freq, @function
+get_cpu_freq:
+.LFB15:
+ .loc 1 134 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ .loc 1 138 3
+ li a0,1
+ call measure_cpu_freq
+ .loc 1 140 14
+ li a0,100
+ call measure_cpu_freq
+ sw a0,-20(s0)
+ .loc 1 142 10
+ lw a5,-20(s0)
+ .loc 1 143 1
+ mv a0,a5
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE15:
+ .size get_cpu_freq, .-get_cpu_freq
+ .align 1
+ .globl eclic_init
+ .type eclic_init, @function
+eclic_init:
+.LFB16:
+ .loc 1 148 1
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw s0,44(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 153 3
+ li a5,-771751936
+ .loc 1 153 40
+ sb zero,0(a5)
+ .loc 1 156 3
+ li a5,-771751936
+ addi a5,a5,11
+ .loc 1 156 40
+ sb zero,0(a5)
+ .loc 1 161 15
+ li a5,-771747840
+ sw a5,-24(s0)
+ .loc 1 162 41
+ lw a5,-36(s0)
+ slli a5,a5,4
+ .loc 1 162 15
+ lw a4,-24(s0)
+ add a5,a4,a5
+ sw a5,-28(s0)
+ .loc 1 164 12
+ lw a5,-24(s0)
+ sw a5,-20(s0)
+ .loc 1 164 3
+ j .L31
+.L32:
+ .loc 1 165 10 discriminator 3
+ lw a5,-20(s0)
+ sw zero,0(a5)
+ .loc 1 164 36 discriminator 3
+ lw a5,-20(s0)
+ addi a5,a5,16
+ sw a5,-20(s0)
+.L31:
+ .loc 1 164 3 discriminator 1
+ lw a4,-20(s0)
+ lw a5,-28(s0)
+ bltu a4,a5,.L32
+ .loc 1 167 1
+ nop
+ nop
+ lw s0,44(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE16:
+ .size eclic_init, .-eclic_init
+ .align 1
+ .globl eclic_enable_interrupt
+ .type eclic_enable_interrupt, @function
+eclic_enable_interrupt:
+.LFB17:
+ .loc 1 169 47
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 170 55
+ lw a5,-20(s0)
+ slli a4,a5,2
+ .loc 1 170 48
+ li a5,-771747840
+ addi a5,a5,1
+ add a5,a4,a5
+ .loc 1 170 6
+ mv a4,a5
+ .loc 1 170 59
+ li a5,1
+ sb a5,0(a4)
+ .loc 1 171 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE17:
+ .size eclic_enable_interrupt, .-eclic_enable_interrupt
+ .align 1
+ .globl eclic_disable_interrupt
+ .type eclic_disable_interrupt, @function
+eclic_disable_interrupt:
+.LFB18:
+ .loc 1 173 47
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 174 55
+ lw a5,-20(s0)
+ slli a4,a5,2
+ .loc 1 174 48
+ li a5,-771747840
+ addi a5,a5,1
+ add a5,a4,a5
+ .loc 1 174 59
+ sb zero,0(a5)
+ .loc 1 175 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE18:
+ .size eclic_disable_interrupt, .-eclic_disable_interrupt
+ .align 1
+ .globl eclic_set_pending
+ .type eclic_set_pending, @function
+eclic_set_pending:
+.LFB19:
+ .loc 1 177 40
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 178 48
+ lw a4,-20(s0)
+ li a5,880803840
+ addi a5,a5,1024
+ add a5,a4,a5
+ slli a5,a5,2
+ .loc 1 178 6
+ mv a4,a5
+ .loc 1 178 59
+ li a5,1
+ sb a5,0(a4)
+ .loc 1 179 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE19:
+ .size eclic_set_pending, .-eclic_set_pending
+ .align 1
+ .globl eclic_clear_pending
+ .type eclic_clear_pending, @function
+eclic_clear_pending:
+.LFB20:
+ .loc 1 181 42
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 182 48
+ lw a4,-20(s0)
+ li a5,880803840
+ addi a5,a5,1024
+ add a5,a4,a5
+ slli a5,a5,2
+ .loc 1 182 59
+ sb zero,0(a5)
+ .loc 1 183 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE20:
+ .size eclic_clear_pending, .-eclic_clear_pending
+ .align 1
+ .globl eclic_set_intctrl
+ .type eclic_set_intctrl, @function
+eclic_set_intctrl:
+.LFB21:
+ .loc 1 185 58
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ mv a5,a1
+ sb a5,-21(s0)
+ .loc 1 186 53
+ lw a5,-20(s0)
+ slli a4,a5,2
+ .loc 1 186 46
+ li a5,-771747840
+ addi a5,a5,3
+ add a5,a4,a5
+ .loc 1 186 4
+ mv a4,a5
+ .loc 1 186 57
+ lbu a5,-21(s0)
+ sb a5,0(a4)
+ .loc 1 187 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE21:
+ .size eclic_set_intctrl, .-eclic_set_intctrl
+ .align 1
+ .globl eclic_get_intctrl
+ .type eclic_get_intctrl, @function
+eclic_get_intctrl:
+.LFB22:
+ .loc 1 189 44
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 190 60
+ lw a5,-20(s0)
+ slli a4,a5,2
+ .loc 1 190 53
+ li a5,-771747840
+ addi a5,a5,3
+ add a5,a4,a5
+ .loc 1 190 10
+ lbu a5,0(a5)
+ andi a5,a5,0xff
+ .loc 1 191 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE22:
+ .size eclic_get_intctrl, .-eclic_get_intctrl
+ .align 1
+ .globl eclic_set_intattr
+ .type eclic_set_intattr, @function
+eclic_set_intattr:
+.LFB23:
+ .loc 1 193 58
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ mv a5,a1
+ sb a5,-21(s0)
+ .loc 1 194 53
+ lw a5,-20(s0)
+ slli a4,a5,2
+ .loc 1 194 46
+ li a5,-771747840
+ addi a5,a5,2
+ add a5,a4,a5
+ .loc 1 194 4
+ mv a4,a5
+ .loc 1 194 57
+ lbu a5,-21(s0)
+ sb a5,0(a4)
+ .loc 1 195 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE23:
+ .size eclic_set_intattr, .-eclic_set_intattr
+ .align 1
+ .globl eclic_get_intattr
+ .type eclic_get_intattr, @function
+eclic_get_intattr:
+.LFB24:
+ .loc 1 197 44
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ .loc 1 198 60
+ lw a5,-20(s0)
+ slli a4,a5,2
+ .loc 1 198 53
+ li a5,-771747840
+ addi a5,a5,2
+ add a5,a4,a5
+ .loc 1 198 10
+ lbu a5,0(a5)
+ andi a5,a5,0xff
+ .loc 1 199 1
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE24:
+ .size eclic_get_intattr, .-eclic_get_intattr
+ .align 1
+ .globl eclic_set_cliccfg
+ .type eclic_set_cliccfg, @function
+eclic_set_cliccfg:
+.LFB25:
+ .loc 1 201 41
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 202 3
+ li a5,-771751936
+ .loc 1 202 41
+ lbu a4,-17(s0)
+ sb a4,0(a5)
+ .loc 1 203 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE25:
+ .size eclic_set_cliccfg, .-eclic_set_cliccfg
+ .align 1
+ .globl eclic_get_cliccfg
+ .type eclic_get_cliccfg, @function
+eclic_get_cliccfg:
+.LFB26:
+ .loc 1 205 33
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 206 10
+ li a5,-771751936
+ lbu a5,0(a5)
+ andi a5,a5,0xff
+ .loc 1 207 1
+ mv a0,a5
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE26:
+ .size eclic_get_cliccfg, .-eclic_get_cliccfg
+ .align 1
+ .globl eclic_set_mth
+ .type eclic_set_mth, @function
+eclic_set_mth:
+.LFB27:
+ .loc 1 209 33
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 210 3
+ li a5,-771751936
+ addi a5,a5,11
+ .loc 1 210 41
+ lbu a4,-17(s0)
+ sb a4,0(a5)
+ .loc 1 211 1
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE27:
+ .size eclic_set_mth, .-eclic_set_mth
+ .align 1
+ .globl eclic_get_mth
+ .type eclic_get_mth, @function
+eclic_get_mth:
+.LFB28:
+ .loc 1 213 29
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 214 10
+ li a5,-771751936
+ addi a5,a5,11
+ lbu a5,0(a5)
+ andi a5,a5,0xff
+ .loc 1 215 1
+ mv a0,a5
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE28:
+ .size eclic_get_mth, .-eclic_get_mth
+ .align 1
+ .globl eclic_set_nlbits
+ .type eclic_set_nlbits, @function
+eclic_set_nlbits:
+.LFB29:
+ .loc 1 218 39
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ mv a5,a0
+ sb a5,-33(s0)
+ .loc 1 220 11
+ lbu a5,-33(s0)
+ slli a5,a5,1
+ sb a5,-17(s0)
+ .loc 1 223 25
+ call eclic_get_cliccfg
+ mv a5,a0
+ sb a5,-18(s0)
+ .loc 1 224 38
+ lbu a5,-18(s0)
+ andi a5,a5,-31
+ andi a4,a5,0xff
+ .loc 1 224 65
+ lbu a5,-17(s0)
+ andi a5,a5,30
+ andi a5,a5,0xff
+ .loc 1 224 11
+ or a5,a4,a5
+ sb a5,-19(s0)
+ .loc 1 226 3
+ lbu a5,-19(s0)
+ mv a0,a5
+ call eclic_set_cliccfg
+ .loc 1 227 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE29:
+ .size eclic_set_nlbits, .-eclic_set_nlbits
+ .align 1
+ .globl eclic_get_nlbits
+ .type eclic_get_nlbits, @function
+eclic_get_nlbits:
+.LFB30:
+ .loc 1 230 32
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ .loc 1 232 20
+ call eclic_get_cliccfg
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 233 32
+ lbu a5,-17(s0)
+ srli a5,a5,1
+ andi a5,a5,0xff
+ .loc 1 233 10
+ andi a5,a5,15
+ sb a5,-17(s0)
+ .loc 1 234 10
+ lbu a5,-17(s0)
+ .loc 1 235 1
+ mv a0,a5
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE30:
+ .size eclic_get_nlbits, .-eclic_get_nlbits
+ .align 1
+ .globl eclic_set_irq_lvl
+ .type eclic_set_irq_lvl, @function
+eclic_set_irq_lvl:
+.LFB31:
+ .loc 1 238 54
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ mv a5,a1
+ sb a5,-37(s0)
+ .loc 1 240 20
+ call eclic_get_nlbits
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 241 6
+ lbu a4,-17(s0)
+ li a5,4
+ bleu a4,a5,.L53
+ .loc 1 242 12
+ li a5,4
+ sb a5,-17(s0)
+.L53:
+ .loc 1 246 13
+ lbu a4,-37(s0)
+ .loc 1 246 18
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 246 13
+ sra a5,a4,a5
+ .loc 1 246 7
+ sb a5,-37(s0)
+ .loc 1 248 13
+ lbu a4,-37(s0)
+ .loc 1 248 18
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 248 13
+ sll a5,a4,a5
+ .loc 1 248 7
+ sb a5,-37(s0)
+ .loc 1 251 29
+ lw a0,-36(s0)
+ call eclic_get_intctrl
+ mv a5,a0
+ sb a5,-18(s0)
+ .loc 1 253 37
+ lbu a4,-18(s0)
+ lbu a5,-17(s0)
+ sll a5,a4,a5
+ .loc 1 253 19
+ sb a5,-18(s0)
+ .loc 1 255 37
+ lbu a4,-18(s0)
+ lbu a5,-17(s0)
+ sra a5,a4,a5
+ .loc 1 255 19
+ sb a5,-18(s0)
+ .loc 1 257 3
+ lbu a4,-18(s0)
+ lbu a5,-37(s0)
+ or a5,a4,a5
+ andi a5,a5,0xff
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intctrl
+ .loc 1 258 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE31:
+ .size eclic_set_irq_lvl, .-eclic_set_irq_lvl
+ .align 1
+ .globl eclic_get_irq_lvl
+ .type eclic_get_irq_lvl, @function
+eclic_get_irq_lvl:
+.LFB32:
+ .loc 1 261 44
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 263 20
+ call eclic_get_nlbits
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 264 6
+ lbu a4,-17(s0)
+ li a5,4
+ bleu a4,a5,.L55
+ .loc 1 265 12
+ li a5,4
+ sb a5,-17(s0)
+.L55:
+ .loc 1 268 21
+ lw a0,-36(s0)
+ call eclic_get_intctrl
+ mv a5,a0
+ sb a5,-18(s0)
+ .loc 1 271 21
+ lbu a4,-18(s0)
+ .loc 1 271 26
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 271 21
+ sra a5,a4,a5
+ .loc 1 271 11
+ sb a5,-18(s0)
+ .loc 1 273 25
+ lbu a4,-18(s0)
+ .loc 1 273 30
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 273 25
+ sll a5,a4,a5
+ .loc 1 273 11
+ sb a5,-19(s0)
+ .loc 1 275 10
+ lbu a5,-19(s0)
+ .loc 1 276 1
+ mv a0,a5
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE32:
+ .size eclic_get_irq_lvl, .-eclic_get_irq_lvl
+ .align 1
+ .globl eclic_set_irq_lvl_abs
+ .type eclic_set_irq_lvl_abs, @function
+eclic_set_irq_lvl_abs:
+.LFB33:
+ .loc 1 278 62
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ mv a5,a1
+ sb a5,-37(s0)
+ .loc 1 280 20
+ call eclic_get_nlbits
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 281 6
+ lbu a4,-17(s0)
+ li a5,4
+ bleu a4,a5,.L58
+ .loc 1 282 12
+ li a5,4
+ sb a5,-17(s0)
+.L58:
+ .loc 1 286 25
+ lbu a4,-37(s0)
+ .loc 1 286 30
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 286 25
+ sll a5,a4,a5
+ .loc 1 286 11
+ sb a5,-18(s0)
+ .loc 1 289 29
+ lw a0,-36(s0)
+ call eclic_get_intctrl
+ mv a5,a0
+ sb a5,-19(s0)
+ .loc 1 291 37
+ lbu a4,-19(s0)
+ lbu a5,-17(s0)
+ sll a5,a4,a5
+ .loc 1 291 19
+ sb a5,-19(s0)
+ .loc 1 293 37
+ lbu a4,-19(s0)
+ lbu a5,-17(s0)
+ sra a5,a4,a5
+ .loc 1 293 19
+ sb a5,-19(s0)
+ .loc 1 295 3
+ lbu a4,-19(s0)
+ lbu a5,-18(s0)
+ or a5,a4,a5
+ andi a5,a5,0xff
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intctrl
+ .loc 1 296 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE33:
+ .size eclic_set_irq_lvl_abs, .-eclic_set_irq_lvl_abs
+ .align 1
+ .globl eclic_get_irq_lvl_abs
+ .type eclic_get_irq_lvl_abs, @function
+eclic_get_irq_lvl_abs:
+.LFB34:
+ .loc 1 298 48
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 300 20
+ call eclic_get_nlbits
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 301 6
+ lbu a4,-17(s0)
+ li a5,4
+ bleu a4,a5,.L60
+ .loc 1 302 12
+ li a5,4
+ sb a5,-17(s0)
+.L60:
+ .loc 1 305 21
+ lw a0,-36(s0)
+ call eclic_get_intctrl
+ mv a5,a0
+ sb a5,-18(s0)
+ .loc 1 308 21
+ lbu a4,-18(s0)
+ .loc 1 308 26
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 308 21
+ sra a5,a4,a5
+ .loc 1 308 11
+ sb a5,-18(s0)
+ .loc 1 310 11
+ lbu a5,-18(s0)
+ sb a5,-19(s0)
+ .loc 1 312 10
+ lbu a5,-19(s0)
+ .loc 1 313 1
+ mv a0,a5
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE34:
+ .size eclic_get_irq_lvl_abs, .-eclic_get_irq_lvl_abs
+ .align 1
+ .globl eclic_set_irq_priority
+ .type eclic_set_irq_priority, @function
+eclic_set_irq_priority:
+.LFB35:
+ .loc 1 316 67
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ mv a5,a1
+ sb a5,-37(s0)
+ .loc 1 318 22
+ call eclic_get_nlbits
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 319 8
+ lbu a4,-17(s0)
+ li a5,3
+ bleu a4,a5,.L63
+ .loc 1 320 16
+ li a5,4
+ sb a5,-17(s0)
+ .loc 1 321 16
+ li a5,0
+ j .L64
+.L63:
+ .loc 1 325 14
+ lbu a5,-37(s0)
+ slli a5,a5,4
+ sb a5,-37(s0)
+ .loc 1 328 31
+ lw a0,-36(s0)
+ call eclic_get_intctrl
+ mv a5,a0
+ sb a5,-18(s0)
+ .loc 1 330 39
+ lbu a4,-18(s0)
+ .loc 1 330 44
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 330 39
+ sra a5,a4,a5
+ .loc 1 330 21
+ sb a5,-18(s0)
+ .loc 1 332 39
+ lbu a4,-18(s0)
+ .loc 1 332 44
+ lbu a5,-17(s0)
+ li a3,8
+ sub a5,a3,a5
+ .loc 1 332 39
+ sll a5,a4,a5
+ .loc 1 332 21
+ sb a5,-18(s0)
+ .loc 1 334 5
+ lbu a4,-18(s0)
+ lbu a5,-37(s0)
+ or a5,a4,a5
+ andi a5,a5,0xff
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intctrl
+ .loc 1 336 12
+ lbu a5,-37(s0)
+.L64:
+ .loc 1 337 1
+ mv a0,a5
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE35:
+ .size eclic_set_irq_priority, .-eclic_set_irq_priority
+ .align 1
+ .globl eclic_get_irq_priority
+ .type eclic_get_irq_priority, @function
+eclic_get_irq_priority:
+.LFB36:
+ .loc 1 340 49
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 342 22
+ call eclic_get_nlbits
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 343 8
+ lbu a4,-17(s0)
+ li a5,4
+ bleu a4,a5,.L66
+ .loc 1 344 18
+ li a5,4
+ sb a5,-17(s0)
+.L66:
+ .loc 1 347 23
+ lw a0,-36(s0)
+ call eclic_get_intctrl
+ mv a5,a0
+ sb a5,-18(s0)
+ .loc 1 350 23
+ lbu a4,-18(s0)
+ lbu a5,-17(s0)
+ sll a5,a4,a5
+ .loc 1 350 13
+ sb a5,-18(s0)
+ .loc 1 352 32
+ lbu a4,-18(s0)
+ .loc 1 352 42
+ lbu a5,-17(s0)
+ addi a5,a5,4
+ .loc 1 352 32
+ sra a5,a4,a5
+ .loc 1 352 13
+ sb a5,-19(s0)
+ .loc 1 354 12
+ lbu a5,-19(s0)
+ .loc 1 355 1
+ mv a0,a5
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE36:
+ .size eclic_get_irq_priority, .-eclic_get_irq_priority
+ .align 1
+ .globl eclic_mode_enable
+ .type eclic_mode_enable, @function
+eclic_mode_enable:
+.LFB37:
+ .loc 1 357 26
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw s0,28(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+.LBB14:
+ .loc 1 364 50
+ #APP
+# 364 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrr a5, mtvec
+# 0 "" 2
+ #NO_APP
+ sw a5,-20(s0)
+ .loc 1 364 100
+ lw a5,-20(s0)
+.LBE14:
+ .loc 1 364 12
+ sw a5,-24(s0)
+ .loc 1 365 15
+ lw a5,-24(s0)
+ andi a5,a5,-64
+ sw a5,-24(s0)
+ .loc 1 366 15
+ lw a5,-24(s0)
+ ori a5,a5,3
+ sw a5,-24(s0)
+ .loc 1 367 146
+ lw a5,-24(s0)
+ #APP
+# 367 "D:\rt-thread\bsp\gd32\risc-v\libraries\GD32VF103_Firmware_Library\RISCV\drivers\n200_func.c" 1
+ csrw mtvec, a5
+# 0 "" 2
+ .loc 1 370 1
+ #NO_APP
+ nop
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE37:
+ .size eclic_mode_enable, .-eclic_mode_enable
+ .align 1
+ .globl eclic_set_vmode
+ .type eclic_set_vmode, @function
+eclic_set_vmode:
+.LFB38:
+ .loc 1 373 39
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 375 25
+ lw a0,-36(s0)
+ call eclic_get_intattr
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 377 11
+ lbu a5,-17(s0)
+ ori a5,a5,1
+ sb a5,-18(s0)
+ .loc 1 379 3
+ lbu a5,-18(s0)
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intattr
+ .loc 1 380 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE38:
+ .size eclic_set_vmode, .-eclic_set_vmode
+ .align 1
+ .globl eclic_set_nonvmode
+ .type eclic_set_nonvmode, @function
+eclic_set_nonvmode:
+.LFB39:
+ .loc 1 382 42
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 384 25
+ lw a0,-36(s0)
+ call eclic_get_intattr
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 386 11
+ lbu a5,-17(s0)
+ andi a5,a5,-2
+ sb a5,-18(s0)
+ .loc 1 388 3
+ lbu a5,-18(s0)
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intattr
+ .loc 1 389 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE39:
+ .size eclic_set_nonvmode, .-eclic_set_nonvmode
+ .align 1
+ .globl eclic_set_level_trig
+ .type eclic_set_level_trig, @function
+eclic_set_level_trig:
+.LFB40:
+ .loc 1 395 44
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 397 25
+ lw a0,-36(s0)
+ call eclic_get_intattr
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 399 11
+ lbu a5,-17(s0)
+ andi a5,a5,-3
+ sb a5,-18(s0)
+ .loc 1 401 3
+ lbu a5,-18(s0)
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intattr
+ .loc 1 402 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE40:
+ .size eclic_set_level_trig, .-eclic_set_level_trig
+ .align 1
+ .globl eclic_set_posedge_trig
+ .type eclic_set_posedge_trig, @function
+eclic_set_posedge_trig:
+.LFB41:
+ .loc 1 404 46
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 406 25
+ lw a0,-36(s0)
+ call eclic_get_intattr
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 408 11
+ lbu a5,-17(s0)
+ ori a5,a5,2
+ sb a5,-18(s0)
+ .loc 1 410 15
+ lbu a5,-17(s0)
+ andi a5,a5,-5
+ sb a5,-18(s0)
+ .loc 1 412 3
+ lbu a5,-18(s0)
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intattr
+ .loc 1 413 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE41:
+ .size eclic_set_posedge_trig, .-eclic_set_posedge_trig
+ .align 1
+ .globl eclic_set_negedge_trig
+ .type eclic_set_negedge_trig, @function
+eclic_set_negedge_trig:
+.LFB42:
+ .loc 1 415 46
+ .cfi_startproc
+ addi sp,sp,-48
+ .cfi_def_cfa_offset 48
+ sw ra,44(sp)
+ sw s0,40(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,48
+ .cfi_def_cfa 8, 0
+ sw a0,-36(s0)
+ .loc 1 417 25
+ lw a0,-36(s0)
+ call eclic_get_intattr
+ mv a5,a0
+ sb a5,-17(s0)
+ .loc 1 419 11
+ lbu a5,-17(s0)
+ ori a5,a5,2
+ sb a5,-18(s0)
+ .loc 1 421 15
+ lbu a5,-17(s0)
+ ori a5,a5,4
+ sb a5,-18(s0)
+ .loc 1 423 3
+ lbu a5,-18(s0)
+ mv a1,a5
+ lw a0,-36(s0)
+ call eclic_set_intattr
+ .loc 1 424 1
+ nop
+ lw ra,44(sp)
+ .cfi_restore 1
+ lw s0,40(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 48
+ addi sp,sp,48
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE42:
+ .size eclic_set_negedge_trig, .-eclic_set_negedge_trig
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .file 4 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .file 5 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0xa33
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF4419
+ .byte 0xc
+ .4byte .LASF4420
+ .4byte .LASF4421
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF4341
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF4342
+ .byte 0x3
+ .4byte .LASF4347
+ .byte 0x2
+ .byte 0x2b
+ .byte 0x17
+ .4byte 0x43
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF4343
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF4344
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF4345
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF4346
+ .byte 0x3
+ .4byte .LASF4348
+ .byte 0x2
+ .byte 0x4f
+ .byte 0x1b
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF4349
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF4350
+ .byte 0x3
+ .4byte .LASF4351
+ .byte 0x2
+ .byte 0x69
+ .byte 0x20
+ .4byte 0x85
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF4352
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x3
+ .4byte .LASF4353
+ .byte 0x3
+ .byte 0x18
+ .byte 0x13
+ .4byte 0x37
+ .byte 0x3
+ .4byte .LASF4354
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .4byte 0x5f
+ .byte 0x5
+ .4byte 0x9f
+ .byte 0x3
+ .4byte .LASF4355
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x14
+ .4byte 0x79
+ .byte 0x6
+ .4byte .LASF4422
+ .byte 0x5
+ .byte 0x35
+ .byte 0x11
+ .4byte 0x9f
+ .byte 0x3
+ .4byte .LASF4356
+ .byte 0x4
+ .byte 0xd1
+ .byte 0x16
+ .4byte 0x29
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF4357
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF377
+ .byte 0x7
+ .4byte .LASF4360
+ .byte 0x1
+ .2byte 0x19f
+ .byte 0x6
+ .4byte .LFB42
+ .4byte .LFE42-.LFB42
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x12a
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x19f
+ .byte 0x26
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4358
+ .byte 0x1
+ .2byte 0x1a1
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4359
+ .byte 0x1
+ .2byte 0x1a3
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0x7
+ .4byte .LASF4361
+ .byte 0x1
+ .2byte 0x194
+ .byte 0x6
+ .4byte .LFB41
+ .4byte .LFE41-.LFB41
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x172
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x194
+ .byte 0x26
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4358
+ .byte 0x1
+ .2byte 0x196
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4359
+ .byte 0x1
+ .2byte 0x198
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0x7
+ .4byte .LASF4363
+ .byte 0x1
+ .2byte 0x18b
+ .byte 0x6
+ .4byte .LFB40
+ .4byte .LFE40-.LFB40
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x1ba
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x18b
+ .byte 0x24
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4358
+ .byte 0x1
+ .2byte 0x18d
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4359
+ .byte 0x1
+ .2byte 0x18f
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0x7
+ .4byte .LASF4364
+ .byte 0x1
+ .2byte 0x17e
+ .byte 0x6
+ .4byte .LFB39
+ .4byte .LFE39-.LFB39
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x202
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x17e
+ .byte 0x22
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4358
+ .byte 0x1
+ .2byte 0x180
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4359
+ .byte 0x1
+ .2byte 0x182
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0x7
+ .4byte .LASF4365
+ .byte 0x1
+ .2byte 0x175
+ .byte 0x6
+ .4byte .LFB38
+ .4byte .LFE38-.LFB38
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x24a
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x175
+ .byte 0x1f
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4358
+ .byte 0x1
+ .2byte 0x177
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4359
+ .byte 0x1
+ .2byte 0x179
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0xa
+ .4byte .LASF4366
+ .byte 0x1
+ .2byte 0x165
+ .byte 0x6
+ .4byte .LFB37
+ .4byte .LFE37-.LFB37
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x28c
+ .byte 0x9
+ .4byte .LASF4367
+ .byte 0x1
+ .2byte 0x16c
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0xb
+ .4byte .LBB14
+ .4byte .LBE14-.LBB14
+ .byte 0x9
+ .4byte .LASF4368
+ .byte 0x1
+ .2byte 0x16c
+ .byte 0x2b
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .4byte .LASF4372
+ .byte 0x1
+ .2byte 0x154
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB36
+ .4byte .LFE36-.LFB36
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x2e8
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x154
+ .byte 0x29
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4369
+ .byte 0x1
+ .2byte 0x156
+ .byte 0xd
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4370
+ .byte 0x1
+ .2byte 0x15b
+ .byte 0xd
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0x9
+ .4byte .LASF4371
+ .byte 0x1
+ .2byte 0x160
+ .byte 0xd
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6d
+ .byte 0
+ .byte 0xc
+ .4byte .LASF4373
+ .byte 0x1
+ .2byte 0x13c
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB35
+ .4byte .LFE35-.LFB35
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x344
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x13c
+ .byte 0x29
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x8
+ .4byte .LASF4371
+ .byte 0x1
+ .2byte 0x13c
+ .byte 0x39
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5b
+ .byte 0x9
+ .4byte .LASF4369
+ .byte 0x1
+ .2byte 0x13e
+ .byte 0xd
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4374
+ .byte 0x1
+ .2byte 0x148
+ .byte 0xd
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0xc
+ .4byte .LASF4375
+ .byte 0x1
+ .2byte 0x12a
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB34
+ .4byte .LFE34-.LFB34
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x3a0
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x12a
+ .byte 0x28
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4369
+ .byte 0x1
+ .2byte 0x12c
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4370
+ .byte 0x1
+ .2byte 0x131
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0x9
+ .4byte .LASF4376
+ .byte 0x1
+ .2byte 0x136
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6d
+ .byte 0
+ .byte 0x7
+ .4byte .LASF4377
+ .byte 0x1
+ .2byte 0x116
+ .byte 0x6
+ .4byte .LFB33
+ .4byte .LFE33-.LFB33
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x408
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x116
+ .byte 0x25
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x8
+ .4byte .LASF4376
+ .byte 0x1
+ .2byte 0x116
+ .byte 0x35
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5b
+ .byte 0x9
+ .4byte .LASF4369
+ .byte 0x1
+ .2byte 0x118
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0xd
+ .string "lvl"
+ .byte 0x1
+ .2byte 0x11e
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0x9
+ .4byte .LASF4374
+ .byte 0x1
+ .2byte 0x121
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6d
+ .byte 0
+ .byte 0xc
+ .4byte .LASF4378
+ .byte 0x1
+ .2byte 0x105
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB32
+ .4byte .LFE32-.LFB32
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x464
+ .byte 0x8
+ .4byte .LASF4362
+ .byte 0x1
+ .2byte 0x105
+ .byte 0x24
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x9
+ .4byte .LASF4369
+ .byte 0x1
+ .2byte 0x107
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x9
+ .4byte .LASF4370
+ .byte 0x1
+ .2byte 0x10c
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0xd
+ .string "lvl"
+ .byte 0x1
+ .2byte 0x111
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6d
+ .byte 0
+ .byte 0xe
+ .4byte .LASF4379
+ .byte 0x1
+ .byte 0xee
+ .byte 0x6
+ .4byte .LFB31
+ .4byte .LFE31-.LFB31
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x4b7
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xee
+ .byte 0x21
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x10
+ .string "lvl"
+ .byte 0x1
+ .byte 0xee
+ .byte 0x31
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5b
+ .byte 0x11
+ .4byte .LASF4369
+ .byte 0x1
+ .byte 0xf0
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x11
+ .4byte .LASF4374
+ .byte 0x1
+ .byte 0xfb
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0
+ .byte 0x12
+ .4byte .LASF4380
+ .byte 0x1
+ .byte 0xe6
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB30
+ .4byte .LFE30-.LFB30
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x4e1
+ .byte 0x11
+ .4byte .LASF4369
+ .byte 0x1
+ .byte 0xe8
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0
+ .byte 0xe
+ .4byte .LASF4381
+ .byte 0x1
+ .byte 0xda
+ .byte 0x6
+ .4byte .LFB29
+ .4byte .LFE29-.LFB29
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x534
+ .byte 0xf
+ .4byte .LASF4369
+ .byte 0x1
+ .byte 0xda
+ .byte 0x1f
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5f
+ .byte 0x11
+ .4byte .LASF4382
+ .byte 0x1
+ .byte 0xdc
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0x11
+ .4byte .LASF4383
+ .byte 0x1
+ .byte 0xdf
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6e
+ .byte 0x11
+ .4byte .LASF4384
+ .byte 0x1
+ .byte 0xe0
+ .byte 0xb
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6d
+ .byte 0
+ .byte 0x13
+ .4byte .LASF4386
+ .byte 0x1
+ .byte 0xd5
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB28
+ .4byte .LFE28-.LFB28
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x14
+ .4byte .LASF4385
+ .byte 0x1
+ .byte 0xd1
+ .byte 0x6
+ .4byte .LFB27
+ .4byte .LFE27-.LFB27
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x570
+ .byte 0x10
+ .string "mth"
+ .byte 0x1
+ .byte 0xd1
+ .byte 0x1d
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0
+ .byte 0x13
+ .4byte .LASF4387
+ .byte 0x1
+ .byte 0xcd
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB26
+ .4byte .LFE26-.LFB26
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x14
+ .4byte .LASF4388
+ .byte 0x1
+ .byte 0xc9
+ .byte 0x6
+ .4byte .LFB25
+ .4byte .LFE25-.LFB25
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x5ac
+ .byte 0xf
+ .4byte .LASF4389
+ .byte 0x1
+ .byte 0xc9
+ .byte 0x21
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6f
+ .byte 0
+ .byte 0x15
+ .4byte .LASF4390
+ .byte 0x1
+ .byte 0xc5
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB24
+ .4byte .LFE24-.LFB24
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x5d6
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xc5
+ .byte 0x25
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4391
+ .byte 0x1
+ .byte 0xc1
+ .byte 0x6
+ .4byte .LFB23
+ .4byte .LFE23-.LFB23
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x60b
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xc1
+ .byte 0x22
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xf
+ .4byte .LASF4392
+ .byte 0x1
+ .byte 0xc1
+ .byte 0x32
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6b
+ .byte 0
+ .byte 0x15
+ .4byte .LASF4393
+ .byte 0x1
+ .byte 0xbd
+ .byte 0x9
+ .4byte 0x93
+ .4byte .LFB22
+ .4byte .LFE22-.LFB22
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x635
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xbd
+ .byte 0x25
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4394
+ .byte 0x1
+ .byte 0xb9
+ .byte 0x6
+ .4byte .LFB21
+ .4byte .LFE21-.LFB21
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x66a
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xb9
+ .byte 0x22
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0xf
+ .4byte .LASF4370
+ .byte 0x1
+ .byte 0xb9
+ .byte 0x32
+ .4byte 0x93
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6b
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4395
+ .byte 0x1
+ .byte 0xb5
+ .byte 0x6
+ .4byte .LFB20
+ .4byte .LFE20-.LFB20
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x690
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xb5
+ .byte 0x23
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4396
+ .byte 0x1
+ .byte 0xb1
+ .byte 0x6
+ .4byte .LFB19
+ .4byte .LFE19-.LFB19
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x6b6
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xb1
+ .byte 0x21
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4397
+ .byte 0x1
+ .byte 0xad
+ .byte 0x6
+ .4byte .LFB18
+ .4byte .LFE18-.LFB18
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x6dc
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xad
+ .byte 0x28
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4398
+ .byte 0x1
+ .byte 0xa9
+ .byte 0x6
+ .4byte .LFB17
+ .4byte .LFE17-.LFB17
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x702
+ .byte 0xf
+ .4byte .LASF4362
+ .byte 0x1
+ .byte 0xa9
+ .byte 0x27
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x14
+ .4byte .LASF4399
+ .byte 0x1
+ .byte 0x93
+ .byte 0x6
+ .4byte .LFB16
+ .4byte .LFE16-.LFB16
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x767
+ .byte 0xf
+ .4byte .LASF4400
+ .byte 0x1
+ .byte 0x93
+ .byte 0x1c
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x3
+ .4byte .LASF4401
+ .byte 0x1
+ .byte 0x96
+ .byte 0x1d
+ .4byte 0xab
+ .byte 0x16
+ .string "ptr"
+ .byte 0x1
+ .byte 0x9f
+ .byte 0xf
+ .4byte 0x742
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x17
+ .byte 0x4
+ .4byte 0x727
+ .byte 0x11
+ .4byte .LASF4402
+ .byte 0x1
+ .byte 0xa1
+ .byte 0xf
+ .4byte 0x742
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x11
+ .4byte .LASF4403
+ .byte 0x1
+ .byte 0xa2
+ .byte 0xf
+ .4byte 0x742
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0x12
+ .4byte .LASF4404
+ .byte 0x1
+ .byte 0x85
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB15
+ .4byte .LFE15-.LFB15
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x791
+ .byte 0x11
+ .4byte .LASF4405
+ .byte 0x1
+ .byte 0x87
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x12
+ .4byte .LASF4406
+ .byte 0x1
+ .byte 0x66
+ .byte 0x24
+ .4byte 0x9f
+ .4byte .LFB14
+ .4byte .LFE14-.LFB14
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x849
+ .byte 0x10
+ .string "n"
+ .byte 0x1
+ .byte 0x66
+ .byte 0x3c
+ .4byte 0xc8
+ .byte 0x2
+ .byte 0x91
+ .byte 0x4c
+ .byte 0x11
+ .4byte .LASF4407
+ .byte 0x1
+ .byte 0x68
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0x11
+ .4byte .LASF4408
+ .byte 0x1
+ .byte 0x68
+ .byte 0x19
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x58
+ .byte 0x11
+ .4byte .LASF4409
+ .byte 0x1
+ .byte 0x69
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x16
+ .string "tmp"
+ .byte 0x1
+ .byte 0x6c
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x11
+ .4byte .LASF4410
+ .byte 0x1
+ .byte 0x74
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0x11
+ .4byte .LASF4411
+ .byte 0x1
+ .byte 0x7e
+ .byte 0xc
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x50
+ .byte 0x18
+ .4byte .LBB12
+ .4byte .LBE12-.LBB12
+ .4byte 0x82f
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x74
+ .byte 0x2c
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0
+ .byte 0xb
+ .4byte .LBB13
+ .4byte .LBE13-.LBB13
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x7e
+ .byte 0x2c
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x54
+ .byte 0
+ .byte 0
+ .byte 0x15
+ .4byte .LASF4412
+ .byte 0x1
+ .byte 0x55
+ .byte 0xa
+ .4byte 0xb0
+ .4byte .LFB13
+ .4byte .LFE13-.LFB13
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x8dd
+ .byte 0xb
+ .4byte .LBB8
+ .4byte .LBE8-.LBB8
+ .byte 0x16
+ .string "hi"
+ .byte 0x1
+ .byte 0x5d
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x16
+ .string "lo"
+ .byte 0x1
+ .byte 0x5e
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0x18
+ .4byte .LBB9
+ .4byte .LBE9-.LBB9
+ .4byte 0x8a5
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x5d
+ .byte 0x24
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x18
+ .4byte .LBB10
+ .4byte .LBE10-.LBB10
+ .4byte 0x8c2
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x5e
+ .byte 0x24
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0xb
+ .4byte .LBB11
+ .4byte .LBE11-.LBB11
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x5f
+ .byte 0x20
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0x15
+ .4byte .LASF4413
+ .byte 0x1
+ .byte 0x44
+ .byte 0xa
+ .4byte 0xb0
+ .4byte .LFB12
+ .4byte .LFE12-.LFB12
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x971
+ .byte 0xb
+ .4byte .LBB4
+ .4byte .LBE4-.LBB4
+ .byte 0x16
+ .string "hi"
+ .byte 0x1
+ .byte 0x4c
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0x16
+ .string "lo"
+ .byte 0x1
+ .byte 0x4d
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x60
+ .byte 0x18
+ .4byte .LBB5
+ .4byte .LBE5-.LBB5
+ .4byte 0x939
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x4c
+ .byte 0x24
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0x18
+ .4byte .LBB6
+ .4byte .LBE6-.LBB6
+ .4byte 0x956
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x4d
+ .byte 0x24
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x64
+ .byte 0
+ .byte 0xb
+ .4byte .LBB7
+ .4byte .LBE7-.LBB7
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x4e
+ .byte 0x20
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x5c
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0x13
+ .4byte .LASF4414
+ .byte 0x1
+ .byte 0x3f
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB11
+ .4byte .LFE11-.LFB11
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x12
+ .4byte .LASF4415
+ .byte 0x1
+ .byte 0x35
+ .byte 0xa
+ .4byte 0xb0
+ .4byte .LFB10
+ .4byte .LFE10-.LFB10
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x9c8
+ .byte 0xb
+ .4byte .LBB3
+ .4byte .LBE3-.LBB3
+ .byte 0x16
+ .string "hi"
+ .byte 0x1
+ .byte 0x38
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x4c
+ .byte 0x16
+ .string "lo"
+ .byte 0x1
+ .byte 0x39
+ .byte 0xe
+ .4byte 0x9f
+ .byte 0x2
+ .byte 0x91
+ .byte 0x48
+ .byte 0
+ .byte 0
+ .byte 0x13
+ .4byte .LASF4416
+ .byte 0x1
+ .byte 0x30
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB9
+ .4byte .LFE9-.LFB9
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x13
+ .4byte .LASF4417
+ .byte 0x1
+ .byte 0x2a
+ .byte 0xa
+ .4byte 0x9f
+ .4byte .LFB8
+ .4byte .LFE8-.LFB8
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x14
+ .4byte .LASF4418
+ .byte 0x1
+ .byte 0x1a
+ .byte 0x6
+ .4byte .LFB7
+ .4byte .LFE7-.LFB7
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xa24
+ .byte 0xb
+ .4byte .LBB2
+ .4byte .LBE2-.LBB2
+ .byte 0x11
+ .4byte .LASF4368
+ .byte 0x1
+ .byte 0x1e
+ .byte 0x16
+ .4byte 0x6b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0
+ .byte 0
+ .byte 0x19
+ .4byte .LASF4423
+ .byte 0x1
+ .byte 0x11
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x35
+ .byte 0
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3c
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x9
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xa
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0
+ .byte 0
+ .byte 0xc
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xd
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0x5
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0xe
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0xf
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x10
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x11
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x12
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x13
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x14
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x15
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x16
+ .byte 0x34
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x17
+ .byte 0xf
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x18
+ .byte 0xb
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x19
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .file 6 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .byte 0x3
+ .byte 0x2
+ .byte 0x6
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x5
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF340
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x7
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF341
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF342
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x8
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF343
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x9
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 11 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xb
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF526
+ .file 12 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xc
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .byte 0x3
+ .byte 0x27
+ .byte 0x6
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xd
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .byte 0x3
+ .byte 0x36
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x20
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 33 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x21
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3074
+ .byte 0x3
+ .byte 0x7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3138
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .file 37 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdio.h"
+ .byte 0x3
+ .byte 0x3
+ .byte 0x25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3169
+ .file 38 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_ansi.h"
+ .byte 0x3
+ .byte 0x1d
+ .byte 0x26
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3170
+ .file 39 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\newlib.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0x27
+ .byte 0x7
+ .4byte .Ldebug_macro36
+ .byte 0x4
+ .file 40 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\config.h"
+ .byte 0x3
+ .byte 0xb
+ .byte 0x28
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3185
+ .file 41 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\ieeefp.h"
+ .byte 0x3
+ .byte 0x4
+ .byte 0x29
+ .byte 0x7
+ .4byte .Ldebug_macro37
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro38
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro39
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro40
+ .file 42 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\cdefs.h"
+ .byte 0x3
+ .byte 0x23
+ .byte 0x2a
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3207
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro41
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro42
+ .byte 0x4
+ .byte 0x3
+ .byte 0x24
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3330
+ .file 43 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stdarg.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0x2b
+ .byte 0x7
+ .4byte .Ldebug_macro43
+ .byte 0x4
+ .file 44 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\reent.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x2c
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3333
+ .byte 0x3
+ .byte 0xd
+ .byte 0x26
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x4
+ .byte 0x4
+ .file 45 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_types.h"
+ .byte 0x3
+ .byte 0xf
+ .byte 0x2d
+ .byte 0x7
+ .4byte .Ldebug_macro44
+ .byte 0x3
+ .byte 0x18
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro45
+ .byte 0x4
+ .file 46 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_types.h"
+ .byte 0x3
+ .byte 0x1b
+ .byte 0x2e
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3338
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro46
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro47
+ .file 47 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\lock.h"
+ .byte 0x3
+ .byte 0x22
+ .byte 0x2f
+ .byte 0x7
+ .4byte .Ldebug_macro48
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro49
+ .byte 0x4
+ .file 48 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\types.h"
+ .byte 0x3
+ .byte 0x3d
+ .byte 0x30
+ .byte 0x7
+ .4byte .Ldebug_macro50
+ .file 49 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_pthreadtypes.h"
+ .byte 0x3
+ .byte 0xdf,0x1
+ .byte 0x31
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3443
+ .byte 0x4
+ .file 50 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\types.h"
+ .byte 0x3
+ .byte 0xe0,0x1
+ .byte 0x32
+ .byte 0x4
+ .byte 0x6
+ .byte 0xe4,0x1
+ .4byte .LASF3444
+ .byte 0x4
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3445
+ .file 51 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\stdio.h"
+ .byte 0x3
+ .byte 0x4f
+ .byte 0x33
+ .byte 0x7
+ .4byte .Ldebug_macro51
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro52
+ .byte 0x4
+ .file 52 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdlib.h"
+ .byte 0x3
+ .byte 0x4
+ .byte 0x34
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3497
+ .byte 0x3
+ .byte 0xa
+ .byte 0x29
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro53
+ .byte 0x3
+ .byte 0x10
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro41
+ .byte 0x4
+ .file 53 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\stdlib.h"
+ .byte 0x3
+ .byte 0x14
+ .byte 0x35
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3499
+ .byte 0x4
+ .file 54 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\alloca.h"
+ .byte 0x3
+ .byte 0x16
+ .byte 0x36
+ .byte 0x7
+ .4byte .Ldebug_macro54
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro55
+ .byte 0x4
+ .file 55 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\string.h"
+ .byte 0x3
+ .byte 0x5
+ .byte 0x37
+ .byte 0x7
+ .4byte .Ldebug_macro56
+ .byte 0x3
+ .byte 0x11
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro41
+ .byte 0x4
+ .file 56 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\string.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x38
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3509
+ .byte 0x4
+ .byte 0x4
+ .file 57 "D:\\rt-thread\\components\\libc\\compilers\\common/unistd.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0x39
+ .file 58 "D:\\rt-thread\\components\\libc\\compilers\\common/sys/unistd.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0x3a
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3510
+ .byte 0x3
+ .byte 0xf
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro57
+ .byte 0x4
+ .byte 0x4
+ .file 59 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers\\riscv_encoding.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0x3b
+ .byte 0x7
+ .4byte .Ldebug_macro58
+ .byte 0x4
+ .file 60 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers\\n200_func.h"
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3c
+ .byte 0x4
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF339
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF344
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF348
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF349
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF360
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF361
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF371
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF372
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF373
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF374
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF378
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF379
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF381
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF403
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF378
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF379
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF380
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF404
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF420
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF421
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF489
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF490
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF525
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF528
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF709
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF710
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF778
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF779
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1116
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1117
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1124
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1125
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1225
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1226
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1324
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1325
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1331
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1332
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1362
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1483
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1484
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1597
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1598
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1878
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1879
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1990
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1991
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2017
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2018
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2041
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2042
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2074
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2075
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2405
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2445
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2588
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2794
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2937
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3001
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3003
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3057
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3073
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3086
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3104
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3120
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF3121
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3127
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3137
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3143
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3163
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.newlib.h.8.542bedab3c90294c348821966b79eb81,comdat
+.Ldebug_macro36:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3171
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3172
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3173
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3174
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3175
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3176
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3177
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF3178
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3179
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3180
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3181
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3182
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF3183
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF3184
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.ieeefp.h.202.4f2759f5758fd82153cfbf98692f2ced,comdat
+.Ldebug_macro37:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3186
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF3187
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF3188
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.config.h.83.13bbc8852bfac55b724c9822481355b5,comdat
+.Ldebug_macro38:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3189
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3190
+ .byte 0x6
+ .byte 0xe6,0x1
+ .4byte .LASF3191
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3192
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3193
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3194
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3195
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._ansi.h.31.de524f58584151836e90d8620a16f8e8,comdat
+.Ldebug_macro39:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3196
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF3197
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3198
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3199
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3200
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3201
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF3202
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF3203
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.31.7c0e28c411445f3f9c5b11accf882760,comdat
+.Ldebug_macro40:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3204
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF3206
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.155.ba788add86a0e365f264484f110c3c29,comdat
+.Ldebug_macro41:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.49.39045112216f6a021dbdffe3bf5accce,comdat
+.Ldebug_macro42:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF3208
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3209
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3210
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3211
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3212
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF3213
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3214
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3215
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF3216
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3217
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3218
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3219
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3220
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF3221
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3222
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3223
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3224
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3225
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3226
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3227
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3228
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3229
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF3230
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3231
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3232
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF3233
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3234
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3235
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3236
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF3237
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF3238
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF3239
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF3240
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3241
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF3242
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3243
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF3244
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF3245
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF3246
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF3247
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF3248
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3249
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF3250
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3251
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3252
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3253
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3254
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3255
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3256
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3257
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3258
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3259
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3260
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3261
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3262
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3263
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3264
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3265
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF3266
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF3267
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF3268
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF3269
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF3270
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF3271
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF3272
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF3273
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF3274
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF3275
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF3276
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF3277
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF3278
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF3279
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF3280
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF3281
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF3282
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF3283
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF3284
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF3285
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF3286
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF3287
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF3288
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF3289
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF3290
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF3291
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF3292
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF3293
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF3294
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF3295
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF3296
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF3297
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF3298
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF3299
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF3300
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF3301
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF3302
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF3303
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF3304
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF3305
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF3306
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF3307
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF3308
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF3309
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF3310
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF3311
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF3312
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF3313
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF3314
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF3315
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF3316
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF3317
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF3318
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF3319
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF3320
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF3321
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF3322
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF3323
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF3324
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF3325
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF3326
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF3327
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF3328
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF3329
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdarg.h.34.3a23a216c0c293b3d2ea2e89281481e6,comdat
+.Ldebug_macro43:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x22
+ .4byte .LASF3331
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3332
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._types.h.20.dd0d04dca3800a0d2a6129b87f3adbb2,comdat
+.Ldebug_macro44:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3334
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3335
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.155.3588ebfdd1e8c7ede80509bb9c3b8009,comdat
+.Ldebug_macro45:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF3336
+ .byte 0x6
+ .byte 0xe0,0x2
+ .4byte .LASF3337
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._types.h.127.34941de1b2539d59d5cac00e0dd27a45,comdat
+.Ldebug_macro46:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x7f
+ .4byte .LASF3339
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF3340
+ .byte 0x6
+ .byte 0x94,0x1
+ .4byte .LASF376
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3341
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3342
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3343
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3344
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.reent.h.17.e292bf8b0bec6c96e131a54347145a30,comdat
+.Ldebug_macro47:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3345
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3346
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.lock.h.2.c0958401bd0ce484d507ee19aacab817,comdat
+.Ldebug_macro48:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3347
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3348
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3349
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3350
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3351
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3352
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3353
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3354
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3355
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3356
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3357
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3358
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF3359
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.reent.h.77.dcd6129ff07fe81bd5636db29abe53b2,comdat
+.Ldebug_macro49:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF3360
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF3361
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF3362
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3363
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF3364
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF3365
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF3366
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF3367
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF3368
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF3369
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF3370
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF3371
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF3372
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF3373
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF3374
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF3375
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF3376
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF3377
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF3378
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF3379
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF3380
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF3381
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF3382
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF3383
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF3384
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF3385
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF3386
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF3387
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF3388
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF3389
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF3390
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF3391
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF3392
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF3393
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF3394
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF3395
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF3396
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF3397
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF3398
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF3399
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF3400
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF3401
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF3402
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF3403
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF3404
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF3405
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF3406
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF3407
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF3408
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF3409
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF3410
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF3411
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF3412
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF3413
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF3414
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.types.h.40.c2dcbbb5c1f4f0e5cb716ebf7776da48,comdat
+.Ldebug_macro50:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3415
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3416
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3417
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3418
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3419
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3420
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3421
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3422
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3423
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3424
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3425
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3426
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3427
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF3428
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF3429
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF3430
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF3431
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF3432
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF3433
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3434
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3435
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3436
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3437
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3438
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3439
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3440
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3441
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3442
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.2.4aa87247282eca6c8f36f9de33d8df1a,comdat
+.Ldebug_macro51:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3446
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3447
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3448
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.81.b348624b6806a74def9195c754308a00,comdat
+.Ldebug_macro52:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3449
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3450
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3451
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF3452
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3453
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3454
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3455
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3456
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3457
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF3458
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3459
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF3460
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3461
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3462
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3463
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3464
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3465
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3466
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3467
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF3468
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF3469
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF3470
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3471
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3472
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF3473
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF3474
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3475
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3476
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF3477
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF3478
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF3479
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF3480
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF3481
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF3482
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF3483
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF3484
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF3485
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF3486
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF3487
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF3488
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF3489
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF3490
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF3491
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF3492
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF3493
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF3494
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF3495
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF3496
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdlib.h.13.4ed386f5c1a80d71e72172885d946ef2,comdat
+.Ldebug_macro53:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3498
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3206
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.alloca.h.8.dfc0c703c47ec3e69746825b17d9e66d,comdat
+.Ldebug_macro54:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3500
+ .byte 0x6
+ .byte 0xd
+ .4byte .LASF3501
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3502
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdlib.h.56.b4ddaf162082f284ba35b4444af99a9a,comdat
+.Ldebug_macro55:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3503
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3504
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3505
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3506
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3507
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.string.h.8.c4b8571ce60dff2817f43fec8b86aecd,comdat
+.Ldebug_macro56:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3508
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3206
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.unistd.h.22.3ec6b4596b960d9f35140931ce8c2bd0,comdat
+.Ldebug_macro57:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3511
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3512
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3513
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_encoding.h.4.141a3f782f9378c77348fd1925237eaf,comdat
+.Ldebug_macro58:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3514
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3515
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3516
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3517
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3518
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3519
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3520
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3521
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3522
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3523
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3524
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3525
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3526
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3527
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3528
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3529
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3530
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3531
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3532
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3533
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3534
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3535
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3536
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3537
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3538
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF3539
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3540
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF3541
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3542
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3543
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3544
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3545
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3546
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3547
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3548
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3549
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3550
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3551
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3552
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3553
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF3554
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF3555
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3556
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3557
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF3558
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3559
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3560
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3561
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3562
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF3563
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3564
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3565
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3566
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3567
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3568
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3569
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3570
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3571
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3572
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF3573
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF3574
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3575
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF3576
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF3577
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF3578
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF3579
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF3580
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF3581
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3582
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3583
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3584
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF3585
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3586
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3587
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3588
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3589
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3590
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3591
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF3592
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3593
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3594
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF3595
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF3596
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3597
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3598
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF3599
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3600
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3601
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF3602
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF3603
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF3604
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3605
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3606
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3607
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF3608
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3609
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3610
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3611
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF3612
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF3613
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF3614
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3615
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF3616
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF3617
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF3618
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3619
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3620
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3621
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF3622
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3623
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3624
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3625
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3626
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3627
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3628
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3629
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3630
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3631
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3632
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3633
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF3634
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF3635
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF3636
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF3637
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF3638
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF3639
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF3640
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF3641
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF3642
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3643
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF3644
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF3645
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3646
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF3647
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF3648
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF3649
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF3650
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF3651
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF3652
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF3653
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3654
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3655
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3656
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3657
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3658
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3659
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF3660
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF3661
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF3662
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3663
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3664
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3665
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3666
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF3667
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF3668
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3669
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3670
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3671
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF3672
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF3673
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3674
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3675
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3676
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3677
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3678
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3679
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3680
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3681
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF3682
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3683
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3684
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3685
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3686
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF3687
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF3688
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3689
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3690
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3691
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3692
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3693
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3694
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3695
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3696
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3697
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3698
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3699
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3700
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3701
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3702
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3703
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3704
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3705
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF3706
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF3707
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF3708
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF3709
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF3710
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF3711
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF3712
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF3713
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF3714
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF3715
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF3716
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF3717
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF3718
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF3719
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF3720
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF3721
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF3722
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF3723
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF3724
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF3725
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF3726
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF3727
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF3728
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF3729
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF3730
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF3731
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF3732
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF3733
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF3734
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF3735
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF3736
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF3737
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF3738
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF3739
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF3740
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF3741
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF3742
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF3743
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF3744
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF3745
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF3746
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF3747
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF3748
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF3749
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF3750
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF3751
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF3752
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF3753
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF3754
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF3755
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF3756
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF3757
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF3758
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF3759
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF3760
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF3761
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF3762
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF3763
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF3764
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF3765
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF3766
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF3767
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF3768
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF3769
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF3770
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF3771
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF3772
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF3773
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF3774
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF3775
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF3776
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF3777
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF3778
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF3779
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF3780
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF3781
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF3782
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF3783
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF3784
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF3785
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF3786
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF3787
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF3788
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF3789
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF3790
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF3791
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF3792
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF3793
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF3794
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF3795
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF3796
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF3797
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF3798
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF3799
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF3800
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF3801
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF3802
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF3803
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF3804
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF3805
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF3806
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF3807
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF3808
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF3809
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF3810
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF3811
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF3812
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF3813
+ .byte 0x5
+ .byte 0xff,0x2
+ .4byte .LASF3814
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF3815
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF3816
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF3817
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF3818
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF3819
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF3820
+ .byte 0x5
+ .byte 0x86,0x3
+ .4byte .LASF3821
+ .byte 0x5
+ .byte 0x87,0x3
+ .4byte .LASF3822
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF3823
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF3824
+ .byte 0x5
+ .byte 0x8a,0x3
+ .4byte .LASF3825
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3826
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF3827
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF3828
+ .byte 0x5
+ .byte 0x8e,0x3
+ .4byte .LASF3829
+ .byte 0x5
+ .byte 0x8f,0x3
+ .4byte .LASF3830
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF3831
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF3832
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF3833
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF3834
+ .byte 0x5
+ .byte 0x94,0x3
+ .4byte .LASF3835
+ .byte 0x5
+ .byte 0x95,0x3
+ .4byte .LASF3836
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3837
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF3838
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF3839
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF3840
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF3841
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3842
+ .byte 0x5
+ .byte 0x9c,0x3
+ .4byte .LASF3843
+ .byte 0x5
+ .byte 0x9d,0x3
+ .4byte .LASF3844
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF3845
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF3846
+ .byte 0x5
+ .byte 0xa0,0x3
+ .4byte .LASF3847
+ .byte 0x5
+ .byte 0xa1,0x3
+ .4byte .LASF3848
+ .byte 0x5
+ .byte 0xa2,0x3
+ .4byte .LASF3849
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF3850
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF3851
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF3852
+ .byte 0x5
+ .byte 0xa6,0x3
+ .4byte .LASF3853
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF3854
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF3855
+ .byte 0x5
+ .byte 0xa9,0x3
+ .4byte .LASF3856
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF3857
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF3858
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF3859
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF3860
+ .byte 0x5
+ .byte 0xae,0x3
+ .4byte .LASF3861
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF3862
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF3863
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF3864
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF3865
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF3866
+ .byte 0x5
+ .byte 0xb4,0x3
+ .4byte .LASF3867
+ .byte 0x5
+ .byte 0xb5,0x3
+ .4byte .LASF3868
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF3869
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF3870
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF3871
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF3872
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF3873
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF3874
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF3875
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF3876
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF3877
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF3878
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF3879
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF3880
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF3881
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF3882
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF3883
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF3884
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF3885
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF3886
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF3887
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF3888
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF3889
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF3890
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF3891
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF3892
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF3893
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF3894
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF3895
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF3896
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF3897
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF3898
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF3899
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF3900
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF3901
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF3902
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF3903
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF3904
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF3905
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF3906
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF3907
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF3908
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF3909
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF3910
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF3911
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF3912
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF3913
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF3914
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF3915
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF3916
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF3917
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF3918
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF3919
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF3920
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF3921
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF3922
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF3923
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF3924
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF3925
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF3926
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF3927
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF3928
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF3929
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF3930
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF3931
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF3932
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF3933
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF3934
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF3935
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF3936
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF3937
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF3938
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF3939
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF3940
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF3941
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF3942
+ .byte 0x5
+ .byte 0x80,0x4
+ .4byte .LASF3943
+ .byte 0x5
+ .byte 0x81,0x4
+ .4byte .LASF3944
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF3945
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF3946
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF3947
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF3948
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF3949
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF3950
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF3951
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF3952
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF3953
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF3954
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF3955
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF3956
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF3957
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF3958
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF3959
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF3960
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF3961
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF3962
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF3963
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF3964
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF3965
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF3966
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF3967
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF3968
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF3969
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF3970
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF3971
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF3972
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF3973
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF3974
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF3975
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF3976
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF3977
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF3978
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF3979
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF3980
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF3981
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF3982
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF3983
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF3984
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF3985
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF3986
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF3987
+ .byte 0x5
+ .byte 0xad,0x4
+ .4byte .LASF3988
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF3989
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF3990
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF3991
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF3992
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF3993
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF3994
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF3995
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF3996
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF3997
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF3998
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF3999
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF4000
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF4001
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF4002
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF4003
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF4004
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF4005
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF4006
+ .byte 0x5
+ .byte 0xc0,0x4
+ .4byte .LASF4007
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF4008
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF4009
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF4010
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF4011
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF4012
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF4013
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF4014
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF4015
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF4016
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF4017
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF4018
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF4019
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF4020
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF4021
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF4022
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF4023
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF4024
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF4025
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF4026
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF4027
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF4028
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF4029
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF4030
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF4031
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF4032
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF4033
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF4034
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF4035
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF4036
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF4037
+ .byte 0x5
+ .byte 0xdf,0x4
+ .4byte .LASF4038
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF4039
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF4040
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF4041
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF4042
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF4043
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF4044
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF4045
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF4046
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF4047
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF4048
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF4049
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF4050
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF4051
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF4052
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF4053
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF4054
+ .byte 0x5
+ .byte 0xf0,0x4
+ .4byte .LASF4055
+ .byte 0x5
+ .byte 0xf1,0x4
+ .4byte .LASF4056
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF4057
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF4058
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF4059
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF4060
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF4061
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF4062
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF4063
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF4064
+ .byte 0x5
+ .byte 0xfa,0x4
+ .4byte .LASF4065
+ .byte 0x5
+ .byte 0xfb,0x4
+ .4byte .LASF4066
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF4067
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF4068
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF4069
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF4070
+ .byte 0x5
+ .byte 0x80,0x5
+ .4byte .LASF4071
+ .byte 0x5
+ .byte 0x81,0x5
+ .4byte .LASF4072
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF4073
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF4074
+ .byte 0x5
+ .byte 0x84,0x5
+ .4byte .LASF4075
+ .byte 0x5
+ .byte 0x85,0x5
+ .4byte .LASF4076
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF4077
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF4078
+ .byte 0x5
+ .byte 0x88,0x5
+ .4byte .LASF4079
+ .byte 0x5
+ .byte 0x89,0x5
+ .4byte .LASF4080
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF4081
+ .byte 0x5
+ .byte 0x8b,0x5
+ .4byte .LASF4082
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF4083
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF4084
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF4085
+ .byte 0x5
+ .byte 0x8f,0x5
+ .4byte .LASF4086
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF4087
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF4088
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF4089
+ .byte 0x5
+ .byte 0x93,0x5
+ .4byte .LASF4090
+ .byte 0x5
+ .byte 0x94,0x5
+ .4byte .LASF4091
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF4092
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF4093
+ .byte 0x5
+ .byte 0x97,0x5
+ .4byte .LASF4094
+ .byte 0x5
+ .byte 0x98,0x5
+ .4byte .LASF4095
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF4096
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF4097
+ .byte 0x5
+ .byte 0x9b,0x5
+ .4byte .LASF4098
+ .byte 0x5
+ .byte 0x9c,0x5
+ .4byte .LASF4099
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF4100
+ .byte 0x5
+ .byte 0x9e,0x5
+ .4byte .LASF4101
+ .byte 0x5
+ .byte 0x9f,0x5
+ .4byte .LASF4102
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF4103
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF4104
+ .byte 0x5
+ .byte 0xa2,0x5
+ .4byte .LASF4105
+ .byte 0x5
+ .byte 0xa3,0x5
+ .4byte .LASF4106
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF4107
+ .byte 0x5
+ .byte 0xa5,0x5
+ .4byte .LASF4108
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF4109
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF4110
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF4111
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF4112
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF4113
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF4114
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF4115
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF4116
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF4117
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF4118
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF4119
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF4120
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF4121
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF4122
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF4123
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF4124
+ .byte 0x5
+ .byte 0xb6,0x5
+ .4byte .LASF4125
+ .byte 0x5
+ .byte 0xb7,0x5
+ .4byte .LASF4126
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF4127
+ .byte 0x5
+ .byte 0xb9,0x5
+ .4byte .LASF4128
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF4129
+ .byte 0x5
+ .byte 0xbb,0x5
+ .4byte .LASF4130
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF4131
+ .byte 0x5
+ .byte 0xbd,0x5
+ .4byte .LASF4132
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF4133
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF4134
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF4135
+ .byte 0x5
+ .byte 0xc1,0x5
+ .4byte .LASF4136
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF4137
+ .byte 0x5
+ .byte 0xc3,0x5
+ .4byte .LASF4138
+ .byte 0x5
+ .byte 0xc4,0x5
+ .4byte .LASF4139
+ .byte 0x5
+ .byte 0xc5,0x5
+ .4byte .LASF4140
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF4141
+ .byte 0x5
+ .byte 0xc7,0x5
+ .4byte .LASF4142
+ .byte 0x5
+ .byte 0xc8,0x5
+ .4byte .LASF4143
+ .byte 0x5
+ .byte 0xc9,0x5
+ .4byte .LASF4144
+ .byte 0x5
+ .byte 0xca,0x5
+ .4byte .LASF4145
+ .byte 0x5
+ .byte 0xcb,0x5
+ .4byte .LASF4146
+ .byte 0x5
+ .byte 0xcc,0x5
+ .4byte .LASF4147
+ .byte 0x5
+ .byte 0xcd,0x5
+ .4byte .LASF4148
+ .byte 0x5
+ .byte 0xce,0x5
+ .4byte .LASF4149
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF4150
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF4151
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF4152
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF4153
+ .byte 0x5
+ .byte 0xd3,0x5
+ .4byte .LASF4154
+ .byte 0x5
+ .byte 0xd4,0x5
+ .4byte .LASF4155
+ .byte 0x5
+ .byte 0xd5,0x5
+ .4byte .LASF4156
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF4157
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF4158
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF4159
+ .byte 0x5
+ .byte 0xd9,0x5
+ .4byte .LASF4160
+ .byte 0x5
+ .byte 0xda,0x5
+ .4byte .LASF4161
+ .byte 0x5
+ .byte 0xdb,0x5
+ .4byte .LASF4162
+ .byte 0x5
+ .byte 0xdc,0x5
+ .4byte .LASF4163
+ .byte 0x5
+ .byte 0xdd,0x5
+ .4byte .LASF4164
+ .byte 0x5
+ .byte 0xde,0x5
+ .4byte .LASF4165
+ .byte 0x5
+ .byte 0xdf,0x5
+ .4byte .LASF4166
+ .byte 0x5
+ .byte 0xe0,0x5
+ .4byte .LASF4167
+ .byte 0x5
+ .byte 0xe1,0x5
+ .4byte .LASF4168
+ .byte 0x5
+ .byte 0xe2,0x5
+ .4byte .LASF4169
+ .byte 0x5
+ .byte 0xe3,0x5
+ .4byte .LASF4170
+ .byte 0x5
+ .byte 0xe4,0x5
+ .4byte .LASF4171
+ .byte 0x5
+ .byte 0xe5,0x5
+ .4byte .LASF4172
+ .byte 0x5
+ .byte 0xe6,0x5
+ .4byte .LASF4173
+ .byte 0x5
+ .byte 0xe7,0x5
+ .4byte .LASF4174
+ .byte 0x5
+ .byte 0xe8,0x5
+ .4byte .LASF4175
+ .byte 0x5
+ .byte 0xe9,0x5
+ .4byte .LASF4176
+ .byte 0x5
+ .byte 0xea,0x5
+ .4byte .LASF4177
+ .byte 0x5
+ .byte 0xeb,0x5
+ .4byte .LASF4178
+ .byte 0x5
+ .byte 0xec,0x5
+ .4byte .LASF4179
+ .byte 0x5
+ .byte 0xed,0x5
+ .4byte .LASF4180
+ .byte 0x5
+ .byte 0xee,0x5
+ .4byte .LASF4181
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF4182
+ .byte 0x5
+ .byte 0xf0,0x5
+ .4byte .LASF4183
+ .byte 0x5
+ .byte 0xf1,0x5
+ .4byte .LASF4184
+ .byte 0x5
+ .byte 0xf2,0x5
+ .4byte .LASF4185
+ .byte 0x5
+ .byte 0xf3,0x5
+ .4byte .LASF4186
+ .byte 0x5
+ .byte 0xf4,0x5
+ .4byte .LASF4187
+ .byte 0x5
+ .byte 0xf5,0x5
+ .4byte .LASF4188
+ .byte 0x5
+ .byte 0xf6,0x5
+ .4byte .LASF4189
+ .byte 0x5
+ .byte 0xf7,0x5
+ .4byte .LASF4190
+ .byte 0x5
+ .byte 0xf8,0x5
+ .4byte .LASF4191
+ .byte 0x5
+ .byte 0xf9,0x5
+ .4byte .LASF4192
+ .byte 0x5
+ .byte 0xfa,0x5
+ .4byte .LASF4193
+ .byte 0x5
+ .byte 0xfb,0x5
+ .4byte .LASF4194
+ .byte 0x5
+ .byte 0xfc,0x5
+ .4byte .LASF4195
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF4196
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF4197
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF4198
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF4199
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF4200
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF4201
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF4202
+ .byte 0x5
+ .byte 0x84,0x6
+ .4byte .LASF4203
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF4204
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF4205
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF4206
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF4207
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF4208
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF4209
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF4210
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF4211
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF4212
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF4213
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF4214
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF4215
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF4216
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF4217
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF4218
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF4219
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF4220
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF4221
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF4222
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF4223
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF4224
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF4225
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF4226
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF4227
+ .byte 0x5
+ .byte 0x9d,0x6
+ .4byte .LASF4228
+ .byte 0x5
+ .byte 0x9e,0x6
+ .4byte .LASF4229
+ .byte 0x5
+ .byte 0x9f,0x6
+ .4byte .LASF4230
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF4231
+ .byte 0x5
+ .byte 0xa1,0x6
+ .4byte .LASF4232
+ .byte 0x5
+ .byte 0xa2,0x6
+ .4byte .LASF4233
+ .byte 0x5
+ .byte 0xa3,0x6
+ .4byte .LASF4234
+ .byte 0x5
+ .byte 0xa4,0x6
+ .4byte .LASF4235
+ .byte 0x5
+ .byte 0xa5,0x6
+ .4byte .LASF4236
+ .byte 0x5
+ .byte 0xa6,0x6
+ .4byte .LASF4237
+ .byte 0x5
+ .byte 0xa7,0x6
+ .4byte .LASF4238
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF4239
+ .byte 0x5
+ .byte 0xa9,0x6
+ .4byte .LASF4240
+ .byte 0x5
+ .byte 0xaa,0x6
+ .4byte .LASF4241
+ .byte 0x5
+ .byte 0xab,0x6
+ .4byte .LASF4242
+ .byte 0x5
+ .byte 0xac,0x6
+ .4byte .LASF4243
+ .byte 0x5
+ .byte 0xad,0x6
+ .4byte .LASF4244
+ .byte 0x5
+ .byte 0xae,0x6
+ .4byte .LASF4245
+ .byte 0x5
+ .byte 0xaf,0x6
+ .4byte .LASF4246
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF4247
+ .byte 0x5
+ .byte 0xb1,0x6
+ .4byte .LASF4248
+ .byte 0x5
+ .byte 0xb2,0x6
+ .4byte .LASF4249
+ .byte 0x5
+ .byte 0xb3,0x6
+ .4byte .LASF4250
+ .byte 0x5
+ .byte 0xb4,0x6
+ .4byte .LASF4251
+ .byte 0x5
+ .byte 0xb5,0x6
+ .4byte .LASF4252
+ .byte 0x5
+ .byte 0xb6,0x6
+ .4byte .LASF4253
+ .byte 0x5
+ .byte 0xb7,0x6
+ .4byte .LASF4254
+ .byte 0x5
+ .byte 0xb8,0x6
+ .4byte .LASF4255
+ .byte 0x5
+ .byte 0xb9,0x6
+ .4byte .LASF4256
+ .byte 0x5
+ .byte 0xba,0x6
+ .4byte .LASF4257
+ .byte 0x5
+ .byte 0xbb,0x6
+ .4byte .LASF4258
+ .byte 0x5
+ .byte 0xbc,0x6
+ .4byte .LASF4259
+ .byte 0x5
+ .byte 0xbd,0x6
+ .4byte .LASF4260
+ .byte 0x5
+ .byte 0xbe,0x6
+ .4byte .LASF4261
+ .byte 0x5
+ .byte 0xbf,0x6
+ .4byte .LASF4262
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF4263
+ .byte 0x5
+ .byte 0xc1,0x6
+ .4byte .LASF4264
+ .byte 0x5
+ .byte 0xc2,0x6
+ .4byte .LASF4265
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF4266
+ .byte 0x5
+ .byte 0xc4,0x6
+ .4byte .LASF4267
+ .byte 0x5
+ .byte 0xc5,0x6
+ .4byte .LASF4268
+ .byte 0x5
+ .byte 0xc6,0x6
+ .4byte .LASF4269
+ .byte 0x5
+ .byte 0xc7,0x6
+ .4byte .LASF4270
+ .byte 0x5
+ .byte 0xc8,0x6
+ .4byte .LASF4271
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF4272
+ .byte 0x5
+ .byte 0xca,0x6
+ .4byte .LASF4273
+ .byte 0x5
+ .byte 0xcb,0x6
+ .4byte .LASF4274
+ .byte 0x5
+ .byte 0xcc,0x6
+ .4byte .LASF4275
+ .byte 0x5
+ .byte 0xcd,0x6
+ .4byte .LASF4276
+ .byte 0x5
+ .byte 0xce,0x6
+ .4byte .LASF4277
+ .byte 0x5
+ .byte 0xcf,0x6
+ .4byte .LASF4278
+ .byte 0x5
+ .byte 0xd0,0x6
+ .4byte .LASF4279
+ .byte 0x5
+ .byte 0xd1,0x6
+ .4byte .LASF4280
+ .byte 0x5
+ .byte 0xd2,0x6
+ .4byte .LASF4281
+ .byte 0x5
+ .byte 0xd3,0x6
+ .4byte .LASF4282
+ .byte 0x5
+ .byte 0xd4,0x6
+ .4byte .LASF4283
+ .byte 0x5
+ .byte 0xd5,0x6
+ .4byte .LASF4284
+ .byte 0x5
+ .byte 0xd6,0x6
+ .4byte .LASF4285
+ .byte 0x5
+ .byte 0xd7,0x6
+ .4byte .LASF4286
+ .byte 0x5
+ .byte 0xd8,0x6
+ .4byte .LASF4287
+ .byte 0x5
+ .byte 0xd9,0x6
+ .4byte .LASF4288
+ .byte 0x5
+ .byte 0xda,0x6
+ .4byte .LASF4289
+ .byte 0x5
+ .byte 0xdb,0x6
+ .4byte .LASF4290
+ .byte 0x5
+ .byte 0xdc,0x6
+ .4byte .LASF4291
+ .byte 0x5
+ .byte 0xdd,0x6
+ .4byte .LASF4292
+ .byte 0x5
+ .byte 0xde,0x6
+ .4byte .LASF4293
+ .byte 0x5
+ .byte 0xdf,0x6
+ .4byte .LASF4294
+ .byte 0x5
+ .byte 0xe0,0x6
+ .4byte .LASF4295
+ .byte 0x5
+ .byte 0xe1,0x6
+ .4byte .LASF4296
+ .byte 0x5
+ .byte 0xe2,0x6
+ .4byte .LASF4297
+ .byte 0x5
+ .byte 0xe3,0x6
+ .4byte .LASF4298
+ .byte 0x5
+ .byte 0xe4,0x6
+ .4byte .LASF4299
+ .byte 0x5
+ .byte 0xe5,0x6
+ .4byte .LASF4300
+ .byte 0x5
+ .byte 0xe6,0x6
+ .4byte .LASF4301
+ .byte 0x5
+ .byte 0xe7,0x6
+ .4byte .LASF4302
+ .byte 0x5
+ .byte 0xe8,0x6
+ .4byte .LASF4303
+ .byte 0x5
+ .byte 0xe9,0x6
+ .4byte .LASF4304
+ .byte 0x5
+ .byte 0xea,0x6
+ .4byte .LASF4305
+ .byte 0x5
+ .byte 0xeb,0x6
+ .4byte .LASF4306
+ .byte 0x5
+ .byte 0xec,0x6
+ .4byte .LASF4307
+ .byte 0x5
+ .byte 0xed,0x6
+ .4byte .LASF4308
+ .byte 0x5
+ .byte 0xee,0x6
+ .4byte .LASF4309
+ .byte 0x5
+ .byte 0xef,0x6
+ .4byte .LASF4310
+ .byte 0x5
+ .byte 0xf0,0x6
+ .4byte .LASF4311
+ .byte 0x5
+ .byte 0xf1,0x6
+ .4byte .LASF4312
+ .byte 0x5
+ .byte 0xf2,0x6
+ .4byte .LASF4313
+ .byte 0x5
+ .byte 0xf3,0x6
+ .4byte .LASF4314
+ .byte 0x5
+ .byte 0xf6,0x6
+ .4byte .LASF4315
+ .byte 0x5
+ .byte 0xf7,0x6
+ .4byte .LASF4316
+ .byte 0x5
+ .byte 0xf9,0x6
+ .4byte .LASF4317
+ .byte 0x5
+ .byte 0xfb,0x6
+ .4byte .LASF4318
+ .byte 0x5
+ .byte 0xfd,0x6
+ .4byte .LASF4319
+ .byte 0x5
+ .byte 0xfe,0x6
+ .4byte .LASF4320
+ .byte 0x5
+ .byte 0xff,0x6
+ .4byte .LASF4321
+ .byte 0x5
+ .byte 0x80,0x7
+ .4byte .LASF4322
+ .byte 0x5
+ .byte 0x81,0x7
+ .4byte .LASF4323
+ .byte 0x5
+ .byte 0x83,0x7
+ .4byte .LASF4324
+ .byte 0x5
+ .byte 0x84,0x7
+ .4byte .LASF4325
+ .byte 0x5
+ .byte 0x85,0x7
+ .4byte .LASF4326
+ .byte 0x5
+ .byte 0x87,0x7
+ .4byte .LASF4327
+ .byte 0x5
+ .byte 0x88,0x7
+ .4byte .LASF4328
+ .byte 0x5
+ .byte 0x8b,0x7
+ .4byte .LASF4329
+ .byte 0x5
+ .byte 0x8c,0x7
+ .4byte .LASF4330
+ .byte 0x5
+ .byte 0x8d,0x7
+ .4byte .LASF4331
+ .byte 0x5
+ .byte 0x8e,0x7
+ .4byte .LASF4332
+ .byte 0x5
+ .byte 0x8f,0x7
+ .4byte .LASF4333
+ .byte 0x5
+ .byte 0x90,0x7
+ .4byte .LASF4334
+ .byte 0x5
+ .byte 0x91,0x7
+ .4byte .LASF4335
+ .byte 0x5
+ .byte 0x92,0x7
+ .4byte .LASF4336
+ .byte 0x5
+ .byte 0x93,0x7
+ .4byte .LASF4337
+ .byte 0x5
+ .byte 0x94,0x7
+ .4byte .LASF4338
+ .byte 0x5
+ .byte 0x95,0x7
+ .4byte .LASF4339
+ .byte 0x5
+ .byte 0x96,0x7
+ .4byte .LASF4340
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2499:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1587:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF3011:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF365:
+ .string "___int16_t_defined 1"
+.LASF2260:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF757:
+ .string "BKP_DATA BITS(0,15)"
+.LASF884:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1936:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF3950:
+ .string "MASK_FCVT_S_WU 0xfff0007f"
+.LASF3947:
+ .string "MATCH_FCVT_S_W 0xd0000053"
+.LASF3161:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF4417:
+ .string "mtime_lo"
+.LASF1717:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF3995:
+ .string "MATCH_C_JR 0x8002"
+.LASF4322:
+ .string "CSR_PUSHMEPC 0x7EF"
+.LASF2958:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF834:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1276:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2461:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2405:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF1301:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF2988:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF2139:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF4303:
+ .string "CSR_MHPMCOUNTER20H 0xb94"
+.LASF2430:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF3110:
+ .string "_T_WCHAR "
+.LASF536:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1614:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF1974:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2888:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2496:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF826:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF4047:
+ .string "MATCH_C_SUBW 0x9c01"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2473:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF509:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF4240:
+ .string "CSR_MHPMEVENT24 0x338"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF4314:
+ .string "CSR_MHPMCOUNTER31H 0xb9f"
+.LASF2987:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF2715:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF913:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF4038:
+ .string "MASK_C_ANDI 0xec03"
+.LASF3465:
+ .string "__SWID 0x2000"
+.LASF2560:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2202:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF3948:
+ .string "MASK_FCVT_S_W 0xfff0007f"
+.LASF2450:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2875:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF1471:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1095:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF4349:
+ .string "long unsigned int"
+.LASF3245:
+ .string "__CC_SUPPORTS_VARADIC_XXX 1"
+.LASF726:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1768:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF2930:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF2410:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF4297:
+ .string "CSR_MHPMCOUNTER14H 0xb8e"
+.LASF1776:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF4298:
+ .string "CSR_MHPMCOUNTER15H 0xb8f"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF3583:
+ .string "MCONTROL_ACTION_TRACE_STOP 3"
+.LASF500:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1670:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF1339:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF3495:
+ .string "putchar_unlocked(_c) _putchar_unlocked(_c)"
+.LASF3833:
+ .string "MATCH_LR_D 0x1000302f"
+.LASF754:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2774:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF1407:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF4023:
+ .string "MATCH_C_FSW 0xe000"
+.LASF2413:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF3625:
+ .string "IRQ_H_TIMER 6"
+.LASF477:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF3847:
+ .string "MATCH_MRET 0x30200073"
+.LASF2004:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF3331:
+ .string "__need___va_list"
+.LASF1036:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF3304:
+ .string "__DEVOLATILE(type,var) ((type)(__uintptr_t)(volatile void *)(var))"
+.LASF2551:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF3103:
+ .string "_SIZET_ "
+.LASF1338:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF3591:
+ .string "MIP_SSIP (1 << IRQ_S_SOFT)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF2906:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1115:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF4326:
+ .string "CSR_TXEVT 0x812"
+.LASF438:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1609:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF4176:
+ .string "CSR_MCAUSE 0x342"
+.LASF1720:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF2298:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF580:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2955:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF4019:
+ .string "MATCH_C_FSD 0xa000"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3163:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF3714:
+ .string "MASK_XOR 0xfe00707f"
+.LASF2556:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF1530:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF2063:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF340:
+ .string "SYSTEM_GD32VF103_H "
+.LASF3858:
+ .string "MASK_CSRRS 0x707f"
+.LASF4361:
+ .string "eclic_set_posedge_trig"
+.LASF1515:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF497:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF4271:
+ .string "CSR_HPMCOUNTER19H 0xc93"
+.LASF3180:
+ .string "_HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF458:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1047:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF4416:
+ .string "mtime_hi"
+.LASF4377:
+ .string "eclic_set_irq_lvl_abs"
+.LASF4182:
+ .string "CSR_TDATA3 0x7a3"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF451:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF2553:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF412:
+ .string "_UINT32_T_DECLARED "
+.LASF1277:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF783:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1780:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF673:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1806:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2428:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF2976:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF434:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF3330:
+ .string "__need___va_list "
+.LASF1114:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF3902:
+ .string "MASK_FMIN_D 0xfe00707f"
+.LASF3740:
+ .string "MASK_SRAW 0xfe00707f"
+.LASF4192:
+ .string "CSR_MHPMCOUNTER7 0xb07"
+.LASF1552:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1016:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF992:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF3806:
+ .string "MASK_AMOMINU_W 0xf800707f"
+.LASF1899:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF4156:
+ .string "CSR_HPMCOUNTER30 0xc1e"
+.LASF2296:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1725:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF385:
+ .string "short +1"
+.LASF4266:
+ .string "CSR_HPMCOUNTER14H 0xc8e"
+.LASF1872:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1601:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF3270:
+ .string "__always_inline __inline__ __attribute__((__always_inline__))"
+.LASF3877:
+ .string "MATCH_FSGNJN_S 0x20001053"
+.LASF2807:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF701:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF3003:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF4102:
+ .string "MASK_CUSTOM2_RS1 0x707f"
+.LASF2984:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF4031:
+ .string "MATCH_C_LUI 0x6001"
+.LASF1013:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF3571:
+ .string "MCONTROL_M (1<<6)"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF677:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2235:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF4248:
+ .string "CSR_MVENDORID 0xf11"
+.LASF2931:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF466:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1822:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF4107:
+ .string "MATCH_CUSTOM2_RD_RS1 0x605b"
+.LASF3238:
+ .string "__GNUCLIKE_MATH_BUILTIN_RELOPS "
+.LASF511:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF3435:
+ .string "_MODE_T_DECLARED "
+.LASF2989:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2789:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2783:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF4137:
+ .string "CSR_HPMCOUNTER11 0xc0b"
+.LASF3607:
+ .string "MIE_HEIE MIP_HEIP"
+.LASF2041:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2839:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF3250:
+ .string "__STRING(x) #x"
+.LASF1763:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1554:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF510:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF999:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2557:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF2113:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1143:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF1427:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2243:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF2982:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF3663:
+ .string "rdinstret() read_csr(instret)"
+.LASF1512:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF420:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1704:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF1753:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF2300:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1731:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF3139:
+ .string "_RISCV_CONST_H "
+.LASF2533:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF2424:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1175:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF3083:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1041:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2607:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1907:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF4121:
+ .string "MATCH_CUSTOM3_RD_RS1_RS2 0x707b"
+.LASF2544:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2146:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2535:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2531:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF3322:
+ .string "__requires_exclusive(...) __lock_annotate(exclusive_locks_required(__VA_ARGS__))"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF3214:
+ .string "__attribute_malloc__ "
+.LASF2437:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1849:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF1130:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF2350:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF2096:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF668:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2555:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF4327:
+ .string "CSR_MMISC_CTL 0x7d0"
+.LASF3651:
+ .string "RISCV_PGLEVEL_BITS 10"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF3683:
+ .string "MATCH_AUIPC 0x17"
+.LASF550:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1229:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2131:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1890:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF3916:
+ .string "MASK_FEQ_S 0xfe00707f"
+.LASF2585:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2578:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF3182:
+ .string "_FSEEK_OPTIMIZATION 1"
+.LASF1341:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1440:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF3975:
+ .string "MATCH_FMADD_S 0x43"
+.LASF1641:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF3626:
+ .string "IRQ_M_TIMER 7"
+.LASF547:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF349:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2655:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF3649:
+ .string "MSTATUS_SD MSTATUS32_SD"
+.LASF1922:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2757:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF2116:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF3393:
+ .string "_REENT_MP_FREELIST(ptr) ((ptr)->_freelist)"
+.LASF4238:
+ .string "CSR_MHPMEVENT22 0x336"
+.LASF3525:
+ .string "MSTATUS_FS 0x00006000"
+.LASF898:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF4375:
+ .string "eclic_get_irq_lvl_abs"
+.LASF2279:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF2995:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF3419:
+ .string "__clock_t_defined "
+.LASF1833:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF2494:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF758:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1257:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF1630:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF761:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF4273:
+ .string "CSR_HPMCOUNTER21H 0xc95"
+.LASF1967:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF794:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF4077:
+ .string "MATCH_CUSTOM0_RS1 0x200b"
+.LASF464:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF665:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF531:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1236:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF945:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2375:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF926:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF3049:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF957:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF2144:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF3293:
+ .string "__strong_reference(sym,aliassym) extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))"
+.LASF4325:
+ .string "CSR_SLEEPVALUE 0x811"
+.LASF1055:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF2168:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF3751:
+ .string "MATCH_LHU 0x5003"
+.LASF3719:
+ .string "MATCH_OR 0x6033"
+.LASF2768:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF450:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF3481:
+ .string "_stdin_r(x) ((x)->_stdin)"
+.LASF3851:
+ .string "MATCH_SFENCE_VM 0x10400073"
+.LASF641:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2211:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF812:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2475:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF3155:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2301:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF903:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF4381:
+ .string "eclic_set_nlbits"
+.LASF638:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1261:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2575:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF4209:
+ .string "CSR_MHPMCOUNTER24 0xb18"
+.LASF2912:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF3738:
+ .string "MASK_SRLW 0xfe00707f"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF3985:
+ .string "MATCH_FMSUB_D 0x2000047"
+.LASF2805:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF4410:
+ .string "start_mcycle"
+.LASF4263:
+ .string "CSR_HPMCOUNTER11H 0xc8b"
+.LASF4064:
+ .string "MASK_C_FLWSP 0xe003"
+.LASF3134:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1956:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF3876:
+ .string "MASK_FSGNJ_S 0xfe00707f"
+.LASF363:
+ .string "__have_long32 1"
+.LASF1336:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1240:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF3099:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF4126:
+ .string "CSR_CYCLE 0xc00"
+.LASF1099:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF3532:
+ .string "MSTATUS64_SD 0x8000000000000000"
+.LASF800:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2181:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1855:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF2077:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF3749:
+ .string "MATCH_LBU 0x4003"
+.LASF1963:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF594:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF947:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3958:
+ .string "MASK_FCVT_D_W 0xfff0007f"
+.LASF4354:
+ .string "uint32_t"
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF3037:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1738:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF3762:
+ .string "MASK_SD 0x707f"
+.LASF400:
+ .string "__LEAST8 \"hh\""
+.LASF1567:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF3702:
+ .string "MASK_ANDI 0x707f"
+.LASF1262:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1148:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2132:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF2323:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF2765:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF3230:
+ .string "__GNUCLIKE_CTOR_SECTION_HANDLING 1"
+.LASF2710:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF3437:
+ .string "__clockid_t_defined "
+.LASF813:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2592:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1750:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2772:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF3812:
+ .string "MASK_LR_W 0xf9f0707f"
+.LASF4012:
+ .string "MASK_C_ADDI4SPN 0xe003"
+.LASF4131:
+ .string "CSR_HPMCOUNTER5 0xc05"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF1986:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2570:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1155:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF4334:
+ .string "CAUSE_FAULT_LOAD 0x5"
+.LASF1405:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1393:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF3750:
+ .string "MASK_LBU 0x707f"
+.LASF1062:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF3397:
+ .string "_REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last)"
+.LASF2832:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF4101:
+ .string "MATCH_CUSTOM2_RS1 0x205b"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2897:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF4005:
+ .string "MATCH_C_ADDIW 0x2001"
+.LASF4358:
+ .string "old_intattr"
+.LASF2127:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF4195:
+ .string "CSR_MHPMCOUNTER10 0xb0a"
+.LASF2904:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF859:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF639:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF3572:
+ .string "MCONTROL_H (1<<5)"
+.LASF2665:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF3459:
+ .string "__SOPT 0x0400"
+.LASF1169:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF2574:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF2449:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2773:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF3538:
+ .string "SSTATUS_FS 0x00006000"
+.LASF1319:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF3526:
+ .string "MSTATUS_XS 0x00018000"
+.LASF1695:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF2009:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF3085:
+ .string "_GCC_PTRDIFF_T "
+.LASF3763:
+ .string "MATCH_FENCE 0xf"
+.LASF1711:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF3055:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF1655:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF3310:
+ .string "__NULLABILITY_PRAGMA_POP "
+.LASF1460:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2515:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF3801:
+ .string "MATCH_AMOMIN_W 0x8000202f"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2548:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1082:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2286:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1533:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF386:
+ .string "__int20 +2"
+.LASF4091:
+ .string "MATCH_CUSTOM1_RS1_RS2 0x302b"
+.LASF342:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF551:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF3882:
+ .string "MASK_FMIN_S 0xfe00707f"
+.LASF1913:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF4287:
+ .string "CSR_MHPMCOUNTER4H 0xb84"
+.LASF3237:
+ .string "__GNUCLIKE_BUILTIN_NEXT_ARG 1"
+.LASF2518:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1662:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF4423:
+ .string "pmp_open_all_space"
+.LASF2480:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF3783:
+ .string "MATCH_MULW 0x200003b"
+.LASF1829:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1490:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2400:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2637:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2540:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1811:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF799:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF929:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF879:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF4332:
+ .string "CAUSE_BREAKPOINT 0x3"
+.LASF2198:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2966:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF4173:
+ .string "CSR_MCOUNTEREN 0x306"
+.LASF1296:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1841:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF3696:
+ .string "MASK_SRLI 0xfc00707f"
+.LASF805:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1019:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2402:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF2611:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF3335:
+ .string "__need_wint_t "
+.LASF3605:
+ .string "MIE_MTIE MIP_MTIP"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1926:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF2334:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF2011:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF1415:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF1182:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF2813:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF2996:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF3859:
+ .string "MATCH_CSRRC 0x3073"
+.LASF1637:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2537:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1760:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2565:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF4229:
+ .string "CSR_MHPMEVENT13 0x32d"
+.LASF1645:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF3828:
+ .string "MASK_AMOMINU_D 0xf800707f"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF941:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF430:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF3883:
+ .string "MATCH_FMAX_S 0x28001053"
+.LASF3162:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2978:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2558:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF2729:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1975:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF3708:
+ .string "MASK_SLL 0xfe00707f"
+.LASF487:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF3614:
+ .string "PRV_M 3"
+.LASF4316:
+ .string "CSR_MNXTI 0x345"
+.LASF2340:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2639:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF3407:
+ .string "_REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf)"
+.LASF4206:
+ .string "CSR_MHPMCOUNTER21 0xb15"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2192:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF4189:
+ .string "CSR_MHPMCOUNTER4 0xb04"
+.LASF4401:
+ .string "vuint32_t"
+.LASF4138:
+ .string "CSR_HPMCOUNTER12 0xc0c"
+.LASF4301:
+ .string "CSR_MHPMCOUNTER18H 0xb92"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF2028:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF3475:
+ .string "SEEK_CUR 1"
+.LASF1094:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF961:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1084:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1344:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1794:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1132:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF3384:
+ .string "_REENT_CHECK_SIGNAL_BUF(ptr) "
+.LASF2746:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF361:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1521:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF2155:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF2841:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF3726:
+ .string "MASK_SLLIW 0xfe00707f"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF4082:
+ .string "MASK_CUSTOM0_RD 0x707f"
+.LASF426:
+ .string "__int_fast16_t_defined 1"
+.LASF1610:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF4006:
+ .string "MASK_C_ADDIW 0xe003"
+.LASF1079:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF2141:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1951:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF331:
+ .string "__O volatile"
+.LASF2820:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF566:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1954:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF868:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2634:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF3687:
+ .string "MATCH_SLLI 0x1013"
+.LASF969:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2476:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF538:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF4123:
+ .string "CSR_FFLAGS 0x1"
+.LASF2735:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF3342:
+ .string "_TIME_T_ __int_least64_t"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF3606:
+ .string "MIE_SEIE MIP_SEIP"
+.LASF362:
+ .string "__have_longlong64 1"
+.LASF851:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF894:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF4335:
+ .string "CAUSE_MISALIGNED_STORE 0x6"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1385:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2452:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF3480:
+ .string "stderr (_REENT->_stderr)"
+.LASF403:
+ .string "__LEAST64 \"ll\""
+.LASF1947:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1640:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1058:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1183:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2447:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1146:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF3918:
+ .string "MASK_FLE_D 0xfe00707f"
+.LASF2443:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2599:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF2964:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF3789:
+ .string "MATCH_REMW 0x200603b"
+.LASF2008:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF4166:
+ .string "CSR_SPTBR 0x180"
+.LASF3471:
+ .string "FOPEN_MAX 20"
+.LASF3070:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1502:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2940:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1174:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1689:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2722:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1107:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF820:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF3540:
+ .string "SSTATUS_PUM 0x00040000"
+.LASF3445:
+ .string "__FILE_defined "
+.LASF2853:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF387:
+ .string "__int20__ +2"
+.LASF4046:
+ .string "MASK_C_AND 0xfc63"
+.LASF1309:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF3646:
+ .string "PTE_SOFT 0x300"
+.LASF1904:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1920:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF858:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF3721:
+ .string "MATCH_AND 0x7033"
+.LASF1210:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF3491:
+ .string "feof(p) __sfeof(p)"
+.LASF1520:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2305:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1569:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF3681:
+ .string "MATCH_LUI 0x37"
+.LASF617:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF3492:
+ .string "ferror(p) __sferror(p)"
+.LASF350:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF2254:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF1721:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF1445:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF3808:
+ .string "MASK_AMOMAXU_W 0xf800707f"
+.LASF1594:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1497:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2534:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF1121:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF2342:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF653:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1901:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF2070:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF4393:
+ .string "eclic_get_intctrl"
+.LASF3817:
+ .string "MATCH_AMOXOR_D 0x2000302f"
+.LASF2172:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF2415:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF2016:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF1766:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF3009:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF413:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF539:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF3850:
+ .string "MASK_DRET 0xffffffff"
+.LASF3035:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2549:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2626:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF3341:
+ .string "_CLOCK_T_ unsigned long"
+.LASF2562:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF3309:
+ .string "__NULLABILITY_PRAGMA_PUSH "
+.LASF4270:
+ .string "CSR_HPMCOUNTER18H 0xc92"
+.LASF356:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF4028:
+ .string "MASK_C_JAL 0xe003"
+.LASF548:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF829:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF3705:
+ .string "MATCH_SUB 0x40000033"
+.LASF1478:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1556:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF922:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1307:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF3313:
+ .string "__lock_annotate(x) "
+.LASF3329:
+ .string "__pt_guarded_by(x) __lock_annotate(pt_guarded_by(x))"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF3819:
+ .string "MATCH_AMOOR_D 0x4000302f"
+.LASF4115:
+ .string "MATCH_CUSTOM3_RS1_RS2 0x307b"
+.LASF2290:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2354:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF871:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF4237:
+ .string "CSR_MHPMEVENT21 0x335"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF4007:
+ .string "MATCH_C_LDSP 0x6002"
+.LASF2220:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2304:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF2670:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF3219:
+ .string "__unbounded "
+.LASF4356:
+ .string "size_t"
+.LASF3619:
+ .string "VM_SV39 9"
+.LASF1903:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2712:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF3023:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1421:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1207:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF532:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1681:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF4215:
+ .string "CSR_MHPMCOUNTER30 0xb1e"
+.LASF4396:
+ .string "eclic_set_pending"
+.LASF4118:
+ .string "MASK_CUSTOM3_RD 0x707f"
+.LASF3244:
+ .string "__CC_SUPPORTS_WARNING 1"
+.LASF564:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1799:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1066:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1865:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF2248:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2318:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1772:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF1254:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF4414:
+ .string "get_timer_freq"
+.LASF3493:
+ .string "clearerr(p) __sclearerr(p)"
+.LASF3172:
+ .string "_WANT_IO_C99_FORMATS 1"
+.LASF2993:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1499:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF1124:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF3594:
+ .string "MIP_STIP (1 << IRQ_S_TIMER)"
+.LASF994:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2219:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1239:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF3125:
+ .string "__need_NULL"
+.LASF2792:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1537:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2719:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1674:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2659:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF2082:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2166:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF4140:
+ .string "CSR_HPMCOUNTER14 0xc0e"
+.LASF541:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2854:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2216:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2889:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF4241:
+ .string "CSR_MHPMEVENT25 0x339"
+.LASF4208:
+ .string "CSR_MHPMCOUNTER23 0xb17"
+.LASF988:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF3467:
+ .string "_IOLBF 1"
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF4369:
+ .string "nlbits"
+.LASF2816:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2497:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF525:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF3964:
+ .string "MASK_FCVT_D_LU 0xfff0007f"
+.LASF2204:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF3686:
+ .string "MASK_ADDI 0x707f"
+.LASF2303:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF3178:
+ .string "HAVE_INITFINI_ARRAY 1"
+.LASF924:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2344:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2943:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF3347:
+ .string "__SYS_LOCK_H__ "
+.LASF3478:
+ .string "stdin (_REENT->_stdin)"
+.LASF2106:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF664:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2367:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2246:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF3191:
+ .string "__RAND_MAX"
+.LASF2891:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2152:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF1757:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF3610:
+ .string "SIP_STIP MIP_STIP"
+.LASF3194:
+ .string "__IMPORT "
+.LASF2293:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF3913:
+ .string "MATCH_FLT_S 0xa0001053"
+.LASF605:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF3796:
+ .string "MASK_AMOXOR_W 0xf800707f"
+.LASF833:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1164:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2771:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF2273:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1131:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2679:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1910:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF3747:
+ .string "MATCH_LD 0x3003"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF528:
+ .string "ADC0 ADC_BASE"
+.LASF1514:
+ .string "FMC_CTL_START BIT(6)"
+.LASF3211:
+ .string "__ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname"
+.LASF1075:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF3276:
+ .string "__returns_twice __attribute__((__returns_twice__))"
+.LASF3855:
+ .string "MATCH_CSRRW 0x1073"
+.LASF2027:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF4090:
+ .string "MASK_CUSTOM1_RS1 0x707f"
+.LASF3848:
+ .string "MASK_MRET 0xffffffff"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF3235:
+ .string "__GNUC_VA_LIST_COMPATIBILITY 1"
+.LASF3356:
+ .string "__lock_try_acquire(lock) ((void) 0)"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2618:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF572:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF4100:
+ .string "MASK_CUSTOM2 0x707f"
+.LASF2357:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF3519:
+ .string "MSTATUS_UPIE 0x00000010"
+.LASF1893:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF415:
+ .string "_UINT64_T_DECLARED "
+.LASF503:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF4275:
+ .string "CSR_HPMCOUNTER23H 0xc97"
+.LASF3020:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF3905:
+ .string "MATCH_FCVT_S_D 0x40100053"
+.LASF2391:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF507:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1468:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF3137:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1629:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF3405:
+ .string "_REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_new._reent._wcsrtombs_state)"
+.LASF1797:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF2177:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF965:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1803:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF3474:
+ .string "SEEK_SET 0"
+.LASF429:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1667:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF3338:
+ .string "_MACHINE__TYPES_H "
+.LASF2932:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF2025:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2823:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1977:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF3940:
+ .string "MASK_FCVT_L_D 0xfff0007f"
+.LASF1965:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2871:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1584:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1122:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1959:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF2100:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1367:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF2026:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF4158:
+ .string "CSR_SSTATUS 0x100"
+.LASF1541:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF3869:
+ .string "MATCH_FSUB_S 0x8000053"
+.LASF1282:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF1743:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF682:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF865:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF2969:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF3311:
+ .string "__arg_type_tag(arg_kind,arg_idx,type_tag_idx) "
+.LASF1589:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF373:
+ .string "_SYS__INTSUP_H "
+.LASF4026:
+ .string "MASK_C_ADDI 0xe003"
+.LASF912:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2569:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF1739:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF3054:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2800:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2346:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF4000:
+ .string "MASK_C_EBREAK 0xffff"
+.LASF2511:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF3399:
+ .string "_REENT_MBTOWC_STATE(ptr) ((ptr)->_new._reent._mbtowc_state)"
+.LASF2998:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF798:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF3343:
+ .string "_CLOCKID_T_ unsigned long"
+.LASF2135:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF4146:
+ .string "CSR_HPMCOUNTER20 0xc14"
+.LASF2468:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF3743:
+ .string "MATCH_LH 0x1003"
+.LASF3695:
+ .string "MATCH_SRLI 0x5013"
+.LASF809:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF2080:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF3685:
+ .string "MATCH_ADDI 0x13"
+.LASF1588:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF2109:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF389:
+ .string "long +4"
+.LASF1265:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1071:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF3006:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2147:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2251:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1896:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF3337:
+ .string "__need_wint_t"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF4133:
+ .string "CSR_HPMCOUNTER7 0xc07"
+.LASF630:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF3582:
+ .string "MCONTROL_ACTION_TRACE_START 2"
+.LASF3647:
+ .string "PTE_PPN_SHIFT 10"
+.LASF2222:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF4294:
+ .string "CSR_MHPMCOUNTER11H 0xb8b"
+.LASF2941:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF3386:
+ .string "_REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next)"
+.LASF2039:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF589:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF445:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF2373:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF680:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2844:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF3473:
+ .string "L_tmpnam FILENAME_MAX"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2763:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF911:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2359:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2850:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF4315:
+ .string "CSR_MTVT 0x307"
+.LASF3252:
+ .string "__const const"
+.LASF3192:
+ .string "__RAND_MAX 0x7fffffff"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF3254:
+ .string "__volatile volatile"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF888:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1295:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF2232:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF3520:
+ .string "MSTATUS_SPIE 0x00000020"
+.LASF2057:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1745:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF621:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2649:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF2107:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF606:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1754:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF3946:
+ .string "MASK_FCLASS_D 0xfff0707f"
+.LASF4228:
+ .string "CSR_MHPMEVENT12 0x32c"
+.LASF2510:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF4188:
+ .string "CSR_MHPMCOUNTER3 0xb03"
+.LASF4244:
+ .string "CSR_MHPMEVENT28 0x33c"
+.LASF1820:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF3769:
+ .string "MATCH_MULH 0x2001033"
+.LASF2849:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF4073:
+ .string "MATCH_C_FSWSP 0xe002"
+.LASF2285:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF393:
+ .string "__INT16 \"h\""
+.LASF2754:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2325:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF4371:
+ .string "priority"
+.LASF956:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF4347:
+ .string "__uint8_t"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2464:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF3454:
+ .string "__SEOF 0x0020"
+.LASF3414:
+ .string "_GLOBAL_ATEXIT (_GLOBAL_REENT->_atexit)"
+.LASF600:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1128:
+ .string "DAC1 (1U)"
+.LASF3981:
+ .string "MATCH_FNMADD_S 0x4f"
+.LASF679:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF3129:
+ .string "TIMER_MSIP 0xFFC"
+.LASF3438:
+ .string "_CLOCKID_T_DECLARED "
+.LASF3123:
+ .string "NULL"
+.LASF781:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF3545:
+ .string "DCSR_FULLRESET (1<<28)"
+.LASF1346:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF3220:
+ .string "__ptrvalue "
+.LASF3566:
+ .string "MCONTROL_SELECT (1<<19)"
+.LASF4311:
+ .string "CSR_MHPMCOUNTER28H 0xb9c"
+.LASF330:
+ .string "__I volatile const"
+.LASF1891:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF3645:
+ .string "PTE_D 0x080"
+.LASF1002:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2847:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF935:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2266:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF3202:
+ .string "_NOINLINE __attribute__ ((__noinline__))"
+.LASF1713:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF648:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3105:
+ .string "__need_size_t"
+.LASF1807:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2253:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF4408:
+ .string "delta_mtime"
+.LASF1092:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF2986:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF977:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1882:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF845:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1636:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1363:
+ .string "EXTI EXTI_BASE"
+.LASF2038:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF4127:
+ .string "CSR_TIME 0xc01"
+.LASF2002:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1779:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1337:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF2024:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF642:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF792:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF4098:
+ .string "MASK_CUSTOM1_RD_RS1_RS2 0x707f"
+.LASF2123:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF4420:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers\\n200_func.c"
+.LASF2252:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF687:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF513:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2320:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF688:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF4036:
+ .string "MASK_C_SRAI 0xec03"
+.LASF3814:
+ .string "MASK_SC_W 0xf800707f"
+.LASF2339:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF772:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF1944:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2909:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF2361:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF995:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF3212:
+ .string "__ptr_t void *"
+.LASF967:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2440:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2064:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF4018:
+ .string "MASK_C_FLW 0xe003"
+.LASF3366:
+ .string "_RAND48_SEED_2 (0x1234)"
+.LASF1914:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF3327:
+ .string "__nosanitizethread "
+.LASF1102:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1105:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2703:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1573:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF765:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF3426:
+ .string "_ID_T_DECLARED "
+.LASF1483:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF3423:
+ .string "__daddr_t_defined "
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF437:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1659:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF3813:
+ .string "MATCH_SC_W 0x1800202f"
+.LASF780:
+ .string "CAN0 CAN_BASE"
+.LASF399:
+ .string "__FAST64 \"ll\""
+.LASF1133:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1586:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1053:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF3536:
+ .string "SSTATUS_SPIE 0x00000020"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF3679:
+ .string "MATCH_JAL 0x6f"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1921:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF3375:
+ .string "_REENT_STDIO_STREAM(var,index) &(var)->__sf[index]"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF2880:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF987:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF4383:
+ .string "old_cliccfg"
+.LASF1426:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF3500:
+ .string "_NEWLIB_ALLOCA_H "
+.LASF3008:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF4418:
+ .string "switch_m2u_mode"
+.LASF1897:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1039:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF3040:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF1995:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2767:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF3398:
+ .string "_REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state)"
+.LASF3457:
+ .string "__SAPP 0x0100"
+.LASF2857:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF1798:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF3428:
+ .string "_OFF_T_DECLARED "
+.LASF3458:
+ .string "__SSTR 0x0200"
+.LASF1003:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF4236:
+ .string "CSR_MHPMEVENT20 0x334"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2368:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1845:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF958:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF2213:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF2019:
+ .string "DBG DBG_BASE"
+.LASF1605:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2787:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2760:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF3489:
+ .string "__sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF976:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF4072:
+ .string "MASK_C_SWSP 0xe003"
+.LASF3909:
+ .string "MATCH_FSQRT_D 0x5a000053"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF3098:
+ .string "_SIZE_T_DEFINED "
+.LASF2779:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF436:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF4412:
+ .string "get_cycle_value"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF1572:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF3259:
+ .string "__used __attribute__((__used__))"
+.LASF3418:
+ .string "_BLKSIZE_T_DECLARED "
+.LASF2277:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF2020:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF3325:
+ .string "__no_lock_analysis __lock_annotate(no_thread_safety_analysis)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF2006:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2720:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2926:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1591:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF394:
+ .string "__INT32 \"l\""
+.LASF760:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1292:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF4291:
+ .string "CSR_MHPMCOUNTER8H 0xb88"
+.LASF3164:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF3921:
+ .string "MATCH_FEQ_D 0xa2002053"
+.LASF4165:
+ .string "CSR_SIP 0x144"
+.LASF2379:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF346:
+ .string "__NEWLIB__ 4"
+.LASF3224:
+ .string "__END_DECLS "
+.LASF1652:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2723:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF3737:
+ .string "MATCH_SRLW 0x503b"
+.LASF3119:
+ .string "_GCC_WCHAR_T "
+.LASF4200:
+ .string "CSR_MHPMCOUNTER15 0xb0f"
+.LASF1266:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF4160:
+ .string "CSR_STVEC 0x105"
+.LASF1408:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF2184:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF2081:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1749:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF3825:
+ .string "MATCH_AMOMAX_D 0xa000302f"
+.LASF1506:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2718:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2770:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF4409:
+ .string "mtime_freq"
+.LASF2961:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF364:
+ .string "___int8_t_defined 1"
+.LASF1459:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF4142:
+ .string "CSR_HPMCOUNTER16 0xc10"
+.LASF2668:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF1932:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF459:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2214:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF931:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2645:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF953:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2755:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF2018:
+ .string "GD32VF103_DBG_H "
+.LASF439:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2455:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF3033:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF3824:
+ .string "MASK_AMOMIN_D 0xf800707f"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF1838:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1096:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF827:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF4050:
+ .string "MASK_C_ADDW 0xfc63"
+.LASF2000:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF4155:
+ .string "CSR_HPMCOUNTER29 0xc1d"
+.LASF3502:
+ .string "alloca(size) __builtin_alloca(size)"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2953:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF946:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF3980:
+ .string "MASK_FNMSUB_S 0x600007f"
+.LASF844:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF2696:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF4403:
+ .string "upper"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF3487:
+ .string "__sfeof(p) ((int)(((p)->_flags & __SEOF) != 0))"
+.LASF4053:
+ .string "MATCH_C_BEQZ 0xc001"
+.LASF2224:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF4357:
+ .string "long double"
+.LASF3084:
+ .string "___int_ptrdiff_t_h "
+.LASF3369:
+ .string "_RAND48_MULT_2 (0x0005)"
+.LASF1498:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1581:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2501:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF3203:
+ .string "_NOINLINE_STATIC _NOINLINE static"
+.LASF2049:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF3401:
+ .string "_REENT_MBRLEN_STATE(ptr) ((ptr)->_new._reent._mbrlen_state)"
+.LASF2577:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF3648:
+ .string "PTE_TABLE(PTE) (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)"
+.LASF2622:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF3240:
+ .string "__CC_SUPPORTS_INLINE 1"
+.LASF1503:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1583:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF3344:
+ .string "_TIMER_T_ unsigned long"
+.LASF3568:
+ .string "MCONTROL_ACTION (0x3f<<12)"
+.LASF2387:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF339:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF480:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF3857:
+ .string "MATCH_CSRRS 0x2073"
+.LASF1170:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF3074:
+ .string "N200_FUNC_H "
+.LASF4129:
+ .string "CSR_HPMCOUNTER3 0xc03"
+.LASF4114:
+ .string "MASK_CUSTOM3_RS1 0x707f"
+.LASF1693:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF787:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1626:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2881:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1709:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2620:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF4096:
+ .string "MASK_CUSTOM1_RD_RS1 0x707f"
+.LASF3101:
+ .string "___int_size_t_h "
+.LASF2148:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF4254:
+ .string "CSR_INSTRETH 0xc82"
+.LASF3962:
+ .string "MASK_FCVT_D_L 0xfff0007f"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2835:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2711:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF2441:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1563:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF4044:
+ .string "MASK_C_OR 0xfc63"
+.LASF1874:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF3315:
+ .string "__locks_exclusive(...) __lock_annotate(exclusive_lock_function(__VA_ARGS__))"
+.LASF3755:
+ .string "MATCH_SB 0x23"
+.LASF3441:
+ .string "_USECONDS_T_DECLARED "
+.LASF4422:
+ .string "SystemCoreClock"
+.LASF4257:
+ .string "CSR_HPMCOUNTER5H 0xc85"
+.LASF3273:
+ .string "__nonnull_all __attribute__((__nonnull__))"
+.LASF3711:
+ .string "MATCH_SLTU 0x3033"
+.LASF3379:
+ .string "_REENT_CHECK_MP(ptr) "
+.LASF2766:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1814:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF808:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF3893:
+ .string "MATCH_FDIV_D 0x1a000053"
+.LASF1579:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF4405:
+ .string "cpu_freq"
+.LASF2048:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF3196:
+ .string "_BEGIN_STD_C "
+.LASF3846:
+ .string "MASK_HRET 0xffffffff"
+.LASF873:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF4143:
+ .string "CSR_HPMCOUNTER17 0xc11"
+.LASF4027:
+ .string "MATCH_C_JAL 0x2001"
+.LASF3314:
+ .string "__lockable __lock_annotate(lockable)"
+.LASF3881:
+ .string "MATCH_FMIN_S 0x28000053"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF3713:
+ .string "MATCH_XOR 0x4033"
+.LASF3543:
+ .string "DCSR_XDEBUGVER (3U<<30)"
+.LASF2563:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2365:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF4179:
+ .string "CSR_TSELECT 0x7a0"
+.LASF3041:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF4052:
+ .string "MASK_C_J 0xe003"
+.LASF3835:
+ .string "MATCH_SC_D 0x1800302f"
+.LASF2866:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2363:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF4234:
+ .string "CSR_MHPMEVENT18 0x332"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF2092:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF524:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2907:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF3752:
+ .string "MASK_LHU 0x707f"
+.LASF2212:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF660:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF3179:
+ .string "_HAVE_LONG_DOUBLE 1"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF3392:
+ .string "_REENT_MP_P5S(ptr) ((ptr)->_p5s)"
+.LASF2925:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF2695:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1950:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF601:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF3165:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2744:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF1804:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF4279:
+ .string "CSR_HPMCOUNTER27H 0xc9b"
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF3004:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF1906:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF921:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2658:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF4074:
+ .string "MASK_C_FSWSP 0xe003"
+.LASF3434:
+ .string "_SSIZE_T_DECLARED "
+.LASF3484:
+ .string "__VALIST __gnuc_va_list"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF454:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF936:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF3251:
+ .string "__XSTRING(x) __STRING(x)"
+.LASF3628:
+ .string "IRQ_H_EXT 10"
+.LASF1596:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2583:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1755:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF3832:
+ .string "MASK_AMOSWAP_D 0xf800707f"
+.LASF1870:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF3688:
+ .string "MASK_SLLI 0xfc00707f"
+.LASF2521:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF2282:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF910:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1565:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF4159:
+ .string "CSR_SIE 0x104"
+.LASF3197:
+ .string "_END_STD_C "
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF917:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF3517:
+ .string "MSTATUS_HIE 0x00000004"
+.LASF819:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF2114:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF3782:
+ .string "MASK_REMU 0xfe00707f"
+.LASF2068:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF489:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2236:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF595:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1955:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF1958:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1961:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF4255:
+ .string "CSR_HPMCOUNTER3H 0xc83"
+.LASF3403:
+ .string "_REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_new._reent._mbsrtowcs_state)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1559:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF337:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF4058:
+ .string "MASK_C_SLLI 0xe003"
+.LASF1718:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2289:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1542:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF4122:
+ .string "MASK_CUSTOM3_RD_RS1_RS2 0x707f"
+.LASF1101:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1241:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1511:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1957:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF3996:
+ .string "MASK_C_JR 0xf07f"
+.LASF1317:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF3408:
+ .string "_REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err))"
+.LASF2944:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF3218:
+ .string "__bounded "
+.LASF2162:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2775:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2674:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF1707:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF3929:
+ .string "MATCH_FCVT_LU_S 0xc0300053"
+.LASF2159:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF1730:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF2997:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF3115:
+ .string "_WCHAR_T_DEFINED "
+.LASF2033:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF381:
+ .string "long"
+.LASF3374:
+ .string "_N_LISTS 30"
+.LASF3135:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2821:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2208:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF1273:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2683:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF3715:
+ .string "MATCH_SRL 0x5033"
+.LASF3868:
+ .string "MASK_FADD_S 0xfe00007f"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF3050:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF355:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF3631:
+ .string "IRQ_HOST 13"
+.LASF3680:
+ .string "MASK_JAL 0x7f"
+.LASF4333:
+ .string "CAUSE_MISALIGNED_LOAD 0x4"
+.LASF1852:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1173:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2407:
+ .string "RTC RTC_BASE"
+.LASF951:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF1781:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF1472:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1120:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF3485:
+ .string "__sgetc_raw_r(__ptr,__f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++))"
+.LASF3667:
+ .string "MATCH_BNE 0x1063"
+.LASF2119:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1545:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1550:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF1011:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2217:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF998:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF3983:
+ .string "MATCH_FMADD_D 0x2000043"
+.LASF1671:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1443:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1287:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF785:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1326:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2990:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1208:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2225:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF3547:
+ .string "DCSR_EBREAKH (1<<14)"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1360:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF3269:
+ .string "__pure __attribute__((__pure__))"
+.LASF367:
+ .string "___int64_t_defined 1"
+.LASF4124:
+ .string "CSR_FRM 0x2"
+.LASF3712:
+ .string "MASK_SLTU 0xfe00707f"
+.LASF2530:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1056:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF3225:
+ .string "__GNUCLIKE_ASM 3"
+.LASF3704:
+ .string "MASK_ADD 0xfe00707f"
+.LASF4109:
+ .string "MATCH_CUSTOM2_RD_RS1_RS2 0x705b"
+.LASF2245:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2058:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF4141:
+ .string "CSR_HPMCOUNTER15 0xc0f"
+.LASF1259:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF3709:
+ .string "MATCH_SLT 0x2033"
+.LASF455:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF4231:
+ .string "CSR_MHPMEVENT15 0x32f"
+.LASF4262:
+ .string "CSR_HPMCOUNTER10H 0xc8a"
+.LASF1366:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF1290:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF3534:
+ .string "SSTATUS_SIE 0x00000002"
+.LASF3007:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF1476:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2523:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF676:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF3952:
+ .string "MASK_FCVT_S_L 0xfff0007f"
+.LASF3431:
+ .string "_GID_T_DECLARED "
+.LASF952:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1558:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF4167:
+ .string "CSR_MSTATUS 0x300"
+.LASF2065:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2372:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2781:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF2250:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1332:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2803:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2910:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF3412:
+ .string "_REENT _impure_ptr"
+.LASF3305:
+ .string "__DEQUALIFY(type,var) ((type)(__uintptr_t)(const volatile void *)(var))"
+.LASF3046:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2394:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2520:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF4087:
+ .string "MATCH_CUSTOM1 0x2b"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1243:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2517:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1679:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF3933:
+ .string "MATCH_FCLASS_S 0xe0001053"
+.LASF3455:
+ .string "__SERR 0x0040"
+.LASF3334:
+ .string "_SYS__TYPES_H "
+.LASF4169:
+ .string "CSR_MEDELEG 0x302"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF3233:
+ .string "__GNUCLIKE_BUILTIN_STDARG 1"
+.LASF1867:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF2013:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2761:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2477:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2769:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF2115:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF1465:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1227:
+ .string "DMA0 (DMA_BASE)"
+.LASF2666:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF555:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF3216:
+ .string "__attribute_format_strfmon__(a,b) "
+.LASF2259:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1916:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF447:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF1819:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF3510:
+ .string "__SYS_UNISTD_H__ "
+.LASF431:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1279:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF3895:
+ .string "MATCH_FSGNJ_D 0x22000053"
+.LASF3839:
+ .string "MATCH_EBREAK 0x100073"
+.LASF1063:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF407:
+ .string "__int8_t_defined 1"
+.LASF1253:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1764:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1298:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF972:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF3577:
+ .string "MCONTROL_LOAD (1<<0)"
+.LASF1353:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF3248:
+ .string "__CONCAT1(x,y) x ## y"
+.LASF1111:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF3183:
+ .string "_WIDE_ORIENT 1"
+.LASF1352:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2435:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF490:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2675:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF3635:
+ .string "CONFIG_STRING_ADDR 0x0000100C"
+.LASF4355:
+ .string "uint64_t"
+.LASF3920:
+ .string "MASK_FLT_D 0xfe00707f"
+.LASF3563:
+ .string "MCONTROL_TYPE(xlen) (0xfULL<<((xlen)-4))"
+.LASF2269:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF4065:
+ .string "MATCH_C_MV 0x8002"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF4004:
+ .string "MASK_C_SD 0xe003"
+.LASF3320:
+ .string "__asserts_exclusive(...) __lock_annotate(assert_exclusive_lock(__VA_ARGS__))"
+.LASF3508:
+ .string "_STRING_H_ "
+.LASF1732:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF3542:
+ .string "SSTATUS64_SD 0x8000000000000000"
+.LASF351:
+ .string "__ATFILE_VISIBLE 0"
+.LASF3891:
+ .string "MATCH_FMUL_D 0x12000053"
+.LASF4059:
+ .string "MATCH_C_FLDSP 0x2002"
+.LASF3466:
+ .string "_IOFBF 0"
+.LASF2203:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2502:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF667:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1334:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1934:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF4105:
+ .string "MATCH_CUSTOM2_RD 0x405b"
+.LASF1701:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF811:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF891:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF4319:
+ .string "CSR_MTVT2 0x7EC"
+.LASF850:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF3662:
+ .string "rdcycle() read_csr(cycle)"
+.LASF3630:
+ .string "IRQ_COP 12"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF1859:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF4154:
+ .string "CSR_HPMCOUNTER28 0xc1c"
+.LASF506:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1139:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1698:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF3296:
+ .string "__sym_compat(sym,impl,verid) __asm__(\".symver \" #impl \", \" #sym \"@\" #verid)"
+.LASF3253:
+ .string "__signed signed"
+.LASF2867:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF978:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF573:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2882:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF3562:
+ .string "DCSR_CAUSE_HALT 5"
+.LASF1093:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1260:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF766:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1463:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF949:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF1127:
+ .string "DAC0 (0U)"
+.LASF968:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2414:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF2206:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1562:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF3430:
+ .string "_UID_T_DECLARED "
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF3189:
+ .string "_READ_WRITE_RETURN_TYPE _ssize_t"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1653:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF4148:
+ .string "CSR_HPMCOUNTER22 0xc16"
+.LASF4202:
+ .string "CSR_MHPMCOUNTER17 0xb11"
+.LASF4292:
+ .string "CSR_MHPMCOUNTER9H 0xb89"
+.LASF3580:
+ .string "MCONTROL_ACTION_DEBUG_EXCEPTION 0"
+.LASF485:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF616:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF3644:
+ .string "PTE_A 0x040"
+.LASF1665:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF3539:
+ .string "SSTATUS_XS 0x00018000"
+.LASF2161:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF3052:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2908:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1576:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1403:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF3559:
+ .string "DCSR_CAUSE_HWBP 2"
+.LASF2965:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF2037:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF788:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1172:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2672:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF3287:
+ .string "__printflike(fmtarg,firstvararg) __attribute__((__format__ (__printf__, fmtarg, firstvararg)))"
+.LASF569:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF4095:
+ .string "MATCH_CUSTOM1_RD_RS1 0x602b"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2950:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF2493:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2059:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2822:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF2280:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF2972:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1575:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF3917:
+ .string "MATCH_FLE_D 0xa2000053"
+.LASF2689:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF3838:
+ .string "MASK_ECALL 0xffffffff"
+.LASF4398:
+ .string "eclic_enable_interrupt"
+.LASF2465:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF4272:
+ .string "CSR_HPMCOUNTER20H 0xc94"
+.LASF1343:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2409:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1112:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2421:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1597:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF3411:
+ .string "__ATTRIBUTE_IMPURE_PTR__ "
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2317:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF2730:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF1496:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF329:
+ .string "GD32VF103_H "
+.LASF562:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF496:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2859:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF3232:
+ .string "__GNUCLIKE_BUILTIN_VARARGS 1"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1097:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF1856:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2030:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF3967:
+ .string "MATCH_FLW 0x2007"
+.LASF2189:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2911:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2613:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF3204:
+ .string "_FSTDIO "
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2433:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1886:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF773:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF4203:
+ .string "CSR_MHPMCOUNTER18 0xb12"
+.LASF3965:
+ .string "MATCH_FMV_D_X 0xf2000053"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF1080:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3410:
+ .string "_Kmax (sizeof (size_t) << 3)"
+.LASF3056:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF842:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2078:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF3328:
+ .string "__guarded_by(x) __lock_annotate(guarded_by(x))"
+.LASF778:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF959:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1789:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF2741:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF3955:
+ .string "MATCH_FMV_S_X 0xf0000053"
+.LASF1046:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3353:
+ .string "__lock_close_recursive(lock) ((void) 0)"
+.LASF3460:
+ .string "__SNPT 0x0800"
+.LASF3323:
+ .string "__requires_shared(...) __lock_annotate(shared_locks_required(__VA_ARGS__))"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1289:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF359:
+ .string "__XSI_VISIBLE 0"
+.LASF3181:
+ .string "_FVWRITE_IN_STREAMIO 1"
+.LASF3025:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF3443:
+ .string "_SYS__PTHREADTYPES_H_ "
+.LASF2538:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1832:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2436:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2215:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2418:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1557:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF3636:
+ .string "EXT_IO_BASE 0x40000000"
+.LASF1059:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF2110:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF565:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF2174:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2960:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF3231:
+ .string "__GNUCLIKE_BUILTIN_CONSTANT_P 1"
+.LASF1010:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF4282:
+ .string "CSR_HPMCOUNTER30H 0xc9e"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2353:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1081:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF3247:
+ .string "__P(protos) protos"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF592:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2606:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF3555:
+ .string "DCSR_STEP (1<<2)"
+.LASF2242:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF3249:
+ .string "__CONCAT(x,y) __CONCAT1(x,y)"
+.LASF3044:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF3821:
+ .string "MATCH_AMOAND_D 0x6000302f"
+.LASF832:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF370:
+ .string "___int_least32_t_defined 1"
+.LASF1388:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF3863:
+ .string "MATCH_CSRRSI 0x6073"
+.LASF2812:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF2175:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2525:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF556:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1524:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1200:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF3138:
+ .string "N200_ECLIC_H "
+.LASF2642:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2825:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1810:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF570:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF4252:
+ .string "CSR_CYCLEH 0xc80"
+.LASF4048:
+ .string "MASK_C_SUBW 0xfc63"
+.LASF3788:
+ .string "MASK_DIVUW 0xfe00707f"
+.LASF2974:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF4223:
+ .string "CSR_MHPMEVENT7 0x327"
+.LASF1627:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF3301:
+ .string "__SCCSID(s) struct __hack"
+.LASF582:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF3692:
+ .string "MASK_SLTIU 0x707f"
+.LASF449:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1656:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF3676:
+ .string "MASK_BGEU 0x707f"
+.LASF2739:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF3160:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF3618:
+ .string "VM_SV32 8"
+.LASF3564:
+ .string "MCONTROL_DMODE(xlen) (1ULL<<((xlen)-5))"
+.LASF2963:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF3048:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1842:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF1049:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF4057:
+ .string "MATCH_C_SLLI 0x2"
+.LASF382:
+ .string "signed +0"
+.LASF1321:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF1828:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF4372:
+ .string "eclic_get_irq_priority"
+.LASF684:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF1141:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF3865:
+ .string "MATCH_CSRRCI 0x7073"
+.LASF1162:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF4302:
+ .string "CSR_MHPMCOUNTER19H 0xb93"
+.LASF1747:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF4281:
+ .string "CSR_HPMCOUNTER29H 0xc9d"
+.LASF3281:
+ .string "__null_sentinel __attribute__((__sentinel__))"
+.LASF3907:
+ .string "MATCH_FCVT_D_S 0x42000053"
+.LASF3427:
+ .string "_INO_T_DECLARED "
+.LASF423:
+ .string "__int_least32_t_defined 1"
+.LASF3864:
+ .string "MASK_CSRRSI 0x707f"
+.LASF1248:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1244:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF2145:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF1538:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF3894:
+ .string "MASK_FDIV_D 0xfe00007f"
+.LASF2682:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF410:
+ .string "__int16_t_defined 1"
+.LASF4392:
+ .string "intattr"
+.LASF2915:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF651:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF4222:
+ .string "CSR_MHPMEVENT6 0x326"
+.LASF1184:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF3998:
+ .string "MASK_C_JALR 0xf07f"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF2315:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2624:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF4172:
+ .string "CSR_MTVEC 0x305"
+.LASF3409:
+ .string "_REENT_INIT_PTR(var) { memset((var), 0, sizeof(*(var))); _REENT_INIT_PTR_ZEROED(var); }"
+.LASF3229:
+ .string "__GNUCLIKE___SECTION 1"
+.LASF1040:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF4379:
+ .string "eclic_set_irq_lvl"
+.LASF1481:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF3184:
+ .string "_UNBUF_STREAM_OPT 1"
+.LASF521:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF3784:
+ .string "MASK_MULW 0xfe00707f"
+.LASF1108:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF3299:
+ .string "__RCSID(s) struct __hack"
+.LASF1043:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF2201:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF3807:
+ .string "MATCH_AMOMAXU_W 0xe000202f"
+.LASF2182:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF3000:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF4259:
+ .string "CSR_HPMCOUNTER7H 0xc87"
+.LASF933:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF3031:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF4304:
+ .string "CSR_MHPMCOUNTER21H 0xb95"
+.LASF3903:
+ .string "MATCH_FMAX_D 0x2a001053"
+.LASF4258:
+ .string "CSR_HPMCOUNTER6H 0xc86"
+.LASF3892:
+ .string "MASK_FMUL_D 0xfe00007f"
+.LASF3707:
+ .string "MATCH_SLL 0x1033"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2690:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF796:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2458:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1988:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF3531:
+ .string "MSTATUS32_SD 0x80000000"
+.LASF1424:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF2261:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF4013:
+ .string "MATCH_C_FLD 0x2000"
+.LASF3541:
+ .string "SSTATUS32_SD 0x80000000"
+.LASF4376:
+ .string "lvl_abs"
+.LASF2432:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF1927:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2855:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF3641:
+ .string "PTE_X 0x008"
+.LASF557:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF2795:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2522:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF2270:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF397:
+ .string "__FAST16 "
+.LASF3079:
+ .string "_T_PTRDIFF_ "
+.LASF1076:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF804:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF2980:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1370:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF2066:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF3319:
+ .string "__unlocks(...) __lock_annotate(unlock_function(__VA_ARGS__))"
+.LASF1911:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF2597:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF3382:
+ .string "_REENT_CHECK_EMERGENCY(ptr) "
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1202:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF3208:
+ .string "__PMT(args) args"
+.LASF499:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF3925:
+ .string "MATCH_FCVT_WU_S 0xc0100053"
+.LASF1109:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF2069:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2390:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3131:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2439:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF948:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF533:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF756:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF3452:
+ .string "__SWR 0x0008"
+.LASF2596:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF824:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1908:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF3292:
+ .string "__printf0like(fmtarg,firstvararg) "
+.LASF1532:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1964:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF2546:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF3463:
+ .string "__SL64 0x8000"
+.LASF1501:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF2416:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF862:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF4391:
+ .string "eclic_set_intattr"
+.LASF2545:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF3934:
+ .string "MASK_FCLASS_S 0xfff0707f"
+.LASF3765:
+ .string "MATCH_FENCE_I 0x100f"
+.LASF1634:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2337:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF3096:
+ .string "_BSD_SIZE_T_ "
+.LASF2467:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1028:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF471:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1310:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF3226:
+ .string "__GNUCLIKE_MATH_BUILTIN_CONSTANTS "
+.LASF2074:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF2444:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF4205:
+ .string "CSR_MHPMCOUNTER20 0xb14"
+.LASF2322:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF3289:
+ .string "__format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg)))"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1945:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF2623:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF428:
+ .string "__int_fast64_t_defined 1"
+.LASF1937:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF937:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF3733:
+ .string "MATCH_SUBW 0x4000003b"
+.LASF1690:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF3078:
+ .string "_PTRDIFF_T "
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF3118:
+ .string "__INT_WCHAR_T_H "
+.LASF3394:
+ .string "_REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf)"
+.LASF2894:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2745:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF576:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF3185:
+ .string "__SYS_CONFIG_H__ "
+.LASF1508:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1286:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2438:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2865:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2335:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF2034:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1335:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF3661:
+ .string "rdtime() read_csr(time)"
+.LASF421:
+ .string "__int_least8_t_defined 1"
+.LASF950:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF4152:
+ .string "CSR_HPMCOUNTER26 0xc1a"
+.LASF1722:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF3318:
+ .string "__trylocks_shared(...) __lock_annotate(shared_trylock_function(__VA_ARGS__))"
+.LASF2667:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF3581:
+ .string "MCONTROL_ACTION_DEBUG_MODE 1"
+.LASF608:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1004:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF3939:
+ .string "MATCH_FCVT_L_D 0xc2200053"
+.LASF2199:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF3599:
+ .string "MIP_MEIP (1 << IRQ_M_EXT)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF417:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2992:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2495:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF3633:
+ .string "DEFAULT_NMIVEC 0x00001004"
+.LASF2532:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF3546:
+ .string "DCSR_EBREAKM (1<<15)"
+.LASF3710:
+ .string "MASK_SLT 0xfe00707f"
+.LASF3908:
+ .string "MASK_FCVT_D_S 0xfff0007f"
+.LASF954:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1401:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF405:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF4139:
+ .string "CSR_HPMCOUNTER13 0xc0d"
+.LASF1136:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2644:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF4373:
+ .string "eclic_set_irq_priority"
+.LASF3284:
+ .string "__offsetof(type,field) offsetof(type, field)"
+.LASF1571:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF3650:
+ .string "SSTATUS_SD SSTATUS32_SD"
+.LASF3616:
+ .string "VM_MBB 1"
+.LASF2777:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF2617:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF3364:
+ .string "_RAND48_SEED_0 (0x330e)"
+.LASF1631:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF643:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1177:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1072:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF2156:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF4196:
+ .string "CSR_MHPMCOUNTER11 0xb0b"
+.LASF1238:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF4307:
+ .string "CSR_MHPMCOUNTER24H 0xb98"
+.LASF1985:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF689:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF944:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2590:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1365:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1090:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF3718:
+ .string "MASK_SRA 0xfe00707f"
+.LASF2140:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1694:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1877:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF3282:
+ .string "__exported __attribute__((__visibility__(\"default\")))"
+.LASF3627:
+ .string "IRQ_S_EXT 9"
+.LASF2271:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1158:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF3358:
+ .string "__lock_release(lock) ((void) 0)"
+.LASF3802:
+ .string "MASK_AMOMIN_W 0xf800707f"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF763:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF1619:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2924:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2975:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1993:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2798:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF418:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1485:
+ .string "FMC FMC_BASE"
+.LASF3999:
+ .string "MATCH_C_EBREAK 0x9002"
+.LASF4267:
+ .string "CSR_HPMCOUNTER15H 0xc8f"
+.LASF2786:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1683:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF749:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1940:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF3923:
+ .string "MATCH_FCVT_W_S 0xc0000053"
+.LASF1923:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF4374:
+ .string "current_intctrl"
+.LASF902:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF3640:
+ .string "PTE_W 0x004"
+.LASF4011:
+ .string "MATCH_C_ADDI4SPN 0x0"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF3307:
+ .string "_Nullable "
+.LASF1204:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2650:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF3699:
+ .string "MATCH_ORI 0x6013"
+.LASF2307:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2142:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2654:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1675:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF4051:
+ .string "MATCH_C_J 0xa001"
+.LASF997:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1953:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1715:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF3017:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF4246:
+ .string "CSR_MHPMEVENT30 0x33e"
+.LASF4220:
+ .string "CSR_MHPMEVENT4 0x324"
+.LASF3779:
+ .string "MATCH_REM 0x2006033"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1976:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF3501:
+ .string "alloca"
+.LASF867:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2706:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF663:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF3354:
+ .string "__lock_acquire(lock) ((void) 0)"
+.LASF1351:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2329:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF4194:
+ .string "CSR_MHPMCOUNTER9 0xb09"
+.LASF3380:
+ .string "_REENT_CHECK_TM(ptr) "
+.LASF4110:
+ .string "MASK_CUSTOM2_RD_RS1_RS2 0x707f"
+.LASF3966:
+ .string "MASK_FMV_D_X 0xfff0707f"
+.LASF4232:
+ .string "CSR_MHPMEVENT16 0x330"
+.LASF1978:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF2054:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2403:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF4112:
+ .string "MASK_CUSTOM3 0x707f"
+.LASF3991:
+ .string "MATCH_C_NOP 0x1"
+.LASF2705:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1767:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1774:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF4224:
+ .string "CSR_MHPMEVENT8 0x328"
+.LASF4276:
+ .string "CSR_HPMCOUNTER24H 0xc98"
+.LASF2806:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF4204:
+ .string "CSR_MHPMCOUNTER19 0xb13"
+.LASF1802:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF3086:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF3385:
+ .string "_REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam)"
+.LASF435:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF964:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF1469:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2778:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF4135:
+ .string "CSR_HPMCOUNTER9 0xc09"
+.LASF3706:
+ .string "MASK_SUB 0xfe00707f"
+.LASF1206:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2808:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2956:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1560:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF3960:
+ .string "MASK_FCVT_D_WU 0xfff0007f"
+.LASF857:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2831:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF4345:
+ .string "short unsigned int"
+.LASF741:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF4056:
+ .string "MASK_C_BNEZ 0xe003"
+.LASF1322:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF900:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1643:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1145:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2593:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2791:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF3815:
+ .string "MATCH_AMOADD_D 0x302f"
+.LASF3128:
+ .string "N200_TIMER_H "
+.LASF1144:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF575:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF3130:
+ .string "TIMER_MSIP_size 0x4"
+.LASF2050:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF3073:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF3584:
+ .string "MCONTROL_ACTION_TRACE_EMIT 4"
+.LASF2918:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF3264:
+ .string "__alloc_size2(n,x) __attribute__((__alloc_size__(n, x)))"
+.LASF3336:
+ .string "_WINT_T "
+.LASF1862:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF3660:
+ .string "clear_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF2748:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF3698:
+ .string "MASK_SRAI 0xfc00707f"
+.LASF1320:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1546:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF896:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1863:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF411:
+ .string "_INT32_T_DECLARED "
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1668:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2188:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF3843:
+ .string "MATCH_SRET 0x10200073"
+.LASF4125:
+ .string "CSR_FCSR 0x3"
+.LASF1736:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF717:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1274:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2491:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF3317:
+ .string "__trylocks_exclusive(...) __lock_annotate(exclusive_trylock_function(__VA_ARGS__))"
+.LASF2610:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1900:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF398:
+ .string "__FAST32 "
+.LASF1250:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF729:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF3391:
+ .string "_REENT_MP_RESULT_K(ptr) ((ptr)->_result_k)"
+.LASF1705:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF4421:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF3548:
+ .string "DCSR_EBREAKS (1<<13)"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF3213:
+ .string "__long_double_t long double"
+.LASF467:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2629:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF3010:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF774:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF823:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF4066:
+ .string "MASK_C_MV 0xf003"
+.LASF3198:
+ .string "_NOTHROW "
+.LASF2999:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2426:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1751:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1068:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF656:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF3797:
+ .string "MATCH_AMOOR_W 0x4000202f"
+.LASF1885:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF577:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2858:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1051:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF3830:
+ .string "MASK_AMOMAXU_D 0xf800707f"
+.LASF2568:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2846:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2621:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF2550:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF375:
+ .string "signed"
+.LASF4092:
+ .string "MASK_CUSTOM1_RS1_RS2 0x707f"
+.LASF974:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF4116:
+ .string "MASK_CUSTOM3_RS1_RS2 0x707f"
+.LASF2736:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2507:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF552:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF353:
+ .string "__GNU_VISIBLE 0"
+.LASF4382:
+ .string "nlbits_shifted"
+.LASF2890:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2378:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1638:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1441:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1543:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2633:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1251:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF2178:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1272:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2185:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF3800:
+ .string "MASK_AMOAND_W 0xf800707f"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1180:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1618:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2349:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF2205:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF4402:
+ .string "base"
+.LASF2788:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF3372:
+ .string "_REENT_ASCTIME_SIZE 26"
+.LASF2845:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF3854:
+ .string "MASK_WFI 0xffffffff"
+.LASF3989:
+ .string "MATCH_FNMADD_D 0x200004f"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF3930:
+ .string "MASK_FCVT_LU_S 0xfff0007f"
+.LASF3561:
+ .string "DCSR_CAUSE_STEP 4"
+.LASF1364:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF675:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF401:
+ .string "__LEAST16 \"h\""
+.LASF1540:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF4331:
+ .string "CAUSE_ILLEGAL_INSTRUCTION 0x2"
+.LASF4310:
+ .string "CSR_MHPMCOUNTER27H 0xb9b"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF4283:
+ .string "CSR_HPMCOUNTER31H 0xc9f"
+.LASF2878:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF2676:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2153:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF4002:
+ .string "MASK_C_LD 0xe003"
+.LASF1247:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF2003:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF1990:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF1624:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF3158:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF2244:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1214:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1318:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF3029:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF3053:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2962:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2619:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1787:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF4360:
+ .string "eclic_set_negedge_trig"
+.LASF475:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2179:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2169:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF4132:
+ .string "CSR_HPMCOUNTER6 0xc06"
+.LASF3736:
+ .string "MASK_SLLW 0xfe00707f"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF4264:
+ .string "CSR_HPMCOUNTER12H 0xc8c"
+.LASF923:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF3690:
+ .string "MASK_SLTI 0x707f"
+.LASF2031:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF4086:
+ .string "MASK_CUSTOM0_RD_RS1_RS2 0x707f"
+.LASF849:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF1551:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF1519:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1824:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF549:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1677:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF2598:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2292:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF4178:
+ .string "CSR_MIP 0x344"
+.LASF4407:
+ .string "start_mtime"
+.LASF1894:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2752:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2971:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2747:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF1156:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF3449:
+ .string "__SLBF 0x0001"
+.LASF2892:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF4211:
+ .string "CSR_MHPMCOUNTER26 0xb1a"
+.LASF4317:
+ .string "CSR_MCOUNTINHIBIT 0x320"
+.LASF887:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF3239:
+ .string "__GNUCLIKE_BUILTIN_MEMCPY 1"
+.LASF2470:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF3554:
+ .string "DCSR_HALT (1<<3)"
+.LASF1123:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF3974:
+ .string "MASK_FSD 0x707f"
+.LASF4017:
+ .string "MATCH_C_FLW 0x6000"
+.LASF3291:
+ .string "__strftimelike(fmtarg,firstvararg) __attribute__((__format__ (__strftime__, fmtarg, firstvararg)))"
+.LASF983:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF818:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF3834:
+ .string "MASK_LR_D 0xf9f0707f"
+.LASF1348:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF4352:
+ .string "long long unsigned int"
+.LASF2044:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF2264:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2615:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1313:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF856:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF4217:
+ .string "CSR_MUCOUNTEREN 0x320"
+.LASF1119:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF3888:
+ .string "MASK_FADD_D 0xfe00007f"
+.LASF473:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF2075:
+ .string "GD32VF103_RCU_H "
+.LASF784:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF3509:
+ .string "_SYS_STRING_H "
+.LASF2275:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1518:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1280:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF3529:
+ .string "MSTATUS_MXR 0x00080000"
+.LASF899:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF3818:
+ .string "MASK_AMOXOR_D 0xf800707f"
+.LASF1539:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1970:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF4364:
+ .string "eclic_set_nonvmode"
+.LASF2934:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF3637:
+ .string "DRAM_BASE 0x80000000"
+.LASF4049:
+ .string "MATCH_C_ADDW 0x9c21"
+.LASF940:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF3992:
+ .string "MASK_C_NOP 0xffff"
+.LASF724:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF3956:
+ .string "MASK_FMV_S_X 0xfff0707f"
+.LASF4343:
+ .string "unsigned char"
+.LASF1406:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF3028:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2662:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2514:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF4185:
+ .string "CSR_DSCRATCH 0x7b2"
+.LASF3624:
+ .string "IRQ_S_TIMER 5"
+.LASF1088:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF2749:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF2837:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF4221:
+ .string "CSR_MHPMEVENT5 0x325"
+.LASF786:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF3395:
+ .string "_REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf)"
+.LASF4359:
+ .string "new_intattr"
+.LASF1972:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF3729:
+ .string "MATCH_SRAIW 0x4000501b"
+.LASF3346:
+ .string "__Long long"
+.LASF2095:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1699:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1647:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2714:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1660:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF1952:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2759:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2921:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF4212:
+ .string "CSR_MHPMCOUNTER27 0xb1b"
+.LASF2579:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2295:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF1931:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF1696:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF3720:
+ .string "MASK_OR 0xfe00707f"
+.LASF2864:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF3464:
+ .string "__SNLK 0x0001"
+.LASF1712:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF4168:
+ .string "CSR_MISA 0x301"
+.LASF3223:
+ .string "__BEGIN_DECLS "
+.LASF3377:
+ .ascii "_REENT_INIT_PTR_ZEROED(var) { (var)->_stdin = _REENT_STDIO_S"
+ .ascii "TREAM(var, 0); (var)->_stdout = _REENT_STDIO_STREAM(var, 1);"
+ .ascii " (var)->_stderr = _REENT_STDIO_STREAM(var, 2); (var)->_new._"
+ .ascii "reent._rand_next = 1; (var)->_new._reent._r48._seed[0] = _RA"
+ .ascii "ND48_SEED_0; (var)->_new._reent._r48._seed[1] = _RAND48_S"
+ .string "EED_1; (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; (var)->_new._reent._r48._add = _RAND48_ADD; }"
+.LASF2125:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1461:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF1735:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF1816:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF463:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2709:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF3205:
+ .string "__need_size_t "
+.LASF1998:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF3734:
+ .string "MASK_SUBW 0xfe00707f"
+.LASF4081:
+ .string "MATCH_CUSTOM0_RD 0x400b"
+.LASF3421:
+ .string "__time_t_defined "
+.LASF2586:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF3899:
+ .string "MATCH_FSGNJX_D 0x22002053"
+.LASF2693:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1981:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1026:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2543:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2469:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF2903:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF3976:
+ .string "MASK_FMADD_S 0x600007f"
+.LASF527:
+ .string "GD32VF103_ADC_H "
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF4386:
+ .string "eclic_get_mth"
+.LASF841:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF347:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1284:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2332:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF578:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF402:
+ .string "__LEAST32 \"l\""
+.LASF581:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1507:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF3255:
+ .string "__weak_symbol __attribute__((__weak__))"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF1368:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1509:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2762:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF3790:
+ .string "MASK_REMW 0xfe00707f"
+.LASF2591:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF3638:
+ .string "PTE_V 0x001"
+.LASF4367:
+ .string "mtvec_value"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1038:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2513:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF596:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2732:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1642:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF1968:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF3941:
+ .string "MATCH_FCVT_LU_D 0xc2300053"
+.LASF893:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF3781:
+ .string "MATCH_REMU 0x2007033"
+.LASF1635:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF1349:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1314:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF3332:
+ .string "__GNUC_VA_LIST "
+.LASF2226:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF3126:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF2694:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF3133:
+ .string "TIMER_MTIME 0x0"
+.LASF4039:
+ .string "MATCH_C_SUB 0x8c01"
+.LASF1607:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF486:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF2991:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF971:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2873:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1294:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF4035:
+ .string "MATCH_C_SRAI 0x8401"
+.LASF831:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF655:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF3497:
+ .string "_STDLIB_H_ "
+.LASF520:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1118:
+ .string "CRC CRC_BASE"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF848:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF885:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF2973:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF1639:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF3739:
+ .string "MATCH_SRAW 0x4000503b"
+.LASF559:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF3772:
+ .string "MASK_MULHSU 0xfe00707f"
+.LASF3490:
+ .string "__sfileno(p) ((p)->_file)"
+.LASF3587:
+ .string "MCONTROL_MATCH_GE 2"
+.LASF875:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF4108:
+ .string "MASK_CUSTOM2_RD_RS1 0x707f"
+.LASF914:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF3094:
+ .string "__SIZE_T "
+.LASF4104:
+ .string "MASK_CUSTOM2_RS1_RS2 0x707f"
+.LASF3503:
+ .string "__compar_fn_t_defined "
+.LASF2486:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF3272:
+ .string "__nonnull(x) __attribute__((__nonnull__ x))"
+.LASF3716:
+ .string "MASK_SRL 0xfe00707f"
+.LASF1873:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF2316:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF348:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF3154:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1741:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1839:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF3222:
+ .string "__has_feature(x) 0"
+.LASF344:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1345:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1620:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF3171:
+ .string "__NEWLIB_H__ 1"
+.LASF1100:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1835:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF3488:
+ .string "__sferror(p) ((int)(((p)->_flags & __SERR) != 0))"
+.LASF493:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF3246:
+ .string "__CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2671:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF2099:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2595:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2957:
+ .string "USART_STAT_TC BIT(6)"
+.LASF3988:
+ .string "MASK_FNMSUB_D 0x600007f"
+.LASF1487:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2740:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF3051:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF2572:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF4001:
+ .string "MATCH_C_LD 0x6000"
+.LASF1836:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1135:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF2299:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF1149:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2651:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2478:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2933:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF908:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF498:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1547:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF1615:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF2256:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF863:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF3367:
+ .string "_RAND48_MULT_0 (0xe66d)"
+.LASF2979:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF3741:
+ .string "MATCH_LB 0x3"
+.LASF2073:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF2105:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF815:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF640:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF619:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF3533:
+ .string "SSTATUS_UIE 0x00000001"
+.LASF2371:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF2504:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1831:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF3348:
+ .string "__LOCK_INIT(class,lock) static int lock = 0;"
+.LASF3942:
+ .string "MASK_FCVT_LU_D 0xfff0007f"
+.LASF2884:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1962:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF1813:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2193:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF966:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF731:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF934:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF2098:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF3777:
+ .string "MATCH_DIVU 0x2005033"
+.LASF1342:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF1946:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1269:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2790:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF518:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2905:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF3516:
+ .string "MSTATUS_SIE 0x00000002"
+.LASF1528:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2863:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF737:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2646:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF4161:
+ .string "CSR_SSCRATCH 0x140"
+.LASF3186:
+ .string "__IEEE_LITTLE_ENDIAN "
+.LASF2233:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF869:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF3748:
+ .string "MASK_LD 0x707f"
+.LASF2326:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF3150:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF4022:
+ .string "MASK_C_SW 0xe003"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2794:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF341:
+ .string "_STDINT_H "
+.LASF1430:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF419:
+ .string "_INTPTR_T_DECLARED "
+.LASF1125:
+ .string "GD32VF103_DAC_H "
+.LASF2843:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1884:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1024:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF2111:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF4078:
+ .string "MASK_CUSTOM0_RS1 0x707f"
+.LASF354:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF2382:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1032:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF3984:
+ .string "MASK_FMADD_D 0x600007f"
+.LASF2648:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF3658:
+ .string "swap_csr(reg,val) ({ unsigned long __tmp; if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(val)); else asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(val)); __tmp; })"
+.LASF3900:
+ .string "MASK_FSGNJX_D 0xfe00707f"
+.LASF3521:
+ .string "MSTATUS_HPIE 0x00000040"
+.LASF3227:
+ .string "__GNUCLIKE___TYPEOF 1"
+.LASF2801:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF4399:
+ .string "eclic_init"
+.LASF2374:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF3026:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF3256:
+ .string "__dead2 __attribute__((__noreturn__))"
+.LASF2780:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1479:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1213:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF2187:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2968:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF1167:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF962:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF3831:
+ .string "MATCH_AMOSWAP_D 0x800302f"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF3157:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF3871:
+ .string "MATCH_FMUL_S 0x10000053"
+.LASF1982:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2519:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF4029:
+ .string "MATCH_C_LI 0x4001"
+.LASF4251:
+ .string "CSR_MHARTID 0xf14"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2377:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF725:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF1878:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF730:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1008:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2815:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF4299:
+ .string "CSR_MHPMCOUNTER16H 0xb90"
+.LASF692:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1992:
+ .string "FWDGT FWDGT_BASE"
+.LASF1422:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3278:
+ .string "__restrict restrict"
+.LASF4348:
+ .string "__uint32_t"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1682:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1933:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF3059:
+ .string "WWDGT WWDGT_BASE"
+.LASF4256:
+ .string "CSR_HPMCOUNTER4H 0xc84"
+.LASF3001:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2321:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF474:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF930:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1270:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2419:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2902:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF3537:
+ .string "SSTATUS_SPP 0x00000100"
+.LASF2338:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF3622:
+ .string "IRQ_H_SOFT 2"
+.LASF4128:
+ .string "CSR_INSTRET 0xc02"
+.LASF4061:
+ .string "MATCH_C_LWSP 0x4002"
+.LASF4043:
+ .string "MATCH_C_OR 0x8c41"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF3324:
+ .string "__requires_unlocked(...) __lock_annotate(locks_excluded(__VA_ARGS__))"
+.LASF1848:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF876:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF4113:
+ .string "MATCH_CUSTOM3_RS1 0x207b"
+.LASF803:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2167:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF3173:
+ .string "_WANT_IO_LONG_LONG 1"
+.LASF4274:
+ .string "CSR_HPMCOUNTER22H 0xc96"
+.LASF2923:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF3861:
+ .string "MATCH_CSRRWI 0x5073"
+.LASF3856:
+ .string "MASK_CSRRW 0x707f"
+.LASF793:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF482:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1646:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF4079:
+ .string "MATCH_CUSTOM0_RS1_RS2 0x300b"
+.LASF3498:
+ .string "__need_wchar_t "
+.LASF3731:
+ .string "MATCH_ADDW 0x3b"
+.LASF1871:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF2087:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF928:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1604:
+ .string "AFIO AFIO_BASE"
+.LASF4187:
+ .string "CSR_MINSTRET 0xb02"
+.LASF1355:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF843:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1719:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2630:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF3116:
+ .string "_WCHAR_T_H "
+.LASF3928:
+ .string "MASK_FCVT_L_S 0xfff0007f"
+.LASF2032:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2489:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF3816:
+ .string "MASK_AMOADD_D 0xf800707f"
+.LASF4295:
+ .string "CSR_MHPMCOUNTER12H 0xb8c"
+.LASF4186:
+ .string "CSR_MCYCLE 0xb00"
+.LASF2919:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF2887:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF544:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2462:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF3511:
+ .string "STDIN_FILENO 0"
+.LASF963:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF584:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF3951:
+ .string "MATCH_FCVT_S_L 0xd0200053"
+.LASF3262:
+ .string "__section(x) __attribute__((__section__(x)))"
+.LASF3836:
+ .string "MASK_SC_D 0xf800707f"
+.LASF2218:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF3567:
+ .string "MCONTROL_TIMING (1<<18)"
+.LASF3064:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF3018:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF3093:
+ .string "_T_SIZE "
+.LASF3349:
+ .string "__LOCK_INIT_RECURSIVE(class,lock) static int lock = 0;"
+.LASF481:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF779:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1969:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1771:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF2528:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF2384:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF4400:
+ .string "num_irq"
+.LASF508:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF646:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF1305:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF1783:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF1152:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF4080:
+ .string "MASK_CUSTOM0_RS1_RS2 0x707f"
+.LASF3376:
+ .ascii "_REENT_INIT(var) { 0, _REENT_STDIO_STREAM(&(var), 0), _REENT"
+ .ascii "_STDIO_STREAM(&(var), 1), _REENT_STDIO_STREAM(&(var), 2), 0,"
+ .ascii " \"\", 0, _NULL, 0, _NULL, _NULL, 0, _NULL, _NULL, 0, _NULL,"
+ .ascii " { { 0, _NULL, \"\", {0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, {"
+ .string " {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, _RAND48_ADD }, {0, {0}}, {0, {0}}, {0, {0}}, \"\", \"\", 0, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}} } }, _REENT_INIT_ATEXIT _NULL, {_NULL, 0, _NULL} }"
+.LASF1303:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF764:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF2922:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2627:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF495:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF2954:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF825:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF2017:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2408:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF3898:
+ .string "MASK_FSGNJN_D 0xfe00707f"
+.LASF461:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1590:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF2383:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF3482:
+ .string "_stdout_r(x) ((x)->_stdout)"
+.LASF1996:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF3451:
+ .string "__SRD 0x0004"
+.LASF4389:
+ .string "cliccfg"
+.LASF671:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF1672:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2716:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF810:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1129:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1230:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2742:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2834:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2937:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF3931:
+ .string "MATCH_FMV_X_S 0xe0000053"
+.LASF1494:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF3691:
+ .string "MATCH_SLTIU 0x3013"
+.LASF864:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF3674:
+ .string "MASK_BLTU 0x707f"
+.LASF3106:
+ .string "__wchar_t__ "
+.LASF2314:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF4321:
+ .string "CSR_PUSHMCAUSE 0x7EE"
+.LASF4268:
+ .string "CSR_HPMCOUNTER16H 0xc90"
+.LASF2398:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2827:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF3927:
+ .string "MATCH_FCVT_L_S 0xc0200053"
+.LASF1516:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF890:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF3597:
+ .string "MIP_SEIP (1 << IRQ_S_EXT)"
+.LASF3621:
+ .string "IRQ_S_SOFT 1"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF979:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF909:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF3080:
+ .string "_T_PTRDIFF "
+.LASF1860:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF3169:
+ .string "_STDIO_H_ "
+.LASF644:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF502:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF534:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF4060:
+ .string "MASK_C_FLDSP 0xe003"
+.LASF3874:
+ .string "MASK_FDIV_S 0xfe00007f"
+.LASF2060:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF1740:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF3100:
+ .string "_SIZE_T_DECLARED "
+.LASF2474:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF607:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF762:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2348:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF3884:
+ .string "MASK_FMAX_S 0xfe00707f"
+.LASF3937:
+ .string "MATCH_FCVT_WU_D 0xc2100053"
+.LASF3088:
+ .string "__size_t__ "
+.LASF2588:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF603:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2836:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF4037:
+ .string "MATCH_C_ANDI 0x8801"
+.LASF2352:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF3761:
+ .string "MATCH_SD 0x3023"
+.LASF775:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF3528:
+ .string "MSTATUS_PUM 0x00040000"
+.LASF4008:
+ .string "MASK_C_LDSP 0xe003"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF4230:
+ .string "CSR_MHPMEVENT14 0x32e"
+.LASF2948:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF3357:
+ .string "__lock_try_acquire_recursive(lock) ((void) 0)"
+.LASF1281:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF4413:
+ .string "get_instret_value"
+.LASF3758:
+ .string "MASK_SH 0x707f"
+.LASF1237:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF1971:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF505:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF942:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1383:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1818:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2840:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF3433:
+ .string "_KEY_T_DECLARED "
+.LASF3728:
+ .string "MASK_SRLIW 0xfe00707f"
+.LASF465:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1466:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF3142:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1060:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF3773:
+ .string "MATCH_MULHU 0x2003033"
+.LASF3446:
+ .string "_NEWLIB_STDIO_H "
+.LASF3499:
+ .string "_MACHSTDLIB_H_ "
+.LASF3723:
+ .string "MATCH_ADDIW 0x1b"
+.LASF4388:
+ .string "eclic_set_cliccfg"
+.LASF4164:
+ .string "CSR_SBADADDR 0x143"
+.LASF2023:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1905:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF2200:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF666:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF915:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF4216:
+ .string "CSR_MHPMCOUNTER31 0xb1f"
+.LASF789:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1991:
+ .string "GD32VF103_FWDGT_H "
+.LASF1147:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF1386:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF425:
+ .string "__int_fast8_t_defined 1"
+.LASF620:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2901:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF2083:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2809:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1283:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1611:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2587:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1025:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF3077:
+ .string "_ANSI_STDDEF_H "
+.LASF1746:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF4380:
+ .string "eclic_get_nlbits"
+.LASF4088:
+ .string "MASK_CUSTOM1 0x707f"
+.LASF3422:
+ .string "_TIME_T_DECLARED "
+.LASF3177:
+ .string "_MB_LEN_MAX 1"
+.LASF440:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF1510:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF3108:
+ .string "_WCHAR_T "
+.LASF2423:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF838:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF3147:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF1858:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF4308:
+ .string "CSR_MHPMCOUNTER25H 0xb99"
+.LASF2101:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1733:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2554:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1582:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF491:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF1331:
+ .string "__SEV eclic_send_event"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1134:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF837:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2970:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1020:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF4076:
+ .string "MASK_CUSTOM0 0x707f"
+.LASF1879:
+ .string "GD32VF103_I2C_H "
+.LASF2420:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2842:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF4269:
+ .string "CSR_HPMCOUNTER17H 0xc91"
+.LASF3852:
+ .string "MASK_SFENCE_VM 0xfff07fff"
+.LASF3470:
+ .string "BUFSIZ 1024"
+.LASF3935:
+ .string "MATCH_FCVT_W_D 0xc2000053"
+.LASF1350:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2247:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1726:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF3977:
+ .string "MATCH_FMSUB_S 0x47"
+.LASF1805:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF4280:
+ .string "CSR_HPMCOUNTER28H 0xc9c"
+.LASF4181:
+ .string "CSR_TDATA2 0x7a2"
+.LASF3943:
+ .string "MATCH_FMV_X_D 0xe2000053"
+.LASF2396:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2312:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF2138:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF3878:
+ .string "MASK_FSGNJN_S 0xfe00707f"
+.LASF484:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF3387:
+ .string "_REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed)"
+.LASF1650:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF2529:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF3982:
+ .string "MASK_FNMADD_S 0x600007f"
+.LASF3280:
+ .string "__predict_false(exp) __builtin_expect((exp), 0)"
+.LASF710:
+ .string "GD32VF103_BKP_H "
+.LASF2258:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2479:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF3602:
+ .string "MIE_MSIE MIP_MSIP"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF4201:
+ .string "CSR_MHPMCOUNTER16 0xb10"
+.LASF1686:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF2108:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF3097:
+ .string "_SIZE_T_DEFINED_ "
+.LASF736:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1729:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF2163:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF3530:
+ .string "MSTATUS_VM 0x1F000000"
+.LASF4190:
+ .string "CSR_MHPMCOUNTER5 0xb05"
+.LASF4340:
+ .string "CAUSE_MACHINE_ECALL 0xb"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2609:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2341:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF3700:
+ .string "MASK_ORI 0x707f"
+.LASF1249:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2657:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF3360:
+ .string "_ATEXIT_SIZE 32"
+.LASF3596:
+ .string "MIP_MTIP (1 << IRQ_M_TIMER)"
+.LASF352:
+ .string "__BSD_VISIBLE 0"
+.LASF740:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2977:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF3019:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2281:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF652:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF3574:
+ .string "MCONTROL_U (1<<3)"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF4362:
+ .string "source"
+.LASF3057:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF3853:
+ .string "MATCH_WFI 0x10500073"
+.LASF1179:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1703:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF1106:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF4015:
+ .string "MATCH_C_LW 0x4000"
+.LASF4243:
+ .string "CSR_MHPMEVENT27 0x33b"
+.LASF4227:
+ .string "CSR_MHPMEVENT11 0x32b"
+.LASF2389:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2604:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF3390:
+ .string "_REENT_MP_RESULT(ptr) ((ptr)->_result)"
+.LASF3486:
+ .string "__sgetc_r(__ptr,__p) __sgetc_raw_r(__ptr, __p)"
+.LASF2228:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF3351:
+ .string "__lock_init_recursive(lock) ((void) 0)"
+.LASF3022:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF395:
+ .string "__INT64 \"ll\""
+.LASF1979:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF3148:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF3400:
+ .string "_REENT_WCTOMB_STATE(ptr) ((ptr)->_new._reent._wctomb_state)"
+.LASF1126:
+ .string "DAC DAC_BASE"
+.LASF1473:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF4183:
+ .string "CSR_DCSR 0x7b0"
+.LASF975:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF406:
+ .string "_UINT8_T_DECLARED "
+.LASF993:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2492:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1077:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1263:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2571:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF2035:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2508:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1549:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2207:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF3440:
+ .string "_TIMER_T_DECLARED "
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF3822:
+ .string "MASK_AMOAND_D 0xf800707f"
+.LASF728:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2724:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF718:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1014:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF583:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF1935:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2811:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF4042:
+ .string "MASK_C_XOR 0xfc63"
+.LASF3735:
+ .string "MATCH_SLLW 0x103b"
+.LASF802:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF446:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1005:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1997:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF3590:
+ .string "MCONTROL_MATCH_MASK_HIGH 5"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF739:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF3513:
+ .string "STDERR_FILENO 2"
+.LASF2879:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1989:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF990:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1585:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF558:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF560:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1009:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF727:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF3535:
+ .string "SSTATUS_UPIE 0x00000010"
+.LASF554:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2445:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF745:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF4111:
+ .string "MATCH_CUSTOM3 0x7b"
+.LASF4099:
+ .string "MATCH_CUSTOM2 0x5b"
+.LASF817:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2149:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF3156:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF334:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF3617:
+ .string "VM_MBBID 2"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF2429:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF598:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1915:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF468:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF390:
+ .string "_INTPTR_EQ_INT "
+.LASF2738:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2343:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF2137:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF897:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF4214:
+ .string "CSR_MHPMCOUNTER29 0xb1d"
+.LASF1598:
+ .string "GD32VF103_GPIO_H "
+.LASF3611:
+ .string "PRV_U 0"
+.LASF1395:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1827:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF3114:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2331:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF4253:
+ .string "CSR_TIMEH 0xc81"
+.LASF1809:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF2005:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF691:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF2195:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF3744:
+ .string "MASK_LH 0x707f"
+.LASF3549:
+ .string "DCSR_EBREAKU (1<<12)"
+.LASF3303:
+ .string "__DECONST(type,var) ((type)(__uintptr_t)(const void *)(var))"
+.LASF3127:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF2785:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF1489:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF379:
+ .string "__int20"
+.LASF2898:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2062:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF733:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF738:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1762:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2395:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF797:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1324:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2190:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF3629:
+ .string "IRQ_M_EXT 11"
+.LASF2406:
+ .string "GD32VF103_RTC_H "
+.LASF4117:
+ .string "MATCH_CUSTOM3_RD 0x407b"
+.LASF1085:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1657:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF2067:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1252:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2463:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF590:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2717:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF2021:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF1138:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF1843:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2701:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF3370:
+ .string "_RAND48_ADD (0x000b)"
+.LASF3014:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF522:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF3794:
+ .string "MASK_AMOADD_W 0xf800707f"
+.LASF2488:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF904:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF2446:
+ .string "GD32VF103_SPI_H "
+.LASF332:
+ .string "__IO volatile"
+.LASF3722:
+ .string "MASK_AND 0xfe00707f"
+.LASF2124:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF3776:
+ .string "MASK_DIV 0xfe00707f"
+.LASF1117:
+ .string "GD32VF103_CRC_H "
+.LASF751:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1580:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1278:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF3804:
+ .string "MASK_AMOMAX_W 0xf800707f"
+.LASF1917:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF4344:
+ .string "short int"
+.LASF3340:
+ .string "unsigned signed"
+.LASF2580:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1297:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1925:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF4260:
+ .string "CSR_HPMCOUNTER8H 0xc88"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2001:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF1574:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF3745:
+ .string "MATCH_LW 0x2003"
+.LASF1404:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF3121:
+ .string "_BSD_WCHAR_T_"
+.LASF3873:
+ .string "MATCH_FDIV_S 0x18000053"
+.LASF3732:
+ .string "MASK_ADDW 0xfe00707f"
+.LASF3793:
+ .string "MATCH_AMOADD_W 0x202f"
+.LASF3113:
+ .string "_BSD_WCHAR_T_ "
+.LASF2094:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF2186:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF3469:
+ .string "EOF (-1)"
+.LASF3512:
+ .string "STDOUT_FILENO 1"
+.LASF1209:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF4150:
+ .string "CSR_HPMCOUNTER24 0xc18"
+.LASF3089:
+ .string "__SIZE_T__ "
+.LASF3759:
+ .string "MATCH_SW 0x2023"
+.LASF4083:
+ .string "MATCH_CUSTOM0_RD_RS1 0x600b"
+.LASF1983:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF1999:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1866:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2209:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF3764:
+ .string "MASK_FENCE 0x707f"
+.LASF2158:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF3778:
+ .string "MASK_DIVU 0xfe00707f"
+.LASF2345:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2183:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1800:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2484:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1333:
+ .string "EXMC (EXMC_BASE)"
+.LASF1050:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF384:
+ .string "char +0"
+.LASF4336:
+ .string "CAUSE_FAULT_STORE 0x7"
+.LASF1710:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF1154:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF3799:
+ .string "MATCH_AMOAND_W 0x6000202f"
+.LASF3505:
+ .string "EXIT_SUCCESS 0"
+.LASF1007:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF3866:
+ .string "MASK_CSRRCI 0x707f"
+.LASF444:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF4365:
+ .string "eclic_set_vmode"
+.LASF2046:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF4323:
+ .string "CSR_PUSHMSUBM 0x7EB"
+.LASF2656:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF750:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF512:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF2072:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2360:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2472:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF3175:
+ .string "_WANT_IO_LONG_DOUBLE 1"
+.LASF4094:
+ .string "MASK_CUSTOM1_RD 0x707f"
+.LASF3063:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF2230:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1493:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF3416:
+ .string "_SYS_TYPES_H "
+.LASF1784:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF2860:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF1661:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF567:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF4097:
+ .string "MATCH_CUSTOM1_RD_RS1_RS2 0x702b"
+.LASF2861:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF3945:
+ .string "MATCH_FCLASS_D 0xe2001053"
+.LASF369:
+ .string "___int_least16_t_defined 1"
+.LASF2868:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF702:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF3885:
+ .string "MATCH_FSQRT_S 0x58000053"
+.LASF4032:
+ .string "MASK_C_LUI 0xe003"
+.LASF1258:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2967:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2358:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF3152:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF3809:
+ .string "MATCH_AMOSWAP_W 0x800202f"
+.LASF2874:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1513:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1073:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF807:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF2055:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF3665:
+ .string "MATCH_BEQ 0x63"
+.LASF925:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF3024:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF3151:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF3030:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF3570:
+ .string "MCONTROL_MATCH (0xf<<7)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF3120:
+ .string "_WCHAR_T_DECLARED "
+.LASF4003:
+ .string "MATCH_C_SD 0xe000"
+.LASF2804:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF561:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF3209:
+ .string "__DOTS , ..."
+.LASF366:
+ .string "___int32_t_defined 1"
+.LASF2090:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1181:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF4378:
+ .string "eclic_get_irq_lvl"
+.LASF3550:
+ .string "DCSR_STOPCYCLE (1<<10)"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF3243:
+ .string "__CC_SUPPORTS___FUNC__ 1"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF3199:
+ .string "_LONG_DOUBLE long double"
+.LASF1621:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF4177:
+ .string "CSR_MBADADDR 0x343"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2856:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF2164:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2283:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF1488:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF2136:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1769:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2893:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF1613:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF3997:
+ .string "MATCH_C_JALR 0x9002"
+.LASF4406:
+ .string "measure_cpu_freq"
+.LASF3294:
+ .string "__weak_reference(sym,alias) __asm__(\".weak \" #alias); __asm__(\".equ \" #alias \", \" #sym)"
+.LASF492:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF4286:
+ .string "CSR_MHPMCOUNTER3H 0xb83"
+.LASF906:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF2012:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1691:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2509:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF3359:
+ .string "__lock_release_recursive(lock) ((void) 0)"
+.LASF2632:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2920:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF3406:
+ .string "_REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf)"
+.LASF422:
+ .string "__int_least16_t_defined 1"
+.LASF1168:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2347:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF3111:
+ .string "__WCHAR_T "
+.LASF3556:
+ .string "DCSR_PRV (3<<0)"
+.LASF408:
+ .string "_INT16_T_DECLARED "
+.LASF3979:
+ .string "MATCH_FNMSUB_S 0x4b"
+.LASF3461:
+ .string "__SOFF 0x1000"
+.LASF2362:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF3671:
+ .string "MATCH_BGE 0x5063"
+.LASF1045:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF3504:
+ .string "EXIT_FAILURE 1"
+.LASF4106:
+ .string "MASK_CUSTOM2_RD 0x707f"
+.LASF918:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF4300:
+ .string "CSR_MHPMCOUNTER17H 0xb91"
+.LASF1723:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2697:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF2276:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF4016:
+ .string "MASK_C_LW 0xe003"
+.LASF4384:
+ .string "new_cliccfg"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF2237:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1889:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2582:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF4040:
+ .string "MASK_C_SUB 0xfc63"
+.LASF3875:
+ .string "MATCH_FSGNJ_S 0x20000053"
+.LASF3420:
+ .string "_CLOCK_T_DECLARED "
+.LASF2297:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF1362:
+ .string "GD32VF103_EXTI_H "
+.LASF377:
+ .string "char"
+.LASF1756:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF3938:
+ .string "MASK_FCVT_WU_D 0xfff0007f"
+.LASF1340:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF3573:
+ .string "MCONTROL_S (1<<4)"
+.LASF3015:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2196:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF4180:
+ .string "CSR_TDATA1 0x7a1"
+.LASF880:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2708:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF391:
+ .string "_INT32_EQ_LONG "
+.LASF1069:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF3971:
+ .string "MATCH_FSW 0x2027"
+.LASF1846:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF1928:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF2319:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2869:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF535:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF1384:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF907:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF2045:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF4219:
+ .string "CSR_MHPMEVENT3 0x323"
+.LASF597:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2376:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF2088:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2877:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF685:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF2883:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF4339:
+ .string "CAUSE_HYPERVISOR_ECALL 0xa"
+.LASF1795:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF686:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF2241:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2994:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2796:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2483:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF3805:
+ .string "MATCH_AMOMINU_W 0xc000202f"
+.LASF3012:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2631:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF2685:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2817:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF662:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF3067:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF1853:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF4284:
+ .string "CSR_MCYCLEH 0xb80"
+.LASF3791:
+ .string "MATCH_REMUW 0x200703b"
+.LASF3483:
+ .string "_stderr_r(x) ((x)->_stderr)"
+.LASF1527:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF3717:
+ .string "MATCH_SRA 0x40005033"
+.LASF1103:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF516:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1895:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF4390:
+ .string "eclic_get_intattr"
+.LASF2160:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF1924:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF2393:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1684:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF2764:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1042:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1617:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1444:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2287:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2386:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF2117:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2589:
+ .string "GD32VF103_TIMER_H "
+.LASF1017:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF3076:
+ .string "_STDDEF_H_ "
+.LASF4075:
+ .string "MATCH_CUSTOM0 0xb"
+.LASF721:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF3424:
+ .string "__caddr_t_defined "
+.LASF3552:
+ .string "DCSR_CAUSE (7<<6)"
+.LASF3221:
+ .string "__has_extension __has_feature"
+.LASF4233:
+ .string "CSR_MHPMEVENT17 0x331"
+.LASF4247:
+ .string "CSR_MHPMEVENT31 0x33f"
+.LASF2686:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF1676:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF4277:
+ .string "CSR_HPMCOUNTER25H 0xc99"
+.LASF1716:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF2085:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF989:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF2079:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF3973:
+ .string "MATCH_FSD 0x3027"
+.LASF3620:
+ .string "VM_SV48 10"
+.LASF2584:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2197:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF4119:
+ .string "MATCH_CUSTOM3_RD_RS1 0x607b"
+.LASF920:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF478:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF855:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF3188:
+ .string "__OBSOLETE_MATH __OBSOLETE_MATH_DEFAULT"
+.LASF4242:
+ .string "CSR_MHPMEVENT26 0x33a"
+.LASF1015:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF861:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1564:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF3068:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1782:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2221:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF4184:
+ .string "CSR_DPC 0x7b1"
+.LASF1477:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1022:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1801:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF3609:
+ .string "SIP_SSIP MIP_SSIP"
+.LASF2733:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2128:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF3911:
+ .string "MATCH_FLE_S 0xa0000053"
+.LASF3914:
+ .string "MASK_FLT_S 0xfe00707f"
+.LASF563:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF3673:
+ .string "MATCH_BLTU 0x6063"
+.LASF3608:
+ .string "MIE_MEIE MIP_MEIP"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF2336:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF4067:
+ .string "MATCH_C_ADD 0x9002"
+.LASF1234:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF814:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1752:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2605:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF4385:
+ .string "eclic_set_mth"
+.LASF2936:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF3910:
+ .string "MASK_FSQRT_D 0xfff0007f"
+.LASF2330:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF3586:
+ .string "MCONTROL_MATCH_NAPOT 1"
+.LASF2567:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF3210:
+ .string "__THROW "
+.LASF806:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1470:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF830:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF4136:
+ .string "CSR_HPMCOUNTER10 0xc0a"
+.LASF3601:
+ .string "MIE_HSIE MIP_HSIP"
+.LASF1680:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF3840:
+ .string "MASK_EBREAK 0xffffffff"
+.LASF1939:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF530:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF720:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF3032:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF427:
+ .string "__int_fast32_t_defined 1"
+.LASF1669:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1593:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1166:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF3600:
+ .string "MIE_SSIE MIP_SSIP"
+.LASF3961:
+ .string "MATCH_FCVT_D_L 0xd2200053"
+.LASF4213:
+ .string "CSR_MHPMCOUNTER28 0xb1c"
+.LASF1044:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF3339:
+ .string "__size_t"
+.LASF3787:
+ .string "MATCH_DIVUW 0x200503b"
+.LASF4313:
+ .string "CSR_MHPMCOUNTER30H 0xb9e"
+.LASF955:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF4193:
+ .string "CSR_MHPMCOUNTER8 0xb08"
+.LASF2691:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF3774:
+ .string "MASK_MULHU 0xfe00707f"
+.LASF2022:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF649:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF4157:
+ .string "CSR_HPMCOUNTER31 0xc1f"
+.LASF3792:
+ .string "MASK_REMUW 0xfe00707f"
+.LASF1140:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2427:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1171:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF719:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF2257:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF2061:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1544:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF4296:
+ .string "CSR_MHPMCOUNTER13H 0xb8d"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF4225:
+ .string "CSR_MHPMEVENT9 0x329"
+.LASF2641:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF452:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1918:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF3468:
+ .string "_IONBF 2"
+.LASF1987:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1578:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1737:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF3217:
+ .string "__flexarr [0]"
+.LASF735:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF3959:
+ .string "MATCH_FCVT_D_WU 0xd2100053"
+.LASF3524:
+ .string "MSTATUS_MPP 0x00001800"
+.LASF4054:
+ .string "MASK_C_BEQZ 0xe003"
+.LASF3867:
+ .string "MATCH_FADD_S 0x53"
+.LASF4265:
+ .string "CSR_HPMCOUNTER13H 0xc8d"
+.LASF3146:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF883:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF3795:
+ .string "MATCH_AMOXOR_W 0x2000202f"
+.LASF2262:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2731:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF3140:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1773:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2524:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF895:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF3200:
+ .string "_ATTRIBUTE(attrs) __attribute__ (attrs)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF2947:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF1857:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF752:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2830:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF1553:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF2143:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF714:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1608:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1048:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF383:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF3957:
+ .string "MATCH_FCVT_D_W 0xd2000053"
+.LASF1255:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF1702:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2485:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2126:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF2399:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF3005:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF3912:
+ .string "MASK_FLE_S 0xfe00707f"
+.LASF878:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF3897:
+ .string "MATCH_FSGNJN_D 0x22001053"
+.LASF674:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF3969:
+ .string "MATCH_FLD 0x3007"
+.LASF2173:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF593:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF3890:
+ .string "MASK_FSUB_D 0xfe00007f"
+.LASF2833:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2600:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF3970:
+ .string "MASK_FLD 0x707f"
+.LASF416:
+ .string "__int64_t_defined 1"
+.LASF723:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF2103:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF3677:
+ .string "MATCH_JALR 0x67"
+.LASF3462:
+ .string "__SORD 0x2000"
+.LASF2885:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF3448:
+ .string "_funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))"
+.LASF4010:
+ .string "MASK_C_SDSP 0xe003"
+.LASF378:
+ .string "short"
+.LASF1356:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1464:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1523:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF3228:
+ .string "__GNUCLIKE___OFFSETOF 1"
+.LASF771:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2928:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2364:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF991:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF3071:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3404:
+ .string "_REENT_WCRTOMB_STATE(ptr) ((ptr)->_new._reent._wcrtomb_state)"
+.LASF4149:
+ .string "CSR_HPMCOUNTER23 0xc17"
+.LASF4419:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1186:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1517:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF4328:
+ .string "CSR_MSUBM 0x7c4"
+.LASF748:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF870:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF734:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1012:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF3206:
+ .string "__need_NULL "
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF2669:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1823:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2704:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF4366:
+ .string "eclic_mode_enable"
+.LASF2036:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF3476:
+ .string "SEEK_END 2"
+.LASF3016:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF2466:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF591:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF938:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1775:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF3242:
+ .string "__CC_SUPPORTS___INLINE__ 1"
+.LASF2120:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF358:
+ .string "__SVID_VISIBLE 0"
+.LASF2104:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2673:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1663:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF747:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF3371:
+ .string "_REENT_EMERGENCY_SIZE 25"
+.LASF1246:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1098:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF3827:
+ .string "MATCH_AMOMINU_D 0xc000302f"
+.LASF3058:
+ .string "GD32VF103_WWDGT_H "
+.LASF2240:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF3880:
+ .string "MASK_FSGNJX_S 0xfe00707f"
+.LASF4045:
+ .string "MATCH_C_AND 0x8c61"
+.LASF1887:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF3308:
+ .string "_Null_unspecified "
+.LASF2699:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF2263:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF822:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2227:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF722:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF939:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF3560:
+ .string "DCSR_CAUSE_DEBUGINT 3"
+.LASF1821:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF2876:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF1666:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF3887:
+ .string "MATCH_FADD_D 0x2000053"
+.LASF1792:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF3593:
+ .string "MIP_MSIP (1 << IRQ_M_SOFT)"
+.LASF3207:
+ .string "_SYS_CDEFS_H_ "
+.LASF3345:
+ .string "_NULL 0"
+.LASF4120:
+ .string "MASK_CUSTOM3_RD_RS1 0x707f"
+.LASF1226:
+ .string "GD32VF103_DMA_H "
+.LASF3655:
+ .string "write_fpu(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF3378:
+ .string "_REENT_CHECK_RAND48(ptr) "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF3062:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF1157:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF2014:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2602:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF4163:
+ .string "CSR_SCAUSE 0x142"
+.LASF1087:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF3693:
+ .string "MATCH_XORI 0x4013"
+.LASF2010:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2700:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF3746:
+ .string "MASK_LW 0x707f"
+.LASF3924:
+ .string "MASK_FCVT_W_S 0xfff0007f"
+.LASF1949:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF3515:
+ .string "MSTATUS_UIE 0x00000001"
+.LASF753:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2370:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF2076:
+ .string "RCU RCU_BASE"
+.LASF2750:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF4170:
+ .string "CSR_MIDELEG 0x303"
+.LASF1909:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2635:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2824:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF2043:
+ .string "PMU PMU_BASE"
+.LASF4084:
+ .string "MASK_CUSTOM0_RD_RS1 0x707f"
+.LASF4289:
+ .string "CSR_MHPMCOUNTER6H 0xb86"
+.LASF3326:
+ .string "__nosanitizeaddress "
+.LASF746:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2616:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2547:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF3820:
+ .string "MASK_AMOOR_D 0xf800707f"
+.LASF618:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF368:
+ .string "___int_least8_t_defined 1"
+.LASF2278:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF3575:
+ .string "MCONTROL_EXECUTE (1<<2)"
+.LASF2180:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF801:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF669:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1902:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2561:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1744:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF396:
+ .string "__FAST8 "
+.LASF2053:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF647:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1796:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF571:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF1708:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF629:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF3829:
+ .string "MATCH_AMOMAXU_D 0xe000302f"
+.LASF1759:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF3365:
+ .string "_RAND48_SEED_1 (0xabcd)"
+.LASF2313:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF3558:
+ .string "DCSR_CAUSE_SWBP 1"
+.LASF529:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF3919:
+ .string "MATCH_FLT_D 0xa2001053"
+.LASF759:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2487:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF3653:
+ .string "RISCV_PGSIZE (1 << RISCV_PGSHIFT)"
+.LASF1163:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF2404:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2401:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2913:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF2758:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF3417:
+ .string "_BLKCNT_T_DECLARED "
+.LASF1113:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1064:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2381:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1232:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2952:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF4020:
+ .string "MASK_C_FSD 0xe003"
+.LASF3569:
+ .string "MCONTROL_CHAIN (1<<11)"
+.LASF2914:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1592:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF3268:
+ .string "__malloc_like __attribute__((__malloc__))"
+.LASF2328:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF3926:
+ .string "MASK_FCVT_WU_S 0xfff0007f"
+.LASF2029:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1369:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF1758:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1960:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF4226:
+ .string "CSR_MHPMEVENT10 0x32a"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF1777:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF519:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF4171:
+ .string "CSR_MIE 0x304"
+.LASF2434:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF3701:
+ .string "MATCH_ANDI 0x7013"
+.LASF545:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF4290:
+ .string "CSR_MHPMCOUNTER7H 0xb87"
+.LASF2457:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1770:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF3684:
+ .string "MASK_AUIPC 0x7f"
+.LASF3872:
+ .string "MASK_FMUL_S 0xfe00007f"
+.LASF3944:
+ .string "MASK_FMV_X_D 0xfff0707f"
+.LASF4199:
+ .string "CSR_MHPMCOUNTER14 0xb0e"
+.LASF2268:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF3285:
+ .string "__rangeof(type,start,end) (__offsetof(type, end) - __offsetof(type, start))"
+.LASF3589:
+ .string "MCONTROL_MATCH_MASK_LOW 4"
+.LASF905:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1785:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF517:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2542:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF4330:
+ .string "CAUSE_FAULT_FETCH 0x1"
+.LASF1070:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF1505:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2417:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF3656:
+ .string "read_csr(reg) ({ unsigned long __tmp; asm volatile (\"csrr %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF2663:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF2385:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF3442:
+ .string "_SUSECONDS_T_DECLARED "
+.LASF1622:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF2118:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF4070:
+ .string "MASK_C_FSDSP 0xe003"
+.LASF4342:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF333:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF610:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF3523:
+ .string "MSTATUS_SPP 0x00000100"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1847:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF2154:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF2089:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1000:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3978:
+ .string "MASK_FMSUB_S 0x600007f"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2661:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF392:
+ .string "__INT8 \"hh\""
+.LASF2288:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1761:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF1486:
+ .string "OB OB_BASE"
+.LASF3266:
+ .string "__generic(expr,t,yes,no) _Generic(expr, t: yes, default: no)"
+.LASF4353:
+ .string "uint8_t"
+.LASF3187:
+ .string "__OBSOLETE_MATH_DEFAULT 1"
+.LASF3694:
+ .string "MASK_XORI 0x707f"
+.LASF3823:
+ .string "MATCH_AMOMIN_D 0x8000302f"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF4249:
+ .string "CSR_MARCHID 0xf12"
+.LASF3034:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF852:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF3592:
+ .string "MIP_HSIP (1 << IRQ_H_SOFT)"
+.LASF1142:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF4312:
+ .string "CSR_MHPMCOUNTER29H 0xb9d"
+.LASF2539:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF3333:
+ .string "_SYS_REENT_H_ "
+.LASF433:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF3766:
+ .string "MASK_FENCE_I 0x707f"
+.LASF1482:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF540:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF1065:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF1714:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1612:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2573:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF3659:
+ .string "set_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF1748:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF4370:
+ .string "intctrl"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2799:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1687:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF3936:
+ .string "MASK_FCVT_W_D 0xfff0007f"
+.LASF2051:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF3639:
+ .string "PTE_R 0x002"
+.LASF3724:
+ .string "MASK_ADDIW 0x707f"
+.LASF3798:
+ .string "MASK_AMOOR_W 0xf800707f"
+.LASF2927:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF1654:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF3297:
+ .string "__sym_default(sym,impl,verid) __asm__(\".symver \" #impl \", \" #sym \"@@\" #verid)"
+.LASF1425:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2482:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF4144:
+ .string "CSR_HPMCOUNTER18 0xc12"
+.LASF2983:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF388:
+ .string "int +2"
+.LASF3496:
+ .string "L_ctermid 16"
+.LASF2388:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF3632:
+ .string "DEFAULT_RSTVEC 0x00001000"
+.LASF4285:
+ .string "CSR_MINSTRETH 0xb82"
+.LASF2284:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2506:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF3527:
+ .string "MSTATUS_MPRV 0x00020000"
+.LASF3588:
+ .string "MCONTROL_MATCH_LT 3"
+.LASF2603:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2411:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1083:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF4085:
+ .string "MATCH_CUSTOM0_RD_RS1_RS2 0x700b"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1061:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF874:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF460:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF996:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3896:
+ .string "MASK_FSGNJ_D 0xfe00707f"
+.LASF4363:
+ .string "eclic_set_level_trig"
+.LASF1536:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2828:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1778:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1161:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1495:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF3953:
+ .string "MATCH_FCVT_S_LU 0xd0300053"
+.LASF3167:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF3643:
+ .string "PTE_G 0x020"
+.LASF514:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF1840:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF2397:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2291:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF453:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1812:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF755:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF2007:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF3047:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF4153:
+ .string "CSR_HPMCOUNTER27 0xc1b"
+.LASF442:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2512:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF3551:
+ .string "DCSR_STOPTIME (1<<9)"
+.LASF2797:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF3413:
+ .string "_GLOBAL_REENT _global_impure_ptr"
+.LASF1633:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2949:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF3862:
+ .string "MASK_CSRRWI 0x707f"
+.LASF645:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF836:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2896:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF3689:
+ .string "MATCH_SLTI 0x2013"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1268:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1245:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1256:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2959:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF585:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF3300:
+ .string "__RCSID_SOURCE(s) struct __hack"
+.LASF854:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF744:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1830:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF4394:
+ .string "eclic_set_intctrl"
+.LASF3668:
+ .string "MASK_BNE 0x707f"
+.LASF1054:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF376:
+ .string "unsigned"
+.LASF476:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1919:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF523:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF3444:
+ .string "__need_inttypes"
+.LASF2564:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF2751:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2608:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF3039:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2351:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF4093:
+ .string "MATCH_CUSTOM1_RD 0x402b"
+.LASF1526:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF4062:
+ .string "MASK_C_LWSP 0xe003"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2294:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1484:
+ .string "GD32VF103_FMC_H "
+.LASF4346:
+ .string "long int"
+.LASF3727:
+ .string "MATCH_SRLIW 0x501b"
+.LASF2688:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF4250:
+ .string "CSR_MIMPID 0xf13"
+.LASF2938:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF2900:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF3576:
+ .string "MCONTROL_STORE (1<<1)"
+.LASF3678:
+ .string "MASK_JALR 0x707f"
+.LASF3283:
+ .string "__hidden __attribute__((__visibility__(\"hidden\")))"
+.LASF2886:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF3290:
+ .string "__strfmonlike(fmtarg,firstvararg) __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))"
+.LASF3042:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF716:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2425:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF2814:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF3870:
+ .string "MASK_FSUB_S 0xfe00007f"
+.LASF4198:
+ .string "CSR_MHPMCOUNTER13 0xb0d"
+.LASF3302:
+ .string "__COPYRIGHT(s) struct __hack"
+.LASF479:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF732:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF2047:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1825:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1930:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF335:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1929:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF1402:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF1431:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF1534:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF3453:
+ .string "__SRW 0x0010"
+.LASF542:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF3368:
+ .string "_RAND48_MULT_1 (0xdeec)"
+.LASF1793:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF3993:
+ .string "MATCH_C_ADDI16SP 0x6101"
+.LASF743:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF4033:
+ .string "MATCH_C_SRLI 0x8001"
+.LASF3494:
+ .string "getchar_unlocked() _getchar_unlocked()"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2490:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF2171:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF3361:
+ .string "_ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}"
+.LASF3425:
+ .string "_FSBLKCNT_T_DECLARED "
+.LASF3456:
+ .string "__SMBF 0x0080"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF1888:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF338:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF3672:
+ .string "MASK_BGE 0x707f"
+.LASF2194:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF3585:
+ .string "MCONTROL_MATCH_EQUAL 0"
+.LASF670:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF1021:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2302:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF3112:
+ .string "_WCHAR_T_ "
+.LASF2272:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1688:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF3082:
+ .string "_PTRDIFF_T_ "
+.LASF2084:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF483:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1561:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF3922:
+ .string "MASK_FEQ_D 0xfe00707f"
+.LASF4069:
+ .string "MATCH_C_FSDSP 0xa002"
+.LASF650:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF3901:
+ .string "MATCH_FMIN_D 0x2a000053"
+.LASF2647:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF3771:
+ .string "MATCH_MULHSU 0x2002033"
+.LASF3373:
+ .string "_REENT_SIGNAL_SIZE 24"
+.LASF882:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF847:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF1883:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1522:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF3657:
+ .string "write_csr(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrw \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"csrw \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF715:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2664:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2459:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF4030:
+ .string "MASK_C_LI 0xe003"
+.LASF4337:
+ .string "CAUSE_USER_ECALL 0x8"
+.LASF3972:
+ .string "MASK_FSW 0x707f"
+.LASF2151:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2122:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2625:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF3756:
+ .string "MASK_SB 0x707f"
+.LASF2680:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF3725:
+ .string "MATCH_SLLIW 0x101b"
+.LASF2862:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2713:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2793:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF3860:
+ .string "MASK_CSRRC 0x707f"
+.LASF742:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF816:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF3312:
+ .string "__datatype_type_tag(kind,type) "
+.LASF3986:
+ .string "MASK_FMSUB_D 0x600007f"
+.LASF2086:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF970:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1228:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF3081:
+ .string "__PTRDIFF_T "
+.LASF2453:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2643:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2951:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1037:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2052:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF2239:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF432:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2628:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF3450:
+ .string "__SNBF 0x0002"
+.LASF2442:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF3518:
+ .string "MSTATUS_MIE 0x00000008"
+.LASF1199:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF3132:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF3994:
+ .string "MASK_C_ADDI16SP 0xef83"
+.LASF1271:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF866:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF586:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2324:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF462:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1980:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF2249:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1359:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1001:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF3061:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF3090:
+ .string "_SIZE_T "
+.LASF1285:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF2306:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF3389:
+ .string "_REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add)"
+.LASF2112:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2677:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF574:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2498:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1151:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF2935:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF3234:
+ .string "__GNUCLIKE_BUILTIN_VAALIST 1"
+.LASF3544:
+ .string "DCSR_NDRESET (1<<29)"
+.LASF672:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2380:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF345:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF3767:
+ .string "MATCH_MUL 0x2000033"
+.LASF1948:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2721:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF881:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1786:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1938:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1727:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF3043:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF1474:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF4318:
+ .string "CSR_MNVEC 0x7C3"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF409:
+ .string "_UINT16_T_DECLARED "
+.LASF3669:
+ .string "MATCH_BLT 0x4063"
+.LASF2133:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF886:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF4218:
+ .string "CSR_MSCOUNTEREN 0x321"
+.LASF3697:
+ .string "MATCH_SRAI 0x40005013"
+.LASF3963:
+ .string "MATCH_FCVT_D_LU 0xd2300053"
+.LASF3904:
+ .string "MASK_FMAX_D 0xfe00707f"
+.LASF2753:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1673:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF2636:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF3190:
+ .string "_POINTER_INT long"
+.LASF3288:
+ .string "__scanflike(fmtarg,firstvararg) __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF2687:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF3271:
+ .string "__noinline __attribute__ ((__noinline__))"
+.LASF2681:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF3472:
+ .string "FILENAME_MAX 1024"
+.LASF901:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2150:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF456:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF3730:
+ .string "MASK_SRAIW 0xfe00707f"
+.LASF3170:
+ .string "_ANSIDECL_H_ "
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF3603:
+ .string "MIE_STIE MIP_STIP"
+.LASF1606:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF3274:
+ .string "__fastcall __attribute__((__fastcall__))"
+.LASF943:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF4305:
+ .string "CSR_MHPMCOUNTER22H 0xb96"
+.LASF1235:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1817:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF604:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF2234:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2942:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF3036:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF3267:
+ .string "__min_size(x) static (x)"
+.LASF343:
+ .string "_SYS_FEATURES_H "
+.LASF839:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1706:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF3949:
+ .string "MATCH_FCVT_S_WU 0xd0100053"
+.LASF1078:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF1535:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF599:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF654:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2737:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF3666:
+ .string "MASK_BEQ 0x707f"
+.LASF3837:
+ .string "MATCH_ECALL 0x73"
+.LASF2851:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF448:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2899:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF3117:
+ .string "___int_wchar_t_h "
+.LASF1875:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF3383:
+ .string "_REENT_CHECK_MISC(ptr) "
+.LASF3826:
+ .string "MASK_AMOMAX_D 0xf800707f"
+.LASF2223:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF3654:
+ .string "read_fpu(reg) ({ unsigned long __tmp; asm volatile (\"fmv.x.w %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF4397:
+ .string "eclic_disable_interrupt"
+.LASF3780:
+ .string "MASK_REM 0xfe00707f"
+.LASF1568:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1851:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF3136:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF711:
+ .string "BKP BKP_BASE"
+.LASF1231:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF4411:
+ .string "delta_mcycle"
+.LASF1165:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1176:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1057:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2702:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF4063:
+ .string "MATCH_C_FLWSP 0x6002"
+.LASF2527:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF3159:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2422:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2451:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF3578:
+ .string "MCONTROL_TYPE_NONE 0"
+.LASF1201:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF3415:
+ .string "__BIT_TYPES_DEFINED__ 1"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF602:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2784:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1442:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF2071:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF4147:
+ .string "CSR_HPMCOUNTER21 0xc15"
+.LASF380:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1467:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1531:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF488:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF3143:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF1023:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF3069:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF2042:
+ .string "GD32VF103_PMU_H "
+.LASF846:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF3021:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF501:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF553:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1876:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF4134:
+ .string "CSR_HPMCOUNTER8 0xc08"
+.LASF4089:
+ .string "MATCH_CUSTOM1_RS1 0x202b"
+.LASF1994:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF3363:
+ .string "_REENT_SMALL_CHECK_INIT(ptr) "
+.LASF2576:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF1052:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2612:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF3236:
+ .string "__compiler_membar() __asm __volatile(\" \" : : : \"memory\")"
+.LASF3841:
+ .string "MATCH_URET 0x200073"
+.LASF1788:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF3915:
+ .string "MATCH_FEQ_S 0xa0002053"
+.LASF3753:
+ .string "MATCH_LWU 0x6003"
+.LASF1086:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF3124:
+ .string "NULL ((void *)0)"
+.LASF443:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1941:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1475:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1110:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF2091:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1595:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2471:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF3652:
+ .string "RISCV_PGSHIFT 12"
+.LASF3849:
+ .string "MATCH_DRET 0x7b200073"
+.LASF2640:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF3803:
+ .string "MATCH_AMOMAX_W 0xa000202f"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1198:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF3279:
+ .string "__predict_true(exp) __builtin_expect((exp), 1)"
+.LASF613:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF4415:
+ .string "get_timer_value"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF3786:
+ .string "MASK_DIVW 0xfe00707f"
+.LASF3479:
+ .string "stdout (_REENT->_stdout)"
+.LASF3879:
+ .string "MATCH_FSGNJX_S 0x20002053"
+.LASF927:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1734:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF3754:
+ .string "MASK_LWU 0x707f"
+.LASF791:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF3507:
+ .string "MB_CUR_MAX __locale_mb_cur_max()"
+.LASF1649:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1104:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1304:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF4329:
+ .string "CAUSE_MISALIGNED_FETCH 0x0"
+.LASF1264:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2652:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1150:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF3321:
+ .string "__asserts_shared(...) __lock_annotate(assert_shared_lock(__VA_ARGS__))"
+.LASF504:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF3102:
+ .string "_GCC_SIZE_T "
+.LASF1678:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF3277:
+ .string "__unreachable() __builtin_unreachable()"
+.LASF2945:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF4245:
+ .string "CSR_MHPMEVENT29 0x33d"
+.LASF3362:
+ .string "_REENT_INIT_ATEXIT _NULL, _ATEXIT_INIT,"
+.LASF1570:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF777:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF374:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF1233:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF3768:
+ .string "MASK_MUL 0xfe00707f"
+.LASF3122:
+ .string "__need_wchar_t"
+.LASF1765:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF973:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF3436:
+ .string "_NLINK_T_DECLARED "
+.LASF3201:
+ .string "_ELIDABLE_INLINE static __inline__"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1850:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF3844:
+ .string "MASK_SRET 0xffffffff"
+.LASF3664:
+ .string "RISCV_ENCODING_H "
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF3889:
+ .string "MATCH_FSUB_D 0xa000053"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF932:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF3842:
+ .string "MASK_URET 0xffffffff"
+.LASF1869:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1504:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF3595:
+ .string "MIP_HTIP (1 << IRQ_H_TIMER)"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2660:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2985:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1492:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2734:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF3075:
+ .string "_STDDEF_H "
+.LASF1302:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1966:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF3091:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2559:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF3522:
+ .string "MSTATUS_MPIE 0x00000080"
+.LASF3615:
+ .string "VM_MBARE 0"
+.LASF1868:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF4368:
+ .string "__tmp"
+.LASF1491:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1446:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF3388:
+ .string "_REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF3845:
+ .string "MATCH_HRET 0x20200073"
+.LASF1018:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF360:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2448:
+ .string "SPI1 SPI_BASE"
+.LASF2412:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF3275:
+ .string "__result_use_check __attribute__((__warn_unused_result__))"
+.LASF3095:
+ .string "_SIZE_T_ "
+.LASF2355:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2552:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF2810:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF4293:
+ .string "CSR_MHPMCOUNTER10H 0xb8a"
+.LASF3613:
+ .string "PRV_H 2"
+.LASF3260:
+ .string "__packed __attribute__((__packed__))"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1203:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2356:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2369:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF782:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF4014:
+ .string "MASK_C_FLD 0xe003"
+.LASF4387:
+ .string "eclic_get_cliccfg"
+.LASF4306:
+ .string "CSR_MHPMCOUNTER23H 0xb97"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF568:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1644:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2684:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2829:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2872:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF3675:
+ .string "MATCH_BGEU 0x7063"
+.LASF3775:
+ .string "MATCH_DIV 0x2004033"
+.LASF3306:
+ .string "_Nonnull "
+.LASF3396:
+ .string "_REENT_EMERGENCY(ptr) ((ptr)->_emergency)"
+.LASF1700:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF3553:
+ .string "DCSR_DEBUGINT (1<<5)"
+.LASF3263:
+ .string "__alloc_size(x) __attribute__((__alloc_size__(x)))"
+.LASF889:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF3954:
+ .string "MASK_FCVT_S_LU 0xfff0007f"
+.LASF4235:
+ .string "CSR_MHPMEVENT19 0x333"
+.LASF2838:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF2238:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF1912:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2516:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1697:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2210:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2311:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF4175:
+ .string "CSR_MEPC 0x341"
+.LASF821:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF3316:
+ .string "__locks_shared(...) __lock_annotate(shared_lock_function(__VA_ARGS__))"
+.LASF543:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF3107:
+ .string "__WCHAR_T__ "
+.LASF336:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF3261:
+ .string "__aligned(x) __attribute__((__aligned__(x)))"
+.LASF1462:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1074:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF713:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF3092:
+ .string "_T_SIZE_ "
+.LASF2526:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF1808:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF1599:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF2265:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2165:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF472:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2743:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1602:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF3355:
+ .string "__lock_acquire_recursive(lock) ((void) 0)"
+.LASF2939:
+ .string "USART1 USART_BASE"
+.LASF1664:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF3514:
+ .string "RISCV_CSR_ENCODING_H "
+.LASF4041:
+ .string "MATCH_C_XOR 0x8c21"
+.LASF441:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1854:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1211:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF537:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF4324:
+ .string "CSR_WFE 0x810"
+.LASF2653:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF3193:
+ .string "__EXPORT "
+.LASF3682:
+ .string "MASK_LUI 0x7f"
+.LASF4055:
+ .string "MATCH_C_BNEZ 0xe001"
+.LASF712:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1826:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF1089:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF2130:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF4025:
+ .string "MATCH_C_ADDI 0x1"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2134:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF1529:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3785:
+ .string "MATCH_DIVW 0x200403b"
+.LASF3447:
+ .string "_flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))"
+.LASF1067:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF769:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF3642:
+ .string "PTE_U 0x010"
+.LASF4395:
+ .string "eclic_clear_pending"
+.LASF1205:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF3144:
+ .string "ECLICINTCTLBITS 4"
+.LASF1396:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1898:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF3087:
+ .string "__need_ptrdiff_t"
+.LASF1658:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2536:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2916:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF4288:
+ .string "CSR_MHPMCOUNTER5H 0xb85"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF3623:
+ .string "IRQ_M_SOFT 3"
+.LASF3298:
+ .string "__FBSDID(s) struct __hack"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF3579:
+ .string "MCONTROL_TYPE_MATCH 2"
+.LASF2481:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF4068:
+ .string "MASK_C_ADD 0xf003"
+.LASF4151:
+ .string "CSR_HPMCOUNTER25 0xc19"
+.LASF1973:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF2802:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF4278:
+ .string "CSR_HPMCOUNTER26H 0xc9a"
+.LASF3886:
+ .string "MASK_FSQRT_S 0xfff0007f"
+.LASF2500:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1880:
+ .string "I2C0 I2C_BASE"
+.LASF404:
+ .string "_SYS__STDINT_H "
+.LASF1185:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF4350:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF4320:
+ .string "CSR_JALMNXTI 0x7ED"
+.LASF2707:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF2310:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF4261:
+ .string "CSR_HPMCOUNTER9H 0xc89"
+.LASF2601:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF4191:
+ .string "CSR_MHPMCOUNTER6 0xb06"
+.LASF3176:
+ .string "_REENT_CHECK_VERIFY 1"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF3506:
+ .string "RAND_MAX __RAND_MAX"
+.LASF4009:
+ .string "MATCH_C_SDSP 0xe002"
+.LASF2895:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF3598:
+ .string "MIP_HEIP (1 << IRQ_H_EXT)"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1844:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF3168:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF4021:
+ .string "MATCH_C_SW 0xc000"
+.LASF2456:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF2229:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF1616:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF515:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF1525:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF2392:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2698:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF872:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF1791:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF3241:
+ .string "__CC_SUPPORTS___INLINE 1"
+.LASF1389:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF3195:
+ .string "_READ_WRITE_BUFSIZE_TYPE int"
+.LASF877:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF3810:
+ .string "MASK_AMOSWAP_W 0xf800707f"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF681:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF3045:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1742:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2503:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1137:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1628:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF457:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1293:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF2692:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF588:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF4103:
+ .string "MATCH_CUSTOM2_RS1_RS2 0x305b"
+.LASF3757:
+ .string "MATCH_SH 0x1023"
+.LASF1288:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2431:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2333:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF3153:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1555:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1623:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF960:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF1291:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1387:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF2566:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF3477:
+ .string "TMP_MAX 26"
+.LASF2191:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF3065:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF2309:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF2848:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1728:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2176:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1651:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF3027:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2170:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF3166:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1943:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF3066:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF3352:
+ .string "__lock_close(lock) ((void) 0)"
+.LASF892:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF3174:
+ .string "_WANT_REGISTER_FINI 1"
+.LASF3038:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF4351:
+ .string "__uint64_t"
+.LASF1242:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2460:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2870:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1861:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1006:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF4197:
+ .string "CSR_MHPMCOUNTER12 0xb0c"
+.LASF1500:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1577:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF4174:
+ .string "CSR_MSCRATCH 0x340"
+.LASF2505:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF587:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF840:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF3432:
+ .string "_PID_T_DECLARED "
+.LASF2776:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2581:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF4034:
+ .string "MASK_C_SRLI 0xec03"
+.LASF3670:
+ .string "MASK_BLT 0x707f"
+.LASF3060:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF2097:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF2274:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF678:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF1834:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF1027:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2678:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1300:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF3295:
+ .string "__warn_references(sym,msg) __asm__(\".section .gnu.warning.\" #sym); __asm__(\".asciz \\\"\" msg \"\\\"\"); __asm__(\".previous\")"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF3811:
+ .string "MATCH_LR_W 0x1000202f"
+.LASF1648:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF3109:
+ .string "_T_WCHAR_ "
+.LASF2040:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2308:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF4404:
+ .string "get_cpu_freq"
+.LASF4145:
+ .string "CSR_HPMCOUNTER19 0xc13"
+.LASF2826:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF1325:
+ .string "GD32VF103_ECLIC_H "
+.LASF1984:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF494:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF469:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1480:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF3604:
+ .string "MIE_HTIE MIP_HTIP"
+.LASF3760:
+ .string "MASK_SW 0x707f"
+.LASF2056:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF790:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF2102:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2121:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2327:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF1160:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF4239:
+ .string "CSR_MHPMEVENT23 0x337"
+.LASF3104:
+ .string "__size_t "
+.LASF2541:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF3968:
+ .string "MASK_FLW 0x707f"
+.LASF357:
+ .string "__POSIX_VISIBLE 199009"
+.LASF4309:
+ .string "CSR_MHPMCOUNTER26H 0xb9a"
+.LASF4207:
+ .string "CSR_MHPMCOUNTER22 0xb16"
+.LASF3612:
+ .string "PRV_S 1"
+.LASF3381:
+ .string "_REENT_CHECK_ASCTIME_BUF(ptr) "
+.LASF2129:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2231:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1864:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1423:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF3149:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF4338:
+ .string "CAUSE_SUPERVISOR_ECALL 0x9"
+.LASF2725:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1625:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF2981:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF835:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1692:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF2594:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF372:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1881:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF3215:
+ .string "__attribute_pure__ "
+.LASF795:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF4071:
+ .string "MATCH_C_SWSP 0xc002"
+.LASF546:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2157:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1600:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2917:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF2255:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF919:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF3258:
+ .string "__unused __attribute__((__unused__))"
+.LASF853:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF1837:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF3002:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1275:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2782:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF768:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF526:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2638:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF4130:
+ .string "CSR_HPMCOUNTER4 0xc04"
+.LASF1724:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2726:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF3257:
+ .string "__pure2 __attribute__((__const__))"
+.LASF371:
+ .string "___int_least64_t_defined 1"
+.LASF4210:
+ .string "CSR_MHPMCOUNTER25 0xb19"
+.LASF2946:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF3286:
+ .string "__containerof(x,s,m) ({ const volatile __typeof(((s *)0)->m) *__x = (x); __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));})"
+.LASF3429:
+ .string "_DEV_T_DECLARED "
+.LASF3987:
+ .string "MATCH_FNMSUB_D 0x200004b"
+.LASF4162:
+ .string "CSR_SEPC 0x141"
+.LASF3634:
+ .string "DEFAULT_MTVEC 0x00001010"
+.LASF3565:
+ .string "MCONTROL_MASKMAX(xlen) (0x3fULL<<((xlen)-11))"
+.LASF860:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1347:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF3557:
+ .string "DCSR_CAUSE_NONE 0"
+.LASF4024:
+ .string "MASK_C_FSW 0xe003"
+.LASF1790:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF3072:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF3350:
+ .string "__lock_init(lock) ((void) 0)"
+.LASF1603:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF3145:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF3770:
+ .string "MASK_MULH 0xfe00707f"
+.LASF3265:
+ .string "__alloc_align(x) __attribute__((__alloc_align__(x)))"
+.LASF2728:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2819:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1091:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1116:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2727:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1153:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF2015:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1815:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1566:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF470:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF916:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF661:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF3439:
+ .string "__timer_t_defined "
+.LASF579:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF1267:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF2093:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF2366:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF3402:
+ .string "_REENT_MBRTOWC_STATE(ptr) ((ptr)->_new._reent._mbrtowc_state)"
+.LASF2818:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF3013:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF3141:
+ .string "_AT(T,X) ((T)(X))"
+.LASF4341:
+ .string "unsigned int"
+.LASF2454:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1942:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF2267:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF424:
+ .string "__int_least64_t_defined 1"
+.LASF1892:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF770:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2614:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF414:
+ .string "_INT64_T_DECLARED "
+.LASF2756:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF3906:
+ .string "MASK_FCVT_S_D 0xfff0007f"
+.LASF1685:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2852:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF3742:
+ .string "MASK_LB 0x707f"
+.LASF3932:
+ .string "MASK_FMV_X_S 0xfff0707f"
+.LASF2929:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1159:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1632:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1548:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1299:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+.LASF3990:
+ .string "MASK_FNMADD_D 0x600007f"
+.LASF3703:
+ .string "MATCH_ADD 0x33"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_timer.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_timer.h
new file mode 100644
index 0000000000..e27acd5fbe
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_timer.h
@@ -0,0 +1,18 @@
+/* See LICENSE file for licence details */
+
+#ifndef N200_TIMER_H
+#define N200_TIMER_H
+
+#define TIMER_MSIP 0xFFC
+#define TIMER_MSIP_size 0x4
+#define TIMER_MTIMECMP 0x8
+#define TIMER_MTIMECMP_size 0x8
+#define TIMER_MTIME 0x0
+#define TIMER_MTIME_size 0x8
+
+#define TIMER_CTRL_ADDR 0xd1000000
+#define TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)
+#define TIMER_FREQ ((uint32_t)SystemCoreClock/4)
+
+#endif
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_bits.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_bits.h
new file mode 100644
index 0000000000..bfe656feb0
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_bits.h
@@ -0,0 +1,36 @@
+// See LICENSE for license details.
+#ifndef _RISCV_BITS_H
+#define _RISCV_BITS_H
+
+#define likely(x) __builtin_expect((x), 1)
+#define unlikely(x) __builtin_expect((x), 0)
+
+#define ROUNDUP(a, b) ((((a)-1)/(b)+1)*(b))
+#define ROUNDDOWN(a, b) ((a)/(b)*(b))
+
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#define CLAMP(a, lo, hi) MIN(MAX(a, lo), hi)
+
+#define EXTRACT_FIELD(val, which) (((val) & (which)) / ((which) & ~((which)-1)))
+#define INSERT_FIELD(val, which, fieldval) (((val) & ~(which)) | ((fieldval) * ((which) & ~((which)-1))))
+
+#define STR(x) XSTR(x)
+#define XSTR(x) #x
+
+#if __riscv_xlen == 64
+# define SLL32 sllw
+# define STORE sd
+# define LOAD ld
+# define LWU lwu
+# define LOG_REGBYTES 3
+#else
+# define SLL32 sll
+# define STORE sw
+# define LOAD lw
+# define LWU lw
+# define LOG_REGBYTES 2
+#endif
+#define REGBYTES (1 << LOG_REGBYTES)
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_const.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_const.h
new file mode 100644
index 0000000000..442460abc0
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_const.h
@@ -0,0 +1,18 @@
+/* See LICENSE for license details.*/
+/* Derived from */
+
+#ifndef _RISCV_CONST_H
+#define _RISCV_CONST_H
+
+#ifdef __ASSEMBLER__
+#define _AC(X,Y) X
+#define _AT(T,X) X
+#else
+#define _AC(X,Y) (X##Y)
+#define _AT(T,X) ((T)(X))
+#endif /* !__ASSEMBLER__*/
+
+#define _BITUL(x) (_AC(1,UL) << (x))
+#define _BITULL(x) (_AC(1,ULL) << (x))
+
+#endif /* _NUCLEI_CONST_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_encoding.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_encoding.h
new file mode 100644
index 0000000000..6853ad778a
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/riscv_encoding.h
@@ -0,0 +1,1362 @@
+/* See LICENSE for license details.*/
+
+#ifndef RISCV_CSR_ENCODING_H
+#define RISCV_CSR_ENCODING_H
+
+#define MSTATUS_UIE 0x00000001
+#define MSTATUS_SIE 0x00000002
+#define MSTATUS_HIE 0x00000004
+#define MSTATUS_MIE 0x00000008
+#define MSTATUS_UPIE 0x00000010
+#define MSTATUS_SPIE 0x00000020
+#define MSTATUS_HPIE 0x00000040
+#define MSTATUS_MPIE 0x00000080
+#define MSTATUS_SPP 0x00000100
+#define MSTATUS_MPP 0x00001800
+#define MSTATUS_FS 0x00006000
+#define MSTATUS_XS 0x00018000
+#define MSTATUS_MPRV 0x00020000
+#define MSTATUS_PUM 0x00040000
+#define MSTATUS_MXR 0x00080000
+#define MSTATUS_VM 0x1F000000
+#define MSTATUS32_SD 0x80000000
+#define MSTATUS64_SD 0x8000000000000000
+
+
+#define SSTATUS_UIE 0x00000001
+#define SSTATUS_SIE 0x00000002
+#define SSTATUS_UPIE 0x00000010
+#define SSTATUS_SPIE 0x00000020
+#define SSTATUS_SPP 0x00000100
+#define SSTATUS_FS 0x00006000
+#define SSTATUS_XS 0x00018000
+#define SSTATUS_PUM 0x00040000
+#define SSTATUS32_SD 0x80000000
+#define SSTATUS64_SD 0x8000000000000000
+
+#define DCSR_XDEBUGVER (3U<<30)
+#define DCSR_NDRESET (1<<29)
+#define DCSR_FULLRESET (1<<28)
+#define DCSR_EBREAKM (1<<15)
+#define DCSR_EBREAKH (1<<14)
+#define DCSR_EBREAKS (1<<13)
+#define DCSR_EBREAKU (1<<12)
+#define DCSR_STOPCYCLE (1<<10)
+#define DCSR_STOPTIME (1<<9)
+#define DCSR_CAUSE (7<<6)
+#define DCSR_DEBUGINT (1<<5)
+#define DCSR_HALT (1<<3)
+#define DCSR_STEP (1<<2)
+#define DCSR_PRV (3<<0)
+
+#define DCSR_CAUSE_NONE 0
+#define DCSR_CAUSE_SWBP 1
+#define DCSR_CAUSE_HWBP 2
+#define DCSR_CAUSE_DEBUGINT 3
+#define DCSR_CAUSE_STEP 4
+#define DCSR_CAUSE_HALT 5
+
+#define MCONTROL_TYPE(xlen) (0xfULL<<((xlen)-4))
+#define MCONTROL_DMODE(xlen) (1ULL<<((xlen)-5))
+#define MCONTROL_MASKMAX(xlen) (0x3fULL<<((xlen)-11))
+
+#define MCONTROL_SELECT (1<<19)
+#define MCONTROL_TIMING (1<<18)
+#define MCONTROL_ACTION (0x3f<<12)
+#define MCONTROL_CHAIN (1<<11)
+#define MCONTROL_MATCH (0xf<<7)
+#define MCONTROL_M (1<<6)
+#define MCONTROL_H (1<<5)
+#define MCONTROL_S (1<<4)
+#define MCONTROL_U (1<<3)
+#define MCONTROL_EXECUTE (1<<2)
+#define MCONTROL_STORE (1<<1)
+#define MCONTROL_LOAD (1<<0)
+
+#define MCONTROL_TYPE_NONE 0
+#define MCONTROL_TYPE_MATCH 2
+
+#define MCONTROL_ACTION_DEBUG_EXCEPTION 0
+#define MCONTROL_ACTION_DEBUG_MODE 1
+#define MCONTROL_ACTION_TRACE_START 2
+#define MCONTROL_ACTION_TRACE_STOP 3
+#define MCONTROL_ACTION_TRACE_EMIT 4
+
+#define MCONTROL_MATCH_EQUAL 0
+#define MCONTROL_MATCH_NAPOT 1
+#define MCONTROL_MATCH_GE 2
+#define MCONTROL_MATCH_LT 3
+#define MCONTROL_MATCH_MASK_LOW 4
+#define MCONTROL_MATCH_MASK_HIGH 5
+
+#define MIP_SSIP (1 << IRQ_S_SOFT)
+#define MIP_HSIP (1 << IRQ_H_SOFT)
+#define MIP_MSIP (1 << IRQ_M_SOFT)
+#define MIP_STIP (1 << IRQ_S_TIMER)
+#define MIP_HTIP (1 << IRQ_H_TIMER)
+#define MIP_MTIP (1 << IRQ_M_TIMER)
+#define MIP_SEIP (1 << IRQ_S_EXT)
+#define MIP_HEIP (1 << IRQ_H_EXT)
+#define MIP_MEIP (1 << IRQ_M_EXT)
+
+#define MIE_SSIE MIP_SSIP
+#define MIE_HSIE MIP_HSIP
+#define MIE_MSIE MIP_MSIP
+#define MIE_STIE MIP_STIP
+#define MIE_HTIE MIP_HTIP
+#define MIE_MTIE MIP_MTIP
+#define MIE_SEIE MIP_SEIP
+#define MIE_HEIE MIP_HEIP
+#define MIE_MEIE MIP_MEIP
+
+#define SIP_SSIP MIP_SSIP
+#define SIP_STIP MIP_STIP
+
+#define PRV_U 0
+#define PRV_S 1
+#define PRV_H 2
+#define PRV_M 3
+
+#define VM_MBARE 0
+#define VM_MBB 1
+#define VM_MBBID 2
+#define VM_SV32 8
+#define VM_SV39 9
+#define VM_SV48 10
+
+#define IRQ_S_SOFT 1
+#define IRQ_H_SOFT 2
+#define IRQ_M_SOFT 3
+#define IRQ_S_TIMER 5
+#define IRQ_H_TIMER 6
+#define IRQ_M_TIMER 7
+#define IRQ_S_EXT 9
+#define IRQ_H_EXT 10
+#define IRQ_M_EXT 11
+#define IRQ_COP 12
+#define IRQ_HOST 13
+
+#define DEFAULT_RSTVEC 0x00001000
+#define DEFAULT_NMIVEC 0x00001004
+#define DEFAULT_MTVEC 0x00001010
+#define CONFIG_STRING_ADDR 0x0000100C
+#define EXT_IO_BASE 0x40000000
+#define DRAM_BASE 0x80000000
+
+/* page table entry (PTE) fields */
+#define PTE_V 0x001 /* Valid */
+#define PTE_R 0x002 /* Read */
+#define PTE_W 0x004 /* Write */
+#define PTE_X 0x008 /* Execute */
+#define PTE_U 0x010 /* User */
+#define PTE_G 0x020 /* Global */
+#define PTE_A 0x040 /* Accessed */
+#define PTE_D 0x080 /* Dirty */
+#define PTE_SOFT 0x300 /* Reserved for Software */
+
+#define PTE_PPN_SHIFT 10
+
+#define PTE_TABLE(PTE) (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)
+
+#ifdef __riscv
+
+#ifdef __riscv64
+# define MSTATUS_SD MSTATUS64_SD
+# define SSTATUS_SD SSTATUS64_SD
+# define RISCV_PGLEVEL_BITS 9
+#else
+# define MSTATUS_SD MSTATUS32_SD
+# define SSTATUS_SD SSTATUS32_SD
+# define RISCV_PGLEVEL_BITS 10
+#endif
+#define RISCV_PGSHIFT 12
+#define RISCV_PGSIZE (1 << RISCV_PGSHIFT)
+
+#ifndef __ASSEMBLER__
+
+#ifdef __GNUC__
+
+#define read_fpu(reg) ({ unsigned long __tmp; \
+ asm volatile ("fmv.x.w %0, " #reg : "=r"(__tmp)); \
+ __tmp; })
+
+#define write_fpu(reg, val) ({ \
+ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) \
+ asm volatile ("fmv.w.x " #reg ", %0" :: "i"(val)); \
+ else \
+ asm volatile ("fmv.w.x " #reg ", %0" :: "r"(val)); })
+
+
+#define read_csr(reg) ({ unsigned long __tmp; \
+ asm volatile ("csrr %0, " #reg : "=r"(__tmp)); \
+ __tmp; })
+
+#define write_csr(reg, val) ({ \
+ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) \
+ asm volatile ("csrw " #reg ", %0" :: "i"(val)); \
+ else \
+ asm volatile ("csrw " #reg ", %0" :: "r"(val)); })
+
+#define swap_csr(reg, val) ({ unsigned long __tmp; \
+ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) \
+ asm volatile ("csrrw %0, " #reg ", %1" : "=r"(__tmp) : "i"(val)); \
+ else \
+ asm volatile ("csrrw %0, " #reg ", %1" : "=r"(__tmp) : "r"(val)); \
+ __tmp; })
+
+#define set_csr(reg, bit) ({ unsigned long __tmp; \
+ if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) \
+ asm volatile ("csrrs %0, " #reg ", %1" : "=r"(__tmp) : "i"(bit)); \
+ else \
+ asm volatile ("csrrs %0, " #reg ", %1" : "=r"(__tmp) : "r"(bit)); \
+ __tmp; })
+
+#define clear_csr(reg, bit) ({ unsigned long __tmp; \
+ if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) \
+ asm volatile ("csrrc %0, " #reg ", %1" : "=r"(__tmp) : "i"(bit)); \
+ else \
+ asm volatile ("csrrc %0, " #reg ", %1" : "=r"(__tmp) : "r"(bit)); \
+ __tmp; })
+
+#define rdtime() read_csr(time)
+#define rdcycle() read_csr(cycle)
+#define rdinstret() read_csr(instret)
+#endif
+
+#endif
+
+#endif
+
+#endif
+/* Automatically generated by parse-opcodes */
+#ifndef RISCV_ENCODING_H
+#define RISCV_ENCODING_H
+#define MATCH_BEQ 0x63
+#define MASK_BEQ 0x707f
+#define MATCH_BNE 0x1063
+#define MASK_BNE 0x707f
+#define MATCH_BLT 0x4063
+#define MASK_BLT 0x707f
+#define MATCH_BGE 0x5063
+#define MASK_BGE 0x707f
+#define MATCH_BLTU 0x6063
+#define MASK_BLTU 0x707f
+#define MATCH_BGEU 0x7063
+#define MASK_BGEU 0x707f
+#define MATCH_JALR 0x67
+#define MASK_JALR 0x707f
+#define MATCH_JAL 0x6f
+#define MASK_JAL 0x7f
+#define MATCH_LUI 0x37
+#define MASK_LUI 0x7f
+#define MATCH_AUIPC 0x17
+#define MASK_AUIPC 0x7f
+#define MATCH_ADDI 0x13
+#define MASK_ADDI 0x707f
+#define MATCH_SLLI 0x1013
+#define MASK_SLLI 0xfc00707f
+#define MATCH_SLTI 0x2013
+#define MASK_SLTI 0x707f
+#define MATCH_SLTIU 0x3013
+#define MASK_SLTIU 0x707f
+#define MATCH_XORI 0x4013
+#define MASK_XORI 0x707f
+#define MATCH_SRLI 0x5013
+#define MASK_SRLI 0xfc00707f
+#define MATCH_SRAI 0x40005013
+#define MASK_SRAI 0xfc00707f
+#define MATCH_ORI 0x6013
+#define MASK_ORI 0x707f
+#define MATCH_ANDI 0x7013
+#define MASK_ANDI 0x707f
+#define MATCH_ADD 0x33
+#define MASK_ADD 0xfe00707f
+#define MATCH_SUB 0x40000033
+#define MASK_SUB 0xfe00707f
+#define MATCH_SLL 0x1033
+#define MASK_SLL 0xfe00707f
+#define MATCH_SLT 0x2033
+#define MASK_SLT 0xfe00707f
+#define MATCH_SLTU 0x3033
+#define MASK_SLTU 0xfe00707f
+#define MATCH_XOR 0x4033
+#define MASK_XOR 0xfe00707f
+#define MATCH_SRL 0x5033
+#define MASK_SRL 0xfe00707f
+#define MATCH_SRA 0x40005033
+#define MASK_SRA 0xfe00707f
+#define MATCH_OR 0x6033
+#define MASK_OR 0xfe00707f
+#define MATCH_AND 0x7033
+#define MASK_AND 0xfe00707f
+#define MATCH_ADDIW 0x1b
+#define MASK_ADDIW 0x707f
+#define MATCH_SLLIW 0x101b
+#define MASK_SLLIW 0xfe00707f
+#define MATCH_SRLIW 0x501b
+#define MASK_SRLIW 0xfe00707f
+#define MATCH_SRAIW 0x4000501b
+#define MASK_SRAIW 0xfe00707f
+#define MATCH_ADDW 0x3b
+#define MASK_ADDW 0xfe00707f
+#define MATCH_SUBW 0x4000003b
+#define MASK_SUBW 0xfe00707f
+#define MATCH_SLLW 0x103b
+#define MASK_SLLW 0xfe00707f
+#define MATCH_SRLW 0x503b
+#define MASK_SRLW 0xfe00707f
+#define MATCH_SRAW 0x4000503b
+#define MASK_SRAW 0xfe00707f
+#define MATCH_LB 0x3
+#define MASK_LB 0x707f
+#define MATCH_LH 0x1003
+#define MASK_LH 0x707f
+#define MATCH_LW 0x2003
+#define MASK_LW 0x707f
+#define MATCH_LD 0x3003
+#define MASK_LD 0x707f
+#define MATCH_LBU 0x4003
+#define MASK_LBU 0x707f
+#define MATCH_LHU 0x5003
+#define MASK_LHU 0x707f
+#define MATCH_LWU 0x6003
+#define MASK_LWU 0x707f
+#define MATCH_SB 0x23
+#define MASK_SB 0x707f
+#define MATCH_SH 0x1023
+#define MASK_SH 0x707f
+#define MATCH_SW 0x2023
+#define MASK_SW 0x707f
+#define MATCH_SD 0x3023
+#define MASK_SD 0x707f
+#define MATCH_FENCE 0xf
+#define MASK_FENCE 0x707f
+#define MATCH_FENCE_I 0x100f
+#define MASK_FENCE_I 0x707f
+#define MATCH_MUL 0x2000033
+#define MASK_MUL 0xfe00707f
+#define MATCH_MULH 0x2001033
+#define MASK_MULH 0xfe00707f
+#define MATCH_MULHSU 0x2002033
+#define MASK_MULHSU 0xfe00707f
+#define MATCH_MULHU 0x2003033
+#define MASK_MULHU 0xfe00707f
+#define MATCH_DIV 0x2004033
+#define MASK_DIV 0xfe00707f
+#define MATCH_DIVU 0x2005033
+#define MASK_DIVU 0xfe00707f
+#define MATCH_REM 0x2006033
+#define MASK_REM 0xfe00707f
+#define MATCH_REMU 0x2007033
+#define MASK_REMU 0xfe00707f
+#define MATCH_MULW 0x200003b
+#define MASK_MULW 0xfe00707f
+#define MATCH_DIVW 0x200403b
+#define MASK_DIVW 0xfe00707f
+#define MATCH_DIVUW 0x200503b
+#define MASK_DIVUW 0xfe00707f
+#define MATCH_REMW 0x200603b
+#define MASK_REMW 0xfe00707f
+#define MATCH_REMUW 0x200703b
+#define MASK_REMUW 0xfe00707f
+#define MATCH_AMOADD_W 0x202f
+#define MASK_AMOADD_W 0xf800707f
+#define MATCH_AMOXOR_W 0x2000202f
+#define MASK_AMOXOR_W 0xf800707f
+#define MATCH_AMOOR_W 0x4000202f
+#define MASK_AMOOR_W 0xf800707f
+#define MATCH_AMOAND_W 0x6000202f
+#define MASK_AMOAND_W 0xf800707f
+#define MATCH_AMOMIN_W 0x8000202f
+#define MASK_AMOMIN_W 0xf800707f
+#define MATCH_AMOMAX_W 0xa000202f
+#define MASK_AMOMAX_W 0xf800707f
+#define MATCH_AMOMINU_W 0xc000202f
+#define MASK_AMOMINU_W 0xf800707f
+#define MATCH_AMOMAXU_W 0xe000202f
+#define MASK_AMOMAXU_W 0xf800707f
+#define MATCH_AMOSWAP_W 0x800202f
+#define MASK_AMOSWAP_W 0xf800707f
+#define MATCH_LR_W 0x1000202f
+#define MASK_LR_W 0xf9f0707f
+#define MATCH_SC_W 0x1800202f
+#define MASK_SC_W 0xf800707f
+#define MATCH_AMOADD_D 0x302f
+#define MASK_AMOADD_D 0xf800707f
+#define MATCH_AMOXOR_D 0x2000302f
+#define MASK_AMOXOR_D 0xf800707f
+#define MATCH_AMOOR_D 0x4000302f
+#define MASK_AMOOR_D 0xf800707f
+#define MATCH_AMOAND_D 0x6000302f
+#define MASK_AMOAND_D 0xf800707f
+#define MATCH_AMOMIN_D 0x8000302f
+#define MASK_AMOMIN_D 0xf800707f
+#define MATCH_AMOMAX_D 0xa000302f
+#define MASK_AMOMAX_D 0xf800707f
+#define MATCH_AMOMINU_D 0xc000302f
+#define MASK_AMOMINU_D 0xf800707f
+#define MATCH_AMOMAXU_D 0xe000302f
+#define MASK_AMOMAXU_D 0xf800707f
+#define MATCH_AMOSWAP_D 0x800302f
+#define MASK_AMOSWAP_D 0xf800707f
+#define MATCH_LR_D 0x1000302f
+#define MASK_LR_D 0xf9f0707f
+#define MATCH_SC_D 0x1800302f
+#define MASK_SC_D 0xf800707f
+#define MATCH_ECALL 0x73
+#define MASK_ECALL 0xffffffff
+#define MATCH_EBREAK 0x100073
+#define MASK_EBREAK 0xffffffff
+#define MATCH_URET 0x200073
+#define MASK_URET 0xffffffff
+#define MATCH_SRET 0x10200073
+#define MASK_SRET 0xffffffff
+#define MATCH_HRET 0x20200073
+#define MASK_HRET 0xffffffff
+#define MATCH_MRET 0x30200073
+#define MASK_MRET 0xffffffff
+#define MATCH_DRET 0x7b200073
+#define MASK_DRET 0xffffffff
+#define MATCH_SFENCE_VM 0x10400073
+#define MASK_SFENCE_VM 0xfff07fff
+#define MATCH_WFI 0x10500073
+#define MASK_WFI 0xffffffff
+#define MATCH_CSRRW 0x1073
+#define MASK_CSRRW 0x707f
+#define MATCH_CSRRS 0x2073
+#define MASK_CSRRS 0x707f
+#define MATCH_CSRRC 0x3073
+#define MASK_CSRRC 0x707f
+#define MATCH_CSRRWI 0x5073
+#define MASK_CSRRWI 0x707f
+#define MATCH_CSRRSI 0x6073
+#define MASK_CSRRSI 0x707f
+#define MATCH_CSRRCI 0x7073
+#define MASK_CSRRCI 0x707f
+#define MATCH_FADD_S 0x53
+#define MASK_FADD_S 0xfe00007f
+#define MATCH_FSUB_S 0x8000053
+#define MASK_FSUB_S 0xfe00007f
+#define MATCH_FMUL_S 0x10000053
+#define MASK_FMUL_S 0xfe00007f
+#define MATCH_FDIV_S 0x18000053
+#define MASK_FDIV_S 0xfe00007f
+#define MATCH_FSGNJ_S 0x20000053
+#define MASK_FSGNJ_S 0xfe00707f
+#define MATCH_FSGNJN_S 0x20001053
+#define MASK_FSGNJN_S 0xfe00707f
+#define MATCH_FSGNJX_S 0x20002053
+#define MASK_FSGNJX_S 0xfe00707f
+#define MATCH_FMIN_S 0x28000053
+#define MASK_FMIN_S 0xfe00707f
+#define MATCH_FMAX_S 0x28001053
+#define MASK_FMAX_S 0xfe00707f
+#define MATCH_FSQRT_S 0x58000053
+#define MASK_FSQRT_S 0xfff0007f
+#define MATCH_FADD_D 0x2000053
+#define MASK_FADD_D 0xfe00007f
+#define MATCH_FSUB_D 0xa000053
+#define MASK_FSUB_D 0xfe00007f
+#define MATCH_FMUL_D 0x12000053
+#define MASK_FMUL_D 0xfe00007f
+#define MATCH_FDIV_D 0x1a000053
+#define MASK_FDIV_D 0xfe00007f
+#define MATCH_FSGNJ_D 0x22000053
+#define MASK_FSGNJ_D 0xfe00707f
+#define MATCH_FSGNJN_D 0x22001053
+#define MASK_FSGNJN_D 0xfe00707f
+#define MATCH_FSGNJX_D 0x22002053
+#define MASK_FSGNJX_D 0xfe00707f
+#define MATCH_FMIN_D 0x2a000053
+#define MASK_FMIN_D 0xfe00707f
+#define MATCH_FMAX_D 0x2a001053
+#define MASK_FMAX_D 0xfe00707f
+#define MATCH_FCVT_S_D 0x40100053
+#define MASK_FCVT_S_D 0xfff0007f
+#define MATCH_FCVT_D_S 0x42000053
+#define MASK_FCVT_D_S 0xfff0007f
+#define MATCH_FSQRT_D 0x5a000053
+#define MASK_FSQRT_D 0xfff0007f
+#define MATCH_FLE_S 0xa0000053
+#define MASK_FLE_S 0xfe00707f
+#define MATCH_FLT_S 0xa0001053
+#define MASK_FLT_S 0xfe00707f
+#define MATCH_FEQ_S 0xa0002053
+#define MASK_FEQ_S 0xfe00707f
+#define MATCH_FLE_D 0xa2000053
+#define MASK_FLE_D 0xfe00707f
+#define MATCH_FLT_D 0xa2001053
+#define MASK_FLT_D 0xfe00707f
+#define MATCH_FEQ_D 0xa2002053
+#define MASK_FEQ_D 0xfe00707f
+#define MATCH_FCVT_W_S 0xc0000053
+#define MASK_FCVT_W_S 0xfff0007f
+#define MATCH_FCVT_WU_S 0xc0100053
+#define MASK_FCVT_WU_S 0xfff0007f
+#define MATCH_FCVT_L_S 0xc0200053
+#define MASK_FCVT_L_S 0xfff0007f
+#define MATCH_FCVT_LU_S 0xc0300053
+#define MASK_FCVT_LU_S 0xfff0007f
+#define MATCH_FMV_X_S 0xe0000053
+#define MASK_FMV_X_S 0xfff0707f
+#define MATCH_FCLASS_S 0xe0001053
+#define MASK_FCLASS_S 0xfff0707f
+#define MATCH_FCVT_W_D 0xc2000053
+#define MASK_FCVT_W_D 0xfff0007f
+#define MATCH_FCVT_WU_D 0xc2100053
+#define MASK_FCVT_WU_D 0xfff0007f
+#define MATCH_FCVT_L_D 0xc2200053
+#define MASK_FCVT_L_D 0xfff0007f
+#define MATCH_FCVT_LU_D 0xc2300053
+#define MASK_FCVT_LU_D 0xfff0007f
+#define MATCH_FMV_X_D 0xe2000053
+#define MASK_FMV_X_D 0xfff0707f
+#define MATCH_FCLASS_D 0xe2001053
+#define MASK_FCLASS_D 0xfff0707f
+#define MATCH_FCVT_S_W 0xd0000053
+#define MASK_FCVT_S_W 0xfff0007f
+#define MATCH_FCVT_S_WU 0xd0100053
+#define MASK_FCVT_S_WU 0xfff0007f
+#define MATCH_FCVT_S_L 0xd0200053
+#define MASK_FCVT_S_L 0xfff0007f
+#define MATCH_FCVT_S_LU 0xd0300053
+#define MASK_FCVT_S_LU 0xfff0007f
+#define MATCH_FMV_S_X 0xf0000053
+#define MASK_FMV_S_X 0xfff0707f
+#define MATCH_FCVT_D_W 0xd2000053
+#define MASK_FCVT_D_W 0xfff0007f
+#define MATCH_FCVT_D_WU 0xd2100053
+#define MASK_FCVT_D_WU 0xfff0007f
+#define MATCH_FCVT_D_L 0xd2200053
+#define MASK_FCVT_D_L 0xfff0007f
+#define MATCH_FCVT_D_LU 0xd2300053
+#define MASK_FCVT_D_LU 0xfff0007f
+#define MATCH_FMV_D_X 0xf2000053
+#define MASK_FMV_D_X 0xfff0707f
+#define MATCH_FLW 0x2007
+#define MASK_FLW 0x707f
+#define MATCH_FLD 0x3007
+#define MASK_FLD 0x707f
+#define MATCH_FSW 0x2027
+#define MASK_FSW 0x707f
+#define MATCH_FSD 0x3027
+#define MASK_FSD 0x707f
+#define MATCH_FMADD_S 0x43
+#define MASK_FMADD_S 0x600007f
+#define MATCH_FMSUB_S 0x47
+#define MASK_FMSUB_S 0x600007f
+#define MATCH_FNMSUB_S 0x4b
+#define MASK_FNMSUB_S 0x600007f
+#define MATCH_FNMADD_S 0x4f
+#define MASK_FNMADD_S 0x600007f
+#define MATCH_FMADD_D 0x2000043
+#define MASK_FMADD_D 0x600007f
+#define MATCH_FMSUB_D 0x2000047
+#define MASK_FMSUB_D 0x600007f
+#define MATCH_FNMSUB_D 0x200004b
+#define MASK_FNMSUB_D 0x600007f
+#define MATCH_FNMADD_D 0x200004f
+#define MASK_FNMADD_D 0x600007f
+#define MATCH_C_NOP 0x1
+#define MASK_C_NOP 0xffff
+#define MATCH_C_ADDI16SP 0x6101
+#define MASK_C_ADDI16SP 0xef83
+#define MATCH_C_JR 0x8002
+#define MASK_C_JR 0xf07f
+#define MATCH_C_JALR 0x9002
+#define MASK_C_JALR 0xf07f
+#define MATCH_C_EBREAK 0x9002
+#define MASK_C_EBREAK 0xffff
+#define MATCH_C_LD 0x6000
+#define MASK_C_LD 0xe003
+#define MATCH_C_SD 0xe000
+#define MASK_C_SD 0xe003
+#define MATCH_C_ADDIW 0x2001
+#define MASK_C_ADDIW 0xe003
+#define MATCH_C_LDSP 0x6002
+#define MASK_C_LDSP 0xe003
+#define MATCH_C_SDSP 0xe002
+#define MASK_C_SDSP 0xe003
+#define MATCH_C_ADDI4SPN 0x0
+#define MASK_C_ADDI4SPN 0xe003
+#define MATCH_C_FLD 0x2000
+#define MASK_C_FLD 0xe003
+#define MATCH_C_LW 0x4000
+#define MASK_C_LW 0xe003
+#define MATCH_C_FLW 0x6000
+#define MASK_C_FLW 0xe003
+#define MATCH_C_FSD 0xa000
+#define MASK_C_FSD 0xe003
+#define MATCH_C_SW 0xc000
+#define MASK_C_SW 0xe003
+#define MATCH_C_FSW 0xe000
+#define MASK_C_FSW 0xe003
+#define MATCH_C_ADDI 0x1
+#define MASK_C_ADDI 0xe003
+#define MATCH_C_JAL 0x2001
+#define MASK_C_JAL 0xe003
+#define MATCH_C_LI 0x4001
+#define MASK_C_LI 0xe003
+#define MATCH_C_LUI 0x6001
+#define MASK_C_LUI 0xe003
+#define MATCH_C_SRLI 0x8001
+#define MASK_C_SRLI 0xec03
+#define MATCH_C_SRAI 0x8401
+#define MASK_C_SRAI 0xec03
+#define MATCH_C_ANDI 0x8801
+#define MASK_C_ANDI 0xec03
+#define MATCH_C_SUB 0x8c01
+#define MASK_C_SUB 0xfc63
+#define MATCH_C_XOR 0x8c21
+#define MASK_C_XOR 0xfc63
+#define MATCH_C_OR 0x8c41
+#define MASK_C_OR 0xfc63
+#define MATCH_C_AND 0x8c61
+#define MASK_C_AND 0xfc63
+#define MATCH_C_SUBW 0x9c01
+#define MASK_C_SUBW 0xfc63
+#define MATCH_C_ADDW 0x9c21
+#define MASK_C_ADDW 0xfc63
+#define MATCH_C_J 0xa001
+#define MASK_C_J 0xe003
+#define MATCH_C_BEQZ 0xc001
+#define MASK_C_BEQZ 0xe003
+#define MATCH_C_BNEZ 0xe001
+#define MASK_C_BNEZ 0xe003
+#define MATCH_C_SLLI 0x2
+#define MASK_C_SLLI 0xe003
+#define MATCH_C_FLDSP 0x2002
+#define MASK_C_FLDSP 0xe003
+#define MATCH_C_LWSP 0x4002
+#define MASK_C_LWSP 0xe003
+#define MATCH_C_FLWSP 0x6002
+#define MASK_C_FLWSP 0xe003
+#define MATCH_C_MV 0x8002
+#define MASK_C_MV 0xf003
+#define MATCH_C_ADD 0x9002
+#define MASK_C_ADD 0xf003
+#define MATCH_C_FSDSP 0xa002
+#define MASK_C_FSDSP 0xe003
+#define MATCH_C_SWSP 0xc002
+#define MASK_C_SWSP 0xe003
+#define MATCH_C_FSWSP 0xe002
+#define MASK_C_FSWSP 0xe003
+#define MATCH_CUSTOM0 0xb
+#define MASK_CUSTOM0 0x707f
+#define MATCH_CUSTOM0_RS1 0x200b
+#define MASK_CUSTOM0_RS1 0x707f
+#define MATCH_CUSTOM0_RS1_RS2 0x300b
+#define MASK_CUSTOM0_RS1_RS2 0x707f
+#define MATCH_CUSTOM0_RD 0x400b
+#define MASK_CUSTOM0_RD 0x707f
+#define MATCH_CUSTOM0_RD_RS1 0x600b
+#define MASK_CUSTOM0_RD_RS1 0x707f
+#define MATCH_CUSTOM0_RD_RS1_RS2 0x700b
+#define MASK_CUSTOM0_RD_RS1_RS2 0x707f
+#define MATCH_CUSTOM1 0x2b
+#define MASK_CUSTOM1 0x707f
+#define MATCH_CUSTOM1_RS1 0x202b
+#define MASK_CUSTOM1_RS1 0x707f
+#define MATCH_CUSTOM1_RS1_RS2 0x302b
+#define MASK_CUSTOM1_RS1_RS2 0x707f
+#define MATCH_CUSTOM1_RD 0x402b
+#define MASK_CUSTOM1_RD 0x707f
+#define MATCH_CUSTOM1_RD_RS1 0x602b
+#define MASK_CUSTOM1_RD_RS1 0x707f
+#define MATCH_CUSTOM1_RD_RS1_RS2 0x702b
+#define MASK_CUSTOM1_RD_RS1_RS2 0x707f
+#define MATCH_CUSTOM2 0x5b
+#define MASK_CUSTOM2 0x707f
+#define MATCH_CUSTOM2_RS1 0x205b
+#define MASK_CUSTOM2_RS1 0x707f
+#define MATCH_CUSTOM2_RS1_RS2 0x305b
+#define MASK_CUSTOM2_RS1_RS2 0x707f
+#define MATCH_CUSTOM2_RD 0x405b
+#define MASK_CUSTOM2_RD 0x707f
+#define MATCH_CUSTOM2_RD_RS1 0x605b
+#define MASK_CUSTOM2_RD_RS1 0x707f
+#define MATCH_CUSTOM2_RD_RS1_RS2 0x705b
+#define MASK_CUSTOM2_RD_RS1_RS2 0x707f
+#define MATCH_CUSTOM3 0x7b
+#define MASK_CUSTOM3 0x707f
+#define MATCH_CUSTOM3_RS1 0x207b
+#define MASK_CUSTOM3_RS1 0x707f
+#define MATCH_CUSTOM3_RS1_RS2 0x307b
+#define MASK_CUSTOM3_RS1_RS2 0x707f
+#define MATCH_CUSTOM3_RD 0x407b
+#define MASK_CUSTOM3_RD 0x707f
+#define MATCH_CUSTOM3_RD_RS1 0x607b
+#define MASK_CUSTOM3_RD_RS1 0x707f
+#define MATCH_CUSTOM3_RD_RS1_RS2 0x707b
+#define MASK_CUSTOM3_RD_RS1_RS2 0x707f
+#define CSR_FFLAGS 0x1
+#define CSR_FRM 0x2
+#define CSR_FCSR 0x3
+#define CSR_CYCLE 0xc00
+#define CSR_TIME 0xc01
+#define CSR_INSTRET 0xc02
+#define CSR_HPMCOUNTER3 0xc03
+#define CSR_HPMCOUNTER4 0xc04
+#define CSR_HPMCOUNTER5 0xc05
+#define CSR_HPMCOUNTER6 0xc06
+#define CSR_HPMCOUNTER7 0xc07
+#define CSR_HPMCOUNTER8 0xc08
+#define CSR_HPMCOUNTER9 0xc09
+#define CSR_HPMCOUNTER10 0xc0a
+#define CSR_HPMCOUNTER11 0xc0b
+#define CSR_HPMCOUNTER12 0xc0c
+#define CSR_HPMCOUNTER13 0xc0d
+#define CSR_HPMCOUNTER14 0xc0e
+#define CSR_HPMCOUNTER15 0xc0f
+#define CSR_HPMCOUNTER16 0xc10
+#define CSR_HPMCOUNTER17 0xc11
+#define CSR_HPMCOUNTER18 0xc12
+#define CSR_HPMCOUNTER19 0xc13
+#define CSR_HPMCOUNTER20 0xc14
+#define CSR_HPMCOUNTER21 0xc15
+#define CSR_HPMCOUNTER22 0xc16
+#define CSR_HPMCOUNTER23 0xc17
+#define CSR_HPMCOUNTER24 0xc18
+#define CSR_HPMCOUNTER25 0xc19
+#define CSR_HPMCOUNTER26 0xc1a
+#define CSR_HPMCOUNTER27 0xc1b
+#define CSR_HPMCOUNTER28 0xc1c
+#define CSR_HPMCOUNTER29 0xc1d
+#define CSR_HPMCOUNTER30 0xc1e
+#define CSR_HPMCOUNTER31 0xc1f
+#define CSR_SSTATUS 0x100
+#define CSR_SIE 0x104
+#define CSR_STVEC 0x105
+#define CSR_SSCRATCH 0x140
+#define CSR_SEPC 0x141
+#define CSR_SCAUSE 0x142
+#define CSR_SBADADDR 0x143
+#define CSR_SIP 0x144
+#define CSR_SPTBR 0x180
+#define CSR_MSTATUS 0x300
+#define CSR_MISA 0x301
+#define CSR_MEDELEG 0x302
+#define CSR_MIDELEG 0x303
+#define CSR_MIE 0x304
+#define CSR_MTVEC 0x305
+#define CSR_MCOUNTEREN 0x306
+#define CSR_MSCRATCH 0x340
+#define CSR_MEPC 0x341
+#define CSR_MCAUSE 0x342
+#define CSR_MBADADDR 0x343
+#define CSR_MIP 0x344
+#define CSR_TSELECT 0x7a0
+#define CSR_TDATA1 0x7a1
+#define CSR_TDATA2 0x7a2
+#define CSR_TDATA3 0x7a3
+#define CSR_DCSR 0x7b0
+#define CSR_DPC 0x7b1
+#define CSR_DSCRATCH 0x7b2
+#define CSR_MCYCLE 0xb00
+#define CSR_MINSTRET 0xb02
+#define CSR_MHPMCOUNTER3 0xb03
+#define CSR_MHPMCOUNTER4 0xb04
+#define CSR_MHPMCOUNTER5 0xb05
+#define CSR_MHPMCOUNTER6 0xb06
+#define CSR_MHPMCOUNTER7 0xb07
+#define CSR_MHPMCOUNTER8 0xb08
+#define CSR_MHPMCOUNTER9 0xb09
+#define CSR_MHPMCOUNTER10 0xb0a
+#define CSR_MHPMCOUNTER11 0xb0b
+#define CSR_MHPMCOUNTER12 0xb0c
+#define CSR_MHPMCOUNTER13 0xb0d
+#define CSR_MHPMCOUNTER14 0xb0e
+#define CSR_MHPMCOUNTER15 0xb0f
+#define CSR_MHPMCOUNTER16 0xb10
+#define CSR_MHPMCOUNTER17 0xb11
+#define CSR_MHPMCOUNTER18 0xb12
+#define CSR_MHPMCOUNTER19 0xb13
+#define CSR_MHPMCOUNTER20 0xb14
+#define CSR_MHPMCOUNTER21 0xb15
+#define CSR_MHPMCOUNTER22 0xb16
+#define CSR_MHPMCOUNTER23 0xb17
+#define CSR_MHPMCOUNTER24 0xb18
+#define CSR_MHPMCOUNTER25 0xb19
+#define CSR_MHPMCOUNTER26 0xb1a
+#define CSR_MHPMCOUNTER27 0xb1b
+#define CSR_MHPMCOUNTER28 0xb1c
+#define CSR_MHPMCOUNTER29 0xb1d
+#define CSR_MHPMCOUNTER30 0xb1e
+#define CSR_MHPMCOUNTER31 0xb1f
+#define CSR_MUCOUNTEREN 0x320
+#define CSR_MSCOUNTEREN 0x321
+#define CSR_MHPMEVENT3 0x323
+#define CSR_MHPMEVENT4 0x324
+#define CSR_MHPMEVENT5 0x325
+#define CSR_MHPMEVENT6 0x326
+#define CSR_MHPMEVENT7 0x327
+#define CSR_MHPMEVENT8 0x328
+#define CSR_MHPMEVENT9 0x329
+#define CSR_MHPMEVENT10 0x32a
+#define CSR_MHPMEVENT11 0x32b
+#define CSR_MHPMEVENT12 0x32c
+#define CSR_MHPMEVENT13 0x32d
+#define CSR_MHPMEVENT14 0x32e
+#define CSR_MHPMEVENT15 0x32f
+#define CSR_MHPMEVENT16 0x330
+#define CSR_MHPMEVENT17 0x331
+#define CSR_MHPMEVENT18 0x332
+#define CSR_MHPMEVENT19 0x333
+#define CSR_MHPMEVENT20 0x334
+#define CSR_MHPMEVENT21 0x335
+#define CSR_MHPMEVENT22 0x336
+#define CSR_MHPMEVENT23 0x337
+#define CSR_MHPMEVENT24 0x338
+#define CSR_MHPMEVENT25 0x339
+#define CSR_MHPMEVENT26 0x33a
+#define CSR_MHPMEVENT27 0x33b
+#define CSR_MHPMEVENT28 0x33c
+#define CSR_MHPMEVENT29 0x33d
+#define CSR_MHPMEVENT30 0x33e
+#define CSR_MHPMEVENT31 0x33f
+#define CSR_MVENDORID 0xf11
+#define CSR_MARCHID 0xf12
+#define CSR_MIMPID 0xf13
+#define CSR_MHARTID 0xf14
+#define CSR_CYCLEH 0xc80
+#define CSR_TIMEH 0xc81
+#define CSR_INSTRETH 0xc82
+#define CSR_HPMCOUNTER3H 0xc83
+#define CSR_HPMCOUNTER4H 0xc84
+#define CSR_HPMCOUNTER5H 0xc85
+#define CSR_HPMCOUNTER6H 0xc86
+#define CSR_HPMCOUNTER7H 0xc87
+#define CSR_HPMCOUNTER8H 0xc88
+#define CSR_HPMCOUNTER9H 0xc89
+#define CSR_HPMCOUNTER10H 0xc8a
+#define CSR_HPMCOUNTER11H 0xc8b
+#define CSR_HPMCOUNTER12H 0xc8c
+#define CSR_HPMCOUNTER13H 0xc8d
+#define CSR_HPMCOUNTER14H 0xc8e
+#define CSR_HPMCOUNTER15H 0xc8f
+#define CSR_HPMCOUNTER16H 0xc90
+#define CSR_HPMCOUNTER17H 0xc91
+#define CSR_HPMCOUNTER18H 0xc92
+#define CSR_HPMCOUNTER19H 0xc93
+#define CSR_HPMCOUNTER20H 0xc94
+#define CSR_HPMCOUNTER21H 0xc95
+#define CSR_HPMCOUNTER22H 0xc96
+#define CSR_HPMCOUNTER23H 0xc97
+#define CSR_HPMCOUNTER24H 0xc98
+#define CSR_HPMCOUNTER25H 0xc99
+#define CSR_HPMCOUNTER26H 0xc9a
+#define CSR_HPMCOUNTER27H 0xc9b
+#define CSR_HPMCOUNTER28H 0xc9c
+#define CSR_HPMCOUNTER29H 0xc9d
+#define CSR_HPMCOUNTER30H 0xc9e
+#define CSR_HPMCOUNTER31H 0xc9f
+#define CSR_MCYCLEH 0xb80
+#define CSR_MINSTRETH 0xb82
+#define CSR_MHPMCOUNTER3H 0xb83
+#define CSR_MHPMCOUNTER4H 0xb84
+#define CSR_MHPMCOUNTER5H 0xb85
+#define CSR_MHPMCOUNTER6H 0xb86
+#define CSR_MHPMCOUNTER7H 0xb87
+#define CSR_MHPMCOUNTER8H 0xb88
+#define CSR_MHPMCOUNTER9H 0xb89
+#define CSR_MHPMCOUNTER10H 0xb8a
+#define CSR_MHPMCOUNTER11H 0xb8b
+#define CSR_MHPMCOUNTER12H 0xb8c
+#define CSR_MHPMCOUNTER13H 0xb8d
+#define CSR_MHPMCOUNTER14H 0xb8e
+#define CSR_MHPMCOUNTER15H 0xb8f
+#define CSR_MHPMCOUNTER16H 0xb90
+#define CSR_MHPMCOUNTER17H 0xb91
+#define CSR_MHPMCOUNTER18H 0xb92
+#define CSR_MHPMCOUNTER19H 0xb93
+#define CSR_MHPMCOUNTER20H 0xb94
+#define CSR_MHPMCOUNTER21H 0xb95
+#define CSR_MHPMCOUNTER22H 0xb96
+#define CSR_MHPMCOUNTER23H 0xb97
+#define CSR_MHPMCOUNTER24H 0xb98
+#define CSR_MHPMCOUNTER25H 0xb99
+#define CSR_MHPMCOUNTER26H 0xb9a
+#define CSR_MHPMCOUNTER27H 0xb9b
+#define CSR_MHPMCOUNTER28H 0xb9c
+#define CSR_MHPMCOUNTER29H 0xb9d
+#define CSR_MHPMCOUNTER30H 0xb9e
+#define CSR_MHPMCOUNTER31H 0xb9f
+
+
+#define CSR_MTVT 0x307
+#define CSR_MNXTI 0x345
+
+#define CSR_MCOUNTINHIBIT 0x320
+
+#define CSR_MNVEC 0x7C3
+
+#define CSR_MTVT2 0x7EC
+#define CSR_JALMNXTI 0x7ED
+#define CSR_PUSHMCAUSE 0x7EE
+#define CSR_PUSHMEPC 0x7EF
+#define CSR_PUSHMSUBM 0x7EB
+
+#define CSR_WFE 0x810
+#define CSR_SLEEPVALUE 0x811
+#define CSR_TXEVT 0x812
+
+#define CSR_MMISC_CTL 0x7d0
+#define CSR_MSUBM 0x7c4
+
+
+#define CAUSE_MISALIGNED_FETCH 0x0
+#define CAUSE_FAULT_FETCH 0x1
+#define CAUSE_ILLEGAL_INSTRUCTION 0x2
+#define CAUSE_BREAKPOINT 0x3
+#define CAUSE_MISALIGNED_LOAD 0x4
+#define CAUSE_FAULT_LOAD 0x5
+#define CAUSE_MISALIGNED_STORE 0x6
+#define CAUSE_FAULT_STORE 0x7
+#define CAUSE_USER_ECALL 0x8
+#define CAUSE_SUPERVISOR_ECALL 0x9
+#define CAUSE_HYPERVISOR_ECALL 0xa
+#define CAUSE_MACHINE_ECALL 0xb
+#endif
+#ifdef DECLARE_INSN
+DECLARE_INSN(beq, MATCH_BEQ, MASK_BEQ)
+DECLARE_INSN(bne, MATCH_BNE, MASK_BNE)
+DECLARE_INSN(blt, MATCH_BLT, MASK_BLT)
+DECLARE_INSN(bge, MATCH_BGE, MASK_BGE)
+DECLARE_INSN(bltu, MATCH_BLTU, MASK_BLTU)
+DECLARE_INSN(bgeu, MATCH_BGEU, MASK_BGEU)
+DECLARE_INSN(jalr, MATCH_JALR, MASK_JALR)
+DECLARE_INSN(jal, MATCH_JAL, MASK_JAL)
+DECLARE_INSN(lui, MATCH_LUI, MASK_LUI)
+DECLARE_INSN(auipc, MATCH_AUIPC, MASK_AUIPC)
+DECLARE_INSN(addi, MATCH_ADDI, MASK_ADDI)
+DECLARE_INSN(slli, MATCH_SLLI, MASK_SLLI)
+DECLARE_INSN(slti, MATCH_SLTI, MASK_SLTI)
+DECLARE_INSN(sltiu, MATCH_SLTIU, MASK_SLTIU)
+DECLARE_INSN(xori, MATCH_XORI, MASK_XORI)
+DECLARE_INSN(srli, MATCH_SRLI, MASK_SRLI)
+DECLARE_INSN(srai, MATCH_SRAI, MASK_SRAI)
+DECLARE_INSN(ori, MATCH_ORI, MASK_ORI)
+DECLARE_INSN(andi, MATCH_ANDI, MASK_ANDI)
+DECLARE_INSN(add, MATCH_ADD, MASK_ADD)
+DECLARE_INSN(sub, MATCH_SUB, MASK_SUB)
+DECLARE_INSN(sll, MATCH_SLL, MASK_SLL)
+DECLARE_INSN(slt, MATCH_SLT, MASK_SLT)
+DECLARE_INSN(sltu, MATCH_SLTU, MASK_SLTU)
+DECLARE_INSN(xor, MATCH_XOR, MASK_XOR)
+DECLARE_INSN(srl, MATCH_SRL, MASK_SRL)
+DECLARE_INSN(sra, MATCH_SRA, MASK_SRA)
+DECLARE_INSN(or, MATCH_OR, MASK_OR)
+DECLARE_INSN(and, MATCH_AND, MASK_AND)
+DECLARE_INSN(addiw, MATCH_ADDIW, MASK_ADDIW)
+DECLARE_INSN(slliw, MATCH_SLLIW, MASK_SLLIW)
+DECLARE_INSN(srliw, MATCH_SRLIW, MASK_SRLIW)
+DECLARE_INSN(sraiw, MATCH_SRAIW, MASK_SRAIW)
+DECLARE_INSN(addw, MATCH_ADDW, MASK_ADDW)
+DECLARE_INSN(subw, MATCH_SUBW, MASK_SUBW)
+DECLARE_INSN(sllw, MATCH_SLLW, MASK_SLLW)
+DECLARE_INSN(srlw, MATCH_SRLW, MASK_SRLW)
+DECLARE_INSN(sraw, MATCH_SRAW, MASK_SRAW)
+DECLARE_INSN(lb, MATCH_LB, MASK_LB)
+DECLARE_INSN(lh, MATCH_LH, MASK_LH)
+DECLARE_INSN(lw, MATCH_LW, MASK_LW)
+DECLARE_INSN(ld, MATCH_LD, MASK_LD)
+DECLARE_INSN(lbu, MATCH_LBU, MASK_LBU)
+DECLARE_INSN(lhu, MATCH_LHU, MASK_LHU)
+DECLARE_INSN(lwu, MATCH_LWU, MASK_LWU)
+DECLARE_INSN(sb, MATCH_SB, MASK_SB)
+DECLARE_INSN(sh, MATCH_SH, MASK_SH)
+DECLARE_INSN(sw, MATCH_SW, MASK_SW)
+DECLARE_INSN(sd, MATCH_SD, MASK_SD)
+DECLARE_INSN(fence, MATCH_FENCE, MASK_FENCE)
+DECLARE_INSN(fence_i, MATCH_FENCE_I, MASK_FENCE_I)
+DECLARE_INSN(mul, MATCH_MUL, MASK_MUL)
+DECLARE_INSN(mulh, MATCH_MULH, MASK_MULH)
+DECLARE_INSN(mulhsu, MATCH_MULHSU, MASK_MULHSU)
+DECLARE_INSN(mulhu, MATCH_MULHU, MASK_MULHU)
+DECLARE_INSN(div, MATCH_DIV, MASK_DIV)
+DECLARE_INSN(divu, MATCH_DIVU, MASK_DIVU)
+DECLARE_INSN(rem, MATCH_REM, MASK_REM)
+DECLARE_INSN(remu, MATCH_REMU, MASK_REMU)
+DECLARE_INSN(mulw, MATCH_MULW, MASK_MULW)
+DECLARE_INSN(divw, MATCH_DIVW, MASK_DIVW)
+DECLARE_INSN(divuw, MATCH_DIVUW, MASK_DIVUW)
+DECLARE_INSN(remw, MATCH_REMW, MASK_REMW)
+DECLARE_INSN(remuw, MATCH_REMUW, MASK_REMUW)
+DECLARE_INSN(amoadd_w, MATCH_AMOADD_W, MASK_AMOADD_W)
+DECLARE_INSN(amoxor_w, MATCH_AMOXOR_W, MASK_AMOXOR_W)
+DECLARE_INSN(amoor_w, MATCH_AMOOR_W, MASK_AMOOR_W)
+DECLARE_INSN(amoand_w, MATCH_AMOAND_W, MASK_AMOAND_W)
+DECLARE_INSN(amomin_w, MATCH_AMOMIN_W, MASK_AMOMIN_W)
+DECLARE_INSN(amomax_w, MATCH_AMOMAX_W, MASK_AMOMAX_W)
+DECLARE_INSN(amominu_w, MATCH_AMOMINU_W, MASK_AMOMINU_W)
+DECLARE_INSN(amomaxu_w, MATCH_AMOMAXU_W, MASK_AMOMAXU_W)
+DECLARE_INSN(amoswap_w, MATCH_AMOSWAP_W, MASK_AMOSWAP_W)
+DECLARE_INSN(lr_w, MATCH_LR_W, MASK_LR_W)
+DECLARE_INSN(sc_w, MATCH_SC_W, MASK_SC_W)
+DECLARE_INSN(amoadd_d, MATCH_AMOADD_D, MASK_AMOADD_D)
+DECLARE_INSN(amoxor_d, MATCH_AMOXOR_D, MASK_AMOXOR_D)
+DECLARE_INSN(amoor_d, MATCH_AMOOR_D, MASK_AMOOR_D)
+DECLARE_INSN(amoand_d, MATCH_AMOAND_D, MASK_AMOAND_D)
+DECLARE_INSN(amomin_d, MATCH_AMOMIN_D, MASK_AMOMIN_D)
+DECLARE_INSN(amomax_d, MATCH_AMOMAX_D, MASK_AMOMAX_D)
+DECLARE_INSN(amominu_d, MATCH_AMOMINU_D, MASK_AMOMINU_D)
+DECLARE_INSN(amomaxu_d, MATCH_AMOMAXU_D, MASK_AMOMAXU_D)
+DECLARE_INSN(amoswap_d, MATCH_AMOSWAP_D, MASK_AMOSWAP_D)
+DECLARE_INSN(lr_d, MATCH_LR_D, MASK_LR_D)
+DECLARE_INSN(sc_d, MATCH_SC_D, MASK_SC_D)
+DECLARE_INSN(ecall, MATCH_ECALL, MASK_ECALL)
+DECLARE_INSN(ebreak, MATCH_EBREAK, MASK_EBREAK)
+DECLARE_INSN(uret, MATCH_URET, MASK_URET)
+DECLARE_INSN(sret, MATCH_SRET, MASK_SRET)
+DECLARE_INSN(hret, MATCH_HRET, MASK_HRET)
+DECLARE_INSN(mret, MATCH_MRET, MASK_MRET)
+DECLARE_INSN(dret, MATCH_DRET, MASK_DRET)
+DECLARE_INSN(sfence_vm, MATCH_SFENCE_VM, MASK_SFENCE_VM)
+DECLARE_INSN(wfi, MATCH_WFI, MASK_WFI)
+DECLARE_INSN(csrrw, MATCH_CSRRW, MASK_CSRRW)
+DECLARE_INSN(csrrs, MATCH_CSRRS, MASK_CSRRS)
+DECLARE_INSN(csrrc, MATCH_CSRRC, MASK_CSRRC)
+DECLARE_INSN(csrrwi, MATCH_CSRRWI, MASK_CSRRWI)
+DECLARE_INSN(csrrsi, MATCH_CSRRSI, MASK_CSRRSI)
+DECLARE_INSN(csrrci, MATCH_CSRRCI, MASK_CSRRCI)
+DECLARE_INSN(fadd_s, MATCH_FADD_S, MASK_FADD_S)
+DECLARE_INSN(fsub_s, MATCH_FSUB_S, MASK_FSUB_S)
+DECLARE_INSN(fmul_s, MATCH_FMUL_S, MASK_FMUL_S)
+DECLARE_INSN(fdiv_s, MATCH_FDIV_S, MASK_FDIV_S)
+DECLARE_INSN(fsgnj_s, MATCH_FSGNJ_S, MASK_FSGNJ_S)
+DECLARE_INSN(fsgnjn_s, MATCH_FSGNJN_S, MASK_FSGNJN_S)
+DECLARE_INSN(fsgnjx_s, MATCH_FSGNJX_S, MASK_FSGNJX_S)
+DECLARE_INSN(fmin_s, MATCH_FMIN_S, MASK_FMIN_S)
+DECLARE_INSN(fmax_s, MATCH_FMAX_S, MASK_FMAX_S)
+DECLARE_INSN(fsqrt_s, MATCH_FSQRT_S, MASK_FSQRT_S)
+DECLARE_INSN(fadd_d, MATCH_FADD_D, MASK_FADD_D)
+DECLARE_INSN(fsub_d, MATCH_FSUB_D, MASK_FSUB_D)
+DECLARE_INSN(fmul_d, MATCH_FMUL_D, MASK_FMUL_D)
+DECLARE_INSN(fdiv_d, MATCH_FDIV_D, MASK_FDIV_D)
+DECLARE_INSN(fsgnj_d, MATCH_FSGNJ_D, MASK_FSGNJ_D)
+DECLARE_INSN(fsgnjn_d, MATCH_FSGNJN_D, MASK_FSGNJN_D)
+DECLARE_INSN(fsgnjx_d, MATCH_FSGNJX_D, MASK_FSGNJX_D)
+DECLARE_INSN(fmin_d, MATCH_FMIN_D, MASK_FMIN_D)
+DECLARE_INSN(fmax_d, MATCH_FMAX_D, MASK_FMAX_D)
+DECLARE_INSN(fcvt_s_d, MATCH_FCVT_S_D, MASK_FCVT_S_D)
+DECLARE_INSN(fcvt_d_s, MATCH_FCVT_D_S, MASK_FCVT_D_S)
+DECLARE_INSN(fsqrt_d, MATCH_FSQRT_D, MASK_FSQRT_D)
+DECLARE_INSN(fle_s, MATCH_FLE_S, MASK_FLE_S)
+DECLARE_INSN(flt_s, MATCH_FLT_S, MASK_FLT_S)
+DECLARE_INSN(feq_s, MATCH_FEQ_S, MASK_FEQ_S)
+DECLARE_INSN(fle_d, MATCH_FLE_D, MASK_FLE_D)
+DECLARE_INSN(flt_d, MATCH_FLT_D, MASK_FLT_D)
+DECLARE_INSN(feq_d, MATCH_FEQ_D, MASK_FEQ_D)
+DECLARE_INSN(fcvt_w_s, MATCH_FCVT_W_S, MASK_FCVT_W_S)
+DECLARE_INSN(fcvt_wu_s, MATCH_FCVT_WU_S, MASK_FCVT_WU_S)
+DECLARE_INSN(fcvt_l_s, MATCH_FCVT_L_S, MASK_FCVT_L_S)
+DECLARE_INSN(fcvt_lu_s, MATCH_FCVT_LU_S, MASK_FCVT_LU_S)
+DECLARE_INSN(fmv_x_s, MATCH_FMV_X_S, MASK_FMV_X_S)
+DECLARE_INSN(fclass_s, MATCH_FCLASS_S, MASK_FCLASS_S)
+DECLARE_INSN(fcvt_w_d, MATCH_FCVT_W_D, MASK_FCVT_W_D)
+DECLARE_INSN(fcvt_wu_d, MATCH_FCVT_WU_D, MASK_FCVT_WU_D)
+DECLARE_INSN(fcvt_l_d, MATCH_FCVT_L_D, MASK_FCVT_L_D)
+DECLARE_INSN(fcvt_lu_d, MATCH_FCVT_LU_D, MASK_FCVT_LU_D)
+DECLARE_INSN(fmv_x_d, MATCH_FMV_X_D, MASK_FMV_X_D)
+DECLARE_INSN(fclass_d, MATCH_FCLASS_D, MASK_FCLASS_D)
+DECLARE_INSN(fcvt_s_w, MATCH_FCVT_S_W, MASK_FCVT_S_W)
+DECLARE_INSN(fcvt_s_wu, MATCH_FCVT_S_WU, MASK_FCVT_S_WU)
+DECLARE_INSN(fcvt_s_l, MATCH_FCVT_S_L, MASK_FCVT_S_L)
+DECLARE_INSN(fcvt_s_lu, MATCH_FCVT_S_LU, MASK_FCVT_S_LU)
+DECLARE_INSN(fmv_s_x, MATCH_FMV_S_X, MASK_FMV_S_X)
+DECLARE_INSN(fcvt_d_w, MATCH_FCVT_D_W, MASK_FCVT_D_W)
+DECLARE_INSN(fcvt_d_wu, MATCH_FCVT_D_WU, MASK_FCVT_D_WU)
+DECLARE_INSN(fcvt_d_l, MATCH_FCVT_D_L, MASK_FCVT_D_L)
+DECLARE_INSN(fcvt_d_lu, MATCH_FCVT_D_LU, MASK_FCVT_D_LU)
+DECLARE_INSN(fmv_d_x, MATCH_FMV_D_X, MASK_FMV_D_X)
+DECLARE_INSN(flw, MATCH_FLW, MASK_FLW)
+DECLARE_INSN(fld, MATCH_FLD, MASK_FLD)
+DECLARE_INSN(fsw, MATCH_FSW, MASK_FSW)
+DECLARE_INSN(fsd, MATCH_FSD, MASK_FSD)
+DECLARE_INSN(fmadd_s, MATCH_FMADD_S, MASK_FMADD_S)
+DECLARE_INSN(fmsub_s, MATCH_FMSUB_S, MASK_FMSUB_S)
+DECLARE_INSN(fnmsub_s, MATCH_FNMSUB_S, MASK_FNMSUB_S)
+DECLARE_INSN(fnmadd_s, MATCH_FNMADD_S, MASK_FNMADD_S)
+DECLARE_INSN(fmadd_d, MATCH_FMADD_D, MASK_FMADD_D)
+DECLARE_INSN(fmsub_d, MATCH_FMSUB_D, MASK_FMSUB_D)
+DECLARE_INSN(fnmsub_d, MATCH_FNMSUB_D, MASK_FNMSUB_D)
+DECLARE_INSN(fnmadd_d, MATCH_FNMADD_D, MASK_FNMADD_D)
+DECLARE_INSN(c_nop, MATCH_C_NOP, MASK_C_NOP)
+DECLARE_INSN(c_addi16sp, MATCH_C_ADDI16SP, MASK_C_ADDI16SP)
+DECLARE_INSN(c_jr, MATCH_C_JR, MASK_C_JR)
+DECLARE_INSN(c_jalr, MATCH_C_JALR, MASK_C_JALR)
+DECLARE_INSN(c_ebreak, MATCH_C_EBREAK, MASK_C_EBREAK)
+DECLARE_INSN(c_ld, MATCH_C_LD, MASK_C_LD)
+DECLARE_INSN(c_sd, MATCH_C_SD, MASK_C_SD)
+DECLARE_INSN(c_addiw, MATCH_C_ADDIW, MASK_C_ADDIW)
+DECLARE_INSN(c_ldsp, MATCH_C_LDSP, MASK_C_LDSP)
+DECLARE_INSN(c_sdsp, MATCH_C_SDSP, MASK_C_SDSP)
+DECLARE_INSN(c_addi4spn, MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN)
+DECLARE_INSN(c_fld, MATCH_C_FLD, MASK_C_FLD)
+DECLARE_INSN(c_lw, MATCH_C_LW, MASK_C_LW)
+DECLARE_INSN(c_flw, MATCH_C_FLW, MASK_C_FLW)
+DECLARE_INSN(c_fsd, MATCH_C_FSD, MASK_C_FSD)
+DECLARE_INSN(c_sw, MATCH_C_SW, MASK_C_SW)
+DECLARE_INSN(c_fsw, MATCH_C_FSW, MASK_C_FSW)
+DECLARE_INSN(c_addi, MATCH_C_ADDI, MASK_C_ADDI)
+DECLARE_INSN(c_jal, MATCH_C_JAL, MASK_C_JAL)
+DECLARE_INSN(c_li, MATCH_C_LI, MASK_C_LI)
+DECLARE_INSN(c_lui, MATCH_C_LUI, MASK_C_LUI)
+DECLARE_INSN(c_srli, MATCH_C_SRLI, MASK_C_SRLI)
+DECLARE_INSN(c_srai, MATCH_C_SRAI, MASK_C_SRAI)
+DECLARE_INSN(c_andi, MATCH_C_ANDI, MASK_C_ANDI)
+DECLARE_INSN(c_sub, MATCH_C_SUB, MASK_C_SUB)
+DECLARE_INSN(c_xor, MATCH_C_XOR, MASK_C_XOR)
+DECLARE_INSN(c_or, MATCH_C_OR, MASK_C_OR)
+DECLARE_INSN(c_and, MATCH_C_AND, MASK_C_AND)
+DECLARE_INSN(c_subw, MATCH_C_SUBW, MASK_C_SUBW)
+DECLARE_INSN(c_addw, MATCH_C_ADDW, MASK_C_ADDW)
+DECLARE_INSN(c_j, MATCH_C_J, MASK_C_J)
+DECLARE_INSN(c_beqz, MATCH_C_BEQZ, MASK_C_BEQZ)
+DECLARE_INSN(c_bnez, MATCH_C_BNEZ, MASK_C_BNEZ)
+DECLARE_INSN(c_slli, MATCH_C_SLLI, MASK_C_SLLI)
+DECLARE_INSN(c_fldsp, MATCH_C_FLDSP, MASK_C_FLDSP)
+DECLARE_INSN(c_lwsp, MATCH_C_LWSP, MASK_C_LWSP)
+DECLARE_INSN(c_flwsp, MATCH_C_FLWSP, MASK_C_FLWSP)
+DECLARE_INSN(c_mv, MATCH_C_MV, MASK_C_MV)
+DECLARE_INSN(c_add, MATCH_C_ADD, MASK_C_ADD)
+DECLARE_INSN(c_fsdsp, MATCH_C_FSDSP, MASK_C_FSDSP)
+DECLARE_INSN(c_swsp, MATCH_C_SWSP, MASK_C_SWSP)
+DECLARE_INSN(c_fswsp, MATCH_C_FSWSP, MASK_C_FSWSP)
+DECLARE_INSN(custom0, MATCH_CUSTOM0, MASK_CUSTOM0)
+DECLARE_INSN(custom0_rs1, MATCH_CUSTOM0_RS1, MASK_CUSTOM0_RS1)
+DECLARE_INSN(custom0_rs1_rs2, MATCH_CUSTOM0_RS1_RS2, MASK_CUSTOM0_RS1_RS2)
+DECLARE_INSN(custom0_rd, MATCH_CUSTOM0_RD, MASK_CUSTOM0_RD)
+DECLARE_INSN(custom0_rd_rs1, MATCH_CUSTOM0_RD_RS1, MASK_CUSTOM0_RD_RS1)
+DECLARE_INSN(custom0_rd_rs1_rs2, MATCH_CUSTOM0_RD_RS1_RS2,
+MASK_CUSTOM0_RD_RS1_RS2)
+DECLARE_INSN(custom1, MATCH_CUSTOM1, MASK_CUSTOM1)
+DECLARE_INSN(custom1_rs1, MATCH_CUSTOM1_RS1, MASK_CUSTOM1_RS1)
+DECLARE_INSN(custom1_rs1_rs2, MATCH_CUSTOM1_RS1_RS2, MASK_CUSTOM1_RS1_RS2)
+DECLARE_INSN(custom1_rd, MATCH_CUSTOM1_RD, MASK_CUSTOM1_RD)
+DECLARE_INSN(custom1_rd_rs1, MATCH_CUSTOM1_RD_RS1, MASK_CUSTOM1_RD_RS1)
+DECLARE_INSN(custom1_rd_rs1_rs2, MATCH_CUSTOM1_RD_RS1_RS2,
+MASK_CUSTOM1_RD_RS1_RS2)
+DECLARE_INSN(custom2, MATCH_CUSTOM2, MASK_CUSTOM2)
+DECLARE_INSN(custom2_rs1, MATCH_CUSTOM2_RS1, MASK_CUSTOM2_RS1)
+DECLARE_INSN(custom2_rs1_rs2, MATCH_CUSTOM2_RS1_RS2, MASK_CUSTOM2_RS1_RS2)
+DECLARE_INSN(custom2_rd, MATCH_CUSTOM2_RD, MASK_CUSTOM2_RD)
+DECLARE_INSN(custom2_rd_rs1, MATCH_CUSTOM2_RD_RS1, MASK_CUSTOM2_RD_RS1)
+DECLARE_INSN(custom2_rd_rs1_rs2, MATCH_CUSTOM2_RD_RS1_RS2,
+MASK_CUSTOM2_RD_RS1_RS2)
+DECLARE_INSN(custom3, MATCH_CUSTOM3, MASK_CUSTOM3)
+DECLARE_INSN(custom3_rs1, MATCH_CUSTOM3_RS1, MASK_CUSTOM3_RS1)
+DECLARE_INSN(custom3_rs1_rs2, MATCH_CUSTOM3_RS1_RS2, MASK_CUSTOM3_RS1_RS2)
+DECLARE_INSN(custom3_rd, MATCH_CUSTOM3_RD, MASK_CUSTOM3_RD)
+DECLARE_INSN(custom3_rd_rs1, MATCH_CUSTOM3_RD_RS1, MASK_CUSTOM3_RD_RS1)
+DECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2,
+MASK_CUSTOM3_RD_RS1_RS2)
+#endif
+#ifdef DECLARE_CSR
+DECLARE_CSR(fflags, CSR_FFLAGS)
+DECLARE_CSR(frm, CSR_FRM)
+DECLARE_CSR(fcsr, CSR_FCSR)
+DECLARE_CSR(cycle, CSR_CYCLE)
+DECLARE_CSR(time, CSR_TIME)
+DECLARE_CSR(instret, CSR_INSTRET)
+DECLARE_CSR(hpmcounter3, CSR_HPMCOUNTER3)
+DECLARE_CSR(hpmcounter4, CSR_HPMCOUNTER4)
+DECLARE_CSR(hpmcounter5, CSR_HPMCOUNTER5)
+DECLARE_CSR(hpmcounter6, CSR_HPMCOUNTER6)
+DECLARE_CSR(hpmcounter7, CSR_HPMCOUNTER7)
+DECLARE_CSR(hpmcounter8, CSR_HPMCOUNTER8)
+DECLARE_CSR(hpmcounter9, CSR_HPMCOUNTER9)
+DECLARE_CSR(hpmcounter10, CSR_HPMCOUNTER10)
+DECLARE_CSR(hpmcounter11, CSR_HPMCOUNTER11)
+DECLARE_CSR(hpmcounter12, CSR_HPMCOUNTER12)
+DECLARE_CSR(hpmcounter13, CSR_HPMCOUNTER13)
+DECLARE_CSR(hpmcounter14, CSR_HPMCOUNTER14)
+DECLARE_CSR(hpmcounter15, CSR_HPMCOUNTER15)
+DECLARE_CSR(hpmcounter16, CSR_HPMCOUNTER16)
+DECLARE_CSR(hpmcounter17, CSR_HPMCOUNTER17)
+DECLARE_CSR(hpmcounter18, CSR_HPMCOUNTER18)
+DECLARE_CSR(hpmcounter19, CSR_HPMCOUNTER19)
+DECLARE_CSR(hpmcounter20, CSR_HPMCOUNTER20)
+DECLARE_CSR(hpmcounter21, CSR_HPMCOUNTER21)
+DECLARE_CSR(hpmcounter22, CSR_HPMCOUNTER22)
+DECLARE_CSR(hpmcounter23, CSR_HPMCOUNTER23)
+DECLARE_CSR(hpmcounter24, CSR_HPMCOUNTER24)
+DECLARE_CSR(hpmcounter25, CSR_HPMCOUNTER25)
+DECLARE_CSR(hpmcounter26, CSR_HPMCOUNTER26)
+DECLARE_CSR(hpmcounter27, CSR_HPMCOUNTER27)
+DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER28)
+DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29)
+DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30)
+DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31)
+DECLARE_CSR(sstatus, CSR_SSTATUS)
+DECLARE_CSR(sie, CSR_SIE)
+DECLARE_CSR(stvec, CSR_STVEC)
+DECLARE_CSR(sscratch, CSR_SSCRATCH)
+DECLARE_CSR(sepc, CSR_SEPC)
+DECLARE_CSR(scause, CSR_SCAUSE)
+DECLARE_CSR(sbadaddr, CSR_SBADADDR)
+DECLARE_CSR(sip, CSR_SIP)
+DECLARE_CSR(sptbr, CSR_SPTBR)
+DECLARE_CSR(mstatus, CSR_MSTATUS)
+DECLARE_CSR(misa, CSR_MISA)
+DECLARE_CSR(medeleg, CSR_MEDELEG)
+DECLARE_CSR(mideleg, CSR_MIDELEG)
+DECLARE_CSR(mie, CSR_MIE)
+DECLARE_CSR(mtvec, CSR_MTVEC)
+DECLARE_CSR(mscratch, CSR_MSCRATCH)
+DECLARE_CSR(mepc, CSR_MEPC)
+DECLARE_CSR(mcause, CSR_MCAUSE)
+DECLARE_CSR(mbadaddr, CSR_MBADADDR)
+DECLARE_CSR(mip, CSR_MIP)
+DECLARE_CSR(tselect, CSR_TSELECT)
+DECLARE_CSR(tdata1, CSR_TDATA1)
+DECLARE_CSR(tdata2, CSR_TDATA2)
+DECLARE_CSR(tdata3, CSR_TDATA3)
+DECLARE_CSR(dcsr, CSR_DCSR)
+DECLARE_CSR(dpc, CSR_DPC)
+DECLARE_CSR(dscratch, CSR_DSCRATCH)
+DECLARE_CSR(mcycle, CSR_MCYCLE)
+DECLARE_CSR(minstret, CSR_MINSTRET)
+DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3)
+DECLARE_CSR(mhpmcounter4, CSR_MHPMCOUNTER4)
+DECLARE_CSR(mhpmcounter5, CSR_MHPMCOUNTER5)
+DECLARE_CSR(mhpmcounter6, CSR_MHPMCOUNTER6)
+DECLARE_CSR(mhpmcounter7, CSR_MHPMCOUNTER7)
+DECLARE_CSR(mhpmcounter8, CSR_MHPMCOUNTER8)
+DECLARE_CSR(mhpmcounter9, CSR_MHPMCOUNTER9)
+DECLARE_CSR(mhpmcounter10, CSR_MHPMCOUNTER10)
+DECLARE_CSR(mhpmcounter11, CSR_MHPMCOUNTER11)
+DECLARE_CSR(mhpmcounter12, CSR_MHPMCOUNTER12)
+DECLARE_CSR(mhpmcounter13, CSR_MHPMCOUNTER13)
+DECLARE_CSR(mhpmcounter14, CSR_MHPMCOUNTER14)
+DECLARE_CSR(mhpmcounter15, CSR_MHPMCOUNTER15)
+DECLARE_CSR(mhpmcounter16, CSR_MHPMCOUNTER16)
+DECLARE_CSR(mhpmcounter17, CSR_MHPMCOUNTER17)
+DECLARE_CSR(mhpmcounter18, CSR_MHPMCOUNTER18)
+DECLARE_CSR(mhpmcounter19, CSR_MHPMCOUNTER19)
+DECLARE_CSR(mhpmcounter20, CSR_MHPMCOUNTER20)
+DECLARE_CSR(mhpmcounter21, CSR_MHPMCOUNTER21)
+DECLARE_CSR(mhpmcounter22, CSR_MHPMCOUNTER22)
+DECLARE_CSR(mhpmcounter23, CSR_MHPMCOUNTER23)
+DECLARE_CSR(mhpmcounter24, CSR_MHPMCOUNTER24)
+DECLARE_CSR(mhpmcounter25, CSR_MHPMCOUNTER25)
+DECLARE_CSR(mhpmcounter26, CSR_MHPMCOUNTER26)
+DECLARE_CSR(mhpmcounter27, CSR_MHPMCOUNTER27)
+DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNTER28)
+DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29)
+DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30)
+DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31)
+DECLARE_CSR(mucounteren, CSR_MUCOUNTEREN)
+DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN)
+DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
+DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
+DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
+DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
+DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
+DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
+DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
+DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
+DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
+DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
+DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
+DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
+DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
+DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
+DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
+DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
+DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
+DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
+DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
+DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
+DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
+DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
+DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
+DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
+DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
+DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
+DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
+DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
+DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
+DECLARE_CSR(mvendorid, CSR_MVENDORID)
+DECLARE_CSR(marchid, CSR_MARCHID)
+DECLARE_CSR(mimpid, CSR_MIMPID)
+DECLARE_CSR(mhartid, CSR_MHARTID)
+DECLARE_CSR(cycleh, CSR_CYCLEH)
+DECLARE_CSR(timeh, CSR_TIMEH)
+DECLARE_CSR(instreth, CSR_INSTRETH)
+DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H)
+DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H)
+DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H)
+DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H)
+DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H)
+DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H)
+DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H)
+DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H)
+DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H)
+DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H)
+DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H)
+DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H)
+DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H)
+DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H)
+DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H)
+DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H)
+DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H)
+DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H)
+DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H)
+DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H)
+DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H)
+DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H)
+DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H)
+DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H)
+DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H)
+DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H)
+DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H)
+DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H)
+DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H)
+DECLARE_CSR(mcycleh, CSR_MCYCLEH)
+DECLARE_CSR(minstreth, CSR_MINSTRETH)
+DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H)
+DECLARE_CSR(mhpmcounter4h, CSR_MHPMCOUNTER4H)
+DECLARE_CSR(mhpmcounter5h, CSR_MHPMCOUNTER5H)
+DECLARE_CSR(mhpmcounter6h, CSR_MHPMCOUNTER6H)
+DECLARE_CSR(mhpmcounter7h, CSR_MHPMCOUNTER7H)
+DECLARE_CSR(mhpmcounter8h, CSR_MHPMCOUNTER8H)
+DECLARE_CSR(mhpmcounter9h, CSR_MHPMCOUNTER9H)
+DECLARE_CSR(mhpmcounter10h, CSR_MHPMCOUNTER10H)
+DECLARE_CSR(mhpmcounter11h, CSR_MHPMCOUNTER11H)
+DECLARE_CSR(mhpmcounter12h, CSR_MHPMCOUNTER12H)
+DECLARE_CSR(mhpmcounter13h, CSR_MHPMCOUNTER13H)
+DECLARE_CSR(mhpmcounter14h, CSR_MHPMCOUNTER14H)
+DECLARE_CSR(mhpmcounter15h, CSR_MHPMCOUNTER15H)
+DECLARE_CSR(mhpmcounter16h, CSR_MHPMCOUNTER16H)
+DECLARE_CSR(mhpmcounter17h, CSR_MHPMCOUNTER17H)
+DECLARE_CSR(mhpmcounter18h, CSR_MHPMCOUNTER18H)
+DECLARE_CSR(mhpmcounter19h, CSR_MHPMCOUNTER19H)
+DECLARE_CSR(mhpmcounter20h, CSR_MHPMCOUNTER20H)
+DECLARE_CSR(mhpmcounter21h, CSR_MHPMCOUNTER21H)
+DECLARE_CSR(mhpmcounter22h, CSR_MHPMCOUNTER22H)
+DECLARE_CSR(mhpmcounter23h, CSR_MHPMCOUNTER23H)
+DECLARE_CSR(mhpmcounter24h, CSR_MHPMCOUNTER24H)
+DECLARE_CSR(mhpmcounter25h, CSR_MHPMCOUNTER25H)
+DECLARE_CSR(mhpmcounter26h, CSR_MHPMCOUNTER26H)
+DECLARE_CSR(mhpmcounter27h, CSR_MHPMCOUNTER27H)
+DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUNTER28H)
+DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H)
+DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H)
+DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H)
+#endif
+#ifdef DECLARE_CAUSE
+DECLARE_CAUSE("misaligned fetch", CAUSE_MISALIGNED_FETCH)
+DECLARE_CAUSE("fault fetch", CAUSE_FAULT_FETCH)
+DECLARE_CAUSE("illegal instruction", CAUSE_ILLEGAL_INSTRUCTION)
+DECLARE_CAUSE("breakpoint", CAUSE_BREAKPOINT)
+DECLARE_CAUSE("misaligned load", CAUSE_MISALIGNED_LOAD)
+DECLARE_CAUSE("fault load", CAUSE_FAULT_LOAD)
+DECLARE_CAUSE("misaligned store", CAUSE_MISALIGNED_STORE)
+DECLARE_CAUSE("fault store", CAUSE_FAULT_STORE)
+DECLARE_CAUSE("user_ecall", CAUSE_USER_ECALL)
+DECLARE_CAUSE("supervisor_ecall", CAUSE_SUPERVISOR_ECALL)
+DECLARE_CAUSE("hypervisor_ecall", CAUSE_HYPERVISOR_ECALL)
+DECLARE_CAUSE("machine_ecall", CAUSE_MACHINE_ECALL)
+#endif
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x4.lds b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x4.lds
new file mode 100644
index 0000000000..fe1d0befb6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x4.lds
@@ -0,0 +1,200 @@
+OUTPUT_ARCH( "riscv" )
+
+ENTRY( _start )
+
+MEMORY
+{
+ /* Run in FLASH */
+ flash (rxai!w) : ORIGIN = 0x08000000, LENGTH = 16k
+ ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 6k
+
+ /* Run in RAM */
+/* flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 4k
+ ram (wxa!ri) : ORIGIN = 0x20001000, LENGTH = 2K
+*/
+}
+
+
+SECTIONS
+{
+ __stack_size = DEFINED(__stack_size) ? __stack_size : 1K;
+
+
+ .init :
+ {
+ KEEP (*(SORT_NONE(.init)))
+ } >flash AT>flash
+
+ .ilalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _ilm_lma = . );
+ } >flash AT>flash
+
+ .ialign :
+ {
+ PROVIDE( _ilm = . );
+ } >flash AT>flash
+
+ .text :
+ {
+ *(.rodata .rodata.*)
+ *(.text.unlikely .text.unlikely.*)
+ *(.text.startup .text.startup.*)
+ *(.text .text.*)
+ *(.gnu.linkonce.t.*)
+
+ /* section information for finsh shell */
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ KEEP(*(FSymTab))
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ KEEP(*(VSymTab))
+ __vsymtab_end = .;
+ . = ALIGN(4);
+
+ /* section information for initial. */
+ . = ALIGN(4);
+ __rt_init_start = .;
+ KEEP(*(SORT(.rti_fn*)))
+ __rt_init_end = .;
+ . = ALIGN(4);
+
+ /* section information for modules */
+ . = ALIGN(4);
+ __rtmsymtab_start = .;
+ KEEP(*(RTMSymTab))
+ __rtmsymtab_end = .;
+
+ } >flash AT>flash
+
+ .fini :
+ {
+ KEEP (*(SORT_NONE(.fini)))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+
+ PROVIDE (__etext = .);
+ PROVIDE (_etext = .);/*0x80022c8*/
+ PROVIDE (etext = .);/*0x80022c8*/
+ PROVIDE( _eilm = . );
+
+ .preinit_array :
+ {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } >flash AT>flash
+
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
+ KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } >flash AT>flash
+
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
+ KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } >flash AT>flash
+
+ .ctors :
+ {
+ /* gcc uses crtbegin.o to find the start of
+ the constructors, so we make sure it is
+ first. Because this is a wildcard, it
+ doesn't matter if the user does not
+ actually link against crtbegin.o; the
+ linker won't look for a file to match a
+ wildcard. The wildcard also means that it
+ doesn't matter which directory crtbegin.o
+ is in. */
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ /* We don't want to include the .ctor section from
+ the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last */
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ } >flash AT>flash
+
+ .dtors :
+ {
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _eilm = . );
+
+ .lalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data_lma = . );
+ } >flash AT>flash
+
+ .dalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data = . );
+ } >ram AT>flash
+
+
+ .data :
+ {
+ *(.rdata)
+
+ *(.gnu.linkonce.r.*)
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ . = ALIGN(8);
+ PROVIDE( __global_pointer$ = . + 0x800);
+ *(.sdata .sdata.*)
+ *(.gnu.linkonce.s.*)
+ . = ALIGN(8);
+ *(.srodata.cst16)
+ *(.srodata.cst8)
+ *(.srodata.cst4)
+ *(.srodata.cst2)
+ *(.srodata .srodata.*)
+ } >ram AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _edata = . );
+ PROVIDE( edata = . );
+
+ PROVIDE( _fbss = . ); /*0X200052A0 0X200002A0*/
+ PROVIDE( __bss_start = . );
+ .bss :
+ {
+ *(.sbss*)
+ *(.gnu.linkonce.sb.*)
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ . = ALIGN(4);
+ } >ram AT>ram
+
+ . = ALIGN(8);
+ PROVIDE( _end = . ); /*0X2000,0340*/
+ PROVIDE( end = . );
+
+ .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
+ {
+ PROVIDE( _heap_end = . );
+ . = __stack_size;
+ PROVIDE( _sp = . );
+ } >ram AT>ram
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x6.lds b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x6.lds
new file mode 100644
index 0000000000..4aea1558d2
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x6.lds
@@ -0,0 +1,200 @@
+OUTPUT_ARCH( "riscv" )
+
+ENTRY( _start )
+
+MEMORY
+{
+ /* Run in FLASH */
+ flash (rxai!w) : ORIGIN = 0x08000000, LENGTH = 32k
+ ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 10k
+
+ /* Run in RAM */
+/* flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 7k
+ ram (wxa!ri) : ORIGIN = 0x20001C00, LENGTH = 3K
+*/
+}
+
+
+SECTIONS
+{
+ __stack_size = DEFINED(__stack_size) ? __stack_size : 1K;
+
+
+ .init :
+ {
+ KEEP (*(SORT_NONE(.init)))
+ } >flash AT>flash
+
+ .ilalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _ilm_lma = . );
+ } >flash AT>flash
+
+ .ialign :
+ {
+ PROVIDE( _ilm = . );
+ } >flash AT>flash
+
+ .text :
+ {
+ *(.rodata .rodata.*)
+ *(.text.unlikely .text.unlikely.*)
+ *(.text.startup .text.startup.*)
+ *(.text .text.*)
+ *(.gnu.linkonce.t.*)
+
+ /* section information for finsh shell */
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ KEEP(*(FSymTab))
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ KEEP(*(VSymTab))
+ __vsymtab_end = .;
+ . = ALIGN(4);
+
+ /* section information for initial. */
+ . = ALIGN(4);
+ __rt_init_start = .;
+ KEEP(*(SORT(.rti_fn*)))
+ __rt_init_end = .;
+ . = ALIGN(4);
+
+ /* section information for modules */
+ . = ALIGN(4);
+ __rtmsymtab_start = .;
+ KEEP(*(RTMSymTab))
+ __rtmsymtab_end = .;
+
+ } >flash AT>flash
+
+ .fini :
+ {
+ KEEP (*(SORT_NONE(.fini)))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+
+ PROVIDE (__etext = .);
+ PROVIDE (_etext = .);/*0x80022c8*/
+ PROVIDE (etext = .);/*0x80022c8*/
+ PROVIDE( _eilm = . );
+
+ .preinit_array :
+ {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } >flash AT>flash
+
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
+ KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } >flash AT>flash
+
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
+ KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } >flash AT>flash
+
+ .ctors :
+ {
+ /* gcc uses crtbegin.o to find the start of
+ the constructors, so we make sure it is
+ first. Because this is a wildcard, it
+ doesn't matter if the user does not
+ actually link against crtbegin.o; the
+ linker won't look for a file to match a
+ wildcard. The wildcard also means that it
+ doesn't matter which directory crtbegin.o
+ is in. */
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ /* We don't want to include the .ctor section from
+ the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last */
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ } >flash AT>flash
+
+ .dtors :
+ {
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _eilm = . );
+
+ .lalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data_lma = . );
+ } >flash AT>flash
+
+ .dalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data = . );
+ } >ram AT>flash
+
+
+ .data :
+ {
+ *(.rdata)
+
+ *(.gnu.linkonce.r.*)
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ . = ALIGN(8);
+ PROVIDE( __global_pointer$ = . + 0x800);
+ *(.sdata .sdata.*)
+ *(.gnu.linkonce.s.*)
+ . = ALIGN(8);
+ *(.srodata.cst16)
+ *(.srodata.cst8)
+ *(.srodata.cst4)
+ *(.srodata.cst2)
+ *(.srodata .srodata.*)
+ } >ram AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _edata = . );
+ PROVIDE( edata = . );
+
+ PROVIDE( _fbss = . ); /*0X200052A0 0X200002A0*/
+ PROVIDE( __bss_start = . );
+ .bss :
+ {
+ *(.sbss*)
+ *(.gnu.linkonce.sb.*)
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ . = ALIGN(4);
+ } >ram AT>ram
+
+ . = ALIGN(8);
+ PROVIDE( _end = . ); /*0X2000,0340*/
+ PROVIDE( end = . );
+
+ .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
+ {
+ PROVIDE( _heap_end = . );
+ . = __stack_size;
+ PROVIDE( _sp = . );
+ } >ram AT>ram
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x8.lds b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x8.lds
new file mode 100644
index 0000000000..daa0369232
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103x8.lds
@@ -0,0 +1,200 @@
+OUTPUT_ARCH( "riscv" )
+
+ENTRY( _start )
+
+MEMORY
+{
+ /* Run in FLASH */
+ flash (rxai!w) : ORIGIN = 0x08000000, LENGTH = 64k
+ ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 20k
+
+ /* Run in RAM */
+/* flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 15k
+ ram (wxa!ri) : ORIGIN = 0x20003C00, LENGTH = 5K
+*/
+}
+
+
+SECTIONS
+{
+ __stack_size = DEFINED(__stack_size) ? __stack_size : 2K;
+
+
+ .init :
+ {
+ KEEP (*(SORT_NONE(.init)))
+ } >flash AT>flash
+
+ .ilalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _ilm_lma = . );
+ } >flash AT>flash
+
+ .ialign :
+ {
+ PROVIDE( _ilm = . );
+ } >flash AT>flash
+
+ .text :
+ {
+ *(.rodata .rodata.*)
+ *(.text.unlikely .text.unlikely.*)
+ *(.text.startup .text.startup.*)
+ *(.text .text.*)
+ *(.gnu.linkonce.t.*)
+
+ /* section information for finsh shell */
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ KEEP(*(FSymTab))
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ KEEP(*(VSymTab))
+ __vsymtab_end = .;
+ . = ALIGN(4);
+
+ /* section information for initial. */
+ . = ALIGN(4);
+ __rt_init_start = .;
+ KEEP(*(SORT(.rti_fn*)))
+ __rt_init_end = .;
+ . = ALIGN(4);
+
+ /* section information for modules */
+ . = ALIGN(4);
+ __rtmsymtab_start = .;
+ KEEP(*(RTMSymTab))
+ __rtmsymtab_end = .;
+
+ } >flash AT>flash
+
+ .fini :
+ {
+ KEEP (*(SORT_NONE(.fini)))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+
+ PROVIDE (__etext = .);
+ PROVIDE (_etext = .);/*0x80022c8*/
+ PROVIDE (etext = .);/*0x80022c8*/
+ PROVIDE( _eilm = . );
+
+ .preinit_array :
+ {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } >flash AT>flash
+
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
+ KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } >flash AT>flash
+
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
+ KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } >flash AT>flash
+
+ .ctors :
+ {
+ /* gcc uses crtbegin.o to find the start of
+ the constructors, so we make sure it is
+ first. Because this is a wildcard, it
+ doesn't matter if the user does not
+ actually link against crtbegin.o; the
+ linker won't look for a file to match a
+ wildcard. The wildcard also means that it
+ doesn't matter which directory crtbegin.o
+ is in. */
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ /* We don't want to include the .ctor section from
+ the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last */
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ } >flash AT>flash
+
+ .dtors :
+ {
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _eilm = . );
+
+ .lalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data_lma = . );
+ } >flash AT>flash
+
+ .dalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data = . );
+ } >ram AT>flash
+
+
+ .data :
+ {
+ *(.rdata)
+
+ *(.gnu.linkonce.r.*)
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ . = ALIGN(8);
+ PROVIDE( __global_pointer$ = . + 0x800);
+ *(.sdata .sdata.*)
+ *(.gnu.linkonce.s.*)
+ . = ALIGN(8);
+ *(.srodata.cst16)
+ *(.srodata.cst8)
+ *(.srodata.cst4)
+ *(.srodata.cst2)
+ *(.srodata .srodata.*)
+ } >ram AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _edata = . );
+ PROVIDE( edata = . );
+
+ PROVIDE( _fbss = . ); /*0X200052A0 0X200002A0*/
+ PROVIDE( __bss_start = . );
+ .bss :
+ {
+ *(.sbss*)
+ *(.gnu.linkonce.sb.*)
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ . = ALIGN(4);
+ } >ram AT>ram
+
+ . = ALIGN(8);
+ PROVIDE( _end = . ); /*0X2000,0340*/
+ PROVIDE( end = . );
+
+ .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
+ {
+ PROVIDE( _heap_end = . );
+ . = __stack_size;
+ PROVIDE( _sp = . );
+ } >ram AT>ram
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds
new file mode 100644
index 0000000000..7651c00255
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds
@@ -0,0 +1,199 @@
+OUTPUT_ARCH( "riscv" )
+
+ENTRY( _start )
+
+MEMORY
+{
+ /* Run in FLASH */
+ flash (rxai!w) : ORIGIN = 0x08000000, LENGTH = 128k
+ ram (wxa!ri) : ORIGIN = 0x20000000, LENGTH = 32K
+
+ /* Run in RAM */
+/* flash (rxai!w) : ORIGIN = 0x20000000, LENGTH = 24k
+ ram (wxa!ri) : ORIGIN = 0x20006000, LENGTH = 8K
+*/
+}
+
+
+SECTIONS
+{
+ __stack_size = DEFINED(__stack_size) ? __stack_size : 4K;
+
+
+ .init :
+ {
+ KEEP (*(SORT_NONE(.init)))
+ } >flash AT>flash
+
+ .ilalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _ilm_lma = . );
+ } >flash AT>flash
+
+ .ialign :
+ {
+ PROVIDE( _ilm = . );
+ } >flash AT>flash
+
+ .text :
+ {
+ *(.rodata .rodata.*)
+ *(.text.unlikely .text.unlikely.*)
+ *(.text.startup .text.startup.*)
+ *(.text .text.*)
+ *(.gnu.linkonce.t.*)
+
+ /* section information for finsh shell */
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ KEEP(*(FSymTab))
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ KEEP(*(VSymTab))
+ __vsymtab_end = .;
+ . = ALIGN(4);
+
+ /* section information for initial. */
+ . = ALIGN(4);
+ __rt_init_start = .;
+ KEEP(*(SORT(.rti_fn*)))
+ __rt_init_end = .;
+ . = ALIGN(4);
+
+ /* section information for modules */
+ . = ALIGN(4);
+ __rtmsymtab_start = .;
+ KEEP(*(RTMSymTab))
+ __rtmsymtab_end = .;
+ } >flash AT>flash
+
+ .fini :
+ {
+ KEEP (*(SORT_NONE(.fini)))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+
+ PROVIDE (__etext = .);
+ PROVIDE (_etext = .);/*0x80022c8*/
+ PROVIDE (etext = .);/*0x80022c8*/
+ PROVIDE( _eilm = . );
+
+ .preinit_array :
+ {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } >flash AT>flash
+
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
+ KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } >flash AT>flash
+
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
+ KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } >flash AT>flash
+
+ .ctors :
+ {
+ /* gcc uses crtbegin.o to find the start of
+ the constructors, so we make sure it is
+ first. Because this is a wildcard, it
+ doesn't matter if the user does not
+ actually link against crtbegin.o; the
+ linker won't look for a file to match a
+ wildcard. The wildcard also means that it
+ doesn't matter which directory crtbegin.o
+ is in. */
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ /* We don't want to include the .ctor section from
+ the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last */
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ } >flash AT>flash
+
+ .dtors :
+ {
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ } >flash AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _eilm = . );
+
+ .lalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data_lma = . );
+ } >flash AT>flash
+
+ .dalign :
+ {
+ . = ALIGN(4);
+ PROVIDE( _data = . );
+ } >ram AT>flash
+
+
+ .data :
+ {
+ *(.rdata)
+
+ *(.gnu.linkonce.r.*)
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ . = ALIGN(8);
+ PROVIDE( __global_pointer$ = . + 0x800);
+ *(.sdata .sdata.*)
+ *(.gnu.linkonce.s.*)
+ . = ALIGN(8);
+ *(.srodata.cst16)
+ *(.srodata.cst8)
+ *(.srodata.cst4)
+ *(.srodata.cst2)
+ *(.srodata .srodata.*)
+ } >ram AT>flash
+
+ . = ALIGN(4);
+ PROVIDE( _edata = . );
+ PROVIDE( edata = . );
+
+ PROVIDE( _fbss = . ); /*0X200052A0 0X200002A0*/
+ PROVIDE( __bss_start = . );
+ .bss :
+ {
+ *(.sbss*)
+ *(.gnu.linkonce.sb.*)
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ . = ALIGN(4);
+ } >ram AT>ram
+
+ . = ALIGN(8);
+ PROVIDE( _end = . ); /*0X2000,0340*/
+ PROVIDE( end = . );
+
+ .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
+ {
+ PROVIDE( _heap_end = . );
+ . = __stack_size;
+ PROVIDE( _sp = . );
+ } >ram AT>ram
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/entry.S b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/entry.S
new file mode 100644
index 0000000000..a95f968d2e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/entry.S
@@ -0,0 +1,286 @@
+// See LICENSE for license details
+
+#ifndef ENTRY_S
+#define ENTRY_S
+
+#include "riscv_encoding.h"
+#include "riscv_bits.h"
+#include "n200_eclic.h"
+#include "n200_timer.h"
+
+###############################################
+###############################################
+# Disable Interrupt
+#
+.macro DISABLE_MIE
+ csrc CSR_MSTATUS, MSTATUS_MIE
+.endm
+
+
+###############################################
+###############################################
+#Save caller registers
+.macro SAVE_CONTEXT
+
+#ifdef __riscv_flen
+ #if (__riscv_flen==64 )
+ addi sp, sp, -20*REGBYTES - 20*FPREGBYTES
+ #else
+ addi sp, sp, -20*REGBYTES
+ #endif
+#else
+ addi sp, sp, -20*REGBYTES
+#endif
+ STORE x1, 0*REGBYTES(sp)
+ STORE x4, 1*REGBYTES(sp)
+ STORE x5, 2*REGBYTES(sp)
+ STORE x6, 3*REGBYTES(sp)
+ STORE x7, 4*REGBYTES(sp)
+ STORE x10, 5*REGBYTES(sp)
+ STORE x11, 6*REGBYTES(sp)
+ STORE x12, 7*REGBYTES(sp)
+ STORE x13, 8*REGBYTES(sp)
+ STORE x14, 9*REGBYTES(sp)
+ STORE x15, 10*REGBYTES(sp)
+#ifndef __riscv_32e
+ STORE x16, 11*REGBYTES(sp)
+ STORE x17, 12*REGBYTES(sp)
+ STORE x28, 13*REGBYTES(sp)
+ STORE x29, 14*REGBYTES(sp)
+ STORE x30, 15*REGBYTES(sp)
+ STORE x31, 16*REGBYTES(sp)
+#endif
+
+#ifdef __riscv_flen
+ #if (__riscv_flen == 64)
+ FPSTORE f0, (20*REGBYTES + 0*FPREGBYTES)(sp)
+ FPSTORE f1, (20*REGBYTES + 1*FPREGBYTES)(sp)
+ FPSTORE f2, (20*REGBYTES + 2*FPREGBYTES)(sp)
+ FPSTORE f3, (20*REGBYTES + 3*FPREGBYTES)(sp)
+ FPSTORE f4, (20*REGBYTES + 4*FPREGBYTES)(sp)
+ FPSTORE f5, (20*REGBYTES + 5*FPREGBYTES)(sp)
+ FPSTORE f6, (20*REGBYTES + 6*FPREGBYTES)(sp)
+ FPSTORE f7, (20*REGBYTES + 7*FPREGBYTES)(sp)
+ FPSTORE f10, (20*REGBYTES + 8*FPREGBYTES)(sp)
+ FPSTORE f11, (20*REGBYTES + 9*FPREGBYTES)(sp)
+ FPSTORE f12, (20*REGBYTES + 10*FPREGBYTES)(sp)
+ FPSTORE f13, (20*REGBYTES + 11*FPREGBYTES)(sp)
+ FPSTORE f14, (20*REGBYTES + 12*FPREGBYTES)(sp)
+ FPSTORE f15, (20*REGBYTES + 13*FPREGBYTES)(sp)
+ FPSTORE f16, (20*REGBYTES + 14*FPREGBYTES)(sp)
+ FPSTORE f17, (20*REGBYTES + 15*FPREGBYTES)(sp)
+ FPSTORE f28, (20*REGBYTES + 16*FPREGBYTES)(sp)
+ FPSTORE f29, (20*REGBYTES + 17*FPREGBYTES)(sp)
+ FPSTORE f30, (20*REGBYTES + 18*FPREGBYTES)(sp)
+ FPSTORE f31, (20*REGBYTES + 19*FPREGBYTES)(sp)
+ #endif
+#endif
+
+
+.endm
+
+
+###############################################
+###############################################
+#restore caller registers
+.macro RESTORE_CONTEXT
+ LOAD x1, 0*REGBYTES(sp)
+ LOAD x4, 1*REGBYTES(sp)
+ LOAD x5, 2*REGBYTES(sp)
+ LOAD x6, 3*REGBYTES(sp)
+ LOAD x7, 4*REGBYTES(sp)
+ LOAD x10, 5*REGBYTES(sp)
+ LOAD x11, 6*REGBYTES(sp)
+ LOAD x12, 7*REGBYTES(sp)
+ LOAD x13, 8*REGBYTES(sp)
+ LOAD x14, 9*REGBYTES(sp)
+ LOAD x15, 10*REGBYTES(sp)
+#ifndef __riscv_32e
+ LOAD x16, 11*REGBYTES(sp)
+ LOAD x17, 12*REGBYTES(sp)
+ LOAD x28, 13*REGBYTES(sp)
+ LOAD x29, 14*REGBYTES(sp)
+ LOAD x30, 15*REGBYTES(sp)
+ LOAD x31, 16*REGBYTES(sp)
+#endif
+
+
+#ifdef __riscv_flen
+ #if (__riscv_flen==64)
+/* Restore fp caller registers */
+ FPLOAD f0, (20*REGBYTES + 0*FPREGBYTES)(sp)
+ FPLOAD f1, (20*REGBYTES + 1*FPREGBYTES)(sp)
+ FPLOAD f2, (20*REGBYTES + 2*FPREGBYTES)(sp)
+ FPLOAD f3, (20*REGBYTES + 3*FPREGBYTES)(sp)
+ FPLOAD f4, (20*REGBYTES + 4*FPREGBYTES)(sp)
+ FPLOAD f5, (20*REGBYTES + 5*FPREGBYTES)(sp)
+ FPLOAD f6, (20*REGBYTES + 6*FPREGBYTES)(sp)
+ FPLOAD f7, (20*REGBYTES + 7*FPREGBYTES)(sp)
+ FPLOAD f10, (20*REGBYTES + 8*FPREGBYTES)(sp)
+ FPLOAD f11, (20*REGBYTES + 9*FPREGBYTES)(sp)
+ FPLOAD f12, (20*REGBYTES + 10*FPREGBYTES)(sp)
+ FPLOAD f13, (20*REGBYTES + 11*FPREGBYTES)(sp)
+ FPLOAD f14, (20*REGBYTES + 12*FPREGBYTES)(sp)
+ FPLOAD f15, (20*REGBYTES + 13*FPREGBYTES)(sp)
+ FPLOAD f16, (20*REGBYTES + 14*FPREGBYTES)(sp)
+ FPLOAD f17, (20*REGBYTES + 15*FPREGBYTES)(sp)
+ FPLOAD f28, (20*REGBYTES + 16*FPREGBYTES)(sp)
+ FPLOAD f29, (20*REGBYTES + 17*FPREGBYTES)(sp)
+ FPLOAD f30, (20*REGBYTES + 18*FPREGBYTES)(sp)
+ FPLOAD f31, (20*REGBYTES + 19*FPREGBYTES)(sp)
+ #endif
+#endif
+
+
+#ifdef __riscv_flen
+ #if(__riscv_flen == 64 )
+ addi sp, sp, 20*REGBYTES + 20*FPREGBYTES
+ #else
+ addi sp, sp, 20*REGBYTES
+ #endif
+#else
+// De-allocate the stack space
+ addi sp, sp, 20*REGBYTES
+#endif
+.endm
+
+###############################################
+###############################################
+#restore caller registers
+.macro RESTORE_CONTEXT_EXCPT_X5
+ LOAD x1, 0*REGBYTES(sp)
+ LOAD x6, 2*REGBYTES(sp)
+ LOAD x7, 3*REGBYTES(sp)
+ LOAD x10, 4*REGBYTES(sp)
+ LOAD x11, 5*REGBYTES(sp)
+ LOAD x12, 6*REGBYTES(sp)
+ LOAD x13, 7*REGBYTES(sp)
+ LOAD x14, 8*REGBYTES(sp)
+ LOAD x15, 9*REGBYTES(sp)
+#ifndef __riscv_32e
+ LOAD x16, 10*REGBYTES(sp)
+ LOAD x17, 11*REGBYTES(sp)
+ LOAD x28, 12*REGBYTES(sp)
+ LOAD x29, 13*REGBYTES(sp)
+ LOAD x30, 14*REGBYTES(sp)
+ LOAD x31, 15*REGBYTES(sp)
+#endif
+.endm
+
+###############################################
+###############################################
+#restore caller registers
+.macro RESTORE_CONTEXT_ONLY_X5
+ LOAD x5, 1*REGBYTES(sp)
+.endm
+
+###############################################
+###############################################
+# Save the mepc and mstatus
+#
+.macro SAVE_EPC_STATUS
+ csrr x5, CSR_MEPC
+ STORE x5, 16*REGBYTES(sp)
+ csrr x5, CSR_MSTATUS
+ STORE x5, 17*REGBYTES(sp)
+ csrr x5, CSR_MSUBM
+ STORE x5, 18*REGBYTES(sp)
+.endm
+
+###############################################
+###############################################
+# Restore the mepc and mstatus
+#
+.macro RESTORE_EPC_STATUS
+ LOAD x5, 16*REGBYTES(sp)
+ csrw CSR_MEPC, x5
+ LOAD x5, 17*REGBYTES(sp)
+ csrw CSR_MSTATUS, x5
+ LOAD x5, 18*REGBYTES(sp)
+ csrw CSR_MSUBM, x5
+.endm
+
+
+
+###############################################
+###############################################
+// Trap entry point
+//
+ .section .text.trap
+ .align 6// In CLIC mode, the trap entry must be 64bytes aligned
+ .global trap_entry
+.weak trap_entry
+trap_entry:
+ // Allocate the stack space
+ // addi sp, sp, -19*REGBYTES
+
+ // Save the caller saving registers (context)
+ SAVE_CONTEXT
+ // Save the MEPC/Mstatus/Msubm reg
+ SAVE_EPC_STATUS
+
+ // Set the function argument
+ csrr a0, mcause
+ mv a1, sp
+ // Call the function
+ call handle_trap
+
+ // Restore the MEPC/Mstatus/Msubm reg
+ RESTORE_EPC_STATUS
+ // Restore the caller saving registers (context)
+ RESTORE_CONTEXT
+
+ // De-allocate the stack space
+ // addi sp, sp, 19*REGBYTES
+ // Return to regular code
+ mret
+
+
+###############################################
+###############################################
+// IRQ entry point
+//
+ .section .text.irq
+ .align 2
+ .global irq_entry
+.weak irq_entry
+irq_entry: // -------------> This label will be set to MTVT2 register
+ // Allocate the stack space
+
+
+ SAVE_CONTEXT// Save 16 regs
+
+ //------This special CSR read operation, which is actually use mcause as operand to directly store it to memory
+ csrrwi x0, CSR_PUSHMCAUSE, 17
+ //------This special CSR read operation, which is actually use mepc as operand to directly store it to memory
+ csrrwi x0, CSR_PUSHMEPC, 18
+ //------This special CSR read operation, which is actually use Msubm as operand to directly store it to memory
+ csrrwi x0, CSR_PUSHMSUBM, 19
+
+service_loop:
+ //------This special CSR read/write operation, which is actually Claim the CLIC to find its pending highest
+ // ID, if the ID is not 0, then automatically enable the mstatus.MIE, and jump to its vector-entry-label, and
+ // update the link register
+ csrrw ra, CSR_JALMNXTI, ra
+
+ //RESTORE_CONTEXT_EXCPT_X5
+
+ #---- Critical section with interrupts disabled -----------------------
+ DISABLE_MIE # Disable interrupts
+
+ LOAD x5, 19*REGBYTES(sp)
+ csrw CSR_MSUBM, x5
+ LOAD x5, 18*REGBYTES(sp)
+ csrw CSR_MEPC, x5
+ LOAD x5, 17*REGBYTES(sp)
+ csrw CSR_MCAUSE, x5
+
+
+ RESTORE_CONTEXT
+
+
+ // Return to regular code
+ mret
+
+
+#endif
\ No newline at end of file
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/handlers.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/handlers.c
new file mode 100644
index 0000000000..988cea2ad5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/handlers.c
@@ -0,0 +1,32 @@
+//See LICENSE for license details.
+#include
+#include
+#include
+#include "riscv_encoding.h"
+#include "n200_func.h"
+
+__attribute__((weak)) uintptr_t handle_nmi()
+{
+ write(1, "nmi\n", 5);
+ //_exit(1);
+ return 0;
+}
+
+
+__attribute__((weak)) uintptr_t handle_trap(uintptr_t mcause, uintptr_t sp)
+{
+ if((mcause & 0xFFF) == 0xFFF) {
+ handle_nmi();
+ }
+ write(1, "trap\n", 5);
+ //printf("In trap handler, the mcause is %d\n", mcause);
+ //printf("In trap handler, the mepc is 0x%x\n", read_csr(mepc));
+ //printf("In trap handler, the mtval is 0x%x\n", read_csr(mbadaddr));
+ //_exit(mcause);
+ return 0;
+}
+
+
+
+
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/handlers.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/handlers.s
new file mode 100644
index 0000000000..59d4cea643
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/handlers.s
@@ -0,0 +1,9542 @@
+ .file "handlers.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .section .rodata
+ .align 2
+.LC0:
+ .string "nmi\n"
+ .text
+ .align 1
+ .weak handle_nmi
+ .type handle_nmi, @function
+handle_nmi:
+.LFB5:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\env_Eclipse\\handlers.c"
+ .loc 1 9 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw ra,12(sp)
+ sw s0,8(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 10 3
+ li a2,5
+ lla a1,.LC0
+ li a0,1
+ call write
+ .loc 1 12 10
+ li a5,0
+ .loc 1 13 1
+ mv a0,a5
+ lw ra,12(sp)
+ .cfi_restore 1
+ lw s0,8(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size handle_nmi, .-handle_nmi
+ .section .rodata
+ .align 2
+.LC1:
+ .string "trap\n"
+ .text
+ .align 1
+ .weak handle_trap
+ .type handle_trap, @function
+handle_trap:
+.LFB6:
+ .loc 1 17 1
+ .cfi_startproc
+ addi sp,sp,-32
+ .cfi_def_cfa_offset 32
+ sw ra,28(sp)
+ sw s0,24(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,32
+ .cfi_def_cfa 8, 0
+ sw a0,-20(s0)
+ sw a1,-24(s0)
+ .loc 1 18 14
+ lw a4,-20(s0)
+ li a5,4096
+ addi a5,a5,-1
+ and a4,a4,a5
+ .loc 1 18 5
+ li a5,4096
+ addi a5,a5,-1
+ bne a4,a5,.L4
+ .loc 1 19 7
+ call handle_nmi
+.L4:
+ .loc 1 21 3
+ li a2,5
+ lla a1,.LC1
+ li a0,1
+ call write
+ .loc 1 26 10
+ li a5,0
+ .loc 1 27 1
+ mv a0,a5
+ lw ra,28(sp)
+ .cfi_restore 1
+ lw s0,24(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 32
+ addi sp,sp,32
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size handle_trap, .-handle_trap
+.Letext0:
+ .file 2 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .file 3 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0xe0
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF1745
+ .byte 0xc
+ .4byte .LASF1746
+ .4byte .LASF1747
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF1732
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF1733
+ .byte 0x2
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF1734
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF1735
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF1736
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF1737
+ .byte 0x2
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF1738
+ .byte 0x2
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF1739
+ .byte 0x3
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x4
+ .4byte .LASF1741
+ .byte 0x2
+ .byte 0xe8
+ .byte 0x16
+ .4byte 0x74
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF1740
+ .byte 0x4
+ .4byte .LASF1742
+ .byte 0x3
+ .byte 0x52
+ .byte 0x15
+ .4byte 0x68
+ .byte 0x2
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF1743
+ .byte 0x2
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF365
+ .byte 0x5
+ .4byte .LASF1748
+ .byte 0x1
+ .byte 0x10
+ .byte 0x21
+ .4byte 0x7b
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0xcd
+ .byte 0x6
+ .4byte .LASF1744
+ .byte 0x1
+ .byte 0x10
+ .byte 0x37
+ .4byte 0x7b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x6c
+ .byte 0x7
+ .string "sp"
+ .byte 0x1
+ .byte 0x10
+ .byte 0x49
+ .4byte 0x7b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x68
+ .byte 0
+ .byte 0x8
+ .4byte .LASF1749
+ .byte 0x1
+ .byte 0x8
+ .byte 0x21
+ .4byte 0x7b
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x16
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .file 4 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2
+ .byte 0x4
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF329
+ .byte 0x3
+ .byte 0xc
+ .byte 0x2
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF330
+ .file 5 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x5
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF331
+ .file 6 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x6
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0x7
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdio.h"
+ .byte 0x3
+ .byte 0x3
+ .byte 0x8
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF478
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_ansi.h"
+ .byte 0x3
+ .byte 0x1d
+ .byte 0x9
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF479
+ .file 10 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\newlib.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0xa
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .file 11 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\config.h"
+ .byte 0x3
+ .byte 0xb
+ .byte 0xb
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF494
+ .file 12 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\ieeefp.h"
+ .byte 0x3
+ .byte 0x4
+ .byte 0xc
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .file 13 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\cdefs.h"
+ .byte 0x3
+ .byte 0x23
+ .byte 0xd
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF516
+ .file 14 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .byte 0x3
+ .byte 0x24
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF692
+ .file 15 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stdarg.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 16 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\reent.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x10
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF695
+ .byte 0x3
+ .byte 0xd
+ .byte 0x9
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0xe
+ .byte 0x4
+ .file 17 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_types.h"
+ .byte 0x3
+ .byte 0xf
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x3
+ .byte 0x18
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 18 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_types.h"
+ .byte 0x3
+ .byte 0x1b
+ .byte 0x12
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF700
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .file 19 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\lock.h"
+ .byte 0x3
+ .byte 0x22
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 20 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\types.h"
+ .byte 0x3
+ .byte 0x3d
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .file 21 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_pthreadtypes.h"
+ .byte 0x3
+ .byte 0xdf,0x1
+ .byte 0x15
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF805
+ .byte 0x4
+ .file 22 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\types.h"
+ .byte 0x3
+ .byte 0xe0,0x1
+ .byte 0x16
+ .byte 0x4
+ .byte 0x6
+ .byte 0xe4,0x1
+ .4byte .LASF806
+ .byte 0x4
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF807
+ .file 23 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\stdio.h"
+ .byte 0x3
+ .byte 0x4f
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\components\\libc\\compilers\\common/unistd.h"
+ .byte 0x3
+ .byte 0x4
+ .byte 0x18
+ .file 25 "D:\\rt-thread\\components\\libc\\compilers\\common/sys/unistd.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0x19
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF859
+ .byte 0x3
+ .byte 0xf
+ .byte 0xe
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_encoding.h"
+ .byte 0x3
+ .byte 0x5
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x1b
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF1690
+ .byte 0x3
+ .byte 0x7
+ .byte 0xe
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x1d
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF1701
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF336
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF339
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF340
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF341
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF342
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF343
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF344
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF348
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF349
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF359
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF360
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF361
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF362
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF363
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF364
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF365
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF366
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF367
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF368
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF371
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF372
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF373
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF374
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF375
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF376
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF377
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF378
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF379
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF380
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF381
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF391
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF363
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF364
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF365
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF366
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF369
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF367
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF368
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF403
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF404
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF408
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF420
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF421
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF477
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.newlib.h.8.542bedab3c90294c348821966b79eb81,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF489
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF490
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF493
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.ieeefp.h.202.4f2759f5758fd82153cfbf98692f2ced,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF497
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.config.h.83.13bbc8852bfac55b724c9822481355b5,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF499
+ .byte 0x6
+ .byte 0xe6,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF504
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._ansi.h.31.de524f58584151836e90d8620a16f8e8,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF512
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.31.7c0e28c411445f3f9c5b11accf882760,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF515
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.181.c3f52a3b0f4c288bddb5dda1562858e2,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF525
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF526
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF527
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF528
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF533
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF534
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF536
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF537
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.49.39045112216f6a021dbdffe3bf5accce,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF659
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.b727a6c3269d9d6ef9fc646b721a8287,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF671
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF672
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF687
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF688
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF689
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF536
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF691
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdarg.h.34.3a23a216c0c293b3d2ea2e89281481e6,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x22
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF694
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._types.h.20.dd0d04dca3800a0d2a6129b87f3adbb2,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF697
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.155.3588ebfdd1e8c7ede80509bb9c3b8009,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF672
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF534
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF698
+ .byte 0x6
+ .byte 0xe0,0x2
+ .4byte .LASF699
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF536
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF690
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._types.h.127.34941de1b2539d59d5cac00e0dd27a45,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x7f
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF702
+ .byte 0x6
+ .byte 0x94,0x1
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF706
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.reent.h.17.e292bf8b0bec6c96e131a54347145a30,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF708
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.lock.h.2.c0958401bd0ce484d507ee19aacab817,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF709
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF710
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF721
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.reent.h.77.dcd6129ff07fe81bd5636db29abe53b2,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF776
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.types.h.40.c2dcbbb5c1f4f0e5cb716ebf7776da48,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF778
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF779
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF804
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.2.4aa87247282eca6c8f36f9de33d8df1a,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF810
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.81.b348624b6806a74def9195c754308a00,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF858
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.unistd.h.22.3ec6b4596b960d9f35140931ce8c2bd0,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF862
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_encoding.h.4.141a3f782f9378c77348fd1925237eaf,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF1116
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1117
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1124
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1125
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0xff,0x2
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x86,0x3
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x87,0x3
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x8a,0x3
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x8e,0x3
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x8f,0x3
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x94,0x3
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x95,0x3
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x9c,0x3
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x9d,0x3
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0xa0,0x3
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0xa1,0x3
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0xa2,0x3
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0xa6,0x3
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0xa9,0x3
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xae,0x3
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xb4,0x3
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xb5,0x3
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF1225
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF1226
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0x80,0x4
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0x81,0x4
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1324
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF1325
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF1331
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF1332
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0xad,0x4
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0xc0,0x4
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF1361
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF1362
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0xdf,0x4
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0xf0,0x4
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0xf1,0x4
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0xfa,0x4
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0xfb,0x4
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x80,0x5
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x81,0x5
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x84,0x5
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x85,0x5
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x88,0x5
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x89,0x5
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x8b,0x5
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x8f,0x5
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x93,0x5
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x94,0x5
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x97,0x5
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x98,0x5
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x9b,0x5
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x9c,0x5
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x9e,0x5
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x9f,0x5
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0xa2,0x5
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0xa3,0x5
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0xa5,0x5
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xb6,0x5
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xb7,0x5
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xb9,0x5
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xbb,0x5
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xbd,0x5
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF1483
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF1484
+ .byte 0x5
+ .byte 0xc1,0x5
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0xc3,0x5
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0xc4,0x5
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0xc5,0x5
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0xc7,0x5
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0xc8,0x5
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0xc9,0x5
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0xca,0x5
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0xcb,0x5
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0xcc,0x5
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0xcd,0x5
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0xce,0x5
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0xd3,0x5
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0xd4,0x5
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0xd5,0x5
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0xd9,0x5
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0xda,0x5
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0xdb,0x5
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0xdc,0x5
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0xdd,0x5
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0xde,0x5
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0xdf,0x5
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0xe0,0x5
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0xe1,0x5
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0xe2,0x5
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0xe3,0x5
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0xe4,0x5
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0xe5,0x5
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0xe6,0x5
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0xe7,0x5
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0xe8,0x5
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0xe9,0x5
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0xea,0x5
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0xeb,0x5
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0xec,0x5
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0xed,0x5
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0xee,0x5
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0xf0,0x5
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0xf1,0x5
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0xf2,0x5
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0xf3,0x5
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0xf4,0x5
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0xf5,0x5
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0xf6,0x5
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xf7,0x5
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xf8,0x5
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xf9,0x5
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xfa,0x5
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xfb,0x5
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xfc,0x5
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0x84,0x6
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0x9d,0x6
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0x9e,0x6
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0x9f,0x6
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xa1,0x6
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xa2,0x6
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xa3,0x6
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xa4,0x6
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xa5,0x6
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xa6,0x6
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xa7,0x6
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xa9,0x6
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xaa,0x6
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xab,0x6
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xac,0x6
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xad,0x6
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xae,0x6
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xaf,0x6
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xb1,0x6
+ .4byte .LASF1597
+ .byte 0x5
+ .byte 0xb2,0x6
+ .4byte .LASF1598
+ .byte 0x5
+ .byte 0xb3,0x6
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0xb4,0x6
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0xb5,0x6
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0xb6,0x6
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0xb7,0x6
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0xb8,0x6
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0xb9,0x6
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0xba,0x6
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0xbb,0x6
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0xbc,0x6
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0xbd,0x6
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0xbe,0x6
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0xbf,0x6
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0xc1,0x6
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0xc2,0x6
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0xc4,0x6
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0xc5,0x6
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0xc6,0x6
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0xc7,0x6
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0xc8,0x6
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0xca,0x6
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0xcb,0x6
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0xcc,0x6
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0xcd,0x6
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0xce,0x6
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0xcf,0x6
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0xd0,0x6
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0xd1,0x6
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0xd2,0x6
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0xd3,0x6
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0xd4,0x6
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0xd5,0x6
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0xd6,0x6
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0xd7,0x6
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0xd8,0x6
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0xd9,0x6
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0xda,0x6
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0xdb,0x6
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0xdc,0x6
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0xdd,0x6
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0xde,0x6
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0xdf,0x6
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0xe0,0x6
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0xe1,0x6
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0xe2,0x6
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0xe3,0x6
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0xe4,0x6
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0xe5,0x6
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0xe6,0x6
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0xe7,0x6
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0xe8,0x6
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0xe9,0x6
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0xea,0x6
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0xeb,0x6
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0xec,0x6
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0xed,0x6
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0xee,0x6
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0xef,0x6
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0xf0,0x6
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0xf1,0x6
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0xf2,0x6
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0xf3,0x6
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0xf6,0x6
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0xf7,0x6
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0xf9,0x6
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0xfb,0x6
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0xfd,0x6
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0xfe,0x6
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0xff,0x6
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x80,0x7
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x81,0x7
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x83,0x7
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x84,0x7
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x85,0x7
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x87,0x7
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x88,0x7
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x8b,0x7
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x8c,0x7
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x8d,0x7
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x8e,0x7
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x8f,0x7
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x90,0x7
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x91,0x7
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x92,0x7
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x93,0x7
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x94,0x7
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x95,0x7
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x96,0x7
+ .4byte .LASF1689
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF1700
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF1706
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1726
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF1731
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1149:
+ .string "MASK_AMOAND_W 0xf800707f"
+.LASF1079:
+ .string "MASK_SRAIW 0xfe00707f"
+.LASF1721:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF842:
+ .string "stderr (_REENT->_stderr)"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF1322:
+ .string "MATCH_FSD 0x3027"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1740:
+ .string "unsigned int"
+.LASF864:
+ .string "MSTATUS_UIE 0x00000001"
+.LASF1704:
+ .string "_AT(T,X) ((T)(X))"
+.LASF865:
+ .string "MSTATUS_SIE 0x00000002"
+.LASF1452:
+ .string "MATCH_CUSTOM2_RS1_RS2 0x305b"
+.LASF1500:
+ .string "CSR_HPMCOUNTER25 0xc19"
+.LASF768:
+ .string "_REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF682:
+ .string "_WCHAR_T_DEFINED "
+.LASF1091:
+ .string "MASK_LB 0x707f"
+.LASF1539:
+ .string "CSR_MHPMCOUNTER5 0xb05"
+.LASF344:
+ .string "__MISC_VISIBLE 0"
+.LASF1431:
+ .string "MASK_CUSTOM0_RD 0x707f"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF827:
+ .string "__SWID 0x2000"
+.LASF740:
+ .string "_REENT_CHECK_RAND48(ptr) "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF1433:
+ .string "MASK_CUSTOM0_RD_RS1 0x707f"
+.LASF890:
+ .string "SSTATUS32_SD 0x80000000"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF698:
+ .string "_WINT_T "
+.LASF1207:
+ .string "MASK_CSRRS 0x707f"
+.LASF1418:
+ .string "MATCH_C_FSDSP 0xa002"
+.LASF853:
+ .string "feof(p) __sfeof(p)"
+.LASF850:
+ .string "__sferror(p) ((int)(((p)->_flags & __SERR) != 0))"
+.LASF1357:
+ .string "MASK_C_LDSP 0xe003"
+.LASF968:
+ .string "VM_SV39 9"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF1017:
+ .string "MASK_BNE 0x707f"
+.LASF1202:
+ .string "MATCH_WFI 0x10500073"
+.LASF703:
+ .string "_CLOCK_T_ unsigned long"
+.LASF350:
+ .string "__have_longlong64 1"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF405:
+ .string "_INTMAX_T_DECLARED "
+.LASF875:
+ .string "MSTATUS_XS 0x00018000"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF561:
+ .string "__GNUCLIKE_BUILTIN_CONSTANT_P 1"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF617:
+ .string "__printflike(fmtarg,firstvararg) __attribute__((__format__ (__printf__, fmtarg, firstvararg)))"
+.LASF1674:
+ .string "CSR_SLEEPVALUE 0x811"
+.LASF985:
+ .string "EXT_IO_BASE 0x40000000"
+.LASF1105:
+ .string "MASK_SB 0x707f"
+.LASF638:
+ .string "_Null_unspecified "
+.LASF504:
+ .string "_READ_WRITE_BUFSIZE_TYPE int"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF1673:
+ .string "CSR_WFE 0x810"
+.LASF1070:
+ .string "MATCH_AND 0x7033"
+.LASF824:
+ .string "__SORD 0x2000"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF1241:
+ .string "MASK_FMUL_D 0xfe00007f"
+.LASF1037:
+ .string "MASK_SLLI 0xfc00707f"
+.LASF1078:
+ .string "MATCH_SRAIW 0x4000501b"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF859:
+ .string "__SYS_UNISTD_H__ "
+.LASF870:
+ .string "MSTATUS_HPIE 0x00000040"
+.LASF557:
+ .string "__GNUCLIKE___TYPEOF 1"
+.LASF472:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF1362:
+ .string "MATCH_C_FLD 0x2000"
+.LASF387:
+ .string "__FAST64 \"ll\""
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF383:
+ .string "__INT64 \"ll\""
+.LASF1244:
+ .string "MATCH_FSGNJ_D 0x22000053"
+.LASF1018:
+ .string "MATCH_BLT 0x4063"
+.LASF889:
+ .string "SSTATUS_PUM 0x00040000"
+.LASF1282:
+ .string "MATCH_FCLASS_S 0xe0001053"
+.LASF398:
+ .string "__int16_t_defined 1"
+.LASF1430:
+ .string "MATCH_CUSTOM0_RD 0x400b"
+.LASF1032:
+ .string "MATCH_AUIPC 0x17"
+.LASF1685:
+ .string "CAUSE_FAULT_STORE 0x7"
+.LASF1242:
+ .string "MATCH_FDIV_D 0x1a000053"
+.LASF1076:
+ .string "MATCH_SRLIW 0x501b"
+.LASF474:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF1662:
+ .string "CSR_MHPMCOUNTER30H 0xb9e"
+.LASF674:
+ .string "__WCHAR_T__ "
+.LASF1670:
+ .string "CSR_PUSHMCAUSE 0x7EE"
+.LASF868:
+ .string "MSTATUS_UPIE 0x00000010"
+.LASF693:
+ .string "__need___va_list"
+.LASF1275:
+ .string "MASK_FCVT_WU_S 0xfff0007f"
+.LASF846:
+ .string "__VALIST __gnuc_va_list"
+.LASF1511:
+ .string "CSR_SEPC 0x141"
+.LASF1393:
+ .string "MASK_C_OR 0xfc63"
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF1269:
+ .string "MASK_FLT_D 0xfe00707f"
+.LASF1097:
+ .string "MASK_LD 0x707f"
+.LASF1029:
+ .string "MASK_JAL 0x7f"
+.LASF577:
+ .string "__P(protos) protos"
+.LASF1285:
+ .string "MASK_FCVT_W_D 0xfff0007f"
+.LASF358:
+ .string "___int_least32_t_defined 1"
+.LASF1003:
+ .string "read_fpu(reg) ({ unsigned long __tmp; asm volatile (\"fmv.x.w %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1245:
+ .string "MASK_FSGNJ_D 0xfe00707f"
+.LASF1446:
+ .string "MATCH_CUSTOM1_RD_RS1_RS2 0x702b"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF371:
+ .string "unsigned +0"
+.LASF1064:
+ .string "MATCH_SRL 0x5033"
+.LASF1479:
+ .string "CSR_HPMCOUNTER4 0xc04"
+.LASF1156:
+ .string "MATCH_AMOMAXU_W 0xe000202f"
+.LASF1604:
+ .string "CSR_HPMCOUNTER3H 0xc83"
+.LASF1061:
+ .string "MASK_SLTU 0xfe00707f"
+.LASF1425:
+ .string "MASK_CUSTOM0 0x707f"
+.LASF1329:
+ .string "MASK_FNMSUB_S 0x600007f"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF1001:
+ .string "RISCV_PGSHIFT 12"
+.LASF1059:
+ .string "MASK_SLT 0xfe00707f"
+.LASF609:
+ .string "__predict_true(exp) __builtin_expect((exp), 1)"
+.LASF966:
+ .string "VM_MBBID 2"
+.LASF1403:
+ .string "MASK_C_BEQZ 0xe003"
+.LASF1675:
+ .string "CSR_TXEVT 0x812"
+.LASF403:
+ .string "_UINT64_T_DECLARED "
+.LASF591:
+ .string "__aligned(x) __attribute__((__aligned__(x)))"
+.LASF1193:
+ .string "MASK_SRET 0xffffffff"
+.LASF1002:
+ .string "RISCV_PGSIZE (1 << RISCV_PGSHIFT)"
+.LASF1111:
+ .string "MASK_SD 0x707f"
+.LASF664:
+ .string "_T_PTRDIFF_ "
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1438:
+ .string "MATCH_CUSTOM1_RS1 0x202b"
+.LASF1073:
+ .string "MASK_ADDIW 0x707f"
+.LASF513:
+ .string "_FSTDIO "
+.LASF825:
+ .string "__SL64 0x8000"
+.LASF780:
+ .string "_BLKSIZE_T_DECLARED "
+.LASF549:
+ .string "__unbounded "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF1075:
+ .string "MASK_SLLIW 0xfe00707f"
+.LASF942:
+ .string "MIP_MSIP (1 << IRQ_M_SOFT)"
+.LASF836:
+ .string "SEEK_SET 0"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF564:
+ .string "__GNUCLIKE_BUILTIN_VAALIST 1"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF486:
+ .string "_MB_LEN_MAX 1"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF949:
+ .string "MIE_SSIE MIP_SSIP"
+.LASF655:
+ .string "__no_lock_analysis __lock_annotate(no_thread_safety_analysis)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF450:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF1510:
+ .string "CSR_SSCRATCH 0x140"
+.LASF457:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF924:
+ .string "MCONTROL_EXECUTE (1<<2)"
+.LASF1437:
+ .string "MASK_CUSTOM1 0x707f"
+.LASF1665:
+ .string "CSR_MNXTI 0x345"
+.LASF1409:
+ .string "MASK_C_FLDSP 0xe003"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF1186:
+ .string "MATCH_ECALL 0x73"
+.LASF767:
+ .string "_REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_new._reent._wcsrtombs_state)"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF839:
+ .string "TMP_MAX 26"
+.LASF604:
+ .string "__fastcall __attribute__((__fastcall__))"
+.LASF1535:
+ .string "CSR_MCYCLE 0xb00"
+.LASF1602:
+ .string "CSR_TIMEH 0xc81"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF511:
+ .string "_NOINLINE __attribute__ ((__noinline__))"
+.LASF1432:
+ .string "MATCH_CUSTOM0_RD_RS1 0x600b"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF1748:
+ .string "handle_trap"
+.LASF543:
+ .string "__long_double_t long double"
+.LASF1578:
+ .string "CSR_MHPMEVENT13 0x32d"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF481:
+ .string "_WANT_IO_C99_FORMATS 1"
+.LASF905:
+ .string "DCSR_PRV (3<<0)"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF1155:
+ .string "MASK_AMOMINU_W 0xf800707f"
+.LASF1569:
+ .string "CSR_MHPMEVENT4 0x324"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF368:
+ .string "__int20__"
+.LASF1529:
+ .string "CSR_TDATA1 0x7a1"
+.LASF1415:
+ .string "MASK_C_MV 0xf003"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF1313:
+ .string "MASK_FCVT_D_LU 0xfff0007f"
+.LASF528:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF1219:
+ .string "MASK_FSUB_S 0xfe00007f"
+.LASF896:
+ .string "DCSR_EBREAKH (1<<14)"
+.LASF366:
+ .string "short"
+.LASF1137:
+ .string "MASK_DIVUW 0xfe00707f"
+.LASF983:
+ .string "DEFAULT_MTVEC 0x00001010"
+.LASF1574:
+ .string "CSR_MHPMEVENT9 0x329"
+.LASF1449:
+ .string "MASK_CUSTOM2 0x707f"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF1042:
+ .string "MATCH_XORI 0x4013"
+.LASF1551:
+ .string "CSR_MHPMCOUNTER17 0xb11"
+.LASF558:
+ .string "__GNUCLIKE___OFFSETOF 1"
+.LASF716:
+ .string "__lock_acquire(lock) ((void) 0)"
+.LASF1227:
+ .string "MASK_FSGNJN_S 0xfe00707f"
+.LASF1463:
+ .string "MASK_CUSTOM3_RS1 0x707f"
+.LASF1684:
+ .string "CAUSE_MISALIGNED_STORE 0x6"
+.LASF1279:
+ .string "MASK_FCVT_LU_S 0xfff0007f"
+.LASF654:
+ .string "__requires_unlocked(...) __lock_annotate(locks_excluded(__VA_ARGS__))"
+.LASF1307:
+ .string "MASK_FCVT_D_W 0xfff0007f"
+.LASF1056:
+ .string "MATCH_SLL 0x1033"
+.LASF684:
+ .string "___int_wchar_t_h "
+.LASF709:
+ .string "__SYS_LOCK_H__ "
+.LASF1327:
+ .string "MASK_FMSUB_S 0x600007f"
+.LASF743:
+ .string "_REENT_CHECK_ASCTIME_BUF(ptr) "
+.LASF1050:
+ .string "MATCH_ANDI 0x7013"
+.LASF1457:
+ .string "MASK_CUSTOM2_RD_RS1 0x707f"
+.LASF1039:
+ .string "MASK_SLTI 0x707f"
+.LASF1094:
+ .string "MATCH_LW 0x2003"
+.LASF438:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF1585:
+ .string "CSR_MHPMEVENT20 0x334"
+.LASF854:
+ .string "ferror(p) __sferror(p)"
+.LASF1723:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF1486:
+ .string "CSR_HPMCOUNTER11 0xc0b"
+.LASF1010:
+ .string "rdtime() read_csr(time)"
+.LASF1420:
+ .string "MATCH_C_SWSP 0xc002"
+.LASF734:
+ .string "_REENT_ASCTIME_SIZE 26"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF1177:
+ .string "MASK_AMOMINU_D 0xf800707f"
+.LASF437:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1484:
+ .string "CSR_HPMCOUNTER9 0xc09"
+.LASF760:
+ .string "_REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF1334:
+ .string "MATCH_FMSUB_D 0x2000047"
+.LASF987:
+ .string "PTE_V 0x001"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF1292:
+ .string "MATCH_FMV_X_D 0xe2000053"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF582:
+ .string "__const const"
+.LASF1023:
+ .string "MASK_BLTU 0x707f"
+.LASF1256:
+ .string "MATCH_FCVT_D_S 0x42000053"
+.LASF1259:
+ .string "MASK_FSQRT_D 0xfff0007f"
+.LASF1195:
+ .string "MASK_HRET 0xffffffff"
+.LASF1302:
+ .string "MATCH_FCVT_S_LU 0xd0300053"
+.LASF927:
+ .string "MCONTROL_TYPE_NONE 0"
+.LASF904:
+ .string "DCSR_STEP (1<<2)"
+.LASF479:
+ .string "_ANSIDECL_H_ "
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF841:
+ .string "stdout (_REENT->_stdout)"
+.LASF360:
+ .string "__EXP"
+.LASF1210:
+ .string "MATCH_CSRRWI 0x5073"
+.LASF891:
+ .string "SSTATUS64_SD 0x8000000000000000"
+.LASF1270:
+ .string "MATCH_FEQ_D 0xa2002053"
+.LASF521:
+ .string "_T_SIZE_ "
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF784:
+ .string "_TIME_T_DECLARED "
+.LASF1516:
+ .string "CSR_MSTATUS 0x300"
+.LASF612:
+ .string "__exported __attribute__((__visibility__(\"default\")))"
+.LASF1561:
+ .string "CSR_MHPMCOUNTER27 0xb1b"
+.LASF1633:
+ .string "CSR_MCYCLEH 0xb80"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF1298:
+ .string "MATCH_FCVT_S_WU 0xd0100053"
+.LASF1547:
+ .string "CSR_MHPMCOUNTER13 0xb0d"
+.LASF363:
+ .string "signed"
+.LASF1661:
+ .string "CSR_MHPMCOUNTER29H 0xb9d"
+.LASF1672:
+ .string "CSR_PUSHMSUBM 0x7EB"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF1496:
+ .string "CSR_HPMCOUNTER21 0xc15"
+.LASF849:
+ .string "__sfeof(p) ((int)(((p)->_flags & __SEOF) != 0))"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF1375:
+ .string "MASK_C_ADDI 0xe003"
+.LASF1608:
+ .string "CSR_HPMCOUNTER7H 0xc87"
+.LASF622:
+ .string "__printf0like(fmtarg,firstvararg) "
+.LASF835:
+ .string "L_tmpnam FILENAME_MAX"
+.LASF495:
+ .string "__IEEE_LITTLE_ENDIAN "
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF719:
+ .string "__lock_try_acquire_recursive(lock) ((void) 0)"
+.LASF571:
+ .string "__CC_SUPPORTS___INLINE 1"
+.LASF1294:
+ .string "MATCH_FCLASS_D 0xe2001053"
+.LASF1262:
+ .string "MATCH_FLT_S 0xa0001053"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF715:
+ .string "__lock_close_recursive(lock) ((void) 0)"
+.LASF746:
+ .string "_REENT_CHECK_SIGNAL_BUF(ptr) "
+.LASF1107:
+ .string "MASK_SH 0x707f"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF574:
+ .string "__CC_SUPPORTS_WARNING 1"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF1030:
+ .string "MATCH_LUI 0x37"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF1583:
+ .string "CSR_MHPMEVENT18 0x332"
+.LASF945:
+ .string "MIP_MTIP (1 << IRQ_M_TIMER)"
+.LASF619:
+ .string "__format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg)))"
+.LASF788:
+ .string "_ID_T_DECLARED "
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1699:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF349:
+ .string "__EXP(x) __ ##x ##__"
+.LASF379:
+ .string "_INT32_EQ_LONG "
+.LASF1458:
+ .string "MATCH_CUSTOM2_RD_RS1_RS2 0x705b"
+.LASF428:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF877:
+ .string "MSTATUS_PUM 0x00040000"
+.LASF1347:
+ .string "MASK_C_JALR 0xf07f"
+.LASF871:
+ .string "MSTATUS_MPIE 0x00000080"
+.LASF1146:
+ .string "MATCH_AMOOR_W 0x4000202f"
+.LASF1363:
+ .string "MASK_C_FLD 0xe003"
+.LASF552:
+ .string "__has_feature(x) 0"
+.LASF733:
+ .string "_REENT_EMERGENCY_SIZE 25"
+.LASF1108:
+ .string "MATCH_SW 0x2023"
+.LASF439:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF1397:
+ .string "MASK_C_SUBW 0xfc63"
+.LASF1572:
+ .string "CSR_MHPMEVENT7 0x327"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF1642:
+ .string "CSR_MHPMCOUNTER10H 0xb8a"
+.LASF1505:
+ .string "CSR_HPMCOUNTER30 0xc1e"
+.LASF1191:
+ .string "MASK_URET 0xffffffff"
+.LASF787:
+ .string "_FSBLKCNT_T_DECLARED "
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF1143:
+ .string "MASK_AMOADD_W 0xf800707f"
+.LASF662:
+ .string "_ANSI_STDDEF_H "
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF544:
+ .string "__attribute_malloc__ "
+.LASF1546:
+ .string "CSR_MHPMCOUNTER12 0xb0c"
+.LASF1123:
+ .string "MASK_MULHU 0xfe00707f"
+.LASF1746:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\env_Eclipse\\handlers.c"
+.LASF412:
+ .string "__int_least64_t_defined 1"
+.LASF933:
+ .string "MCONTROL_ACTION_TRACE_EMIT 4"
+.LASF757:
+ .string "_REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF505:
+ .string "_BEGIN_STD_C "
+.LASF1380:
+ .string "MATCH_C_LUI 0x6001"
+.LASF1205:
+ .string "MASK_CSRRW 0x707f"
+.LASF1197:
+ .string "MASK_MRET 0xffffffff"
+.LASF1506:
+ .string "CSR_HPMCOUNTER31 0xc1f"
+.LASF1517:
+ .string "CSR_MISA 0x301"
+.LASF1060:
+ .string "MATCH_SLTU 0x3033"
+.LASF633:
+ .string "__DECONST(type,var) ((type)(__uintptr_t)(const void *)(var))"
+.LASF1131:
+ .string "MASK_REMU 0xfe00707f"
+.LASF964:
+ .string "VM_MBARE 0"
+.LASF1369:
+ .string "MASK_C_FSD 0xe003"
+.LASF1161:
+ .string "MASK_LR_W 0xf9f0707f"
+.LASF643:
+ .string "__lock_annotate(x) "
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF1694:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF675:
+ .string "_WCHAR_T "
+.LASF448:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF1491:
+ .string "CSR_HPMCOUNTER16 0xc10"
+.LASF858:
+ .string "L_ctermid 16"
+.LASF1439:
+ .string "MASK_CUSTOM1_RS1 0x707f"
+.LASF1066:
+ .string "MATCH_SRA 0x40005033"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1718:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF1610:
+ .string "CSR_HPMCOUNTER9H 0xc89"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF1470:
+ .string "MATCH_CUSTOM3_RD_RS1_RS2 0x707b"
+.LASF1475:
+ .string "CSR_CYCLE 0xc00"
+.LASF374:
+ .string "__int20 +2"
+.LASF670:
+ .string "_GCC_PTRDIFF_T "
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF442:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF661:
+ .string "_STDDEF_H_ "
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1478:
+ .string "CSR_HPMCOUNTER3 0xc03"
+.LASF1261:
+ .string "MASK_FLE_S 0xfe00707f"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF885:
+ .string "SSTATUS_SPIE 0x00000020"
+.LASF1348:
+ .string "MATCH_C_EBREAK 0x9002"
+.LASF1607:
+ .string "CSR_HPMCOUNTER6H 0xc86"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF879:
+ .string "MSTATUS_VM 0x1F000000"
+.LASF813:
+ .string "__SRD 0x0004"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF628:
+ .string "__FBSDID(s) struct __hack"
+.LASF1663:
+ .string "CSR_MHPMCOUNTER31H 0xb9f"
+.LASF394:
+ .string "_UINT8_T_DECLARED "
+.LASF1171:
+ .string "MASK_AMOAND_D 0xf800707f"
+.LASF685:
+ .string "__INT_WCHAR_T_H "
+.LASF1290:
+ .string "MATCH_FCVT_LU_D 0xc2300053"
+.LASF426:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1058:
+ .string "MATCH_SLT 0x2033"
+.LASF1400:
+ .string "MATCH_C_J 0xa001"
+.LASF1405:
+ .string "MASK_C_BNEZ 0xe003"
+.LASF1229:
+ .string "MASK_FSGNJX_S 0xfe00707f"
+.LASF1183:
+ .string "MASK_LR_D 0xf9f0707f"
+.LASF1099:
+ .string "MASK_LBU 0x707f"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF1540:
+ .string "CSR_MHPMCOUNTER6 0xb06"
+.LASF1220:
+ .string "MATCH_FMUL_S 0x10000053"
+.LASF986:
+ .string "DRAM_BASE 0x80000000"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF1134:
+ .string "MATCH_DIVW 0x200403b"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF722:
+ .string "_ATEXIT_SIZE 32"
+.LASF1296:
+ .string "MATCH_FCVT_S_W 0xd0000053"
+.LASF1501:
+ .string "CSR_HPMCOUNTER26 0xc1a"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF953:
+ .string "MIE_HTIE MIP_HTIP"
+.LASF914:
+ .string "MCONTROL_MASKMAX(xlen) (0x3fULL<<((xlen)-11))"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF483:
+ .string "_WANT_REGISTER_FINI 1"
+.LASF390:
+ .string "__LEAST32 \"l\""
+.LASF1676:
+ .string "CSR_MMISC_CTL 0x7d0"
+.LASF585:
+ .string "__weak_symbol __attribute__((__weak__))"
+.LASF547:
+ .string "__flexarr [0]"
+.LASF751:
+ .string "_REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add)"
+.LASF1049:
+ .string "MASK_ORI 0x707f"
+.LASF1170:
+ .string "MATCH_AMOAND_D 0x6000302f"
+.LASF1688:
+ .string "CAUSE_HYPERVISOR_ECALL 0xa"
+.LASF1570:
+ .string "CSR_MHPMEVENT5 0x325"
+.LASF1733:
+ .string "unsigned char"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF695:
+ .string "_SYS_REENT_H_ "
+.LASF1247:
+ .string "MASK_FSGNJN_D 0xfe00707f"
+.LASF720:
+ .string "__lock_release(lock) ((void) 0)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF893:
+ .string "DCSR_NDRESET (1<<29)"
+.LASF747:
+ .string "_REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam)"
+.LASF929:
+ .string "MCONTROL_ACTION_DEBUG_EXCEPTION 0"
+.LASF523:
+ .string "__SIZE_T "
+.LASF1168:
+ .string "MATCH_AMOOR_D 0x4000302f"
+.LASF1358:
+ .string "MATCH_C_SDSP 0xe002"
+.LASF1154:
+ .string "MATCH_AMOMINU_W 0xc000202f"
+.LASF803:
+ .string "_USECONDS_T_DECLARED "
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF594:
+ .string "__alloc_size2(n,x) __attribute__((__alloc_size__(n, x)))"
+.LASF384:
+ .string "__FAST8 "
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF1391:
+ .string "MASK_C_XOR 0xfc63"
+.LASF702:
+ .string "unsigned signed"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1532:
+ .string "CSR_DCSR 0x7b0"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1690:
+ .string "N200_FUNC_H "
+.LASF611:
+ .string "__null_sentinel __attribute__((__sentinel__))"
+.LASF1558:
+ .string "CSR_MHPMCOUNTER24 0xb18"
+.LASF1611:
+ .string "CSR_HPMCOUNTER10H 0xc8a"
+.LASF759:
+ .string "_REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last)"
+.LASF559:
+ .string "__GNUCLIKE___SECTION 1"
+.LASF881:
+ .string "MSTATUS64_SD 0x8000000000000000"
+.LASF997:
+ .string "PTE_TABLE(PTE) (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF671:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF1084:
+ .string "MATCH_SLLW 0x103b"
+.LASF1310:
+ .string "MATCH_FCVT_D_L 0xd2200053"
+.LASF1349:
+ .string "MASK_C_EBREAK 0xffff"
+.LASF663:
+ .string "_PTRDIFF_T "
+.LASF744:
+ .string "_REENT_CHECK_EMERGENCY(ptr) "
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF1151:
+ .string "MASK_AMOMIN_W 0xf800707f"
+.LASF1621:
+ .string "CSR_HPMCOUNTER20H 0xc94"
+.LASF1182:
+ .string "MATCH_LR_D 0x1000302f"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF409:
+ .string "__int_least8_t_defined 1"
+.LASF721:
+ .string "__lock_release_recursive(lock) ((void) 0)"
+.LASF982:
+ .string "DEFAULT_NMIVEC 0x00001004"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF1426:
+ .string "MATCH_CUSTOM0_RS1 0x200b"
+.LASF1086:
+ .string "MATCH_SRLW 0x503b"
+.LASF988:
+ .string "PTE_R 0x002"
+.LASF943:
+ .string "MIP_STIP (1 << IRQ_S_TIMER)"
+.LASF1398:
+ .string "MATCH_C_ADDW 0x9c21"
+.LASF651:
+ .string "__asserts_shared(...) __lock_annotate(assert_shared_lock(__VA_ARGS__))"
+.LASF1366:
+ .string "MATCH_C_FLW 0x6000"
+.LASF570:
+ .string "__CC_SUPPORTS_INLINE 1"
+.LASF470:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF878:
+ .string "MSTATUS_MXR 0x00080000"
+.LASF1297:
+ .string "MASK_FCVT_S_W 0xfff0007f"
+.LASF1666:
+ .string "CSR_MCOUNTINHIBIT 0x320"
+.LASF463:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF1055:
+ .string "MASK_SUB 0xfe00707f"
+.LASF806:
+ .string "__need_inttypes"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF411:
+ .string "__int_least32_t_defined 1"
+.LASF1480:
+ .string "CSR_HPMCOUNTER5 0xc05"
+.LASF1096:
+ .string "MATCH_LD 0x3003"
+.LASF1268:
+ .string "MATCH_FLT_D 0xa2001053"
+.LASF1011:
+ .string "rdcycle() read_csr(cycle)"
+.LASF1631:
+ .string "CSR_HPMCOUNTER30H 0xc9e"
+.LASF1467:
+ .string "MASK_CUSTOM3_RD 0x707f"
+.LASF944:
+ .string "MIP_HTIP (1 << IRQ_H_TIMER)"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF832:
+ .string "BUFSIZ 1024"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF335:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF908:
+ .string "DCSR_CAUSE_HWBP 2"
+.LASF765:
+ .string "_REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_new._reent._mbsrtowcs_state)"
+.LASF642:
+ .string "__datatype_type_tag(kind,type) "
+.LASF1340:
+ .string "MATCH_C_NOP 0x1"
+.LASF1600:
+ .string "CSR_MHARTID 0xf14"
+.LASF1402:
+ .string "MATCH_C_BEQZ 0xc001"
+.LASF681:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF496:
+ .string "__OBSOLETE_MATH_DEFAULT 1"
+.LASF548:
+ .string "__bounded "
+.LASF993:
+ .string "PTE_A 0x040"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF906:
+ .string "DCSR_CAUSE_NONE 0"
+.LASF1361:
+ .string "MASK_C_ADDI4SPN 0xe003"
+.LASF1445:
+ .string "MASK_CUSTOM1_RD_RS1 0x707f"
+.LASF356:
+ .string "___int_least8_t_defined 1"
+.LASF1352:
+ .string "MATCH_C_SD 0xe000"
+.LASF641:
+ .string "__arg_type_tag(arg_kind,arg_idx,type_tag_idx) "
+.LASF1534:
+ .string "CSR_DSCRATCH 0x7b2"
+.LASF1620:
+ .string "CSR_HPMCOUNTER19H 0xc93"
+.LASF1325:
+ .string "MASK_FMADD_S 0x600007f"
+.LASF1173:
+ .string "MASK_AMOMIN_D 0xf800707f"
+.LASF1115:
+ .string "MASK_FENCE_I 0x707f"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF372:
+ .string "char +0"
+.LASF650:
+ .string "__asserts_exclusive(...) __lock_annotate(assert_exclusive_lock(__VA_ARGS__))"
+.LASF1187:
+ .string "MASK_ECALL 0xffffffff"
+.LASF1379:
+ .string "MASK_C_LI 0xe003"
+.LASF1649:
+ .string "CSR_MHPMCOUNTER17H 0xb91"
+.LASF958:
+ .string "SIP_SSIP MIP_SSIP"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1226:
+ .string "MATCH_FSGNJN_S 0x20001053"
+.LASF1330:
+ .string "MATCH_FNMADD_S 0x4f"
+.LASF1715:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF1272:
+ .string "MATCH_FCVT_W_S 0xc0000053"
+.LASF1643:
+ .string "CSR_MHPMCOUNTER11H 0xb8b"
+.LASF353:
+ .string "___int16_t_defined 1"
+.LASF568:
+ .string "__GNUCLIKE_MATH_BUILTIN_RELOPS "
+.LASF1332:
+ .string "MATCH_FMADD_D 0x2000043"
+.LASF1020:
+ .string "MATCH_BGE 0x5063"
+.LASF1255:
+ .string "MASK_FCVT_S_D 0xfff0007f"
+.LASF1139:
+ .string "MASK_REMW 0xfe00707f"
+.LASF692:
+ .string "__need___va_list "
+.LASF1072:
+ .string "MATCH_ADDIW 0x1b"
+.LASF1051:
+ .string "MASK_ANDI 0x707f"
+.LASF1274:
+ .string "MATCH_FCVT_WU_S 0xc0100053"
+.LASF1098:
+ .string "MATCH_LBU 0x4003"
+.LASF900:
+ .string "DCSR_STOPTIME (1<<9)"
+.LASF1276:
+ .string "MATCH_FCVT_L_S 0xc0200053"
+.LASF683:
+ .string "_WCHAR_T_H "
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF857:
+ .string "putchar_unlocked(_c) _putchar_unlocked(_c)"
+.LASF1208:
+ .string "MATCH_CSRRC 0x3073"
+.LASF838:
+ .string "SEEK_END 2"
+.LASF1653:
+ .string "CSR_MHPMCOUNTER21H 0xb95"
+.LASF1218:
+ .string "MATCH_FSUB_S 0x8000053"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1335:
+ .string "MASK_FMSUB_D 0x600007f"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF851:
+ .string "__sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))"
+.LASF647:
+ .string "__trylocks_exclusive(...) __lock_annotate(exclusive_trylock_function(__VA_ARGS__))"
+.LASF798:
+ .string "_NLINK_T_DECLARED "
+.LASF1382:
+ .string "MATCH_C_SRLI 0x8001"
+.LASF1617:
+ .string "CSR_HPMCOUNTER16H 0xc90"
+.LASF376:
+ .string "int +2"
+.LASF810:
+ .string "_funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))"
+.LASF1493:
+ .string "CSR_HPMCOUNTER18 0xc12"
+.LASF926:
+ .string "MCONTROL_LOAD (1<<0)"
+.LASF1345:
+ .string "MASK_C_JR 0xf07f"
+.LASF1388:
+ .string "MATCH_C_SUB 0x8c01"
+.LASF378:
+ .string "_INTPTR_EQ_INT "
+.LASF995:
+ .string "PTE_SOFT 0x300"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF1407:
+ .string "MASK_C_SLLI 0xe003"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF1515:
+ .string "CSR_SPTBR 0x180"
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1144:
+ .string "MATCH_AMOXOR_W 0x2000202f"
+.LASF1359:
+ .string "MASK_C_SDSP 0xe003"
+.LASF742:
+ .string "_REENT_CHECK_TM(ptr) "
+.LASF1644:
+ .string "CSR_MHPMCOUNTER12H 0xb8c"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF1194:
+ .string "MATCH_HRET 0x20200073"
+.LASF1448:
+ .string "MATCH_CUSTOM2 0x5b"
+.LASF771:
+ .string "_REENT_INIT_PTR(var) { memset((var), 0, sizeof(*(var))); _REENT_INIT_PTR_ZEROED(var); }"
+.LASF1473:
+ .string "CSR_FRM 0x2"
+.LASF395:
+ .string "__int8_t_defined 1"
+.LASF1102:
+ .string "MATCH_LWU 0x6003"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF336:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF713:
+ .string "__lock_init_recursive(lock) ((void) 0)"
+.LASF1552:
+ .string "CSR_MHPMCOUNTER18 0xb12"
+.LASF1745:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1163:
+ .string "MASK_SC_W 0xf800707f"
+.LASF969:
+ .string "VM_SV48 10"
+.LASF399:
+ .string "_INT32_T_DECLARED "
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF1654:
+ .string "CSR_MHPMCOUNTER22H 0xb96"
+.LASF445:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1383:
+ .string "MASK_C_SRLI 0xec03"
+.LASF1338:
+ .string "MATCH_FNMADD_D 0x200004f"
+.LASF1691:
+ .string "N200_TIMER_H "
+.LASF1635:
+ .string "CSR_MHPMCOUNTER3H 0xb83"
+.LASF777:
+ .string "__BIT_TYPES_DEFINED__ 1"
+.LASF1090:
+ .string "MATCH_LB 0x3"
+.LASF413:
+ .string "__int_fast8_t_defined 1"
+.LASF775:
+ .string "_GLOBAL_REENT _global_impure_ptr"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF385:
+ .string "__FAST16 "
+.LASF1589:
+ .string "CSR_MHPMEVENT24 0x338"
+.LASF355:
+ .string "___int64_t_defined 1"
+.LASF1120:
+ .string "MATCH_MULHSU 0x2002033"
+.LASF1487:
+ .string "CSR_HPMCOUNTER12 0xc0c"
+.LASF567:
+ .string "__GNUCLIKE_BUILTIN_NEXT_ARG 1"
+.LASF1305:
+ .string "MASK_FMV_S_X 0xfff0707f"
+.LASF1230:
+ .string "MATCH_FMIN_S 0x28000053"
+.LASF1240:
+ .string "MATCH_FMUL_D 0x12000053"
+.LASF1716:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1678:
+ .string "CAUSE_MISALIGNED_FETCH 0x0"
+.LASF1278:
+ .string "MATCH_FCVT_LU_S 0xc0300053"
+.LASF1351:
+ .string "MASK_C_LD 0xe003"
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF779:
+ .string "_BLKCNT_T_DECLARED "
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF1081:
+ .string "MASK_ADDW 0xfe00707f"
+.LASF1645:
+ .string "CSR_MHPMCOUNTER13H 0xb8d"
+.LASF989:
+ .string "PTE_W 0x004"
+.LASF414:
+ .string "__int_fast16_t_defined 1"
+.LASF749:
+ .string "_REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed)"
+.LASF1065:
+ .string "MASK_SRL 0xfe00707f"
+.LASF530:
+ .string "___int_size_t_h "
+.LASF627:
+ .string "__sym_default(sym,impl,verid) __asm__(\".symver \" #impl \", \" #sym \"@@\" #verid)"
+.LASF1087:
+ .string "MASK_SRLW 0xfe00707f"
+.LASF1027:
+ .string "MASK_JALR 0x707f"
+.LASF1028:
+ .string "MATCH_JAL 0x6f"
+.LASF526:
+ .string "_SIZE_T_DEFINED_ "
+.LASF1709:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF1044:
+ .string "MATCH_SRLI 0x5013"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF1747:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF415:
+ .string "__int_fast32_t_defined 1"
+.LASF1630:
+ .string "CSR_HPMCOUNTER29H 0xc9d"
+.LASF1625:
+ .string "CSR_HPMCOUNTER24H 0xc98"
+.LASF1655:
+ .string "CSR_MHPMCOUNTER23H 0xb97"
+.LASF922:
+ .string "MCONTROL_S (1<<4)"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1095:
+ .string "MASK_LW 0x707f"
+.LASF795:
+ .string "_KEY_T_DECLARED "
+.LASF1185:
+ .string "MASK_SC_D 0xf800707f"
+.LASF535:
+ .string "NULL"
+.LASF1587:
+ .string "CSR_MHPMEVENT22 0x336"
+.LASF1150:
+ .string "MATCH_AMOMIN_W 0x8000202f"
+.LASF950:
+ .string "MIE_HSIE MIP_HSIP"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF1353:
+ .string "MASK_C_SD 0xe003"
+.LASF346:
+ .string "__SVID_VISIBLE 0"
+.LASF938:
+ .string "MCONTROL_MATCH_MASK_LOW 4"
+.LASF1562:
+ .string "CSR_MHPMCOUNTER28 0xb1c"
+.LASF1138:
+ .string "MATCH_REMW 0x200603b"
+.LASF1054:
+ .string "MATCH_SUB 0x40000033"
+.LASF967:
+ .string "VM_SV32 8"
+.LASF980:
+ .string "IRQ_HOST 13"
+.LASF1273:
+ .string "MASK_FCVT_W_S 0xfff0007f"
+.LASF741:
+ .string "_REENT_CHECK_MP(ptr) "
+.LASF778:
+ .string "_SYS_TYPES_H "
+.LASF1497:
+ .string "CSR_HPMCOUNTER22 0xc16"
+.LASF1646:
+ .string "CSR_MHPMCOUNTER14H 0xb8e"
+.LASF686:
+ .string "_GCC_WCHAR_T "
+.LASF454:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1601:
+ .string "CSR_CYCLEH 0xc80"
+.LASF710:
+ .string "__LOCK_INIT(class,lock) static int lock = 0;"
+.LASF1225:
+ .string "MASK_FSGNJ_S 0xfe00707f"
+.LASF380:
+ .string "__INT8 \"hh\""
+.LASF1698:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF1355:
+ .string "MASK_C_ADDIW 0xe003"
+.LASF1153:
+ .string "MASK_AMOMAX_W 0xf800707f"
+.LASF586:
+ .string "__dead2 __attribute__((__noreturn__))"
+.LASF1706:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF514:
+ .string "__need_size_t "
+.LASF1364:
+ .string "MATCH_C_LW 0x4000"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF584:
+ .string "__volatile volatile"
+.LASF1101:
+ .string "MASK_LHU 0x707f"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF1440:
+ .string "MATCH_CUSTOM1_RS1_RS2 0x302b"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF688:
+ .string "_BSD_WCHAR_T_"
+.LASF1707:
+ .string "ECLICINTCTLBITS 4"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF923:
+ .string "MCONTROL_U (1<<3)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF1071:
+ .string "MASK_AND 0xfe00707f"
+.LASF1062:
+ .string "MATCH_XOR 0x4033"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF822:
+ .string "__SNPT 0x0800"
+.LASF534:
+ .string "__need_size_t"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF1112:
+ .string "MATCH_FENCE 0xf"
+.LASF1221:
+ .string "MASK_FMUL_S 0xfe00007f"
+.LASF672:
+ .string "__need_ptrdiff_t"
+.LASF1236:
+ .string "MATCH_FADD_D 0x2000053"
+.LASF1521:
+ .string "CSR_MTVEC 0x305"
+.LASF1381:
+ .string "MASK_C_LUI 0xe003"
+.LASF1016:
+ .string "MATCH_BNE 0x1063"
+.LASF432:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF1573:
+ .string "CSR_MHPMEVENT8 0x328"
+.LASF1129:
+ .string "MASK_REM 0xfe00707f"
+.LASF616:
+ .string "__containerof(x,s,m) ({ const volatile __typeof(((s *)0)->m) *__x = (x); __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));})"
+.LASF1201:
+ .string "MASK_SFENCE_VM 0xfff07fff"
+.LASF1342:
+ .string "MATCH_C_ADDI16SP 0x6101"
+.LASF1019:
+ .string "MASK_BLT 0x707f"
+.LASF1711:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF555:
+ .string "__GNUCLIKE_ASM 3"
+.LASF869:
+ .string "MSTATUS_SPIE 0x00000020"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF791:
+ .string "_DEV_T_DECLARED "
+.LASF370:
+ .string "signed +0"
+.LASF976:
+ .string "IRQ_S_EXT 9"
+.LASF1712:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF1468:
+ .string "MATCH_CUSTOM3_RD_RS1 0x607b"
+.LASF1720:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF739:
+ .ascii "_REENT_INIT_PTR_ZEROED(var) { (var)->_stdin = _REENT_STDIO_S"
+ .ascii "TREAM(var, 0); (var)->_stdout = _REENT_STDIO_STREAM(var, 1);"
+ .ascii " (var)->_stderr = _REENT_STDIO_STREAM(var, 2); (var)->_new._"
+ .ascii "reent._rand_next = 1; (var)->_new._reent._r48._seed[0] = _RA"
+ .ascii "ND48_SEED_0; (var)->_new._reent._r48._seed[1] = _RAND48_S"
+ .string "EED_1; (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; (var)->_new._reent._r48._add = _RAND48_ADD; }"
+.LASF1474:
+ .string "CSR_FCSR 0x3"
+.LASF1175:
+ .string "MASK_AMOMAX_D 0xf800707f"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF1031:
+ .string "MASK_LUI 0x7f"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF753:
+ .string "_REENT_MP_RESULT_K(ptr) ((ptr)->_result_k)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF1190:
+ .string "MATCH_URET 0x200073"
+.LASF1046:
+ .string "MATCH_SRAI 0x40005013"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF1435:
+ .string "MASK_CUSTOM0_RD_RS1_RS2 0x707f"
+.LASF915:
+ .string "MCONTROL_SELECT (1<<19)"
+.LASF1492:
+ .string "CSR_HPMCOUNTER17 0xc11"
+.LASF1603:
+ .string "CSR_INSTRETH 0xc82"
+.LASF656:
+ .string "__nosanitizeaddress "
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1324:
+ .string "MATCH_FMADD_S 0x43"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF601:
+ .string "__noinline __attribute__ ((__noinline__))"
+.LASF1281:
+ .string "MASK_FMV_X_S 0xfff0707f"
+.LASF545:
+ .string "__attribute_pure__ "
+.LASF488:
+ .string "_HAVE_LONG_DOUBLE 1"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1280:
+ .string "MATCH_FMV_X_S 0xe0000053"
+.LASF762:
+ .string "_REENT_WCTOMB_STATE(ptr) ((ptr)->_new._reent._wctomb_state)"
+.LASF1026:
+ .string "MATCH_JALR 0x67"
+.LASF959:
+ .string "SIP_STIP MIP_STIP"
+.LASF1312:
+ .string "MATCH_FCVT_D_LU 0xd2300053"
+.LASF1679:
+ .string "CAUSE_FAULT_FETCH 0x1"
+.LASF1103:
+ .string "MASK_LWU 0x707f"
+.LASF592:
+ .string "__section(x) __attribute__((__section__(x)))"
+.LASF550:
+ .string "__ptrvalue "
+.LASF1527:
+ .string "CSR_MIP 0x344"
+.LASF1004:
+ .string "write_fpu(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF1286:
+ .string "MATCH_FCVT_WU_D 0xc2100053"
+.LASF465:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF1399:
+ .string "MASK_C_ADDW 0xfc63"
+.LASF1427:
+ .string "MASK_CUSTOM0_RS1 0x707f"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF941:
+ .string "MIP_HSIP (1 << IRQ_H_SOFT)"
+.LASF1378:
+ .string "MATCH_C_LI 0x4001"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF1592:
+ .string "CSR_MHPMEVENT27 0x33b"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1308:
+ .string "MATCH_FCVT_D_WU 0xd2100053"
+.LASF640:
+ .string "__NULLABILITY_PRAGMA_POP "
+.LASF332:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF419:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF1681:
+ .string "CAUSE_BREAKPOINT 0x3"
+.LASF699:
+ .string "__need_wint_t"
+.LASF1092:
+ .string "MATCH_LH 0x1003"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF1069:
+ .string "MASK_OR 0xfe00707f"
+.LASF1683:
+ .string "CAUSE_FAULT_LOAD 0x5"
+.LASF424:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF907:
+ .string "DCSR_CAUSE_SWBP 1"
+.LASF1328:
+ .string "MATCH_FNMSUB_S 0x4b"
+.LASF1157:
+ .string "MASK_AMOMAXU_W 0xf800707f"
+.LASF1248:
+ .string "MATCH_FSGNJX_D 0x22002053"
+.LASF1489:
+ .string "CSR_HPMCOUNTER14 0xc0e"
+.LASF1541:
+ .string "CSR_MHPMCOUNTER7 0xb07"
+.LASF830:
+ .string "_IONBF 2"
+.LASF1595:
+ .string "CSR_MHPMEVENT30 0x33e"
+.LASF334:
+ .string "__NEWLIB__ 4"
+.LASF606:
+ .string "__returns_twice __attribute__((__returns_twice__))"
+.LASF1454:
+ .string "MATCH_CUSTOM2_RD 0x405b"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF1509:
+ .string "CSR_STVEC 0x105"
+.LASF752:
+ .string "_REENT_MP_RESULT(ptr) ((ptr)->_result)"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF783:
+ .string "__time_t_defined "
+.LASF866:
+ .string "MSTATUS_HIE 0x00000004"
+.LASF737:
+ .string "_REENT_STDIO_STREAM(var,index) &(var)->__sf[index]"
+.LASF1271:
+ .string "MASK_FEQ_D 0xfe00707f"
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF1122:
+ .string "MATCH_MULHU 0x2003033"
+.LASF1317:
+ .string "MASK_FLW 0x707f"
+.LASF807:
+ .string "__FILE_defined "
+.LASF1235:
+ .string "MASK_FSQRT_S 0xfff0007f"
+.LASF770:
+ .string "_REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err))"
+.LASF1203:
+ .string "MASK_WFI 0xffffffff"
+.LASF404:
+ .string "__int64_t_defined 1"
+.LASF506:
+ .string "_END_STD_C "
+.LASF408:
+ .string "_UINTPTR_T_DECLARED "
+.LASF935:
+ .string "MCONTROL_MATCH_NAPOT 1"
+.LASF707:
+ .string "_NULL 0"
+.LASF1215:
+ .string "MASK_CSRRCI 0x707f"
+.LASF501:
+ .string "__RAND_MAX 0x7fffffff"
+.LASF673:
+ .string "__wchar_t__ "
+.LASF1443:
+ .string "MASK_CUSTOM1_RD 0x707f"
+.LASF1387:
+ .string "MASK_C_ANDI 0xec03"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF659:
+ .string "__pt_guarded_by(x) __lock_annotate(pt_guarded_by(x))"
+.LASF687:
+ .string "_WCHAR_T_DECLARED "
+.LASF1303:
+ .string "MASK_FCVT_S_LU 0xfff0007f"
+.LASF1257:
+ .string "MASK_FCVT_D_S 0xfff0007f"
+.LASF1508:
+ .string "CSR_SIE 0x104"
+.LASF493:
+ .string "_UNBUF_STREAM_OPT 1"
+.LASF626:
+ .string "__sym_compat(sym,impl,verid) __asm__(\".symver \" #impl \", \" #sym \"@\" #verid)"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF954:
+ .string "MIE_MTIE MIP_MTIP"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF1162:
+ .string "MATCH_SC_W 0x1800202f"
+.LASF1258:
+ .string "MATCH_FSQRT_D 0x5a000053"
+.LASF1243:
+ .string "MASK_FDIV_D 0xfe00007f"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF427:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF1749:
+ .string "handle_nmi"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF1036:
+ .string "MATCH_SLLI 0x1013"
+.LASF1179:
+ .string "MASK_AMOMAXU_D 0xf800707f"
+.LASF847:
+ .string "__sgetc_raw_r(__ptr,__f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++))"
+.LASF386:
+ .string "__FAST32 "
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1390:
+ .string "MATCH_C_XOR 0x8c21"
+.LASF1109:
+ .string "MASK_SW 0x707f"
+.LASF1447:
+ .string "MASK_CUSTOM1_RD_RS1_RS2 0x707f"
+.LASF364:
+ .string "unsigned"
+.LASF826:
+ .string "__SNLK 0x0001"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF1311:
+ .string "MASK_FCVT_D_L 0xfff0007f"
+.LASF524:
+ .string "_SIZE_T_ "
+.LASF1626:
+ .string "CSR_HPMCOUNTER25H 0xc99"
+.LASF956:
+ .string "MIE_HEIE MIP_HEIP"
+.LASF531:
+ .string "_GCC_SIZE_T "
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF1198:
+ .string "MATCH_DRET 0x7b200073"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF1356:
+ .string "MATCH_C_LDSP 0x6002"
+.LASF1667:
+ .string "CSR_MNVEC 0x7C3"
+.LASF1421:
+ .string "MASK_C_SWSP 0xe003"
+.LASF978:
+ .string "IRQ_M_EXT 11"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1367:
+ .string "MASK_C_FLW 0xe003"
+.LASF1669:
+ .string "CSR_JALMNXTI 0x7ED"
+.LASF800:
+ .string "_CLOCKID_T_DECLARED "
+.LASF440:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1333:
+ .string "MASK_FMADD_D 0x600007f"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF1377:
+ .string "MASK_C_JAL 0xe003"
+.LASF623:
+ .string "__strong_reference(sym,aliassym) extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))"
+.LASF1012:
+ .string "rdinstret() read_csr(instret)"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1556:
+ .string "CSR_MHPMCOUNTER22 0xb16"
+.LASF1622:
+ .string "CSR_HPMCOUNTER21H 0xc95"
+.LASF679:
+ .string "_WCHAR_T_ "
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF880:
+ .string "MSTATUS32_SD 0x80000000"
+.LASF1524:
+ .string "CSR_MEPC 0x341"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF562:
+ .string "__GNUCLIKE_BUILTIN_VARARGS 1"
+.LASF772:
+ .string "_Kmax (sizeof (size_t) << 3)"
+.LASF541:
+ .string "__ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname"
+.LASF1586:
+ .string "CSR_MHPMEVENT21 0x335"
+.LASF999:
+ .string "SSTATUS_SD SSTATUS32_SD"
+.LASF1677:
+ .string "CSR_MSUBM 0x7c4"
+.LASF357:
+ .string "___int_least16_t_defined 1"
+.LASF1319:
+ .string "MASK_FLD 0x707f"
+.LASF1481:
+ .string "CSR_HPMCOUNTER6 0xc06"
+.LASF1034:
+ .string "MATCH_ADDI 0x13"
+.LASF520:
+ .string "_SYS_SIZE_T_H "
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF1419:
+ .string "MASK_C_FSDSP 0xe003"
+.LASF955:
+ .string "MIE_SEIE MIP_SEIP"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF1410:
+ .string "MATCH_C_LWSP 0x4002"
+.LASF447:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF1213:
+ .string "MASK_CSRRSI 0x707f"
+.LASF1519:
+ .string "CSR_MIDELEG 0x303"
+.LASF748:
+ .string "_REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next)"
+.LASF1416:
+ .string "MATCH_C_ADD 0x9002"
+.LASF646:
+ .string "__locks_shared(...) __lock_annotate(shared_lock_function(__VA_ARGS__))"
+.LASF867:
+ .string "MSTATUS_MIE 0x00000008"
+.LASF1744:
+ .string "mcause"
+.LASF367:
+ .string "__int20"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF1306:
+ .string "MATCH_FCVT_D_W 0xd2000053"
+.LASF729:
+ .string "_RAND48_MULT_0 (0xe66d)"
+.LASF1731:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF1147:
+ .string "MASK_AMOOR_W 0xf800707f"
+.LASF393:
+ .string "_INT8_T_DECLARED "
+.LASF758:
+ .string "_REENT_EMERGENCY(ptr) ((ptr)->_emergency)"
+.LASF1035:
+ .string "MASK_ADDI 0x707f"
+.LASF1211:
+ .string "MASK_CSRRWI 0x707f"
+.LASF1040:
+ .string "MATCH_SLTIU 0x3013"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF774:
+ .string "_REENT _impure_ptr"
+.LASF1136:
+ .string "MATCH_DIVUW 0x200503b"
+.LASF471:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1323:
+ .string "MASK_FSD 0x707f"
+.LASF449:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1222:
+ .string "MATCH_FDIV_S 0x18000053"
+.LASF946:
+ .string "MIP_SEIP (1 << IRQ_S_EXT)"
+.LASF537:
+ .string "__need_NULL"
+.LASF690:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF333:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF1130:
+ .string "MATCH_REMU 0x2007033"
+.LASF706:
+ .string "_TIMER_T_ unsigned long"
+.LASF590:
+ .string "__packed __attribute__((__packed__))"
+.LASF634:
+ .string "__DEVOLATILE(type,var) ((type)(__uintptr_t)(volatile void *)(var))"
+.LASF1555:
+ .string "CSR_MHPMCOUNTER21 0xb15"
+.LASF1041:
+ .string "MASK_SLTIU 0x707f"
+.LASF484:
+ .string "_WANT_IO_LONG_DOUBLE 1"
+.LASF1647:
+ .string "CSR_MHPMCOUNTER15H 0xb8f"
+.LASF819:
+ .string "__SAPP 0x0100"
+.LASF1253:
+ .string "MASK_FMAX_D 0xfe00707f"
+.LASF1200:
+ .string "MATCH_SFENCE_VM 0x10400073"
+.LASF1135:
+ .string "MASK_DIVW 0xfe00707f"
+.LASF597:
+ .string "__min_size(x) static (x)"
+.LASF696:
+ .string "_SYS__TYPES_H "
+.LASF984:
+ .string "CONFIG_STRING_ADDR 0x0000100C"
+.LASF1346:
+ .string "MATCH_C_JALR 0x9002"
+.LASF1671:
+ .string "CSR_PUSHMEPC 0x7EF"
+.LASF817:
+ .string "__SERR 0x0040"
+.LASF1580:
+ .string "CSR_MHPMEVENT15 0x32f"
+.LASF629:
+ .string "__RCSID(s) struct __hack"
+.LASF718:
+ .string "__lock_try_acquire(lock) ((void) 0)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF554:
+ .string "__END_DECLS "
+.LASF1459:
+ .string "MASK_CUSTOM2_RD_RS1_RS2 0x707f"
+.LASF359:
+ .string "___int_least64_t_defined 1"
+.LASF918:
+ .string "MCONTROL_CHAIN (1<<11)"
+.LASF373:
+ .string "short +1"
+.LASF1052:
+ .string "MATCH_ADD 0x33"
+.LASF456:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF563:
+ .string "__GNUCLIKE_BUILTIN_STDARG 1"
+.LASF1314:
+ .string "MATCH_FMV_D_X 0xf2000053"
+.LASF1629:
+ .string "CSR_HPMCOUNTER28H 0xc9c"
+.LASF1460:
+ .string "MATCH_CUSTOM3 0x7b"
+.LASF992:
+ .string "PTE_G 0x020"
+.LASF811:
+ .string "__SLBF 0x0001"
+.LASF1024:
+ .string "MATCH_BGEU 0x7063"
+.LASF1456:
+ .string "MATCH_CUSTOM2_RD_RS1 0x605b"
+.LASF1164:
+ .string "MATCH_AMOADD_D 0x302f"
+.LASF1118:
+ .string "MATCH_MULH 0x2001033"
+.LASF478:
+ .string "_STDIO_H_ "
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF1538:
+ .string "CSR_MHPMCOUNTER4 0xb04"
+.LASF1735:
+ .string "short unsigned int"
+.LASF1542:
+ .string "CSR_MHPMCOUNTER8 0xb08"
+.LASF1732:
+ .string "signed char"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF389:
+ .string "__LEAST16 \"h\""
+.LASF1553:
+ .string "CSR_MHPMCOUNTER19 0xb13"
+.LASF517:
+ .string "__size_t__ "
+.LASF1254:
+ .string "MATCH_FCVT_S_D 0x40100053"
+.LASF494:
+ .string "__SYS_CONFIG_H__ "
+.LASF1238:
+ .string "MATCH_FSUB_D 0xa000053"
+.LASF934:
+ .string "MCONTROL_MATCH_EQUAL 0"
+.LASF610:
+ .string "__predict_false(exp) __builtin_expect((exp), 0)"
+.LASF502:
+ .string "__EXPORT "
+.LASF1652:
+ .string "CSR_MHPMCOUNTER20H 0xb94"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF831:
+ .string "EOF (-1)"
+.LASF499:
+ .string "_POINTER_INT long"
+.LASF794:
+ .string "_PID_T_DECLARED "
+.LASF903:
+ .string "DCSR_HALT (1<<3)"
+.LASF738:
+ .ascii "_REENT_INIT(var) { 0, _REENT_STDIO_STREAM(&(var), 0), _REENT"
+ .ascii "_STDIO_STREAM(&(var), 1), _REENT_STDIO_STREAM(&(var), 2), 0,"
+ .ascii " \"\", 0, _NULL, 0, _NULL, _NULL, 0, _NULL, _NULL, 0, _NULL,"
+ .ascii " { { 0, _NULL, \"\", {0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, {"
+ .string " {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, _RAND48_ADD }, {0, {0}}, {0, {0}}, {0, {0}}, \"\", \"\", 0, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}} } }, _REENT_INIT_ATEXIT _NULL, {_NULL, 0, _NULL} }"
+.LASF947:
+ .string "MIP_HEIP (1 << IRQ_H_EXT)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF1488:
+ .string "CSR_HPMCOUNTER13 0xc0d"
+.LASF776:
+ .string "_GLOBAL_ATEXIT (_GLOBAL_REENT->_atexit)"
+.LASF1045:
+ .string "MASK_SRLI 0xfc00707f"
+.LASF602:
+ .string "__nonnull(x) __attribute__((__nonnull__ x))"
+.LASF525:
+ .string "_BSD_SIZE_T_ "
+.LASF1507:
+ .string "CSR_SSTATUS 0x100"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF990:
+ .string "PTE_X 0x008"
+.LASF1005:
+ .string "read_csr(reg) ({ unsigned long __tmp; asm volatile (\"csrr %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF1284:
+ .string "MATCH_FCVT_W_D 0xc2000053"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1068:
+ .string "MATCH_OR 0x6033"
+.LASF1575:
+ .string "CSR_MHPMEVENT10 0x32a"
+.LASF532:
+ .string "_SIZET_ "
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF636:
+ .string "_Nonnull "
+.LASF861:
+ .string "STDOUT_FILENO 1"
+.LASF823:
+ .string "__SOFF 0x1000"
+.LASF1374:
+ .string "MATCH_C_ADDI 0x1"
+.LASF730:
+ .string "_RAND48_MULT_1 (0xdeec)"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF1013:
+ .string "RISCV_ENCODING_H "
+.LASF750:
+ .string "_REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult)"
+.LASF1514:
+ .string "CSR_SIP 0x144"
+.LASF375:
+ .string "__int20__ +2"
+.LASF1389:
+ .string "MASK_C_SUB 0xfc63"
+.LASF764:
+ .string "_REENT_MBRTOWC_STATE(ptr) ((ptr)->_new._reent._mbrtowc_state)"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF485:
+ .string "_REENT_CHECK_VERIFY 1"
+.LASF916:
+ .string "MCONTROL_TIMING (1<<18)"
+.LASF1520:
+ .string "CSR_MIE 0x304"
+.LASF1178:
+ .string "MATCH_AMOMAXU_D 0xe000302f"
+.LASF1563:
+ .string "CSR_MHPMCOUNTER29 0xb1d"
+.LASF792:
+ .string "_UID_T_DECLARED "
+.LASF467:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF919:
+ .string "MCONTROL_MATCH (0xf<<7)"
+.LASF1008:
+ .string "set_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF731:
+ .string "_RAND48_MULT_2 (0x0005)"
+.LASF705:
+ .string "_CLOCKID_T_ unsigned long"
+.LASF575:
+ .string "__CC_SUPPORTS_VARADIC_XXX 1"
+.LASF1498:
+ .string "CSR_HPMCOUNTER23 0xc17"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF884:
+ .string "SSTATUS_UPIE 0x00000010"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF644:
+ .string "__lockable __lock_annotate(lockable)"
+.LASF551:
+ .string "__has_extension __has_feature"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF1537:
+ .string "CSR_MHPMCOUNTER3 0xb03"
+.LASF931:
+ .string "MCONTROL_ACTION_TRACE_START 2"
+.LASF1343:
+ .string "MASK_C_ADDI16SP 0xef83"
+.LASF860:
+ .string "STDIN_FILENO 0"
+.LASF1000:
+ .string "RISCV_PGLEVEL_BITS 10"
+.LASF951:
+ .string "MIE_MSIE MIP_MSIP"
+.LASF714:
+ .string "__lock_close(lock) ((void) 0)"
+.LASF837:
+ .string "SEEK_CUR 1"
+.LASF1264:
+ .string "MATCH_FEQ_S 0xa0002053"
+.LASF625:
+ .string "__warn_references(sym,msg) __asm__(\".section .gnu.warning.\" #sym); __asm__(\".asciz \\\"\" msg \"\\\"\"); __asm__(\".previous\")"
+.LASF756:
+ .string "_REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf)"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF453:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF477:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF1114:
+ .string "MATCH_FENCE_I 0x100f"
+.LASF1594:
+ .string "CSR_MHPMEVENT29 0x33d"
+.LASF569:
+ .string "__GNUCLIKE_BUILTIN_MEMCPY 1"
+.LASF542:
+ .string "__ptr_t void *"
+.LASF1710:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF911:
+ .string "DCSR_CAUSE_HALT 5"
+.LASF1423:
+ .string "MASK_C_FSWSP 0xe003"
+.LASF1350:
+ .string "MATCH_C_LD 0x6000"
+.LASF1461:
+ .string "MASK_CUSTOM3 0x707f"
+.LASF1584:
+ .string "CSR_MHPMEVENT19 0x333"
+.LASF343:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF652:
+ .string "__requires_exclusive(...) __lock_annotate(exclusive_locks_required(__VA_ARGS__))"
+.LASF422:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF1736:
+ .string "long int"
+.LASF1119:
+ .string "MASK_MULH 0xfe00707f"
+.LASF754:
+ .string "_REENT_MP_P5S(ptr) ((ptr)->_p5s)"
+.LASF1360:
+ .string "MATCH_C_ADDI4SPN 0x0"
+.LASF1083:
+ .string "MASK_SUBW 0xfe00707f"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF339:
+ .string "__ATFILE_VISIBLE 0"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF1148:
+ .string "MATCH_AMOAND_W 0x6000202f"
+.LASF736:
+ .string "_N_LISTS 30"
+.LASF476:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF1557:
+ .string "CSR_MHPMCOUNTER23 0xb17"
+.LASF1465:
+ .string "MASK_CUSTOM3_RS1_RS2 0x707f"
+.LASF1212:
+ .string "MATCH_CSRRSI 0x6073"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF599:
+ .string "__pure __attribute__((__pure__))"
+.LASF1544:
+ .string "CSR_MHPMCOUNTER10 0xb0a"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF1263:
+ .string "MASK_FLT_S 0xfe00707f"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF658:
+ .string "__guarded_by(x) __lock_annotate(guarded_by(x))"
+.LASF1315:
+ .string "MASK_FMV_D_X 0xfff0707f"
+.LASF446:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF538:
+ .string "__PMT(args) args"
+.LASF429:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1466:
+ .string "MATCH_CUSTOM3_RD 0x407b"
+.LASF667:
+ .string "_PTRDIFF_T_ "
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF1301:
+ .string "MASK_FCVT_S_L 0xfff0007f"
+.LASF347:
+ .string "__XSI_VISIBLE 0"
+.LASF621:
+ .string "__strftimelike(fmtarg,firstvararg) __attribute__((__format__ (__strftime__, fmtarg, firstvararg)))"
+.LASF666:
+ .string "__PTRDIFF_T "
+.LASF786:
+ .string "__caddr_t_defined "
+.LASF1401:
+ .string "MASK_C_J 0xe003"
+.LASF1605:
+ .string "CSR_HPMCOUNTER4H 0xc84"
+.LASF833:
+ .string "FOPEN_MAX 20"
+.LASF1025:
+ .string "MASK_BGEU 0x707f"
+.LASF388:
+ .string "__LEAST8 \"hh\""
+.LASF1614:
+ .string "CSR_HPMCOUNTER13H 0xc8d"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF620:
+ .string "__strfmonlike(fmtarg,firstvararg) __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))"
+.LASF925:
+ .string "MCONTROL_STORE (1<<1)"
+.LASF1373:
+ .string "MASK_C_FSW 0xe003"
+.LASF1413:
+ .string "MASK_C_FLWSP 0xe003"
+.LASF600:
+ .string "__always_inline __inline__ __attribute__((__always_inline__))"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF1033:
+ .string "MASK_AUIPC 0x7f"
+.LASF1536:
+ .string "CSR_MINSTRET 0xb02"
+.LASF529:
+ .string "_SIZE_T_DECLARED "
+.LASF1266:
+ .string "MATCH_FLE_D 0xa2000053"
+.LASF972:
+ .string "IRQ_M_SOFT 3"
+.LASF1693:
+ .string "TIMER_MSIP_size 0x4"
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF1365:
+ .string "MASK_C_LW 0xe003"
+.LASF708:
+ .string "__Long long"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1566:
+ .string "CSR_MUCOUNTEREN 0x320"
+.LASF1293:
+ .string "MASK_FMV_X_D 0xfff0707f"
+.LASF1554:
+ .string "CSR_MHPMCOUNTER20 0xb14"
+.LASF1742:
+ .string "uintptr_t"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF539:
+ .string "__DOTS , ..."
+.LASF468:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF909:
+ .string "DCSR_CAUSE_DEBUGINT 3"
+.LASF1121:
+ .string "MASK_MULHSU 0xfe00707f"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF1444:
+ .string "MATCH_CUSTOM1_RD_RS1 0x602b"
+.LASF1743:
+ .string "long double"
+.LASF1713:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF1295:
+ .string "MASK_FCLASS_D 0xfff0707f"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF797:
+ .string "_MODE_T_DECLARED "
+.LASF522:
+ .string "_T_SIZE "
+.LASF1174:
+ .string "MATCH_AMOMAX_D 0xa000302f"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF1289:
+ .string "MASK_FCVT_L_D 0xfff0007f"
+.LASF648:
+ .string "__trylocks_shared(...) __lock_annotate(shared_trylock_function(__VA_ARGS__))"
+.LASF578:
+ .string "__CONCAT1(x,y) x ## y"
+.LASF781:
+ .string "__clock_t_defined "
+.LASF1503:
+ .string "CSR_HPMCOUNTER28 0xc1c"
+.LASF605:
+ .string "__result_use_check __attribute__((__warn_unused_result__))"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF337:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF1442:
+ .string "MATCH_CUSTOM1_RD 0x402b"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF1125:
+ .string "MASK_DIV 0xfe00707f"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF1371:
+ .string "MASK_C_SW 0xe003"
+.LASF420:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF676:
+ .string "_T_WCHAR_ "
+.LASF475:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF1702:
+ .string "_RISCV_CONST_H "
+.LASF489:
+ .string "_HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1"
+.LASF1204:
+ .string "MATCH_CSRRW 0x1073"
+.LASF1080:
+ .string "MATCH_ADDW 0x3b"
+.LASF1237:
+ .string "MASK_FADD_D 0xfe00007f"
+.LASF630:
+ .string "__RCSID_SOURCE(s) struct __hack"
+.LASF940:
+ .string "MIP_SSIP (1 << IRQ_S_SOFT)"
+.LASF1384:
+ .string "MATCH_C_SRAI 0x8401"
+.LASF1354:
+ .string "MATCH_C_ADDIW 0x2001"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF516:
+ .string "_SYS_CDEFS_H_ "
+.LASF1252:
+ .string "MATCH_FMAX_D 0x2a001053"
+.LASF1192:
+ .string "MATCH_SRET 0x10200073"
+.LASF965:
+ .string "VM_MBB 1"
+.LASF1336:
+ .string "MATCH_FNMSUB_D 0x200004b"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF1441:
+ .string "MASK_CUSTOM1_RS1_RS2 0x707f"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF1141:
+ .string "MASK_REMUW 0xfe00707f"
+.LASF1717:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF365:
+ .string "char"
+.LASF1331:
+ .string "MASK_FNMADD_S 0x600007f"
+.LASF1082:
+ .string "MATCH_SUBW 0x4000003b"
+.LASF1523:
+ .string "CSR_MSCRATCH 0x340"
+.LASF480:
+ .string "__NEWLIB_H__ 1"
+.LASF1564:
+ .string "CSR_MHPMCOUNTER30 0xb1e"
+.LASF452:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF1634:
+ .string "CSR_MINSTRETH 0xb82"
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF898:
+ .string "DCSR_EBREAKU (1<<12)"
+.LASF407:
+ .string "_INTPTR_T_DECLARED "
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1549:
+ .string "CSR_MHPMCOUNTER15 0xb0f"
+.LASF821:
+ .string "__SOPT 0x0400"
+.LASF921:
+ .string "MCONTROL_H (1<<5)"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF1277:
+ .string "MASK_FCVT_L_S 0xfff0007f"
+.LASF1376:
+ .string "MATCH_C_JAL 0x2001"
+.LASF694:
+ .string "__GNUC_VA_LIST "
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF519:
+ .string "_SIZE_T "
+.LASF1729:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF397:
+ .string "_UINT16_T_DECLARED "
+.LASF418:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF1067:
+ .string "MASK_SRA 0xfe00707f"
+.LASF1337:
+ .string "MASK_FNMSUB_D 0x600007f"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1429:
+ .string "MASK_CUSTOM0_RS1_RS2 0x707f"
+.LASF897:
+ .string "DCSR_EBREAKS (1<<13)"
+.LASF1726:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF1579:
+ .string "CSR_MHPMEVENT14 0x32e"
+.LASF782:
+ .string "_CLOCK_T_DECLARED "
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF957:
+ .string "MIE_MEIE MIP_MEIP"
+.LASF862:
+ .string "STDERR_FILENO 2"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF431:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF527:
+ .string "_SIZE_T_DEFINED "
+.LASF421:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF1741:
+ .string "__uintptr_t"
+.LASF487:
+ .string "HAVE_INITFINI_ARRAY 1"
+.LASF974:
+ .string "IRQ_H_TIMER 6"
+.LASF937:
+ .string "MCONTROL_MATCH_LT 3"
+.LASF352:
+ .string "___int8_t_defined 1"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF1482:
+ .string "CSR_HPMCOUNTER7 0xc07"
+.LASF1705:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1656:
+ .string "CSR_MHPMCOUNTER24H 0xb98"
+.LASF1009:
+ .string "clear_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF1567:
+ .string "CSR_MSCOUNTEREN 0x321"
+.LASF303:
+ .string "__riscv 1"
+.LASF1462:
+ .string "MATCH_CUSTOM3_RS1 0x207b"
+.LASF1127:
+ .string "MASK_DIVU 0xfe00707f"
+.LASF425:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF340:
+ .string "__BSD_VISIBLE 0"
+.LASF515:
+ .string "__need_NULL "
+.LASF901:
+ .string "DCSR_CAUSE (7<<6)"
+.LASF423:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF1214:
+ .string "MATCH_CSRRCI 0x7073"
+.LASF895:
+ .string "DCSR_EBREAKM (1<<15)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1559:
+ .string "CSR_MHPMCOUNTER25 0xb19"
+.LASF536:
+ .string "NULL ((void *)0)"
+.LASF802:
+ .string "_TIMER_T_DECLARED "
+.LASF892:
+ .string "DCSR_XDEBUGVER (3U<<30)"
+.LASF1288:
+ .string "MATCH_FCVT_L_D 0xc2200053"
+.LASF1612:
+ .string "CSR_HPMCOUNTER11H 0xc8b"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF975:
+ .string "IRQ_M_TIMER 7"
+.LASF1231:
+ .string "MASK_FMIN_S 0xfe00707f"
+.LASF883:
+ .string "SSTATUS_SIE 0x00000002"
+.LASF443:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF330:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF793:
+ .string "_GID_T_DECLARED "
+.LASF887:
+ .string "SSTATUS_FS 0x00006000"
+.LASF1234:
+ .string "MATCH_FSQRT_S 0x58000053"
+.LASF1526:
+ .string "CSR_MBADADDR 0x343"
+.LASF434:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF962:
+ .string "PRV_H 2"
+.LASF596:
+ .string "__generic(expr,t,yes,no) _Generic(expr, t: yes, default: no)"
+.LASF1309:
+ .string "MASK_FCVT_D_WU 0xfff0007f"
+.LASF1048:
+ .string "MATCH_ORI 0x6013"
+.LASF1424:
+ .string "MATCH_CUSTOM0 0xb"
+.LASF1370:
+ .string "MATCH_C_SW 0xc000"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF587:
+ .string "__pure2 __attribute__((__const__))"
+.LASF1368:
+ .string "MATCH_C_FSD 0xa000"
+.LASF689:
+ .string "__need_wchar_t"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1471:
+ .string "MASK_CUSTOM3_RD_RS1_RS2 0x707f"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF665:
+ .string "_T_PTRDIFF "
+.LASF1606:
+ .string "CSR_HPMCOUNTER5H 0xc85"
+.LASF971:
+ .string "IRQ_H_SOFT 2"
+.LASF973:
+ .string "IRQ_S_TIMER 5"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF657:
+ .string "__nosanitizethread "
+.LASF1596:
+ .string "CSR_MHPMEVENT31 0x33f"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1417:
+ .string "MASK_C_ADD 0xf003"
+.LASF1588:
+ .string "CSR_MHPMEVENT23 0x337"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF1697:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1581:
+ .string "CSR_MHPMEVENT16 0x330"
+.LASF820:
+ .string "__SSTR 0x0200"
+.LASF1287:
+ .string "MASK_FCVT_WU_D 0xfff0007f"
+.LASF1043:
+ .string "MASK_XORI 0x707f"
+.LASF1727:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF1668:
+ .string "CSR_MTVT2 0x7EC"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF1057:
+ .string "MASK_SLL 0xfe00707f"
+.LASF977:
+ .string "IRQ_H_EXT 10"
+.LASF1406:
+ .string "MATCH_C_SLLI 0x2"
+.LASF728:
+ .string "_RAND48_SEED_2 (0x1234)"
+.LASF462:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF458:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF1613:
+ .string "CSR_HPMCOUNTER12H 0xc8c"
+.LASF435:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF785:
+ .string "__daddr_t_defined "
+.LASF1680:
+ .string "CAUSE_ILLEGAL_INSTRUCTION 0x2"
+.LASF624:
+ .string "__weak_reference(sym,alias) __asm__(\".weak \" #alias); __asm__(\".equ \" #alias \", \" #sym)"
+.LASF1700:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF1344:
+ .string "MATCH_C_JR 0x8002"
+.LASF1265:
+ .string "MASK_FEQ_S 0xfe00707f"
+.LASF381:
+ .string "__INT16 \"h\""
+.LASF362:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF1160:
+ .string "MATCH_LR_W 0x1000202f"
+.LASF1053:
+ .string "MASK_ADD 0xfe00707f"
+.LASF1007:
+ .string "swap_csr(reg,val) ({ unsigned long __tmp; if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(val)); else asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(val)); __tmp; })"
+.LASF1530:
+ .string "CSR_TDATA2 0x7a2"
+.LASF1124:
+ .string "MATCH_DIV 0x2004033"
+.LASF392:
+ .string "_SYS__STDINT_H "
+.LASF581:
+ .string "__XSTRING(x) __STRING(x)"
+.LASF631:
+ .string "__SCCSID(s) struct __hack"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF1176:
+ .string "MATCH_AMOMINU_D 0xc000302f"
+.LASF1593:
+ .string "CSR_MHPMEVENT28 0x33c"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF996:
+ .string "PTE_PPN_SHIFT 10"
+.LASF1152:
+ .string "MATCH_AMOMAX_W 0xa000202f"
+.LASF396:
+ .string "_INT16_T_DECLARED "
+.LASF773:
+ .string "__ATTRIBUTE_IMPURE_PTR__ "
+.LASF406:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1014:
+ .string "MATCH_BEQ 0x63"
+.LASF1392:
+ .string "MATCH_C_OR 0x8c41"
+.LASF1548:
+ .string "CSR_MHPMCOUNTER14 0xb0e"
+.LASF377:
+ .string "long +4"
+.LASF329:
+ .string "_STDINT_H "
+.LASF745:
+ .string "_REENT_CHECK_MISC(ptr) "
+.LASF1522:
+ .string "CSR_MCOUNTEREN 0x306"
+.LASF482:
+ .string "_WANT_IO_LONG_LONG 1"
+.LASF459:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1624:
+ .string "CSR_HPMCOUNTER23H 0xc97"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1223:
+ .string "MASK_FDIV_S 0xfe00007f"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF1316:
+ .string "MATCH_FLW 0x2007"
+.LASF1386:
+ .string "MATCH_C_ANDI 0x8801"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF618:
+ .string "__scanflike(fmtarg,firstvararg) __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))"
+.LASF473:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF1169:
+ .string "MASK_AMOOR_D 0xf800707f"
+.LASF970:
+ .string "IRQ_S_SOFT 1"
+.LASF1591:
+ .string "CSR_MHPMEVENT26 0x33a"
+.LASF816:
+ .string "__SEOF 0x0020"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF1021:
+ .string "MASK_BGE 0x707f"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF1326:
+ .string "MATCH_FMSUB_S 0x47"
+.LASF680:
+ .string "_BSD_WCHAR_T_ "
+.LASF341:
+ .string "__GNU_VISIBLE 0"
+.LASF814:
+ .string "__SWR 0x0008"
+.LASF732:
+ .string "_RAND48_ADD (0x000b)"
+.LASF660:
+ .string "_STDDEF_H "
+.LASF796:
+ .string "_SSIZE_T_DECLARED "
+.LASF1728:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF726:
+ .string "_RAND48_SEED_0 (0x330e)"
+.LASF1209:
+ .string "MASK_CSRRC 0x707f"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF1687:
+ .string "CAUSE_SUPERVISOR_ECALL 0x9"
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF653:
+ .string "__requires_shared(...) __lock_annotate(shared_locks_required(__VA_ARGS__))"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF1104:
+ .string "MATCH_SB 0x23"
+.LASF1609:
+ .string "CSR_HPMCOUNTER8H 0xc88"
+.LASF1597:
+ .string "CSR_MVENDORID 0xf11"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF755:
+ .string "_REENT_MP_FREELIST(ptr) ((ptr)->_freelist)"
+.LASF1142:
+ .string "MATCH_AMOADD_W 0x202f"
+.LASF873:
+ .string "MSTATUS_MPP 0x00001800"
+.LASF583:
+ .string "__signed signed"
+.LASF1464:
+ .string "MATCH_CUSTOM3_RS1_RS2 0x307b"
+.LASF348:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF1528:
+ .string "CSR_TSELECT 0x7a0"
+.LASF331:
+ .string "_SYS_FEATURES_H "
+.LASF1636:
+ .string "CSR_MHPMCOUNTER4H 0xb84"
+.LASF1395:
+ .string "MASK_C_AND 0xfc63"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF1499:
+ .string "CSR_HPMCOUNTER24 0xc18"
+.LASF1730:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF608:
+ .string "__restrict restrict"
+.LASF1145:
+ .string "MASK_AMOXOR_W 0xf800707f"
+.LASF963:
+ .string "PRV_M 3"
+.LASF1239:
+ .string "MASK_FSUB_D 0xfe00007f"
+.LASF1422:
+ .string "MATCH_C_FSWSP 0xe002"
+.LASF1117:
+ .string "MASK_MUL 0xfe00707f"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF701:
+ .string "__size_t"
+.LASF455:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF1623:
+ .string "CSR_HPMCOUNTER22H 0xc96"
+.LASF603:
+ .string "__nonnull_all __attribute__((__nonnull__))"
+.LASF510:
+ .string "_ELIDABLE_INLINE static __inline__"
+.LASF593:
+ .string "__alloc_size(x) __attribute__((__alloc_size__(x)))"
+.LASF595:
+ .string "__alloc_align(x) __attribute__((__alloc_align__(x)))"
+.LASF677:
+ .string "_T_WCHAR "
+.LASF490:
+ .string "_FVWRITE_IN_STREAMIO 1"
+.LASF410:
+ .string "__int_least16_t_defined 1"
+.LASF1650:
+ .string "CSR_MHPMCOUNTER18H 0xb92"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF560:
+ .string "__GNUCLIKE_CTOR_SECTION_HANDLING 1"
+.LASF1188:
+ .string "MATCH_EBREAK 0x100073"
+.LASF1616:
+ .string "CSR_HPMCOUNTER15H 0xc8f"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1291:
+ .string "MASK_FCVT_LU_D 0xfff0007f"
+.LASF613:
+ .string "__hidden __attribute__((__visibility__(\"hidden\")))"
+.LASF1063:
+ .string "MASK_XOR 0xfe00707f"
+.LASF1321:
+ .string "MASK_FSW 0x707f"
+.LASF500:
+ .string "__RAND_MAX"
+.LASF852:
+ .string "__sfileno(p) ((p)->_file)"
+.LASF888:
+ .string "SSTATUS_XS 0x00018000"
+.LASF338:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF829:
+ .string "_IOLBF 1"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF805:
+ .string "_SYS__PTHREADTYPES_H_ "
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF417:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF712:
+ .string "__lock_init(lock) ((void) 0)"
+.LASF920:
+ .string "MCONTROL_M (1<<6)"
+.LASF637:
+ .string "_Nullable "
+.LASF1126:
+ .string "MATCH_DIVU 0x2005033"
+.LASF1637:
+ .string "CSR_MHPMCOUNTER5H 0xb85"
+.LASF507:
+ .string "_NOTHROW "
+.LASF572:
+ .string "__CC_SUPPORTS___INLINE__ 1"
+.LASF844:
+ .string "_stdout_r(x) ((x)->_stdout)"
+.LASF1450:
+ .string "MATCH_CUSTOM2_RS1 0x205b"
+.LASF416:
+ .string "__int_fast64_t_defined 1"
+.LASF1320:
+ .string "MATCH_FSW 0x2027"
+.LASF1304:
+ .string "MATCH_FMV_S_X 0xf0000053"
+.LASF939:
+ .string "MCONTROL_MATCH_MASK_HIGH 5"
+.LASF724:
+ .string "_REENT_INIT_ATEXIT _NULL, _ATEXIT_INIT,"
+.LASF735:
+ .string "_REENT_SIGNAL_SIZE 24"
+.LASF1167:
+ .string "MASK_AMOXOR_D 0xf800707f"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF863:
+ .string "RISCV_CSR_ENCODING_H "
+.LASF668:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF678:
+ .string "__WCHAR_T "
+.LASF1100:
+ .string "MATCH_LHU 0x5003"
+.LASF573:
+ .string "__CC_SUPPORTS___FUNC__ 1"
+.LASF717:
+ .string "__lock_acquire_recursive(lock) ((void) 0)"
+.LASF1233:
+ .string "MASK_FMAX_S 0xfe00707f"
+.LASF1110:
+ .string "MATCH_SD 0x3023"
+.LASF1722:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF1545:
+ .string "CSR_MHPMCOUNTER11 0xb0b"
+.LASF1518:
+ .string "CSR_MEDELEG 0x302"
+.LASF1166:
+ .string "MATCH_AMOXOR_D 0x2000302f"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF1599:
+ .string "CSR_MIMPID 0xf13"
+.LASF1196:
+ .string "MATCH_MRET 0x30200073"
+.LASF912:
+ .string "MCONTROL_TYPE(xlen) (0xfULL<<((xlen)-4))"
+.LASF460:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF1408:
+ .string "MATCH_C_FLDSP 0x2002"
+.LASF790:
+ .string "_OFF_T_DECLARED "
+.LASF1494:
+ .string "CSR_HPMCOUNTER19 0xc13"
+.LASF1657:
+ .string "CSR_MHPMCOUNTER25H 0xb99"
+.LASF546:
+ .string "__attribute_format_strfmon__(a,b) "
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF1404:
+ .string "MATCH_C_BNEZ 0xe001"
+.LASF1739:
+ .string "long long unsigned int"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF345:
+ .string "__POSIX_VISIBLE 199009"
+.LASF351:
+ .string "__have_long32 1"
+.LASF1180:
+ .string "MATCH_AMOSWAP_D 0x800302f"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF818:
+ .string "__SMBF 0x0080"
+.LASF930:
+ .string "MCONTROL_ACTION_DEBUG_MODE 1"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1251:
+ .string "MASK_FMIN_D 0xfe00707f"
+.LASF1477:
+ .string "CSR_INSTRET 0xc02"
+.LASF1724:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF1627:
+ .string "CSR_HPMCOUNTER26H 0xc9a"
+.LASF766:
+ .string "_REENT_WCRTOMB_STATE(ptr) ((ptr)->_new._reent._wcrtomb_state)"
+.LASF553:
+ .string "__BEGIN_DECLS "
+.LASF1414:
+ .string "MATCH_C_MV 0x8002"
+.LASF1246:
+ .string "MATCH_FSGNJN_D 0x22001053"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF725:
+ .string "_REENT_SMALL_CHECK_INIT(ptr) "
+.LASF1093:
+ .string "MASK_LH 0x707f"
+.LASF697:
+ .string "__need_wint_t "
+.LASF1436:
+ .string "MATCH_CUSTOM1 0x2b"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF1648:
+ .string "CSR_MHPMCOUNTER16H 0xb90"
+.LASF886:
+ .string "SSTATUS_SPP 0x00000100"
+.LASF1006:
+ .string "write_csr(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrw \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"csrw \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF1618:
+ .string "CSR_HPMCOUNTER17H 0xc91"
+.LASF1411:
+ .string "MASK_C_LWSP 0xe003"
+.LASF1472:
+ .string "CSR_FFLAGS 0x1"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF588:
+ .string "__unused __attribute__((__unused__))"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF645:
+ .string "__locks_exclusive(...) __lock_annotate(exclusive_lock_function(__VA_ARGS__))"
+.LASF1412:
+ .string "MATCH_C_FLWSP 0x6002"
+.LASF1172:
+ .string "MATCH_AMOMIN_D 0x8000302f"
+.LASF1639:
+ .string "CSR_MHPMCOUNTER7H 0xb87"
+.LASF1339:
+ .string "MASK_FNMADD_D 0x600007f"
+.LASF789:
+ .string "_INO_T_DECLARED "
+.LASF1632:
+ .string "CSR_HPMCOUNTER31H 0xc9f"
+.LASF1543:
+ .string "CSR_MHPMCOUNTER9 0xb09"
+.LASF1453:
+ .string "MASK_CUSTOM2_RS1_RS2 0x707f"
+.LASF444:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF801:
+ .string "__timer_t_defined "
+.LASF998:
+ .string "MSTATUS_SD MSTATUS32_SD"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF1703:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1664:
+ .string "CSR_MTVT 0x307"
+.LASF1658:
+ .string "CSR_MHPMCOUNTER26H 0xb9a"
+.LASF932:
+ .string "MCONTROL_ACTION_TRACE_STOP 3"
+.LASF354:
+ .string "___int32_t_defined 1"
+.LASF1628:
+ .string "CSR_HPMCOUNTER27H 0xc9b"
+.LASF509:
+ .string "_ATTRIBUTE(attrs) __attribute__ (attrs)"
+.LASF1504:
+ .string "CSR_HPMCOUNTER29 0xc1d"
+.LASF400:
+ .string "_UINT32_T_DECLARED "
+.LASF809:
+ .string "_flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))"
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF649:
+ .string "__unlocks(...) __lock_annotate(unlock_function(__VA_ARGS__))"
+.LASF1299:
+ .string "MASK_FCVT_S_WU 0xfff0007f"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF1502:
+ .string "CSR_HPMCOUNTER27 0xc1b"
+.LASF902:
+ .string "DCSR_DEBUGINT (1<<5)"
+.LASF1132:
+ .string "MATCH_MULW 0x200003b"
+.LASF566:
+ .string "__compiler_membar() __asm __volatile(\" \" : : : \"memory\")"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF882:
+ .string "SSTATUS_UIE 0x00000001"
+.LASF639:
+ .string "__NULLABILITY_PRAGMA_PUSH "
+.LASF1619:
+ .string "CSR_HPMCOUNTER18H 0xc92"
+.LASF763:
+ .string "_REENT_MBRLEN_STATE(ptr) ((ptr)->_new._reent._mbrlen_state)"
+.LASF441:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF1701:
+ .string "N200_ECLIC_H "
+.LASF1513:
+ .string "CSR_SBADADDR 0x143"
+.LASF461:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1216:
+ .string "MATCH_FADD_S 0x53"
+.LASF576:
+ .string "__CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1"
+.LASF1189:
+ .string "MASK_EBREAK 0xffffffff"
+.LASF1228:
+ .string "MATCH_FSGNJX_S 0x20002053"
+.LASF1640:
+ .string "CSR_MHPMCOUNTER8H 0xb88"
+.LASF1577:
+ .string "CSR_MHPMEVENT12 0x32c"
+.LASF503:
+ .string "__IMPORT "
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF981:
+ .string "DEFAULT_RSTVEC 0x00001000"
+.LASF1568:
+ .string "CSR_MHPMEVENT3 0x323"
+.LASF615:
+ .string "__rangeof(type,start,end) (__offsetof(type, end) - __offsetof(type, start))"
+.LASF598:
+ .string "__malloc_like __attribute__((__malloc__))"
+.LASF669:
+ .string "___int_ptrdiff_t_h "
+.LASF1659:
+ .string "CSR_MHPMCOUNTER27H 0xb9b"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF812:
+ .string "__SNBF 0x0002"
+.LASF1159:
+ .string "MASK_AMOSWAP_W 0xf800707f"
+.LASF856:
+ .string "getchar_unlocked() _getchar_unlocked()"
+.LASF512:
+ .string "_NOINLINE_STATIC _NOINLINE static"
+.LASF1565:
+ .string "CSR_MHPMCOUNTER31 0xb1f"
+.LASF508:
+ .string "_LONG_DOUBLE long double"
+.LASF589:
+ .string "__used __attribute__((__used__))"
+.LASF1455:
+ .string "MASK_CUSTOM2_RD 0x707f"
+.LASF497:
+ .string "__OBSOLETE_MATH __OBSOLETE_MATH_DEFAULT"
+.LASF723:
+ .string "_ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}"
+.LASF913:
+ .string "MCONTROL_DMODE(xlen) (1ULL<<((xlen)-5))"
+.LASF1267:
+ .string "MASK_FLE_D 0xfe00707f"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1550:
+ .string "CSR_MHPMCOUNTER16 0xb10"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF1738:
+ .string "long long int"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF632:
+ .string "__COPYRIGHT(s) struct __hack"
+.LASF498:
+ .string "_READ_WRITE_RETURN_TYPE _ssize_t"
+.LASF492:
+ .string "_WIDE_ORIENT 1"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF369:
+ .string "long"
+.LASF1641:
+ .string "CSR_MHPMCOUNTER9H 0xb89"
+.LASF1385:
+ .string "MASK_C_SRAI 0xec03"
+.LASF899:
+ .string "DCSR_STOPCYCLE (1<<10)"
+.LASF1249:
+ .string "MASK_FSGNJX_D 0xfe00707f"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF1719:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF342:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF391:
+ .string "__LEAST64 \"ll\""
+.LASF1485:
+ .string "CSR_HPMCOUNTER10 0xc0a"
+.LASF1660:
+ .string "CSR_MHPMCOUNTER28H 0xb9c"
+.LASF430:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF1576:
+ .string "CSR_MHPMEVENT11 0x32b"
+.LASF1015:
+ .string "MASK_BEQ 0x707f"
+.LASF1483:
+ .string "CSR_HPMCOUNTER8 0xc08"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF1133:
+ .string "MASK_MULW 0xfe00707f"
+.LASF936:
+ .string "MCONTROL_MATCH_GE 2"
+.LASF1181:
+ .string "MASK_AMOSWAP_D 0xf800707f"
+.LASF769:
+ .string "_REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf)"
+.LASF1651:
+ .string "CSR_MHPMCOUNTER19H 0xb93"
+.LASF579:
+ .string "__CONCAT(x,y) __CONCAT1(x,y)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF1533:
+ .string "CSR_DPC 0x7b1"
+.LASF1199:
+ .string "MASK_DRET 0xffffffff"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF917:
+ .string "MCONTROL_ACTION (0x3f<<12)"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF1116:
+ .string "MATCH_MUL 0x2000033"
+.LASF436:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF469:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF979:
+ .string "IRQ_COP 12"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1165:
+ .string "MASK_AMOADD_D 0xf800707f"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF1089:
+ .string "MASK_SRAW 0xfe00707f"
+.LASF491:
+ .string "_FSEEK_OPTIMIZATION 1"
+.LASF1737:
+ .string "long unsigned int"
+.LASF828:
+ .string "_IOFBF 0"
+.LASF704:
+ .string "_TIME_T_ __int_least64_t"
+.LASF876:
+ .string "MSTATUS_MPRV 0x00020000"
+.LASF565:
+ .string "__GNUC_VA_LIST_COMPATIBILITY 1"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF451:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF991:
+ .string "PTE_U 0x010"
+.LASF1232:
+ .string "MATCH_FMAX_S 0x28001053"
+.LASF1708:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF1560:
+ .string "CSR_MHPMCOUNTER26 0xb1a"
+.LASF948:
+ .string "MIP_MEIP (1 << IRQ_M_EXT)"
+.LASF874:
+ .string "MSTATUS_FS 0x00006000"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF1022:
+ .string "MATCH_BLTU 0x6063"
+.LASF1682:
+ .string "CAUSE_MISALIGNED_LOAD 0x4"
+.LASF1495:
+ .string "CSR_HPMCOUNTER20 0xc14"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF910:
+ .string "DCSR_CAUSE_STEP 4"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF556:
+ .string "__GNUCLIKE_MATH_BUILTIN_CONSTANTS "
+.LASF1638:
+ .string "CSR_MHPMCOUNTER6H 0xb86"
+.LASF855:
+ .string "clearerr(p) __sclearerr(p)"
+.LASF1250:
+ .string "MATCH_FMIN_D 0x2a000053"
+.LASF691:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF928:
+ .string "MCONTROL_TYPE_MATCH 2"
+.LASF1692:
+ .string "TIMER_MSIP 0xFFC"
+.LASF1318:
+ .string "MATCH_FLD 0x3007"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF1689:
+ .string "CAUSE_MACHINE_ECALL 0xb"
+.LASF1582:
+ .string "CSR_MHPMEVENT17 0x331"
+.LASF518:
+ .string "__SIZE_T__ "
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF952:
+ .string "MIE_STIE MIP_STIP"
+.LASF614:
+ .string "__offsetof(type,field) offsetof(type, field)"
+.LASF1206:
+ .string "MATCH_CSRRS 0x2073"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF727:
+ .string "_RAND48_SEED_1 (0xabcd)"
+.LASF1140:
+ .string "MATCH_REMUW 0x200703b"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF607:
+ .string "__unreachable() __builtin_unreachable()"
+.LASF1469:
+ .string "MASK_CUSTOM3_RD_RS1 0x707f"
+.LASF1372:
+ .string "MATCH_C_FSW 0xe000"
+.LASF894:
+ .string "DCSR_FULLRESET (1<<28)"
+.LASF580:
+ .string "__STRING(x) #x"
+.LASF1341:
+ .string "MASK_C_NOP 0xffff"
+.LASF402:
+ .string "_INT64_T_DECLARED "
+.LASF1283:
+ .string "MASK_FCLASS_S 0xfff0707f"
+.LASF961:
+ .string "PRV_S 1"
+.LASF361:
+ .string "_SYS__INTSUP_H "
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF1686:
+ .string "CAUSE_USER_ECALL 0x8"
+.LASF761:
+ .string "_REENT_MBTOWC_STATE(ptr) ((ptr)->_new._reent._mbtowc_state)"
+.LASF1590:
+ .string "CSR_MHPMEVENT25 0x339"
+.LASF533:
+ .string "__size_t "
+.LASF1725:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF1077:
+ .string "MASK_SRLIW 0xfe00707f"
+.LASF1571:
+ .string "CSR_MHPMEVENT6 0x326"
+.LASF834:
+ .string "FILENAME_MAX 1024"
+.LASF815:
+ .string "__SRW 0x0010"
+.LASF1113:
+ .string "MASK_FENCE 0x707f"
+.LASF1224:
+ .string "MATCH_FSGNJ_S 0x20000053"
+.LASF1038:
+ .string "MATCH_SLTI 0x2013"
+.LASF540:
+ .string "__THROW "
+.LASF464:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1531:
+ .string "CSR_TDATA3 0x7a3"
+.LASF1047:
+ .string "MASK_SRAI 0xfc00707f"
+.LASF1184:
+ .string "MATCH_SC_D 0x1800302f"
+.LASF1525:
+ .string "CSR_MCAUSE 0x342"
+.LASF1434:
+ .string "MATCH_CUSTOM0_RD_RS1_RS2 0x700b"
+.LASF1451:
+ .string "MASK_CUSTOM2_RS1 0x707f"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF382:
+ .string "__INT32 \"l\""
+.LASF799:
+ .string "__clockid_t_defined "
+.LASF1598:
+ .string "CSR_MARCHID 0xf12"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1260:
+ .string "MATCH_FLE_S 0xa0000053"
+.LASF840:
+ .string "stdin (_REENT->_stdin)"
+.LASF1734:
+ .string "short int"
+.LASF1217:
+ .string "MASK_FADD_S 0xfe00007f"
+.LASF700:
+ .string "_MACHINE__TYPES_H "
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF401:
+ .string "__int32_t_defined 1"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF1696:
+ .string "TIMER_MTIME 0x0"
+.LASF1490:
+ .string "CSR_HPMCOUNTER15 0xc0f"
+.LASF1158:
+ .string "MATCH_AMOSWAP_W 0x800202f"
+.LASF804:
+ .string "_SUSECONDS_T_DECLARED "
+.LASF872:
+ .string "MSTATUS_SPP 0x00000100"
+.LASF960:
+ .string "PRV_U 0"
+.LASF1714:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF1428:
+ .string "MATCH_CUSTOM0_RS1_RS2 0x300b"
+.LASF635:
+ .string "__DEQUALIFY(type,var) ((type)(__uintptr_t)(const volatile void *)(var))"
+.LASF1106:
+ .string "MATCH_SH 0x1023"
+.LASF1074:
+ .string "MATCH_SLLIW 0x101b"
+.LASF1088:
+ .string "MATCH_SRAW 0x4000503b"
+.LASF1615:
+ .string "CSR_HPMCOUNTER14H 0xc8e"
+.LASF1512:
+ .string "CSR_SCAUSE 0x142"
+.LASF1695:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF1476:
+ .string "CSR_TIME 0xc01"
+.LASF1300:
+ .string "MATCH_FCVT_S_L 0xd0200053"
+.LASF994:
+ .string "PTE_D 0x080"
+.LASF1394:
+ .string "MATCH_C_AND 0x8c61"
+.LASF1128:
+ .string "MATCH_REM 0x2006033"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1396:
+ .string "MATCH_C_SUBW 0x9c01"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF466:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF843:
+ .string "_stdin_r(x) ((x)->_stdin)"
+.LASF845:
+ .string "_stderr_r(x) ((x)->_stderr)"
+.LASF711:
+ .string "__LOCK_INIT_RECURSIVE(class,lock) static int lock = 0;"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF808:
+ .string "_NEWLIB_STDIO_H "
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF848:
+ .string "__sgetc_r(__ptr,__p) __sgetc_raw_r(__ptr, __p)"
+.LASF1085:
+ .string "MASK_SLLW 0xfe00707f"
+.LASF433:
+ .string "INT32_MAX (__INT32_MAX__)"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/init.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/init.c
new file mode 100644
index 0000000000..4f0499395e
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/init.c
@@ -0,0 +1,34 @@
+//See LICENSE for license details.
+#include
+#include
+#include
+#include
+#include "riscv_encoding.h"
+#include "n200_func.h"
+
+extern uint32_t disable_mcycle_minstret();
+void _init()
+{
+ SystemInit();
+
+ //ECLIC init
+ eclic_init(ECLIC_NUM_INTERRUPTS);
+ eclic_mode_enable();
+
+ //printf("After ECLIC mode enabled, the mtvec value is %x \n\n\r", read_csr(mtvec));
+
+ // // It must be NOTED:
+ // // * In the RISC-V arch, if user mode and PMP supported, then by default if PMP is not configured
+ // // with valid entries, then user mode cannot access any memory, and cannot execute any instructions.
+ // // * So if switch to user-mode and still want to continue, then you must configure PMP first
+ //pmp_open_all_space();
+ //switch_m2u_mode();
+
+ /* Before enter into main, add the cycle/instret disable by default to save power,
+ only use them when needed to measure the cycle/instret */
+ disable_mcycle_minstret();
+}
+
+void _fini()
+{
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/init.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/init.s
new file mode 100644
index 0000000000..2765d57537
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/init.s
@@ -0,0 +1,23058 @@
+ .file "init.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl _init
+ .type _init, @function
+_init:
+.LFB5:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\env_Eclipse\\init.c"
+ .loc 1 11 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw ra,12(sp)
+ sw s0,8(sp)
+ .cfi_offset 1, -4
+ .cfi_offset 8, -8
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 12 2
+ call SystemInit
+ .loc 1 15 2
+ li a0,87
+ call eclic_init
+ .loc 1 16 2
+ call eclic_mode_enable
+ .loc 1 29 2
+ call disable_mcycle_minstret
+ .loc 1 30 1
+ nop
+ lw ra,12(sp)
+ .cfi_restore 1
+ lw s0,8(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE5:
+ .size _init, .-_init
+ .align 1
+ .globl _fini
+ .type _fini, @function
+_fini:
+.LFB6:
+ .loc 1 33 1
+ .cfi_startproc
+ addi sp,sp,-16
+ .cfi_def_cfa_offset 16
+ sw s0,12(sp)
+ .cfi_offset 8, -4
+ addi s0,sp,16
+ .cfi_def_cfa 8, 0
+ .loc 1 34 1
+ nop
+ lw s0,12(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 16
+ addi sp,sp,16
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE6:
+ .size _fini, .-_fini
+.Letext0:
+ .file 2 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/gd32vf103.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0x23d
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF4406
+ .byte 0xc
+ .4byte .LASF4407
+ .4byte .LASF4408
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .4byte .LASF4409
+ .byte 0x7
+ .byte 0x4
+ .4byte 0x1c8
+ .byte 0x2
+ .byte 0x61
+ .byte 0xe
+ .4byte 0x1c8
+ .byte 0x3
+ .4byte .LASF4328
+ .byte 0
+ .byte 0x3
+ .4byte .LASF4329
+ .byte 0x3
+ .byte 0x3
+ .4byte .LASF4330
+ .byte 0x7
+ .byte 0x3
+ .4byte .LASF4331
+ .byte 0x11
+ .byte 0x3
+ .4byte .LASF4332
+ .byte 0x12
+ .byte 0x3
+ .4byte .LASF4333
+ .byte 0x13
+ .byte 0x3
+ .4byte .LASF4334
+ .byte 0x14
+ .byte 0x3
+ .4byte .LASF4335
+ .byte 0x15
+ .byte 0x3
+ .4byte .LASF4336
+ .byte 0x16
+ .byte 0x3
+ .4byte .LASF4337
+ .byte 0x17
+ .byte 0x3
+ .4byte .LASF4338
+ .byte 0x18
+ .byte 0x3
+ .4byte .LASF4339
+ .byte 0x19
+ .byte 0x3
+ .4byte .LASF4340
+ .byte 0x1a
+ .byte 0x3
+ .4byte .LASF4341
+ .byte 0x1b
+ .byte 0x3
+ .4byte .LASF4342
+ .byte 0x1c
+ .byte 0x3
+ .4byte .LASF4343
+ .byte 0x1d
+ .byte 0x3
+ .4byte .LASF4344
+ .byte 0x1e
+ .byte 0x3
+ .4byte .LASF4345
+ .byte 0x1f
+ .byte 0x3
+ .4byte .LASF4346
+ .byte 0x20
+ .byte 0x3
+ .4byte .LASF4347
+ .byte 0x21
+ .byte 0x3
+ .4byte .LASF4348
+ .byte 0x22
+ .byte 0x3
+ .4byte .LASF4349
+ .byte 0x23
+ .byte 0x3
+ .4byte .LASF4350
+ .byte 0x24
+ .byte 0x3
+ .4byte .LASF4351
+ .byte 0x25
+ .byte 0x3
+ .4byte .LASF4352
+ .byte 0x26
+ .byte 0x3
+ .4byte .LASF4353
+ .byte 0x27
+ .byte 0x3
+ .4byte .LASF4354
+ .byte 0x28
+ .byte 0x3
+ .4byte .LASF4355
+ .byte 0x29
+ .byte 0x3
+ .4byte .LASF4356
+ .byte 0x2a
+ .byte 0x3
+ .4byte .LASF4357
+ .byte 0x2b
+ .byte 0x3
+ .4byte .LASF4358
+ .byte 0x2c
+ .byte 0x3
+ .4byte .LASF4359
+ .byte 0x2d
+ .byte 0x3
+ .4byte .LASF4360
+ .byte 0x2e
+ .byte 0x3
+ .4byte .LASF4361
+ .byte 0x2f
+ .byte 0x3
+ .4byte .LASF4362
+ .byte 0x30
+ .byte 0x3
+ .4byte .LASF4363
+ .byte 0x31
+ .byte 0x3
+ .4byte .LASF4364
+ .byte 0x32
+ .byte 0x3
+ .4byte .LASF4365
+ .byte 0x33
+ .byte 0x3
+ .4byte .LASF4366
+ .byte 0x34
+ .byte 0x3
+ .4byte .LASF4367
+ .byte 0x35
+ .byte 0x3
+ .4byte .LASF4368
+ .byte 0x36
+ .byte 0x3
+ .4byte .LASF4369
+ .byte 0x37
+ .byte 0x3
+ .4byte .LASF4370
+ .byte 0x38
+ .byte 0x3
+ .4byte .LASF4371
+ .byte 0x39
+ .byte 0x3
+ .4byte .LASF4372
+ .byte 0x3a
+ .byte 0x3
+ .4byte .LASF4373
+ .byte 0x3b
+ .byte 0x3
+ .4byte .LASF4374
+ .byte 0x3c
+ .byte 0x3
+ .4byte .LASF4375
+ .byte 0x3d
+ .byte 0x3
+ .4byte .LASF4376
+ .byte 0x43
+ .byte 0x3
+ .4byte .LASF4377
+ .byte 0x45
+ .byte 0x3
+ .4byte .LASF4378
+ .byte 0x46
+ .byte 0x3
+ .4byte .LASF4379
+ .byte 0x47
+ .byte 0x3
+ .4byte .LASF4380
+ .byte 0x48
+ .byte 0x3
+ .4byte .LASF4381
+ .byte 0x49
+ .byte 0x3
+ .4byte .LASF4382
+ .byte 0x4a
+ .byte 0x3
+ .4byte .LASF4383
+ .byte 0x4b
+ .byte 0x3
+ .4byte .LASF4384
+ .byte 0x4c
+ .byte 0x3
+ .4byte .LASF4385
+ .byte 0x4d
+ .byte 0x3
+ .4byte .LASF4386
+ .byte 0x4e
+ .byte 0x3
+ .4byte .LASF4387
+ .byte 0x4f
+ .byte 0x3
+ .4byte .LASF4388
+ .byte 0x52
+ .byte 0x3
+ .4byte .LASF4389
+ .byte 0x53
+ .byte 0x3
+ .4byte .LASF4390
+ .byte 0x54
+ .byte 0x3
+ .4byte .LASF4391
+ .byte 0x55
+ .byte 0x3
+ .4byte .LASF4392
+ .byte 0x56
+ .byte 0x3
+ .4byte .LASF4393
+ .byte 0x57
+ .byte 0
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF4394
+ .byte 0x4
+ .byte 0x1
+ .byte 0x6
+ .4byte .LASF4395
+ .byte 0x4
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF4396
+ .byte 0x4
+ .byte 0x2
+ .byte 0x5
+ .4byte .LASF4397
+ .byte 0x4
+ .byte 0x2
+ .byte 0x7
+ .4byte .LASF4398
+ .byte 0x4
+ .byte 0x4
+ .byte 0x5
+ .4byte .LASF4399
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .LASF4400
+ .byte 0x4
+ .byte 0x8
+ .byte 0x5
+ .4byte .LASF4401
+ .byte 0x4
+ .byte 0x8
+ .byte 0x7
+ .4byte .LASF4402
+ .byte 0x5
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x4
+ .byte 0x10
+ .byte 0x4
+ .4byte .LASF4403
+ .byte 0x4
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF377
+ .byte 0x6
+ .4byte .LASF4404
+ .byte 0x1
+ .byte 0x20
+ .byte 0x6
+ .4byte .LFB6
+ .4byte .LFE6-.LFB6
+ .byte 0x1
+ .byte 0x9c
+ .byte 0x7
+ .4byte .LASF4405
+ .byte 0x1
+ .byte 0xa
+ .byte 0x6
+ .4byte .LFB5
+ .4byte .LFE5-.LFB5
+ .byte 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x4
+ .byte 0x1
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3e
+ .byte 0xb
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x28
+ .byte 0
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1c
+ .byte 0xb
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x2e
+ .byte 0
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x96,0x42
+ .byte 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .byte 0x3
+ .byte 0x2
+ .byte 0x2
+ .byte 0x7
+ .4byte .Ldebug_macro2
+ .file 3 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral/system_gd32vf103.h"
+ .byte 0x3
+ .byte 0xaf,0x1
+ .byte 0x3
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF340
+ .file 4 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdint.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x4
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF341
+ .file 5 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_default_types.h"
+ .byte 0x3
+ .byte 0xc
+ .byte 0x5
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF342
+ .file 6 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\features.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x6
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF343
+ .file 7 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_newlib_version.h"
+ .byte 0x3
+ .byte 0x1c
+ .byte 0x7
+ .byte 0x7
+ .4byte .Ldebug_macro3
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro5
+ .byte 0x4
+ .file 8 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_intsup.h"
+ .byte 0x3
+ .byte 0xd
+ .byte 0x8
+ .byte 0x7
+ .4byte .Ldebug_macro6
+ .byte 0x4
+ .file 9 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_stdint.h"
+ .byte 0x3
+ .byte 0xe
+ .byte 0x9
+ .byte 0x7
+ .4byte .Ldebug_macro7
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro8
+ .byte 0x4
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro9
+ .file 10 "board/gd32vf103_libopt.h"
+ .byte 0x3
+ .byte 0xec,0x1
+ .byte 0xa
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF526
+ .file 11 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_adc.h"
+ .byte 0x3
+ .byte 0x27
+ .byte 0xb
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF527
+ .byte 0x3
+ .byte 0x27
+ .byte 0x2
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro10
+ .byte 0x4
+ .file 12 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_bkp.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0xc
+ .byte 0x7
+ .4byte .Ldebug_macro11
+ .byte 0x4
+ .file 13 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_can.h"
+ .byte 0x3
+ .byte 0x29
+ .byte 0xd
+ .byte 0x7
+ .4byte .Ldebug_macro12
+ .byte 0x4
+ .file 14 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_crc.h"
+ .byte 0x3
+ .byte 0x2a
+ .byte 0xe
+ .byte 0x7
+ .4byte .Ldebug_macro13
+ .byte 0x4
+ .file 15 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dac.h"
+ .byte 0x3
+ .byte 0x2b
+ .byte 0xf
+ .byte 0x7
+ .4byte .Ldebug_macro14
+ .byte 0x4
+ .file 16 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dma.h"
+ .byte 0x3
+ .byte 0x2c
+ .byte 0x10
+ .byte 0x7
+ .4byte .Ldebug_macro15
+ .byte 0x4
+ .file 17 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_eclic.h"
+ .byte 0x3
+ .byte 0x2d
+ .byte 0x11
+ .byte 0x7
+ .4byte .Ldebug_macro16
+ .byte 0x4
+ .file 18 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exmc.h"
+ .byte 0x3
+ .byte 0x2e
+ .byte 0x12
+ .byte 0x7
+ .4byte .Ldebug_macro17
+ .byte 0x4
+ .file 19 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_exti.h"
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x13
+ .byte 0x7
+ .4byte .Ldebug_macro18
+ .byte 0x4
+ .file 20 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fmc.h"
+ .byte 0x3
+ .byte 0x30
+ .byte 0x14
+ .byte 0x7
+ .4byte .Ldebug_macro19
+ .byte 0x4
+ .file 21 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_gpio.h"
+ .byte 0x3
+ .byte 0x31
+ .byte 0x15
+ .byte 0x7
+ .4byte .Ldebug_macro20
+ .byte 0x4
+ .file 22 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_i2c.h"
+ .byte 0x3
+ .byte 0x32
+ .byte 0x16
+ .byte 0x7
+ .4byte .Ldebug_macro21
+ .byte 0x4
+ .file 23 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_fwdgt.h"
+ .byte 0x3
+ .byte 0x33
+ .byte 0x17
+ .byte 0x7
+ .4byte .Ldebug_macro22
+ .byte 0x4
+ .file 24 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_dbg.h"
+ .byte 0x3
+ .byte 0x34
+ .byte 0x18
+ .byte 0x7
+ .4byte .Ldebug_macro23
+ .byte 0x4
+ .file 25 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_pmu.h"
+ .byte 0x3
+ .byte 0x35
+ .byte 0x19
+ .byte 0x7
+ .4byte .Ldebug_macro24
+ .byte 0x4
+ .file 26 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rcu.h"
+ .byte 0x3
+ .byte 0x36
+ .byte 0x1a
+ .byte 0x7
+ .4byte .Ldebug_macro25
+ .byte 0x4
+ .file 27 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_rtc.h"
+ .byte 0x3
+ .byte 0x37
+ .byte 0x1b
+ .byte 0x7
+ .4byte .Ldebug_macro26
+ .byte 0x4
+ .file 28 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_spi.h"
+ .byte 0x3
+ .byte 0x38
+ .byte 0x1c
+ .byte 0x7
+ .4byte .Ldebug_macro27
+ .byte 0x4
+ .file 29 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_timer.h"
+ .byte 0x3
+ .byte 0x39
+ .byte 0x1d
+ .byte 0x7
+ .4byte .Ldebug_macro28
+ .byte 0x4
+ .file 30 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_usart.h"
+ .byte 0x3
+ .byte 0x3a
+ .byte 0x1e
+ .byte 0x7
+ .4byte .Ldebug_macro29
+ .byte 0x4
+ .file 31 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\GD32VF103_standard_peripheral\\Include/gd32vf103_wwdgt.h"
+ .byte 0x3
+ .byte 0x3b
+ .byte 0x1f
+ .byte 0x7
+ .4byte .Ldebug_macro30
+ .byte 0x4
+ .file 32 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_func.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x20
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3074
+ .file 33 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stddef.h"
+ .byte 0x3
+ .byte 0x7
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro31
+ .byte 0x4
+ .file 34 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_timer.h"
+ .byte 0x3
+ .byte 0x8
+ .byte 0x22
+ .byte 0x7
+ .4byte .Ldebug_macro32
+ .byte 0x4
+ .file 35 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/n200_eclic.h"
+ .byte 0x3
+ .byte 0x9
+ .byte 0x23
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3138
+ .file 36 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_const.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x24
+ .byte 0x7
+ .4byte .Ldebug_macro33
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro34
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro35
+ .byte 0x4
+ .byte 0x4
+ .byte 0x4
+ .file 37 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\stdio.h"
+ .byte 0x3
+ .byte 0x4
+ .byte 0x25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3169
+ .file 38 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\_ansi.h"
+ .byte 0x3
+ .byte 0x1d
+ .byte 0x26
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3170
+ .file 39 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\newlib.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0x27
+ .byte 0x7
+ .4byte .Ldebug_macro36
+ .byte 0x4
+ .file 40 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\config.h"
+ .byte 0x3
+ .byte 0xb
+ .byte 0x28
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3185
+ .file 41 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\ieeefp.h"
+ .byte 0x3
+ .byte 0x4
+ .byte 0x29
+ .byte 0x7
+ .4byte .Ldebug_macro37
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro38
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro39
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro40
+ .file 42 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\cdefs.h"
+ .byte 0x3
+ .byte 0x23
+ .byte 0x2a
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3207
+ .byte 0x3
+ .byte 0x2f
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro41
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro42
+ .byte 0x4
+ .byte 0x3
+ .byte 0x24
+ .byte 0x21
+ .byte 0x4
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3330
+ .file 43 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\lib\\gcc\\riscv-none-embed\\10.2.0\\include\\stdarg.h"
+ .byte 0x3
+ .byte 0x28
+ .byte 0x2b
+ .byte 0x7
+ .4byte .Ldebug_macro43
+ .byte 0x4
+ .file 44 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\reent.h"
+ .byte 0x3
+ .byte 0x3c
+ .byte 0x2c
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3333
+ .byte 0x3
+ .byte 0xd
+ .byte 0x26
+ .byte 0x4
+ .byte 0x3
+ .byte 0xe
+ .byte 0x21
+ .byte 0x4
+ .file 45 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_types.h"
+ .byte 0x3
+ .byte 0xf
+ .byte 0x2d
+ .byte 0x7
+ .4byte .Ldebug_macro44
+ .byte 0x3
+ .byte 0x18
+ .byte 0x21
+ .byte 0x7
+ .4byte .Ldebug_macro45
+ .byte 0x4
+ .file 46 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\_types.h"
+ .byte 0x3
+ .byte 0x1b
+ .byte 0x2e
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3338
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro46
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro47
+ .file 47 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\lock.h"
+ .byte 0x3
+ .byte 0x22
+ .byte 0x2f
+ .byte 0x7
+ .4byte .Ldebug_macro48
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro49
+ .byte 0x4
+ .file 48 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\types.h"
+ .byte 0x3
+ .byte 0x3d
+ .byte 0x30
+ .byte 0x7
+ .4byte .Ldebug_macro50
+ .file 49 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\_pthreadtypes.h"
+ .byte 0x3
+ .byte 0xdf,0x1
+ .byte 0x31
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3443
+ .byte 0x4
+ .file 50 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\machine\\types.h"
+ .byte 0x3
+ .byte 0xe0,0x1
+ .byte 0x32
+ .byte 0x4
+ .byte 0x6
+ .byte 0xe4,0x1
+ .4byte .LASF3444
+ .byte 0x4
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3445
+ .file 51 "d:\\gcc\\xpack-riscv-none-embed-gcc-10.2.0-1.2\\riscv-none-embed\\include\\sys\\stdio.h"
+ .byte 0x3
+ .byte 0x4f
+ .byte 0x33
+ .byte 0x7
+ .4byte .Ldebug_macro51
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro52
+ .byte 0x4
+ .file 52 "D:\\rt-thread\\components\\libc\\compilers\\common/unistd.h"
+ .byte 0x3
+ .byte 0x5
+ .byte 0x34
+ .file 53 "D:\\rt-thread\\components\\libc\\compilers\\common/sys/unistd.h"
+ .byte 0x3
+ .byte 0xa
+ .byte 0x35
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3497
+ .byte 0x3
+ .byte 0xf
+ .byte 0x21
+ .byte 0x4
+ .byte 0x7
+ .4byte .Ldebug_macro53
+ .byte 0x4
+ .byte 0x4
+ .file 54 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\drivers/riscv_encoding.h"
+ .byte 0x3
+ .byte 0x6
+ .byte 0x36
+ .byte 0x7
+ .4byte .Ldebug_macro54
+ .byte 0x4
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.37.6b141d903229e2235d36f2860fb69b6b,comdat
+.Ldebug_macro2:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF329
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF330
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF331
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF332
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF333
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF334
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF335
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF336
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF337
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF338
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF339
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._newlib_version.h.4.bfdf54b0af045d4a71376ae00f63a22c,comdat
+.Ldebug_macro3:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF344
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF345
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF346
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF347
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF348
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.features.h.33.4ac7543a40bbf4e11e60e29e36a3b28e,comdat
+.Ldebug_macro4:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF349
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF350
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF351
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF352
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF353
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF354
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF355
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF356
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF357
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF358
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF359
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF360
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._default_types.h.15.247e5cd201eca3442cbf5404108c4935,comdat
+.Ldebug_macro5:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF361
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF362
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF363
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF364
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF365
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF366
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF367
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF368
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF369
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF370
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF371
+ .byte 0x6
+ .byte 0xf4,0x1
+ .4byte .LASF372
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._intsup.h.10.48bafbb683905c4daa4565a85aeeb264,comdat
+.Ldebug_macro6:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF373
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF374
+ .byte 0x6
+ .byte 0x2b
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0x2c
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0x2d
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0x2e
+ .4byte .LASF378
+ .byte 0x2
+ .byte 0x2f
+ .string "int"
+ .byte 0x6
+ .byte 0x30
+ .4byte .LASF379
+ .byte 0x6
+ .byte 0x31
+ .4byte .LASF380
+ .byte 0x6
+ .byte 0x32
+ .4byte .LASF381
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF382
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF383
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF384
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF385
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF386
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF387
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF388
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF389
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF390
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF391
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF392
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF393
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF394
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF395
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF396
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF397
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF398
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF399
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF400
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF401
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF402
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF403
+ .byte 0x6
+ .byte 0xb8,0x1
+ .4byte .LASF375
+ .byte 0x6
+ .byte 0xb9,0x1
+ .4byte .LASF376
+ .byte 0x6
+ .byte 0xba,0x1
+ .4byte .LASF377
+ .byte 0x6
+ .byte 0xbb,0x1
+ .4byte .LASF378
+ .byte 0x2
+ .byte 0xbc,0x1
+ .string "int"
+ .byte 0x6
+ .byte 0xbd,0x1
+ .4byte .LASF381
+ .byte 0x6
+ .byte 0xc2,0x1
+ .4byte .LASF379
+ .byte 0x6
+ .byte 0xc3,0x1
+ .4byte .LASF380
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._stdint.h.10.c24fa3af3bc1706662bb5593a907e841,comdat
+.Ldebug_macro7:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF404
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF405
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF406
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF407
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF408
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF409
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF410
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF411
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF412
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF413
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF414
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF415
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF416
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF417
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF418
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF419
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF420
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdint.h.23.d53047a68f4a85177f80b422d52785ed,comdat
+.Ldebug_macro8:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF421
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF422
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF423
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF424
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF425
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF426
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF427
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF428
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF429
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF430
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF431
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF432
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF433
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF434
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF435
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF436
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF437
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF438
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF439
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF440
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF441
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF442
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF443
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF444
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF445
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF446
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF447
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF448
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF449
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF450
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF451
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF452
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF453
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF454
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF455
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF456
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF457
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF458
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF459
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF460
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF461
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF462
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF463
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF464
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF465
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF466
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF467
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF468
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF469
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF470
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF471
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF472
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF473
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF474
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF475
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF476
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF477
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF478
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF479
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF480
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF481
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF482
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF483
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF484
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF485
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF486
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF487
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF488
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF489
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103.h.185.cffba7180870c0512d04c724c6463ab0,comdat
+.Ldebug_macro9:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF490
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF491
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF492
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF493
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF494
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF495
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF496
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF497
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF498
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF499
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF500
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF501
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF502
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF503
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF504
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF505
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF506
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF507
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF508
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF509
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF510
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF511
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF512
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF513
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF514
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF515
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF516
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF517
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF518
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF519
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF520
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF521
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF522
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF523
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF524
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF525
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_adc.h.42.14cb8f90e4b5922f8a25d63c78535a21,comdat
+.Ldebug_macro10:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF528
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF529
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF530
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF531
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF532
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF533
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF534
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF535
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF536
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF537
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF538
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF539
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF540
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF541
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF542
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF543
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF544
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF545
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF546
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF547
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF548
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF549
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF550
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF551
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF552
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF553
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF554
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF555
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF556
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF557
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF558
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF559
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF560
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF561
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF562
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF563
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF564
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF565
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF566
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF567
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF568
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF569
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF570
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF571
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF572
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF573
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF574
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF575
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF576
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF577
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF578
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF579
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF580
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF581
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF582
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF583
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF584
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF585
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF586
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF587
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF588
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF589
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF590
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF591
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF592
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF593
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF594
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF595
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF596
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF597
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF598
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF599
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF600
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF601
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF602
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF603
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF604
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF605
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF606
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF607
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF608
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF609
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF610
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF611
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF612
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF613
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF614
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF615
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF616
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF617
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF618
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF619
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF620
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF621
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF622
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF623
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF624
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF625
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF626
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF627
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF628
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF629
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF630
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF631
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF632
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF633
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF634
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF635
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF636
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF637
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF638
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF639
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF640
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF641
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF642
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF643
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF644
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF645
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF646
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF647
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF648
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF649
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF650
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF651
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF652
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF653
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF654
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF655
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF656
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF657
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF658
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF659
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF660
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF661
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF662
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF663
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF664
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF665
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF666
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF667
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF668
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF669
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF670
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF671
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF672
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF673
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF674
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF675
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF676
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF677
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF678
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF679
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF680
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF681
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF682
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF683
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF684
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF685
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF686
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF687
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF688
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF689
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF690
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF691
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF692
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF693
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF694
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF695
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF696
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF697
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF698
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF699
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF700
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF701
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF702
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF703
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF704
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF705
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF706
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF707
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF708
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF709
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_bkp.h.37.565cdaf530a41cd40ed21e5fda39a6ed,comdat
+.Ldebug_macro11:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF710
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF711
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF712
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF713
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF714
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF715
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF716
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF717
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF718
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF719
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF720
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF721
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF722
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF723
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF724
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF725
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF726
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF727
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF728
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF729
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF730
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF731
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF732
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF733
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF734
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF735
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF736
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF737
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF738
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF739
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF740
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF741
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF742
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF743
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF744
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF745
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF746
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF747
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF748
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF749
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF750
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF751
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF752
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF753
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF754
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF755
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF756
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF757
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF758
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF759
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF760
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF761
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF762
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF763
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF764
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF765
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF766
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF767
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF768
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF769
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF770
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF771
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF772
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF773
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF774
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF775
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF776
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF777
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF778
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_can.h.39.9380e444d8240972fa3c91ce629786a4,comdat
+.Ldebug_macro12:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF779
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF780
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF781
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF782
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF783
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF784
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF785
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF786
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF787
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF788
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF789
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF790
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF791
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF792
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF793
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF794
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF795
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF796
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF797
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF798
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF799
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF800
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF801
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF802
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF803
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF804
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF805
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF806
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF807
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF808
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF809
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF810
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF811
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF812
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF813
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF814
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF815
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF816
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF817
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF818
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF819
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF820
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF821
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF822
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF823
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF824
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF825
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF826
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF827
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF828
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF829
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF830
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF831
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF832
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF833
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF834
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF835
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF836
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF837
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF838
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF839
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF840
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF841
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF842
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF843
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF844
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF845
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF846
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF847
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF848
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF849
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF850
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF851
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF852
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF853
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF854
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF855
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF856
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF857
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF858
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF859
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF860
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF861
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF862
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF863
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF864
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF865
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF866
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF867
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF868
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF869
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF870
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF871
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF872
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF873
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF874
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF875
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF876
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF877
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF878
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF879
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF880
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF881
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF882
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF883
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF884
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF885
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF886
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF887
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF888
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF889
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF890
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF891
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF892
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF893
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF894
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF895
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF896
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF897
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF898
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF899
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF900
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF901
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF902
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF903
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF904
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF905
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF906
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF907
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF908
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF909
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF910
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF911
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF912
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF913
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF914
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF915
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF916
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF917
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF918
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF919
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF920
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF921
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF922
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF923
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF924
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF925
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF926
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF927
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF928
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF929
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF930
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF931
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF932
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF933
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF934
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF935
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF936
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF937
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF938
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF939
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF940
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF941
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF942
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF943
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF944
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF945
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF946
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF947
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF948
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF949
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF950
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF951
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF952
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF953
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF954
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF955
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF956
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF957
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF958
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF959
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF960
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF961
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF962
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF963
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF964
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF965
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF966
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF967
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF968
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF969
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF970
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF971
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF972
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF973
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF974
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF975
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF976
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF977
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF978
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF979
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF980
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF981
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF982
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF983
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF984
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF985
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF986
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF987
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF988
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF989
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF990
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF991
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF992
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF993
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF994
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF995
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF996
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF997
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF998
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF999
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1000
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1001
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1002
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1003
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1004
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1005
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF1006
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF1007
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF1008
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF1009
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF1010
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF1011
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF1012
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF1013
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF1014
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF1015
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF1016
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF1017
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF1018
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF1019
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF1020
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF1021
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF1022
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF1023
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF1024
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF1025
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF1026
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF1027
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF1028
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF1029
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF1030
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF1031
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF1032
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF1033
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF1034
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF1035
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF1036
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF1037
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF1038
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF1039
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF1040
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF1041
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF1042
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF1043
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF1044
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF1045
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF1046
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF1047
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF1048
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF1049
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF1050
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF1051
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF1052
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF1053
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF1054
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF1055
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF1056
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF1057
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF1058
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF1059
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF1060
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF1061
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF1062
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF1063
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF1064
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF1065
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF1066
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF1067
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF1068
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF1069
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF1070
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF1071
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF1072
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF1073
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF1074
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF1075
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF1076
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF1077
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF1078
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF1079
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF1080
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF1081
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF1082
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF1083
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF1084
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF1085
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF1086
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF1087
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF1088
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF1089
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF1090
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF1091
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF1092
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF1093
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF1094
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF1095
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF1096
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF1097
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF1098
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF1099
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF1100
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF1101
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF1102
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF1103
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF1104
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF1105
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF1106
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF1107
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF1108
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF1109
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF1110
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF1111
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF1112
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF1113
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF1114
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF1115
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF1116
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_crc.h.37.f77f53f1516fc65e49eac544ab82df8c,comdat
+.Ldebug_macro13:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1117
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1118
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1119
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1120
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1121
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1122
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1123
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1124
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dac.h.37.c64e29f692c863eb577e59c8c0ad940a,comdat
+.Ldebug_macro14:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1125
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1126
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1127
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1128
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1129
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1130
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1131
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1132
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1133
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1134
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1135
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1136
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1137
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1138
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1139
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1140
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1141
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1142
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1143
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1144
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1145
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1146
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1147
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1148
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1149
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1150
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1151
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1152
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1153
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1154
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1155
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1156
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1157
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1158
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1159
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1160
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1161
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1162
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1163
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1164
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1165
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1166
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1167
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1168
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1169
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1170
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1171
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1172
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1173
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1174
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1175
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1176
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1177
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1178
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1179
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1180
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1181
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1182
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1183
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1184
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1185
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1186
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1187
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1188
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1189
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1190
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1191
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1192
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1193
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1194
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1195
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1196
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1197
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1198
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1199
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1200
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1201
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1202
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1203
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1204
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1205
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1206
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1207
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1208
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1209
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1210
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1211
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1212
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1213
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1214
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1215
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1216
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1217
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1218
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1219
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1220
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF1221
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1222
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1223
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1224
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1225
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dma.h.38.2c314170096cba83b58f6eccfc84a5f7,comdat
+.Ldebug_macro15:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF1226
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1227
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1228
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1229
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1230
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1231
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1232
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1233
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1234
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1235
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1236
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1237
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1238
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1239
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1240
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1241
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1242
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1243
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1244
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1245
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1246
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1247
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1248
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1249
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1250
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1251
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1252
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1253
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1254
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1255
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1256
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1257
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1258
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1259
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1260
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1261
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1262
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1263
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1264
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1265
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1266
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1267
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1268
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1269
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1270
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1271
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1272
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1273
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1274
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1275
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1276
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1277
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1278
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1279
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1280
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1281
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1282
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1283
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1284
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1285
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1286
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1287
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1288
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1289
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1290
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1291
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1292
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1293
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1294
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1295
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1296
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1297
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1298
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1299
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1300
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1301
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1302
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1303
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1304
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1305
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1306
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1307
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1308
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1309
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1310
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1311
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1312
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1313
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1314
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1315
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1316
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1317
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1318
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1319
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1320
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1321
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1322
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1323
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1324
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_eclic.h.37.7db9f8893169694757dea82a4b9eed61,comdat
+.Ldebug_macro16:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1325
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1326
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1327
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1328
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1329
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1330
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1331
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exmc.h.37.96699be4b910beb81cdfd35650becbf1,comdat
+.Ldebug_macro17:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1332
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1333
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1334
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1335
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1336
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1337
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1338
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1339
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1340
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1341
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1342
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1343
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1344
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1345
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1346
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1347
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1348
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1349
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1350
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1351
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1352
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1353
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1354
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1355
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1356
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1357
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1358
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1359
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1360
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1361
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_exti.h.37.a48547bbdeb43685ea30e1aa7e1bc0e9,comdat
+.Ldebug_macro18:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1362
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1363
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1364
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1365
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1366
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1367
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1368
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1369
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1370
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1371
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1372
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1373
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1374
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1375
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1376
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1377
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1378
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1379
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1380
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1381
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1382
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1383
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1384
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1385
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1386
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1387
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF1388
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1389
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1390
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1391
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1392
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1393
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1394
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1395
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1396
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1397
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1398
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1399
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1400
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1401
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1402
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1403
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1404
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1405
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1406
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1407
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1408
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1409
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1410
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1411
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1412
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1413
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1414
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1415
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1416
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1417
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1418
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1419
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1420
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1421
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1422
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1423
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1424
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1425
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1426
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1427
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1428
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1429
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1430
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1431
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1432
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1433
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1434
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1435
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1436
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1437
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1438
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1439
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1440
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1441
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1442
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1443
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1444
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1445
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1446
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1447
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1448
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1449
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1450
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1451
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1452
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1453
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1454
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1455
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1456
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1457
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1458
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1459
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1460
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1461
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1462
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1463
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1464
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1465
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1466
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1467
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1468
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1469
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1470
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1471
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1472
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1473
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1474
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1475
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1476
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1477
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1478
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1479
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1480
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1481
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1482
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1483
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fmc.h.39.cad093dc97f9756dd7521b8e6602cd12,comdat
+.Ldebug_macro19:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF1484
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1485
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1486
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1487
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1488
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1489
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1490
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1491
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1492
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1493
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1494
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1495
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1496
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1497
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1498
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1499
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1500
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1501
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1502
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1503
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1504
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1505
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1506
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1507
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1508
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1509
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1510
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1511
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1512
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1513
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1514
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1515
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1516
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF1517
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1518
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1519
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1520
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1521
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1522
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1523
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1524
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1525
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1526
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1527
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1528
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1529
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1530
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1531
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1532
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1533
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1534
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1535
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1536
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF1537
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1538
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1539
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1540
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1541
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1542
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1543
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1544
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1545
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1546
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF1547
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1548
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1549
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1550
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1551
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1552
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1553
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1554
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1555
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1556
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1557
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1558
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1559
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1560
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1561
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1562
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1563
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF1564
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1565
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1566
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1567
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF1568
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF1569
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1570
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1571
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1572
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1573
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1574
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1575
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1576
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1577
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1578
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1579
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1580
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1581
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1582
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1583
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1584
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF1585
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF1586
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1587
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1588
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1589
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1590
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1591
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1592
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1593
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1594
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1595
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1596
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1597
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_gpio.h.37.1c15e50fe61c140e18cbdcae4553472f,comdat
+.Ldebug_macro20:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1598
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1599
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1600
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF1601
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1602
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1603
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1604
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1605
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1606
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF1607
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF1608
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1609
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1610
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1611
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1612
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1613
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1614
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1615
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1616
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1617
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1618
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF1619
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1620
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1621
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1622
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1623
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1624
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1625
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF1626
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF1627
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1628
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1629
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1630
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1631
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF1632
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF1633
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1634
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF1635
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1636
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF1637
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF1638
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1639
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1640
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1641
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1642
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1643
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1644
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1645
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1646
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1647
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1648
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1649
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1650
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF1651
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF1652
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1653
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1654
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1655
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1656
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1657
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1658
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1659
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1660
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF1661
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF1662
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1663
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1664
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1665
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF1666
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF1667
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF1668
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1669
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF1670
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF1671
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF1672
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1673
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1674
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1675
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1676
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF1677
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1678
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1679
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF1680
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF1681
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1682
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF1683
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF1684
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF1685
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF1686
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF1687
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF1688
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF1689
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF1690
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF1691
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF1692
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF1693
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF1694
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF1695
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF1696
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF1697
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF1698
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF1699
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF1700
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF1701
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF1702
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF1703
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF1704
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF1705
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF1706
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF1707
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF1708
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF1709
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF1710
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF1711
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF1712
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF1713
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF1714
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF1715
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF1716
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF1717
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF1718
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF1719
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF1720
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF1721
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF1722
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF1723
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF1724
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF1725
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF1726
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF1727
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF1728
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF1729
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF1730
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF1731
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF1732
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF1733
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF1734
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1735
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1736
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF1737
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF1738
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1739
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1740
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF1741
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF1742
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1743
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1744
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF1745
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF1746
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1747
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF1748
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1749
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1750
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1751
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1752
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF1753
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF1754
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1755
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1756
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF1757
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF1758
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1759
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1760
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF1761
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF1762
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1763
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1764
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF1765
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1766
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1767
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF1768
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF1769
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF1770
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF1771
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF1772
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1773
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF1774
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1775
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1776
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF1777
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1778
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1779
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF1780
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF1781
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF1782
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF1783
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF1784
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF1785
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF1786
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1787
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1788
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF1789
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF1790
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF1791
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF1792
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF1793
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF1794
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF1795
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF1796
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF1797
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF1798
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF1799
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF1800
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF1801
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF1802
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF1803
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF1804
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF1805
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF1806
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF1807
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF1808
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF1809
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF1810
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF1811
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF1812
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF1813
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF1814
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF1815
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF1816
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF1817
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF1818
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF1819
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF1820
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF1821
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF1822
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF1823
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF1824
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF1825
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF1826
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF1827
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF1828
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF1829
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF1830
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF1831
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF1832
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF1833
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF1834
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF1835
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF1836
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF1837
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF1838
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF1839
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF1840
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF1841
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF1842
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF1843
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF1844
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF1845
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF1846
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF1847
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF1848
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF1849
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF1850
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF1851
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF1852
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF1853
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF1854
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF1855
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF1856
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF1857
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF1858
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF1859
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF1860
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF1861
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF1862
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF1863
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF1864
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF1865
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF1866
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF1867
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF1868
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF1869
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF1870
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF1871
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF1872
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF1873
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF1874
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF1875
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF1876
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF1877
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF1878
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_i2c.h.37.9d7fb50529db8c5d4a0b10c3b5a1de79,comdat
+.Ldebug_macro21:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1879
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1880
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF1881
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1882
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1883
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1884
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF1885
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF1886
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF1887
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1888
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF1889
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF1890
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1891
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1892
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF1893
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF1894
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF1895
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF1896
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF1897
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF1898
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF1899
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF1900
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF1901
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF1902
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF1903
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF1904
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF1905
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF1906
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF1907
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF1908
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF1909
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF1910
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF1911
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF1912
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF1913
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF1914
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF1915
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF1916
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF1917
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF1918
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF1919
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF1920
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF1921
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF1922
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF1923
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF1924
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF1925
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF1926
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF1927
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF1928
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF1929
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF1930
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF1931
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF1932
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF1933
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF1934
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF1935
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF1936
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF1937
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF1938
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF1939
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF1940
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF1941
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF1942
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF1943
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF1944
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF1945
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF1946
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF1947
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF1948
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF1949
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF1950
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF1951
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF1952
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF1953
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF1954
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF1955
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF1956
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF1957
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF1958
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF1959
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF1960
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF1961
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF1962
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF1963
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF1964
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF1965
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF1966
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF1967
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF1968
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF1969
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF1970
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF1971
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF1972
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF1973
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF1974
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF1975
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF1976
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF1977
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF1978
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF1979
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF1980
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF1981
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF1982
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF1983
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF1984
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF1985
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF1986
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF1987
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF1988
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF1989
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF1990
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_fwdgt.h.37.ec91e2ec679929e46ec494cd499250b4,comdat
+.Ldebug_macro22:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF1991
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF1992
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF1993
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF1994
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF1995
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF1996
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF1997
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF1998
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF1999
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2000
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2001
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2002
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2003
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2004
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2005
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2006
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2007
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2008
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2009
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2010
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2011
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2012
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2013
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2014
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2015
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2016
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2017
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_dbg.h.37.c757ea48294705efe800a8cbb43f6f24,comdat
+.Ldebug_macro23:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2018
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2019
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2020
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2021
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2022
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2023
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2024
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2025
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2026
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2027
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2028
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2029
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2030
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2031
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2032
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2033
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2034
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2035
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2036
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2037
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2038
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2039
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2040
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2041
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_pmu.h.37.edf842f53f3092f282c7bccaf9512833,comdat
+.Ldebug_macro24:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2042
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2043
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2044
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2045
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2046
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2047
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2048
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2049
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2050
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2051
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2052
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2053
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2054
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2055
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2056
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2057
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2058
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2059
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2060
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2061
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2062
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2063
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2064
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2065
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2066
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2067
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2068
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2069
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2070
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2071
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2072
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2073
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2074
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rcu.h.37.486a61f16467981517fe8072f0668f9d,comdat
+.Ldebug_macro25:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2075
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2076
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2077
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2078
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2079
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2080
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2081
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2082
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2083
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2084
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2085
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2086
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2087
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2088
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2089
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2090
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2091
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2092
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2093
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2094
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2095
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2096
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2097
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2098
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2099
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF2100
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2101
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2102
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2103
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2104
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2105
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2106
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2107
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2108
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2109
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2110
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2111
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2112
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2113
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2114
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2115
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2116
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2117
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2118
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2119
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2120
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2121
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2122
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2123
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2124
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2125
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2126
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2127
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2128
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2129
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2130
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2131
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2132
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2133
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2134
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2135
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2136
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2137
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2138
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2139
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2140
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2141
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2142
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF2143
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF2144
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2145
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2146
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2147
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2148
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2149
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2150
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2151
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2152
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2153
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2154
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2155
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2156
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2157
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2158
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2159
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2160
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2161
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2162
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2163
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2164
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2165
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF2166
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2167
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2168
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2169
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2170
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2171
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2172
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2173
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2174
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2175
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2176
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2177
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2178
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2179
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF2180
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2181
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2182
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2183
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2184
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2185
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2186
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2187
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2188
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF2189
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2190
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2191
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2192
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2193
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2194
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2195
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2196
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2197
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2198
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2199
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2200
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2201
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2202
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2203
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2204
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2205
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2206
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2207
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2208
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF2209
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2210
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2211
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2212
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2213
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2214
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF2215
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2216
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2217
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2218
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2219
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2220
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2221
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF2222
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2223
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2224
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2225
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF2226
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF2227
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2228
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2229
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2230
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2231
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2235
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF2236
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF2237
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2238
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2239
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2240
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2241
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2242
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2243
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2244
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2245
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF2246
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF2247
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF2248
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2249
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2250
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF2251
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2252
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2253
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2254
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2255
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2256
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2257
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF2258
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF2259
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2260
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2261
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2262
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2263
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF2264
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF2265
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF2266
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF2267
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2268
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2269
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF2270
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF2271
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF2272
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF2273
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2274
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2275
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF2276
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF2277
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF2278
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF2279
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2280
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2281
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF2282
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF2283
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2284
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2285
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2286
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF2287
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF2288
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2289
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2290
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF2291
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF2292
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2293
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2294
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF2295
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF2296
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2297
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2298
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF2299
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF2300
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2301
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2302
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF2303
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF2304
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2305
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2306
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2307
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF2308
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF2309
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2310
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2311
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2312
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF2313
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF2314
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2315
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2316
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2317
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2318
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2319
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2320
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2321
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2322
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2323
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2324
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2325
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF2326
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF2327
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2328
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2329
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2330
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2331
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2332
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2333
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2334
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF2335
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF2336
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2337
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2338
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2339
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2340
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2341
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2342
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2343
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF2344
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF2345
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2346
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2347
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF2348
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF2349
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2350
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2351
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2352
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2353
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2354
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF2355
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2356
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF2357
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF2358
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2359
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2360
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF2361
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF2362
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2363
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2364
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF2365
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF2366
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF2367
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF2368
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF2369
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF2370
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF2371
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF2372
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF2373
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF2374
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF2375
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF2376
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF2377
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF2378
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF2379
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF2380
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF2381
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF2382
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF2383
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF2384
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF2385
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF2386
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF2387
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF2388
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF2389
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF2390
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF2391
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF2392
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF2393
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF2394
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF2395
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF2396
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF2397
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF2398
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF2399
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF2400
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF2401
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF2402
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF2403
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF2404
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF2405
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_rtc.h.37.3521dc979060c1ebaf2d43fd52b94dac,comdat
+.Ldebug_macro26:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2406
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2407
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2408
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2409
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2410
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2411
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2412
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2413
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2414
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2415
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2416
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2417
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2418
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2419
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2420
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2421
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2422
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2423
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2424
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2425
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2426
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2427
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2428
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2429
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2430
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2431
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2432
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2433
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2434
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2435
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2436
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2437
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2438
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2439
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2440
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2441
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2442
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2443
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2444
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2445
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_spi.h.37.5b2da83109360bb35c1791b7dcc5009b,comdat
+.Ldebug_macro27:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2446
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2447
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2448
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2449
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2450
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2451
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF2452
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2453
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2454
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2455
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2456
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2457
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2458
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2459
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2460
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2461
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2462
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2463
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2464
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2465
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2466
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2467
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2468
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2469
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2470
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF2471
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2472
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2473
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2474
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2475
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2476
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2477
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2478
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2479
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2480
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2481
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2482
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2483
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2484
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2485
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2486
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2487
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2488
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2489
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2490
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2491
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2492
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF2493
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2494
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2495
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2496
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2497
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2498
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2499
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2500
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2501
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2502
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2503
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2504
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF2505
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF2506
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2507
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2508
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2509
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2510
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF2511
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF2512
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2513
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2514
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2515
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2516
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2517
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF2518
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2519
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2520
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF2521
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF2522
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2523
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2524
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2525
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2526
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2527
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2528
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2529
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2530
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2531
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2532
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2533
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2534
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF2535
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF2536
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2537
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2538
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2539
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2540
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2541
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2542
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2543
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2544
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2545
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2546
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF2547
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF2548
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF2549
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2550
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF2551
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF2552
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF2553
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2554
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF2555
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF2556
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2557
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF2558
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF2559
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF2560
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF2561
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2562
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2563
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2564
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2565
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2566
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2567
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF2568
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2569
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2570
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF2571
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF2572
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2573
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF2574
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF2575
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF2576
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF2577
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF2578
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF2579
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF2580
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF2581
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF2582
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF2583
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF2584
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF2585
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF2586
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF2587
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF2588
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_timer.h.37.41e31e3c41519d549a8819d7a508d7a5,comdat
+.Ldebug_macro28:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF2589
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF2590
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2591
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2592
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2593
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2594
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2595
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF2596
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2597
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2598
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2599
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2600
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2601
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2602
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF2603
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF2604
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF2605
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2606
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2607
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2608
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2609
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2610
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2611
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2612
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2613
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2614
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2615
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF2616
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF2617
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2618
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2619
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF2620
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF2621
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2622
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2623
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2624
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2625
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2626
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2627
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2628
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2629
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2630
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2631
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2632
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2633
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF2634
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF2635
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2636
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2637
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2638
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2639
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2640
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2641
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2642
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF2643
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2644
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2645
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2646
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2647
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2648
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2649
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2650
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2651
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2652
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2653
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF2654
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF2655
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2656
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2657
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF2658
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF2659
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF2660
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF2661
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF2662
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF2663
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF2664
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF2665
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF2666
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF2667
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF2668
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF2669
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF2670
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF2671
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF2672
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF2673
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF2674
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF2675
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF2676
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF2677
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF2678
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF2679
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF2680
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF2681
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF2682
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF2683
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF2684
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF2685
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF2686
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF2687
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF2688
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF2689
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF2690
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF2691
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF2692
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF2693
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF2694
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF2695
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF2696
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF2697
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF2698
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF2699
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF2700
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF2701
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF2702
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF2703
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF2704
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF2705
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF2706
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF2707
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF2708
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF2709
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF2710
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF2711
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF2712
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF2713
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF2714
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF2715
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF2716
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF2717
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF2718
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF2719
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF2720
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF2721
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF2722
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF2723
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF2724
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF2725
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF2726
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF2727
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF2728
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF2729
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF2730
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF2731
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF2732
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF2733
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF2734
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF2735
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF2736
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF2737
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF2738
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF2739
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF2740
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF2741
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF2742
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF2743
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF2744
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF2745
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF2746
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF2747
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF2748
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF2749
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF2750
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF2751
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF2752
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF2753
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF2754
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF2755
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF2756
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF2757
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF2758
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF2759
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF2760
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF2761
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF2762
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF2763
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF2764
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF2765
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF2766
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF2767
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF2768
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF2769
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF2770
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF2771
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF2772
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF2773
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF2774
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF2775
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF2776
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF2777
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF2778
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF2779
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF2780
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF2781
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF2782
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF2783
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF2784
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF2785
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF2786
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF2787
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF2788
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF2789
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF2790
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF2791
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF2792
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF2793
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF2794
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF2795
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF2796
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF2797
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF2798
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF2799
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF2800
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF2801
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF2802
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF2803
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF2804
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF2805
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF2806
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF2807
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF2808
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF2809
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF2810
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF2811
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF2812
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF2813
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF2814
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF2815
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF2816
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF2817
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF2818
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF2819
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF2820
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF2821
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF2822
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF2823
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF2824
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF2825
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF2826
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF2827
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF2828
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF2829
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF2830
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF2831
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF2832
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF2833
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF2834
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF2835
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF2836
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF2837
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF2838
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF2839
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF2840
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF2841
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF2842
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF2843
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF2844
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF2845
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF2846
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF2847
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF2848
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF2849
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF2850
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF2851
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF2852
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF2853
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF2854
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF2855
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF2856
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF2857
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF2858
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF2859
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF2860
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF2861
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF2862
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF2863
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF2864
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF2865
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF2866
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF2867
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF2868
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF2869
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF2870
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF2871
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF2872
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF2873
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF2874
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF2875
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF2876
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF2877
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF2878
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF2879
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF2880
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF2881
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF2882
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF2883
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF2884
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF2885
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF2886
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF2887
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF2888
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF2889
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF2890
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF2891
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF2892
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF2893
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF2894
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF2895
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF2896
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF2897
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF2898
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF2899
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF2900
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF2901
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF2902
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF2903
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF2904
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF2905
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF2906
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF2907
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF2908
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF2909
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF2910
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF2911
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF2912
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF2913
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF2914
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF2915
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF2916
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF2917
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF2918
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF2919
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF2920
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF2921
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF2922
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF2923
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF2924
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF2925
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF2926
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF2927
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF2928
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF2929
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF2930
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF2931
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF2932
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF2933
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF2934
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF2935
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF2936
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF2937
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_usart.h.38.bd493dc3b9236603b2fca39bcddb0020,comdat
+.Ldebug_macro29:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF2938
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF2939
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF2940
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF2941
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF2942
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF2943
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF2944
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF2945
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF2946
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF2947
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF2948
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF2949
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF2950
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF2951
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF2952
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF2953
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF2954
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF2955
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF2956
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF2957
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF2958
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF2959
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF2960
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF2961
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF2962
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF2963
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF2964
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF2965
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF2966
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF2967
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF2968
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF2969
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF2970
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF2971
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF2972
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF2973
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF2974
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF2975
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF2976
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF2977
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF2978
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF2979
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF2980
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF2981
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF2982
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF2983
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF2984
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF2985
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF2986
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF2987
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF2988
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF2989
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF2990
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF2991
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF2992
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF2993
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF2994
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF2995
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF2996
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF2997
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF2998
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF2999
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3000
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3001
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF3002
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3003
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3004
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3005
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3006
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3007
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3008
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3009
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3010
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3011
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3012
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3013
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3014
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3015
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3016
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3017
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3018
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3019
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3020
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3021
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF3022
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF3023
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3024
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF3025
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF3026
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3027
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF3028
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF3029
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF3030
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3031
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3032
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF3033
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF3034
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF3035
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3036
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3037
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3038
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3039
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3040
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3041
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3042
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3043
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3044
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3045
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3046
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3047
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3048
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3049
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3050
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3051
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3052
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3053
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3054
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3055
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3056
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3057
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.gd32vf103_wwdgt.h.37.3e64b838fd471007da900965463a8419,comdat
+.Ldebug_macro30:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3058
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3059
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3060
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3061
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3062
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3063
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3064
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3065
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3066
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3067
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3068
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3069
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3070
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3071
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3072
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3073
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.144cf5ddcd53cbfdac30259dc1a6c87f,comdat
+.Ldebug_macro31:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3075
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3076
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3077
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3078
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3079
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3080
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3081
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3082
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3083
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3084
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF3085
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3086
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3088
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF3089
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3090
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3091
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3092
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF3093
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3094
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF3095
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF3096
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3097
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF3098
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3099
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF3100
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3101
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3102
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF3103
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF3104
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3106
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3107
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3108
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3109
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3110
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3111
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3112
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3113
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3114
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3115
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3116
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3117
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3118
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3119
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3120
+ .byte 0x6
+ .byte 0x9f,0x2
+ .4byte .LASF3121
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3127
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_timer.h.4.7cbfcb0f457964ecd81bc2aaf47d8b32,comdat
+.Ldebug_macro32:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3128
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3129
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3130
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3131
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3132
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3133
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3134
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3135
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3136
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3137
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_const.h.5.95ac0744d59bfc0d17f4e8adf85ccb42,comdat
+.Ldebug_macro33:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF3139
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3140
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3141
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3142
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3143
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_eclic.h.8.88844f0cdf4d8e1ef4e06c0cb5147462,comdat
+.Ldebug_macro34:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3144
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3145
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3146
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3147
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3148
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3149
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3150
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3151
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3152
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3153
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3154
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3155
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3156
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3157
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3158
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3159
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3160
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3161
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3162
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3163
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.n200_func.h.11.5e6cb65336aea242ab47b239a06795e1,comdat
+.Ldebug_macro35:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3164
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3165
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3166
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3167
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3168
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.newlib.h.8.542bedab3c90294c348821966b79eb81,comdat
+.Ldebug_macro36:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3171
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3172
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3173
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3174
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3175
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3176
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3177
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF3178
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3179
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3180
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3181
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3182
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF3183
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF3184
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.ieeefp.h.202.4f2759f5758fd82153cfbf98692f2ced,comdat
+.Ldebug_macro37:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF3186
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF3187
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF3188
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.config.h.83.13bbc8852bfac55b724c9822481355b5,comdat
+.Ldebug_macro38:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3189
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF3190
+ .byte 0x6
+ .byte 0xe6,0x1
+ .4byte .LASF3191
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3192
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3193
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3194
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3195
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._ansi.h.31.de524f58584151836e90d8620a16f8e8,comdat
+.Ldebug_macro39:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3196
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF3197
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3198
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3199
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3200
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3201
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF3202
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF3203
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.31.7c0e28c411445f3f9c5b11accf882760,comdat
+.Ldebug_macro40:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3204
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF3206
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.155.ba788add86a0e365f264484f110c3c29,comdat
+.Ldebug_macro41:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.49.39045112216f6a021dbdffe3bf5accce,comdat
+.Ldebug_macro42:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF3208
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3209
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF3210
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3211
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3212
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF3213
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3214
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3215
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF3216
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3217
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3218
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3219
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3220
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF3221
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3222
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3223
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3224
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3225
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3226
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3227
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3228
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3229
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF3230
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3231
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3232
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF3233
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3234
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3235
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3236
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF3237
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF3238
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF3239
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF3240
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3241
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF3242
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3243
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF3244
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF3245
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF3246
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF3247
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF3248
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3249
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF3250
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF3251
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3252
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF3253
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3254
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF3255
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3256
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3257
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3258
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3259
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3260
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3261
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3262
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3263
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3264
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3265
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF3266
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF3267
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF3268
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF3269
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF3270
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF3271
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF3272
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF3273
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF3274
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF3275
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF3276
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF3277
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF3278
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF3279
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF3280
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF3281
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF3282
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF3283
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF3284
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF3285
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF3286
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF3287
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF3288
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF3289
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF3290
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF3291
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF3292
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF3293
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF3294
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF3295
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF3296
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF3297
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF3298
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF3299
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF3300
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF3301
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF3302
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF3303
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF3304
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF3305
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF3306
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF3307
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF3308
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF3309
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF3310
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF3311
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF3312
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF3313
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF3314
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF3315
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF3316
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF3317
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF3318
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF3319
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF3320
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF3321
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF3322
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF3323
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF3324
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF3325
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF3326
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF3327
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF3328
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF3329
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdarg.h.34.3a23a216c0c293b3d2ea2e89281481e6,comdat
+.Ldebug_macro43:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x22
+ .4byte .LASF3331
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3332
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._types.h.20.dd0d04dca3800a0d2a6129b87f3adbb2,comdat
+.Ldebug_macro44:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3334
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3205
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3335
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.155.3588ebfdd1e8c7ede80509bb9c3b8009,comdat
+.Ldebug_macro45:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x9b,0x1
+ .4byte .LASF3087
+ .byte 0x6
+ .byte 0xe7,0x1
+ .4byte .LASF3105
+ .byte 0x6
+ .byte 0xd4,0x2
+ .4byte .LASF3122
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF3336
+ .byte 0x6
+ .byte 0xe0,0x2
+ .4byte .LASF3337
+ .byte 0x6
+ .byte 0x86,0x3
+ .4byte .LASF3123
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3124
+ .byte 0x6
+ .byte 0x91,0x3
+ .4byte .LASF3125
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3126
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4._types.h.127.34941de1b2539d59d5cac00e0dd27a45,comdat
+.Ldebug_macro46:
+ .2byte 0x4
+ .byte 0
+ .byte 0x6
+ .byte 0x7f
+ .4byte .LASF3339
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF3340
+ .byte 0x6
+ .byte 0x94,0x1
+ .4byte .LASF376
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3341
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF3342
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF3343
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF3344
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.reent.h.17.e292bf8b0bec6c96e131a54347145a30,comdat
+.Ldebug_macro47:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3345
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3346
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.lock.h.2.c0958401bd0ce484d507ee19aacab817,comdat
+.Ldebug_macro48:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3347
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3348
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3349
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3350
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3351
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3352
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3353
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3354
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3355
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3356
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3357
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3358
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF3359
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.reent.h.77.dcd6129ff07fe81bd5636db29abe53b2,comdat
+.Ldebug_macro49:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF3360
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF3361
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF3362
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3363
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF3364
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF3365
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF3366
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF3367
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF3368
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF3369
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF3370
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF3371
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF3372
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF3373
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF3374
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF3375
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF3376
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF3377
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF3378
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF3379
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF3380
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF3381
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF3382
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF3383
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF3384
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF3385
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF3386
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF3387
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF3388
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF3389
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF3390
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF3391
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF3392
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF3393
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF3394
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF3395
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF3396
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF3397
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF3398
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF3399
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF3400
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF3401
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF3402
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF3403
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF3404
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF3405
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF3406
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF3407
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF3408
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF3409
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF3410
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF3411
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF3412
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF3413
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF3414
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.types.h.40.c2dcbbb5c1f4f0e5cb716ebf7776da48,comdat
+.Ldebug_macro50:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3415
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3416
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3417
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3418
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3419
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3420
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3421
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3422
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3423
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3424
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3425
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3426
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3427
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF3428
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF3429
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF3430
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF3431
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF3432
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF3433
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF3434
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3435
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF3436
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3437
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF3438
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF3439
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3440
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF3441
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF3442
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.2.4aa87247282eca6c8f36f9de33d8df1a,comdat
+.Ldebug_macro51:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF3446
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3447
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3448
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdio.h.81.b348624b6806a74def9195c754308a00,comdat
+.Ldebug_macro52:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3449
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3450
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3451
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF3452
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3453
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3454
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3455
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3456
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3457
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF3458
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3459
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF3460
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3461
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3462
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3463
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3464
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3465
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF3466
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3467
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF3468
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF3469
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF3470
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3471
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3472
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF3473
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF3474
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3475
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3476
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF3477
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF3478
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF3479
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF3480
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF3481
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF3482
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF3483
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF3484
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF3485
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF3486
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF3487
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF3488
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF3489
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF3490
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF3491
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF3492
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF3493
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF3494
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF3495
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF3496
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.unistd.h.22.3ec6b4596b960d9f35140931ce8c2bd0,comdat
+.Ldebug_macro53:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3498
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3499
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF3500
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.riscv_encoding.h.4.141a3f782f9378c77348fd1925237eaf,comdat
+.Ldebug_macro54:
+ .2byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3501
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF3502
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF3503
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF3504
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF3505
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF3506
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF3507
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF3508
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF3509
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF3510
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF3511
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF3512
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF3513
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF3514
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF3515
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF3516
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF3517
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF3518
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF3519
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF3520
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF3521
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF3522
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF3523
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF3524
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF3525
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF3526
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF3527
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF3528
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF3529
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF3530
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF3531
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF3532
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF3533
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF3534
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF3535
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF3536
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF3537
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF3538
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF3539
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF3540
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF3541
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF3542
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF3543
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF3544
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF3545
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF3546
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF3547
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF3548
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF3549
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF3550
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF3551
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF3552
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF3553
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF3554
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF3555
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF3556
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF3557
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF3558
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF3559
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF3560
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF3561
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF3562
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF3563
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF3564
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF3565
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF3566
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF3567
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF3568
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF3569
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF3570
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF3571
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF3572
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF3573
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF3574
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF3575
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF3576
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF3577
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF3578
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF3579
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF3580
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF3581
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF3582
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF3583
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF3584
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF3585
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF3586
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF3587
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF3588
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF3589
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF3590
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF3591
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF3592
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF3593
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF3594
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF3595
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF3596
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF3597
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF3598
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF3599
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF3600
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF3601
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF3602
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF3603
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF3604
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF3605
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF3606
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF3607
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF3608
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF3609
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF3610
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF3611
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF3612
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF3613
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF3614
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF3615
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF3616
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF3617
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF3618
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF3619
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF3620
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF3621
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF3622
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF3623
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF3624
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF3625
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF3626
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF3627
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF3628
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF3629
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF3630
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF3631
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF3632
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF3633
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF3634
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF3635
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF3636
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF3637
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF3638
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF3639
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF3640
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF3641
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF3642
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF3643
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF3644
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF3645
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF3646
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF3647
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF3648
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF3649
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF3650
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF3651
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF3652
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF3653
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF3654
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF3655
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF3656
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF3657
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF3658
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF3659
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF3660
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF3661
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF3662
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF3663
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF3664
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF3665
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF3666
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF3667
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF3668
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF3669
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF3670
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF3671
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF3672
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF3673
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF3674
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF3675
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF3676
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF3677
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF3678
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF3679
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF3680
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF3681
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF3682
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF3683
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF3684
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF3685
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF3686
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF3687
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF3688
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF3689
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF3690
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF3691
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF3692
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF3693
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF3694
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF3695
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF3696
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF3697
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF3698
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF3699
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF3700
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF3701
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF3702
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF3703
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF3704
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF3705
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF3706
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF3707
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF3708
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF3709
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF3710
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF3711
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF3712
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF3713
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF3714
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF3715
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF3716
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF3717
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF3718
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF3719
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF3720
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF3721
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF3722
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF3723
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF3724
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF3725
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF3726
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF3727
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF3728
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF3729
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF3730
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF3731
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF3732
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF3733
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF3734
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF3735
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF3736
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF3737
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF3738
+ .byte 0x5
+ .byte 0xc1,0x2
+ .4byte .LASF3739
+ .byte 0x5
+ .byte 0xc2,0x2
+ .4byte .LASF3740
+ .byte 0x5
+ .byte 0xc3,0x2
+ .4byte .LASF3741
+ .byte 0x5
+ .byte 0xc4,0x2
+ .4byte .LASF3742
+ .byte 0x5
+ .byte 0xc5,0x2
+ .4byte .LASF3743
+ .byte 0x5
+ .byte 0xc6,0x2
+ .4byte .LASF3744
+ .byte 0x5
+ .byte 0xc7,0x2
+ .4byte .LASF3745
+ .byte 0x5
+ .byte 0xc8,0x2
+ .4byte .LASF3746
+ .byte 0x5
+ .byte 0xc9,0x2
+ .4byte .LASF3747
+ .byte 0x5
+ .byte 0xca,0x2
+ .4byte .LASF3748
+ .byte 0x5
+ .byte 0xcb,0x2
+ .4byte .LASF3749
+ .byte 0x5
+ .byte 0xcc,0x2
+ .4byte .LASF3750
+ .byte 0x5
+ .byte 0xcd,0x2
+ .4byte .LASF3751
+ .byte 0x5
+ .byte 0xce,0x2
+ .4byte .LASF3752
+ .byte 0x5
+ .byte 0xcf,0x2
+ .4byte .LASF3753
+ .byte 0x5
+ .byte 0xd0,0x2
+ .4byte .LASF3754
+ .byte 0x5
+ .byte 0xd1,0x2
+ .4byte .LASF3755
+ .byte 0x5
+ .byte 0xd2,0x2
+ .4byte .LASF3756
+ .byte 0x5
+ .byte 0xd3,0x2
+ .4byte .LASF3757
+ .byte 0x5
+ .byte 0xd4,0x2
+ .4byte .LASF3758
+ .byte 0x5
+ .byte 0xd5,0x2
+ .4byte .LASF3759
+ .byte 0x5
+ .byte 0xd6,0x2
+ .4byte .LASF3760
+ .byte 0x5
+ .byte 0xd7,0x2
+ .4byte .LASF3761
+ .byte 0x5
+ .byte 0xd8,0x2
+ .4byte .LASF3762
+ .byte 0x5
+ .byte 0xd9,0x2
+ .4byte .LASF3763
+ .byte 0x5
+ .byte 0xda,0x2
+ .4byte .LASF3764
+ .byte 0x5
+ .byte 0xdb,0x2
+ .4byte .LASF3765
+ .byte 0x5
+ .byte 0xdc,0x2
+ .4byte .LASF3766
+ .byte 0x5
+ .byte 0xdd,0x2
+ .4byte .LASF3767
+ .byte 0x5
+ .byte 0xde,0x2
+ .4byte .LASF3768
+ .byte 0x5
+ .byte 0xdf,0x2
+ .4byte .LASF3769
+ .byte 0x5
+ .byte 0xe0,0x2
+ .4byte .LASF3770
+ .byte 0x5
+ .byte 0xe1,0x2
+ .4byte .LASF3771
+ .byte 0x5
+ .byte 0xe2,0x2
+ .4byte .LASF3772
+ .byte 0x5
+ .byte 0xe3,0x2
+ .4byte .LASF3773
+ .byte 0x5
+ .byte 0xe4,0x2
+ .4byte .LASF3774
+ .byte 0x5
+ .byte 0xe5,0x2
+ .4byte .LASF3775
+ .byte 0x5
+ .byte 0xe6,0x2
+ .4byte .LASF3776
+ .byte 0x5
+ .byte 0xe7,0x2
+ .4byte .LASF3777
+ .byte 0x5
+ .byte 0xe8,0x2
+ .4byte .LASF3778
+ .byte 0x5
+ .byte 0xe9,0x2
+ .4byte .LASF3779
+ .byte 0x5
+ .byte 0xea,0x2
+ .4byte .LASF3780
+ .byte 0x5
+ .byte 0xeb,0x2
+ .4byte .LASF3781
+ .byte 0x5
+ .byte 0xec,0x2
+ .4byte .LASF3782
+ .byte 0x5
+ .byte 0xed,0x2
+ .4byte .LASF3783
+ .byte 0x5
+ .byte 0xee,0x2
+ .4byte .LASF3784
+ .byte 0x5
+ .byte 0xef,0x2
+ .4byte .LASF3785
+ .byte 0x5
+ .byte 0xf0,0x2
+ .4byte .LASF3786
+ .byte 0x5
+ .byte 0xf1,0x2
+ .4byte .LASF3787
+ .byte 0x5
+ .byte 0xf2,0x2
+ .4byte .LASF3788
+ .byte 0x5
+ .byte 0xf3,0x2
+ .4byte .LASF3789
+ .byte 0x5
+ .byte 0xf4,0x2
+ .4byte .LASF3790
+ .byte 0x5
+ .byte 0xf5,0x2
+ .4byte .LASF3791
+ .byte 0x5
+ .byte 0xf6,0x2
+ .4byte .LASF3792
+ .byte 0x5
+ .byte 0xf7,0x2
+ .4byte .LASF3793
+ .byte 0x5
+ .byte 0xf8,0x2
+ .4byte .LASF3794
+ .byte 0x5
+ .byte 0xf9,0x2
+ .4byte .LASF3795
+ .byte 0x5
+ .byte 0xfa,0x2
+ .4byte .LASF3796
+ .byte 0x5
+ .byte 0xfb,0x2
+ .4byte .LASF3797
+ .byte 0x5
+ .byte 0xfc,0x2
+ .4byte .LASF3798
+ .byte 0x5
+ .byte 0xfd,0x2
+ .4byte .LASF3799
+ .byte 0x5
+ .byte 0xfe,0x2
+ .4byte .LASF3800
+ .byte 0x5
+ .byte 0xff,0x2
+ .4byte .LASF3801
+ .byte 0x5
+ .byte 0x80,0x3
+ .4byte .LASF3802
+ .byte 0x5
+ .byte 0x81,0x3
+ .4byte .LASF3803
+ .byte 0x5
+ .byte 0x82,0x3
+ .4byte .LASF3804
+ .byte 0x5
+ .byte 0x83,0x3
+ .4byte .LASF3805
+ .byte 0x5
+ .byte 0x84,0x3
+ .4byte .LASF3806
+ .byte 0x5
+ .byte 0x85,0x3
+ .4byte .LASF3807
+ .byte 0x5
+ .byte 0x86,0x3
+ .4byte .LASF3808
+ .byte 0x5
+ .byte 0x87,0x3
+ .4byte .LASF3809
+ .byte 0x5
+ .byte 0x88,0x3
+ .4byte .LASF3810
+ .byte 0x5
+ .byte 0x89,0x3
+ .4byte .LASF3811
+ .byte 0x5
+ .byte 0x8a,0x3
+ .4byte .LASF3812
+ .byte 0x5
+ .byte 0x8b,0x3
+ .4byte .LASF3813
+ .byte 0x5
+ .byte 0x8c,0x3
+ .4byte .LASF3814
+ .byte 0x5
+ .byte 0x8d,0x3
+ .4byte .LASF3815
+ .byte 0x5
+ .byte 0x8e,0x3
+ .4byte .LASF3816
+ .byte 0x5
+ .byte 0x8f,0x3
+ .4byte .LASF3817
+ .byte 0x5
+ .byte 0x90,0x3
+ .4byte .LASF3818
+ .byte 0x5
+ .byte 0x91,0x3
+ .4byte .LASF3819
+ .byte 0x5
+ .byte 0x92,0x3
+ .4byte .LASF3820
+ .byte 0x5
+ .byte 0x93,0x3
+ .4byte .LASF3821
+ .byte 0x5
+ .byte 0x94,0x3
+ .4byte .LASF3822
+ .byte 0x5
+ .byte 0x95,0x3
+ .4byte .LASF3823
+ .byte 0x5
+ .byte 0x96,0x3
+ .4byte .LASF3824
+ .byte 0x5
+ .byte 0x97,0x3
+ .4byte .LASF3825
+ .byte 0x5
+ .byte 0x98,0x3
+ .4byte .LASF3826
+ .byte 0x5
+ .byte 0x99,0x3
+ .4byte .LASF3827
+ .byte 0x5
+ .byte 0x9a,0x3
+ .4byte .LASF3828
+ .byte 0x5
+ .byte 0x9b,0x3
+ .4byte .LASF3829
+ .byte 0x5
+ .byte 0x9c,0x3
+ .4byte .LASF3830
+ .byte 0x5
+ .byte 0x9d,0x3
+ .4byte .LASF3831
+ .byte 0x5
+ .byte 0x9e,0x3
+ .4byte .LASF3832
+ .byte 0x5
+ .byte 0x9f,0x3
+ .4byte .LASF3833
+ .byte 0x5
+ .byte 0xa0,0x3
+ .4byte .LASF3834
+ .byte 0x5
+ .byte 0xa1,0x3
+ .4byte .LASF3835
+ .byte 0x5
+ .byte 0xa2,0x3
+ .4byte .LASF3836
+ .byte 0x5
+ .byte 0xa3,0x3
+ .4byte .LASF3837
+ .byte 0x5
+ .byte 0xa4,0x3
+ .4byte .LASF3838
+ .byte 0x5
+ .byte 0xa5,0x3
+ .4byte .LASF3839
+ .byte 0x5
+ .byte 0xa6,0x3
+ .4byte .LASF3840
+ .byte 0x5
+ .byte 0xa7,0x3
+ .4byte .LASF3841
+ .byte 0x5
+ .byte 0xa8,0x3
+ .4byte .LASF3842
+ .byte 0x5
+ .byte 0xa9,0x3
+ .4byte .LASF3843
+ .byte 0x5
+ .byte 0xaa,0x3
+ .4byte .LASF3844
+ .byte 0x5
+ .byte 0xab,0x3
+ .4byte .LASF3845
+ .byte 0x5
+ .byte 0xac,0x3
+ .4byte .LASF3846
+ .byte 0x5
+ .byte 0xad,0x3
+ .4byte .LASF3847
+ .byte 0x5
+ .byte 0xae,0x3
+ .4byte .LASF3848
+ .byte 0x5
+ .byte 0xaf,0x3
+ .4byte .LASF3849
+ .byte 0x5
+ .byte 0xb0,0x3
+ .4byte .LASF3850
+ .byte 0x5
+ .byte 0xb1,0x3
+ .4byte .LASF3851
+ .byte 0x5
+ .byte 0xb2,0x3
+ .4byte .LASF3852
+ .byte 0x5
+ .byte 0xb3,0x3
+ .4byte .LASF3853
+ .byte 0x5
+ .byte 0xb4,0x3
+ .4byte .LASF3854
+ .byte 0x5
+ .byte 0xb5,0x3
+ .4byte .LASF3855
+ .byte 0x5
+ .byte 0xb6,0x3
+ .4byte .LASF3856
+ .byte 0x5
+ .byte 0xb7,0x3
+ .4byte .LASF3857
+ .byte 0x5
+ .byte 0xb8,0x3
+ .4byte .LASF3858
+ .byte 0x5
+ .byte 0xb9,0x3
+ .4byte .LASF3859
+ .byte 0x5
+ .byte 0xba,0x3
+ .4byte .LASF3860
+ .byte 0x5
+ .byte 0xbb,0x3
+ .4byte .LASF3861
+ .byte 0x5
+ .byte 0xbc,0x3
+ .4byte .LASF3862
+ .byte 0x5
+ .byte 0xbd,0x3
+ .4byte .LASF3863
+ .byte 0x5
+ .byte 0xbe,0x3
+ .4byte .LASF3864
+ .byte 0x5
+ .byte 0xbf,0x3
+ .4byte .LASF3865
+ .byte 0x5
+ .byte 0xc0,0x3
+ .4byte .LASF3866
+ .byte 0x5
+ .byte 0xc1,0x3
+ .4byte .LASF3867
+ .byte 0x5
+ .byte 0xc2,0x3
+ .4byte .LASF3868
+ .byte 0x5
+ .byte 0xc3,0x3
+ .4byte .LASF3869
+ .byte 0x5
+ .byte 0xc4,0x3
+ .4byte .LASF3870
+ .byte 0x5
+ .byte 0xc5,0x3
+ .4byte .LASF3871
+ .byte 0x5
+ .byte 0xc6,0x3
+ .4byte .LASF3872
+ .byte 0x5
+ .byte 0xc7,0x3
+ .4byte .LASF3873
+ .byte 0x5
+ .byte 0xc8,0x3
+ .4byte .LASF3874
+ .byte 0x5
+ .byte 0xc9,0x3
+ .4byte .LASF3875
+ .byte 0x5
+ .byte 0xca,0x3
+ .4byte .LASF3876
+ .byte 0x5
+ .byte 0xcb,0x3
+ .4byte .LASF3877
+ .byte 0x5
+ .byte 0xcc,0x3
+ .4byte .LASF3878
+ .byte 0x5
+ .byte 0xcd,0x3
+ .4byte .LASF3879
+ .byte 0x5
+ .byte 0xce,0x3
+ .4byte .LASF3880
+ .byte 0x5
+ .byte 0xcf,0x3
+ .4byte .LASF3881
+ .byte 0x5
+ .byte 0xd0,0x3
+ .4byte .LASF3882
+ .byte 0x5
+ .byte 0xd1,0x3
+ .4byte .LASF3883
+ .byte 0x5
+ .byte 0xd2,0x3
+ .4byte .LASF3884
+ .byte 0x5
+ .byte 0xd3,0x3
+ .4byte .LASF3885
+ .byte 0x5
+ .byte 0xd4,0x3
+ .4byte .LASF3886
+ .byte 0x5
+ .byte 0xd5,0x3
+ .4byte .LASF3887
+ .byte 0x5
+ .byte 0xd6,0x3
+ .4byte .LASF3888
+ .byte 0x5
+ .byte 0xd7,0x3
+ .4byte .LASF3889
+ .byte 0x5
+ .byte 0xd8,0x3
+ .4byte .LASF3890
+ .byte 0x5
+ .byte 0xd9,0x3
+ .4byte .LASF3891
+ .byte 0x5
+ .byte 0xda,0x3
+ .4byte .LASF3892
+ .byte 0x5
+ .byte 0xdb,0x3
+ .4byte .LASF3893
+ .byte 0x5
+ .byte 0xdc,0x3
+ .4byte .LASF3894
+ .byte 0x5
+ .byte 0xdd,0x3
+ .4byte .LASF3895
+ .byte 0x5
+ .byte 0xde,0x3
+ .4byte .LASF3896
+ .byte 0x5
+ .byte 0xdf,0x3
+ .4byte .LASF3897
+ .byte 0x5
+ .byte 0xe0,0x3
+ .4byte .LASF3898
+ .byte 0x5
+ .byte 0xe1,0x3
+ .4byte .LASF3899
+ .byte 0x5
+ .byte 0xe2,0x3
+ .4byte .LASF3900
+ .byte 0x5
+ .byte 0xe3,0x3
+ .4byte .LASF3901
+ .byte 0x5
+ .byte 0xe4,0x3
+ .4byte .LASF3902
+ .byte 0x5
+ .byte 0xe5,0x3
+ .4byte .LASF3903
+ .byte 0x5
+ .byte 0xe6,0x3
+ .4byte .LASF3904
+ .byte 0x5
+ .byte 0xe7,0x3
+ .4byte .LASF3905
+ .byte 0x5
+ .byte 0xe8,0x3
+ .4byte .LASF3906
+ .byte 0x5
+ .byte 0xe9,0x3
+ .4byte .LASF3907
+ .byte 0x5
+ .byte 0xea,0x3
+ .4byte .LASF3908
+ .byte 0x5
+ .byte 0xeb,0x3
+ .4byte .LASF3909
+ .byte 0x5
+ .byte 0xec,0x3
+ .4byte .LASF3910
+ .byte 0x5
+ .byte 0xed,0x3
+ .4byte .LASF3911
+ .byte 0x5
+ .byte 0xee,0x3
+ .4byte .LASF3912
+ .byte 0x5
+ .byte 0xef,0x3
+ .4byte .LASF3913
+ .byte 0x5
+ .byte 0xf0,0x3
+ .4byte .LASF3914
+ .byte 0x5
+ .byte 0xf1,0x3
+ .4byte .LASF3915
+ .byte 0x5
+ .byte 0xf2,0x3
+ .4byte .LASF3916
+ .byte 0x5
+ .byte 0xf3,0x3
+ .4byte .LASF3917
+ .byte 0x5
+ .byte 0xf4,0x3
+ .4byte .LASF3918
+ .byte 0x5
+ .byte 0xf5,0x3
+ .4byte .LASF3919
+ .byte 0x5
+ .byte 0xf6,0x3
+ .4byte .LASF3920
+ .byte 0x5
+ .byte 0xf7,0x3
+ .4byte .LASF3921
+ .byte 0x5
+ .byte 0xf8,0x3
+ .4byte .LASF3922
+ .byte 0x5
+ .byte 0xf9,0x3
+ .4byte .LASF3923
+ .byte 0x5
+ .byte 0xfa,0x3
+ .4byte .LASF3924
+ .byte 0x5
+ .byte 0xfb,0x3
+ .4byte .LASF3925
+ .byte 0x5
+ .byte 0xfc,0x3
+ .4byte .LASF3926
+ .byte 0x5
+ .byte 0xfd,0x3
+ .4byte .LASF3927
+ .byte 0x5
+ .byte 0xfe,0x3
+ .4byte .LASF3928
+ .byte 0x5
+ .byte 0xff,0x3
+ .4byte .LASF3929
+ .byte 0x5
+ .byte 0x80,0x4
+ .4byte .LASF3930
+ .byte 0x5
+ .byte 0x81,0x4
+ .4byte .LASF3931
+ .byte 0x5
+ .byte 0x82,0x4
+ .4byte .LASF3932
+ .byte 0x5
+ .byte 0x83,0x4
+ .4byte .LASF3933
+ .byte 0x5
+ .byte 0x84,0x4
+ .4byte .LASF3934
+ .byte 0x5
+ .byte 0x85,0x4
+ .4byte .LASF3935
+ .byte 0x5
+ .byte 0x86,0x4
+ .4byte .LASF3936
+ .byte 0x5
+ .byte 0x87,0x4
+ .4byte .LASF3937
+ .byte 0x5
+ .byte 0x88,0x4
+ .4byte .LASF3938
+ .byte 0x5
+ .byte 0x89,0x4
+ .4byte .LASF3939
+ .byte 0x5
+ .byte 0x8a,0x4
+ .4byte .LASF3940
+ .byte 0x5
+ .byte 0x8b,0x4
+ .4byte .LASF3941
+ .byte 0x5
+ .byte 0x8c,0x4
+ .4byte .LASF3942
+ .byte 0x5
+ .byte 0x8d,0x4
+ .4byte .LASF3943
+ .byte 0x5
+ .byte 0x8e,0x4
+ .4byte .LASF3944
+ .byte 0x5
+ .byte 0x8f,0x4
+ .4byte .LASF3945
+ .byte 0x5
+ .byte 0x90,0x4
+ .4byte .LASF3946
+ .byte 0x5
+ .byte 0x91,0x4
+ .4byte .LASF3947
+ .byte 0x5
+ .byte 0x92,0x4
+ .4byte .LASF3948
+ .byte 0x5
+ .byte 0x93,0x4
+ .4byte .LASF3949
+ .byte 0x5
+ .byte 0x94,0x4
+ .4byte .LASF3950
+ .byte 0x5
+ .byte 0x95,0x4
+ .4byte .LASF3951
+ .byte 0x5
+ .byte 0x96,0x4
+ .4byte .LASF3952
+ .byte 0x5
+ .byte 0x97,0x4
+ .4byte .LASF3953
+ .byte 0x5
+ .byte 0x98,0x4
+ .4byte .LASF3954
+ .byte 0x5
+ .byte 0x99,0x4
+ .4byte .LASF3955
+ .byte 0x5
+ .byte 0x9a,0x4
+ .4byte .LASF3956
+ .byte 0x5
+ .byte 0x9b,0x4
+ .4byte .LASF3957
+ .byte 0x5
+ .byte 0x9c,0x4
+ .4byte .LASF3958
+ .byte 0x5
+ .byte 0x9d,0x4
+ .4byte .LASF3959
+ .byte 0x5
+ .byte 0x9e,0x4
+ .4byte .LASF3960
+ .byte 0x5
+ .byte 0x9f,0x4
+ .4byte .LASF3961
+ .byte 0x5
+ .byte 0xa0,0x4
+ .4byte .LASF3962
+ .byte 0x5
+ .byte 0xa1,0x4
+ .4byte .LASF3963
+ .byte 0x5
+ .byte 0xa2,0x4
+ .4byte .LASF3964
+ .byte 0x5
+ .byte 0xa3,0x4
+ .4byte .LASF3965
+ .byte 0x5
+ .byte 0xa4,0x4
+ .4byte .LASF3966
+ .byte 0x5
+ .byte 0xa5,0x4
+ .4byte .LASF3967
+ .byte 0x5
+ .byte 0xa6,0x4
+ .4byte .LASF3968
+ .byte 0x5
+ .byte 0xa7,0x4
+ .4byte .LASF3969
+ .byte 0x5
+ .byte 0xa8,0x4
+ .4byte .LASF3970
+ .byte 0x5
+ .byte 0xa9,0x4
+ .4byte .LASF3971
+ .byte 0x5
+ .byte 0xaa,0x4
+ .4byte .LASF3972
+ .byte 0x5
+ .byte 0xab,0x4
+ .4byte .LASF3973
+ .byte 0x5
+ .byte 0xac,0x4
+ .4byte .LASF3974
+ .byte 0x5
+ .byte 0xad,0x4
+ .4byte .LASF3975
+ .byte 0x5
+ .byte 0xae,0x4
+ .4byte .LASF3976
+ .byte 0x5
+ .byte 0xaf,0x4
+ .4byte .LASF3977
+ .byte 0x5
+ .byte 0xb0,0x4
+ .4byte .LASF3978
+ .byte 0x5
+ .byte 0xb1,0x4
+ .4byte .LASF3979
+ .byte 0x5
+ .byte 0xb2,0x4
+ .4byte .LASF3980
+ .byte 0x5
+ .byte 0xb3,0x4
+ .4byte .LASF3981
+ .byte 0x5
+ .byte 0xb4,0x4
+ .4byte .LASF3982
+ .byte 0x5
+ .byte 0xb5,0x4
+ .4byte .LASF3983
+ .byte 0x5
+ .byte 0xb6,0x4
+ .4byte .LASF3984
+ .byte 0x5
+ .byte 0xb7,0x4
+ .4byte .LASF3985
+ .byte 0x5
+ .byte 0xb8,0x4
+ .4byte .LASF3986
+ .byte 0x5
+ .byte 0xb9,0x4
+ .4byte .LASF3987
+ .byte 0x5
+ .byte 0xba,0x4
+ .4byte .LASF3988
+ .byte 0x5
+ .byte 0xbb,0x4
+ .4byte .LASF3989
+ .byte 0x5
+ .byte 0xbc,0x4
+ .4byte .LASF3990
+ .byte 0x5
+ .byte 0xbd,0x4
+ .4byte .LASF3991
+ .byte 0x5
+ .byte 0xbe,0x4
+ .4byte .LASF3992
+ .byte 0x5
+ .byte 0xbf,0x4
+ .4byte .LASF3993
+ .byte 0x5
+ .byte 0xc0,0x4
+ .4byte .LASF3994
+ .byte 0x5
+ .byte 0xc1,0x4
+ .4byte .LASF3995
+ .byte 0x5
+ .byte 0xc2,0x4
+ .4byte .LASF3996
+ .byte 0x5
+ .byte 0xc3,0x4
+ .4byte .LASF3997
+ .byte 0x5
+ .byte 0xc4,0x4
+ .4byte .LASF3998
+ .byte 0x5
+ .byte 0xc5,0x4
+ .4byte .LASF3999
+ .byte 0x5
+ .byte 0xc6,0x4
+ .4byte .LASF4000
+ .byte 0x5
+ .byte 0xc7,0x4
+ .4byte .LASF4001
+ .byte 0x5
+ .byte 0xc8,0x4
+ .4byte .LASF4002
+ .byte 0x5
+ .byte 0xc9,0x4
+ .4byte .LASF4003
+ .byte 0x5
+ .byte 0xca,0x4
+ .4byte .LASF4004
+ .byte 0x5
+ .byte 0xcb,0x4
+ .4byte .LASF4005
+ .byte 0x5
+ .byte 0xcc,0x4
+ .4byte .LASF4006
+ .byte 0x5
+ .byte 0xcd,0x4
+ .4byte .LASF4007
+ .byte 0x5
+ .byte 0xce,0x4
+ .4byte .LASF4008
+ .byte 0x5
+ .byte 0xcf,0x4
+ .4byte .LASF4009
+ .byte 0x5
+ .byte 0xd0,0x4
+ .4byte .LASF4010
+ .byte 0x5
+ .byte 0xd1,0x4
+ .4byte .LASF4011
+ .byte 0x5
+ .byte 0xd2,0x4
+ .4byte .LASF4012
+ .byte 0x5
+ .byte 0xd3,0x4
+ .4byte .LASF4013
+ .byte 0x5
+ .byte 0xd4,0x4
+ .4byte .LASF4014
+ .byte 0x5
+ .byte 0xd5,0x4
+ .4byte .LASF4015
+ .byte 0x5
+ .byte 0xd6,0x4
+ .4byte .LASF4016
+ .byte 0x5
+ .byte 0xd7,0x4
+ .4byte .LASF4017
+ .byte 0x5
+ .byte 0xd8,0x4
+ .4byte .LASF4018
+ .byte 0x5
+ .byte 0xd9,0x4
+ .4byte .LASF4019
+ .byte 0x5
+ .byte 0xda,0x4
+ .4byte .LASF4020
+ .byte 0x5
+ .byte 0xdb,0x4
+ .4byte .LASF4021
+ .byte 0x5
+ .byte 0xdc,0x4
+ .4byte .LASF4022
+ .byte 0x5
+ .byte 0xdd,0x4
+ .4byte .LASF4023
+ .byte 0x5
+ .byte 0xde,0x4
+ .4byte .LASF4024
+ .byte 0x5
+ .byte 0xdf,0x4
+ .4byte .LASF4025
+ .byte 0x5
+ .byte 0xe0,0x4
+ .4byte .LASF4026
+ .byte 0x5
+ .byte 0xe1,0x4
+ .4byte .LASF4027
+ .byte 0x5
+ .byte 0xe2,0x4
+ .4byte .LASF4028
+ .byte 0x5
+ .byte 0xe3,0x4
+ .4byte .LASF4029
+ .byte 0x5
+ .byte 0xe4,0x4
+ .4byte .LASF4030
+ .byte 0x5
+ .byte 0xe5,0x4
+ .4byte .LASF4031
+ .byte 0x5
+ .byte 0xe6,0x4
+ .4byte .LASF4032
+ .byte 0x5
+ .byte 0xe7,0x4
+ .4byte .LASF4033
+ .byte 0x5
+ .byte 0xe8,0x4
+ .4byte .LASF4034
+ .byte 0x5
+ .byte 0xe9,0x4
+ .4byte .LASF4035
+ .byte 0x5
+ .byte 0xea,0x4
+ .4byte .LASF4036
+ .byte 0x5
+ .byte 0xeb,0x4
+ .4byte .LASF4037
+ .byte 0x5
+ .byte 0xec,0x4
+ .4byte .LASF4038
+ .byte 0x5
+ .byte 0xed,0x4
+ .4byte .LASF4039
+ .byte 0x5
+ .byte 0xee,0x4
+ .4byte .LASF4040
+ .byte 0x5
+ .byte 0xef,0x4
+ .4byte .LASF4041
+ .byte 0x5
+ .byte 0xf0,0x4
+ .4byte .LASF4042
+ .byte 0x5
+ .byte 0xf1,0x4
+ .4byte .LASF4043
+ .byte 0x5
+ .byte 0xf2,0x4
+ .4byte .LASF4044
+ .byte 0x5
+ .byte 0xf3,0x4
+ .4byte .LASF4045
+ .byte 0x5
+ .byte 0xf4,0x4
+ .4byte .LASF4046
+ .byte 0x5
+ .byte 0xf5,0x4
+ .4byte .LASF4047
+ .byte 0x5
+ .byte 0xf6,0x4
+ .4byte .LASF4048
+ .byte 0x5
+ .byte 0xf7,0x4
+ .4byte .LASF4049
+ .byte 0x5
+ .byte 0xf8,0x4
+ .4byte .LASF4050
+ .byte 0x5
+ .byte 0xf9,0x4
+ .4byte .LASF4051
+ .byte 0x5
+ .byte 0xfa,0x4
+ .4byte .LASF4052
+ .byte 0x5
+ .byte 0xfb,0x4
+ .4byte .LASF4053
+ .byte 0x5
+ .byte 0xfc,0x4
+ .4byte .LASF4054
+ .byte 0x5
+ .byte 0xfd,0x4
+ .4byte .LASF4055
+ .byte 0x5
+ .byte 0xfe,0x4
+ .4byte .LASF4056
+ .byte 0x5
+ .byte 0xff,0x4
+ .4byte .LASF4057
+ .byte 0x5
+ .byte 0x80,0x5
+ .4byte .LASF4058
+ .byte 0x5
+ .byte 0x81,0x5
+ .4byte .LASF4059
+ .byte 0x5
+ .byte 0x82,0x5
+ .4byte .LASF4060
+ .byte 0x5
+ .byte 0x83,0x5
+ .4byte .LASF4061
+ .byte 0x5
+ .byte 0x84,0x5
+ .4byte .LASF4062
+ .byte 0x5
+ .byte 0x85,0x5
+ .4byte .LASF4063
+ .byte 0x5
+ .byte 0x86,0x5
+ .4byte .LASF4064
+ .byte 0x5
+ .byte 0x87,0x5
+ .4byte .LASF4065
+ .byte 0x5
+ .byte 0x88,0x5
+ .4byte .LASF4066
+ .byte 0x5
+ .byte 0x89,0x5
+ .4byte .LASF4067
+ .byte 0x5
+ .byte 0x8a,0x5
+ .4byte .LASF4068
+ .byte 0x5
+ .byte 0x8b,0x5
+ .4byte .LASF4069
+ .byte 0x5
+ .byte 0x8c,0x5
+ .4byte .LASF4070
+ .byte 0x5
+ .byte 0x8d,0x5
+ .4byte .LASF4071
+ .byte 0x5
+ .byte 0x8e,0x5
+ .4byte .LASF4072
+ .byte 0x5
+ .byte 0x8f,0x5
+ .4byte .LASF4073
+ .byte 0x5
+ .byte 0x90,0x5
+ .4byte .LASF4074
+ .byte 0x5
+ .byte 0x91,0x5
+ .4byte .LASF4075
+ .byte 0x5
+ .byte 0x92,0x5
+ .4byte .LASF4076
+ .byte 0x5
+ .byte 0x93,0x5
+ .4byte .LASF4077
+ .byte 0x5
+ .byte 0x94,0x5
+ .4byte .LASF4078
+ .byte 0x5
+ .byte 0x95,0x5
+ .4byte .LASF4079
+ .byte 0x5
+ .byte 0x96,0x5
+ .4byte .LASF4080
+ .byte 0x5
+ .byte 0x97,0x5
+ .4byte .LASF4081
+ .byte 0x5
+ .byte 0x98,0x5
+ .4byte .LASF4082
+ .byte 0x5
+ .byte 0x99,0x5
+ .4byte .LASF4083
+ .byte 0x5
+ .byte 0x9a,0x5
+ .4byte .LASF4084
+ .byte 0x5
+ .byte 0x9b,0x5
+ .4byte .LASF4085
+ .byte 0x5
+ .byte 0x9c,0x5
+ .4byte .LASF4086
+ .byte 0x5
+ .byte 0x9d,0x5
+ .4byte .LASF4087
+ .byte 0x5
+ .byte 0x9e,0x5
+ .4byte .LASF4088
+ .byte 0x5
+ .byte 0x9f,0x5
+ .4byte .LASF4089
+ .byte 0x5
+ .byte 0xa0,0x5
+ .4byte .LASF4090
+ .byte 0x5
+ .byte 0xa1,0x5
+ .4byte .LASF4091
+ .byte 0x5
+ .byte 0xa2,0x5
+ .4byte .LASF4092
+ .byte 0x5
+ .byte 0xa3,0x5
+ .4byte .LASF4093
+ .byte 0x5
+ .byte 0xa4,0x5
+ .4byte .LASF4094
+ .byte 0x5
+ .byte 0xa5,0x5
+ .4byte .LASF4095
+ .byte 0x5
+ .byte 0xa6,0x5
+ .4byte .LASF4096
+ .byte 0x5
+ .byte 0xa7,0x5
+ .4byte .LASF4097
+ .byte 0x5
+ .byte 0xa8,0x5
+ .4byte .LASF4098
+ .byte 0x5
+ .byte 0xa9,0x5
+ .4byte .LASF4099
+ .byte 0x5
+ .byte 0xaa,0x5
+ .4byte .LASF4100
+ .byte 0x5
+ .byte 0xab,0x5
+ .4byte .LASF4101
+ .byte 0x5
+ .byte 0xac,0x5
+ .4byte .LASF4102
+ .byte 0x5
+ .byte 0xad,0x5
+ .4byte .LASF4103
+ .byte 0x5
+ .byte 0xae,0x5
+ .4byte .LASF4104
+ .byte 0x5
+ .byte 0xaf,0x5
+ .4byte .LASF4105
+ .byte 0x5
+ .byte 0xb0,0x5
+ .4byte .LASF4106
+ .byte 0x5
+ .byte 0xb1,0x5
+ .4byte .LASF4107
+ .byte 0x5
+ .byte 0xb2,0x5
+ .4byte .LASF4108
+ .byte 0x5
+ .byte 0xb3,0x5
+ .4byte .LASF4109
+ .byte 0x5
+ .byte 0xb4,0x5
+ .4byte .LASF4110
+ .byte 0x5
+ .byte 0xb5,0x5
+ .4byte .LASF4111
+ .byte 0x5
+ .byte 0xb6,0x5
+ .4byte .LASF4112
+ .byte 0x5
+ .byte 0xb7,0x5
+ .4byte .LASF4113
+ .byte 0x5
+ .byte 0xb8,0x5
+ .4byte .LASF4114
+ .byte 0x5
+ .byte 0xb9,0x5
+ .4byte .LASF4115
+ .byte 0x5
+ .byte 0xba,0x5
+ .4byte .LASF4116
+ .byte 0x5
+ .byte 0xbb,0x5
+ .4byte .LASF4117
+ .byte 0x5
+ .byte 0xbc,0x5
+ .4byte .LASF4118
+ .byte 0x5
+ .byte 0xbd,0x5
+ .4byte .LASF4119
+ .byte 0x5
+ .byte 0xbe,0x5
+ .4byte .LASF4120
+ .byte 0x5
+ .byte 0xbf,0x5
+ .4byte .LASF4121
+ .byte 0x5
+ .byte 0xc0,0x5
+ .4byte .LASF4122
+ .byte 0x5
+ .byte 0xc1,0x5
+ .4byte .LASF4123
+ .byte 0x5
+ .byte 0xc2,0x5
+ .4byte .LASF4124
+ .byte 0x5
+ .byte 0xc3,0x5
+ .4byte .LASF4125
+ .byte 0x5
+ .byte 0xc4,0x5
+ .4byte .LASF4126
+ .byte 0x5
+ .byte 0xc5,0x5
+ .4byte .LASF4127
+ .byte 0x5
+ .byte 0xc6,0x5
+ .4byte .LASF4128
+ .byte 0x5
+ .byte 0xc7,0x5
+ .4byte .LASF4129
+ .byte 0x5
+ .byte 0xc8,0x5
+ .4byte .LASF4130
+ .byte 0x5
+ .byte 0xc9,0x5
+ .4byte .LASF4131
+ .byte 0x5
+ .byte 0xca,0x5
+ .4byte .LASF4132
+ .byte 0x5
+ .byte 0xcb,0x5
+ .4byte .LASF4133
+ .byte 0x5
+ .byte 0xcc,0x5
+ .4byte .LASF4134
+ .byte 0x5
+ .byte 0xcd,0x5
+ .4byte .LASF4135
+ .byte 0x5
+ .byte 0xce,0x5
+ .4byte .LASF4136
+ .byte 0x5
+ .byte 0xcf,0x5
+ .4byte .LASF4137
+ .byte 0x5
+ .byte 0xd0,0x5
+ .4byte .LASF4138
+ .byte 0x5
+ .byte 0xd1,0x5
+ .4byte .LASF4139
+ .byte 0x5
+ .byte 0xd2,0x5
+ .4byte .LASF4140
+ .byte 0x5
+ .byte 0xd3,0x5
+ .4byte .LASF4141
+ .byte 0x5
+ .byte 0xd4,0x5
+ .4byte .LASF4142
+ .byte 0x5
+ .byte 0xd5,0x5
+ .4byte .LASF4143
+ .byte 0x5
+ .byte 0xd6,0x5
+ .4byte .LASF4144
+ .byte 0x5
+ .byte 0xd7,0x5
+ .4byte .LASF4145
+ .byte 0x5
+ .byte 0xd8,0x5
+ .4byte .LASF4146
+ .byte 0x5
+ .byte 0xd9,0x5
+ .4byte .LASF4147
+ .byte 0x5
+ .byte 0xda,0x5
+ .4byte .LASF4148
+ .byte 0x5
+ .byte 0xdb,0x5
+ .4byte .LASF4149
+ .byte 0x5
+ .byte 0xdc,0x5
+ .4byte .LASF4150
+ .byte 0x5
+ .byte 0xdd,0x5
+ .4byte .LASF4151
+ .byte 0x5
+ .byte 0xde,0x5
+ .4byte .LASF4152
+ .byte 0x5
+ .byte 0xdf,0x5
+ .4byte .LASF4153
+ .byte 0x5
+ .byte 0xe0,0x5
+ .4byte .LASF4154
+ .byte 0x5
+ .byte 0xe1,0x5
+ .4byte .LASF4155
+ .byte 0x5
+ .byte 0xe2,0x5
+ .4byte .LASF4156
+ .byte 0x5
+ .byte 0xe3,0x5
+ .4byte .LASF4157
+ .byte 0x5
+ .byte 0xe4,0x5
+ .4byte .LASF4158
+ .byte 0x5
+ .byte 0xe5,0x5
+ .4byte .LASF4159
+ .byte 0x5
+ .byte 0xe6,0x5
+ .4byte .LASF4160
+ .byte 0x5
+ .byte 0xe7,0x5
+ .4byte .LASF4161
+ .byte 0x5
+ .byte 0xe8,0x5
+ .4byte .LASF4162
+ .byte 0x5
+ .byte 0xe9,0x5
+ .4byte .LASF4163
+ .byte 0x5
+ .byte 0xea,0x5
+ .4byte .LASF4164
+ .byte 0x5
+ .byte 0xeb,0x5
+ .4byte .LASF4165
+ .byte 0x5
+ .byte 0xec,0x5
+ .4byte .LASF4166
+ .byte 0x5
+ .byte 0xed,0x5
+ .4byte .LASF4167
+ .byte 0x5
+ .byte 0xee,0x5
+ .4byte .LASF4168
+ .byte 0x5
+ .byte 0xef,0x5
+ .4byte .LASF4169
+ .byte 0x5
+ .byte 0xf0,0x5
+ .4byte .LASF4170
+ .byte 0x5
+ .byte 0xf1,0x5
+ .4byte .LASF4171
+ .byte 0x5
+ .byte 0xf2,0x5
+ .4byte .LASF4172
+ .byte 0x5
+ .byte 0xf3,0x5
+ .4byte .LASF4173
+ .byte 0x5
+ .byte 0xf4,0x5
+ .4byte .LASF4174
+ .byte 0x5
+ .byte 0xf5,0x5
+ .4byte .LASF4175
+ .byte 0x5
+ .byte 0xf6,0x5
+ .4byte .LASF4176
+ .byte 0x5
+ .byte 0xf7,0x5
+ .4byte .LASF4177
+ .byte 0x5
+ .byte 0xf8,0x5
+ .4byte .LASF4178
+ .byte 0x5
+ .byte 0xf9,0x5
+ .4byte .LASF4179
+ .byte 0x5
+ .byte 0xfa,0x5
+ .4byte .LASF4180
+ .byte 0x5
+ .byte 0xfb,0x5
+ .4byte .LASF4181
+ .byte 0x5
+ .byte 0xfc,0x5
+ .4byte .LASF4182
+ .byte 0x5
+ .byte 0xfd,0x5
+ .4byte .LASF4183
+ .byte 0x5
+ .byte 0xfe,0x5
+ .4byte .LASF4184
+ .byte 0x5
+ .byte 0xff,0x5
+ .4byte .LASF4185
+ .byte 0x5
+ .byte 0x80,0x6
+ .4byte .LASF4186
+ .byte 0x5
+ .byte 0x81,0x6
+ .4byte .LASF4187
+ .byte 0x5
+ .byte 0x82,0x6
+ .4byte .LASF4188
+ .byte 0x5
+ .byte 0x83,0x6
+ .4byte .LASF4189
+ .byte 0x5
+ .byte 0x84,0x6
+ .4byte .LASF4190
+ .byte 0x5
+ .byte 0x85,0x6
+ .4byte .LASF4191
+ .byte 0x5
+ .byte 0x86,0x6
+ .4byte .LASF4192
+ .byte 0x5
+ .byte 0x87,0x6
+ .4byte .LASF4193
+ .byte 0x5
+ .byte 0x88,0x6
+ .4byte .LASF4194
+ .byte 0x5
+ .byte 0x89,0x6
+ .4byte .LASF4195
+ .byte 0x5
+ .byte 0x8a,0x6
+ .4byte .LASF4196
+ .byte 0x5
+ .byte 0x8b,0x6
+ .4byte .LASF4197
+ .byte 0x5
+ .byte 0x8c,0x6
+ .4byte .LASF4198
+ .byte 0x5
+ .byte 0x8d,0x6
+ .4byte .LASF4199
+ .byte 0x5
+ .byte 0x8e,0x6
+ .4byte .LASF4200
+ .byte 0x5
+ .byte 0x8f,0x6
+ .4byte .LASF4201
+ .byte 0x5
+ .byte 0x90,0x6
+ .4byte .LASF4202
+ .byte 0x5
+ .byte 0x91,0x6
+ .4byte .LASF4203
+ .byte 0x5
+ .byte 0x92,0x6
+ .4byte .LASF4204
+ .byte 0x5
+ .byte 0x93,0x6
+ .4byte .LASF4205
+ .byte 0x5
+ .byte 0x94,0x6
+ .4byte .LASF4206
+ .byte 0x5
+ .byte 0x95,0x6
+ .4byte .LASF4207
+ .byte 0x5
+ .byte 0x96,0x6
+ .4byte .LASF4208
+ .byte 0x5
+ .byte 0x97,0x6
+ .4byte .LASF4209
+ .byte 0x5
+ .byte 0x98,0x6
+ .4byte .LASF4210
+ .byte 0x5
+ .byte 0x99,0x6
+ .4byte .LASF4211
+ .byte 0x5
+ .byte 0x9a,0x6
+ .4byte .LASF4212
+ .byte 0x5
+ .byte 0x9b,0x6
+ .4byte .LASF4213
+ .byte 0x5
+ .byte 0x9c,0x6
+ .4byte .LASF4214
+ .byte 0x5
+ .byte 0x9d,0x6
+ .4byte .LASF4215
+ .byte 0x5
+ .byte 0x9e,0x6
+ .4byte .LASF4216
+ .byte 0x5
+ .byte 0x9f,0x6
+ .4byte .LASF4217
+ .byte 0x5
+ .byte 0xa0,0x6
+ .4byte .LASF4218
+ .byte 0x5
+ .byte 0xa1,0x6
+ .4byte .LASF4219
+ .byte 0x5
+ .byte 0xa2,0x6
+ .4byte .LASF4220
+ .byte 0x5
+ .byte 0xa3,0x6
+ .4byte .LASF4221
+ .byte 0x5
+ .byte 0xa4,0x6
+ .4byte .LASF4222
+ .byte 0x5
+ .byte 0xa5,0x6
+ .4byte .LASF4223
+ .byte 0x5
+ .byte 0xa6,0x6
+ .4byte .LASF4224
+ .byte 0x5
+ .byte 0xa7,0x6
+ .4byte .LASF4225
+ .byte 0x5
+ .byte 0xa8,0x6
+ .4byte .LASF4226
+ .byte 0x5
+ .byte 0xa9,0x6
+ .4byte .LASF4227
+ .byte 0x5
+ .byte 0xaa,0x6
+ .4byte .LASF4228
+ .byte 0x5
+ .byte 0xab,0x6
+ .4byte .LASF4229
+ .byte 0x5
+ .byte 0xac,0x6
+ .4byte .LASF4230
+ .byte 0x5
+ .byte 0xad,0x6
+ .4byte .LASF4231
+ .byte 0x5
+ .byte 0xae,0x6
+ .4byte .LASF4232
+ .byte 0x5
+ .byte 0xaf,0x6
+ .4byte .LASF4233
+ .byte 0x5
+ .byte 0xb0,0x6
+ .4byte .LASF4234
+ .byte 0x5
+ .byte 0xb1,0x6
+ .4byte .LASF4235
+ .byte 0x5
+ .byte 0xb2,0x6
+ .4byte .LASF4236
+ .byte 0x5
+ .byte 0xb3,0x6
+ .4byte .LASF4237
+ .byte 0x5
+ .byte 0xb4,0x6
+ .4byte .LASF4238
+ .byte 0x5
+ .byte 0xb5,0x6
+ .4byte .LASF4239
+ .byte 0x5
+ .byte 0xb6,0x6
+ .4byte .LASF4240
+ .byte 0x5
+ .byte 0xb7,0x6
+ .4byte .LASF4241
+ .byte 0x5
+ .byte 0xb8,0x6
+ .4byte .LASF4242
+ .byte 0x5
+ .byte 0xb9,0x6
+ .4byte .LASF4243
+ .byte 0x5
+ .byte 0xba,0x6
+ .4byte .LASF4244
+ .byte 0x5
+ .byte 0xbb,0x6
+ .4byte .LASF4245
+ .byte 0x5
+ .byte 0xbc,0x6
+ .4byte .LASF4246
+ .byte 0x5
+ .byte 0xbd,0x6
+ .4byte .LASF4247
+ .byte 0x5
+ .byte 0xbe,0x6
+ .4byte .LASF4248
+ .byte 0x5
+ .byte 0xbf,0x6
+ .4byte .LASF4249
+ .byte 0x5
+ .byte 0xc0,0x6
+ .4byte .LASF4250
+ .byte 0x5
+ .byte 0xc1,0x6
+ .4byte .LASF4251
+ .byte 0x5
+ .byte 0xc2,0x6
+ .4byte .LASF4252
+ .byte 0x5
+ .byte 0xc3,0x6
+ .4byte .LASF4253
+ .byte 0x5
+ .byte 0xc4,0x6
+ .4byte .LASF4254
+ .byte 0x5
+ .byte 0xc5,0x6
+ .4byte .LASF4255
+ .byte 0x5
+ .byte 0xc6,0x6
+ .4byte .LASF4256
+ .byte 0x5
+ .byte 0xc7,0x6
+ .4byte .LASF4257
+ .byte 0x5
+ .byte 0xc8,0x6
+ .4byte .LASF4258
+ .byte 0x5
+ .byte 0xc9,0x6
+ .4byte .LASF4259
+ .byte 0x5
+ .byte 0xca,0x6
+ .4byte .LASF4260
+ .byte 0x5
+ .byte 0xcb,0x6
+ .4byte .LASF4261
+ .byte 0x5
+ .byte 0xcc,0x6
+ .4byte .LASF4262
+ .byte 0x5
+ .byte 0xcd,0x6
+ .4byte .LASF4263
+ .byte 0x5
+ .byte 0xce,0x6
+ .4byte .LASF4264
+ .byte 0x5
+ .byte 0xcf,0x6
+ .4byte .LASF4265
+ .byte 0x5
+ .byte 0xd0,0x6
+ .4byte .LASF4266
+ .byte 0x5
+ .byte 0xd1,0x6
+ .4byte .LASF4267
+ .byte 0x5
+ .byte 0xd2,0x6
+ .4byte .LASF4268
+ .byte 0x5
+ .byte 0xd3,0x6
+ .4byte .LASF4269
+ .byte 0x5
+ .byte 0xd4,0x6
+ .4byte .LASF4270
+ .byte 0x5
+ .byte 0xd5,0x6
+ .4byte .LASF4271
+ .byte 0x5
+ .byte 0xd6,0x6
+ .4byte .LASF4272
+ .byte 0x5
+ .byte 0xd7,0x6
+ .4byte .LASF4273
+ .byte 0x5
+ .byte 0xd8,0x6
+ .4byte .LASF4274
+ .byte 0x5
+ .byte 0xd9,0x6
+ .4byte .LASF4275
+ .byte 0x5
+ .byte 0xda,0x6
+ .4byte .LASF4276
+ .byte 0x5
+ .byte 0xdb,0x6
+ .4byte .LASF4277
+ .byte 0x5
+ .byte 0xdc,0x6
+ .4byte .LASF4278
+ .byte 0x5
+ .byte 0xdd,0x6
+ .4byte .LASF4279
+ .byte 0x5
+ .byte 0xde,0x6
+ .4byte .LASF4280
+ .byte 0x5
+ .byte 0xdf,0x6
+ .4byte .LASF4281
+ .byte 0x5
+ .byte 0xe0,0x6
+ .4byte .LASF4282
+ .byte 0x5
+ .byte 0xe1,0x6
+ .4byte .LASF4283
+ .byte 0x5
+ .byte 0xe2,0x6
+ .4byte .LASF4284
+ .byte 0x5
+ .byte 0xe3,0x6
+ .4byte .LASF4285
+ .byte 0x5
+ .byte 0xe4,0x6
+ .4byte .LASF4286
+ .byte 0x5
+ .byte 0xe5,0x6
+ .4byte .LASF4287
+ .byte 0x5
+ .byte 0xe6,0x6
+ .4byte .LASF4288
+ .byte 0x5
+ .byte 0xe7,0x6
+ .4byte .LASF4289
+ .byte 0x5
+ .byte 0xe8,0x6
+ .4byte .LASF4290
+ .byte 0x5
+ .byte 0xe9,0x6
+ .4byte .LASF4291
+ .byte 0x5
+ .byte 0xea,0x6
+ .4byte .LASF4292
+ .byte 0x5
+ .byte 0xeb,0x6
+ .4byte .LASF4293
+ .byte 0x5
+ .byte 0xec,0x6
+ .4byte .LASF4294
+ .byte 0x5
+ .byte 0xed,0x6
+ .4byte .LASF4295
+ .byte 0x5
+ .byte 0xee,0x6
+ .4byte .LASF4296
+ .byte 0x5
+ .byte 0xef,0x6
+ .4byte .LASF4297
+ .byte 0x5
+ .byte 0xf0,0x6
+ .4byte .LASF4298
+ .byte 0x5
+ .byte 0xf1,0x6
+ .4byte .LASF4299
+ .byte 0x5
+ .byte 0xf2,0x6
+ .4byte .LASF4300
+ .byte 0x5
+ .byte 0xf3,0x6
+ .4byte .LASF4301
+ .byte 0x5
+ .byte 0xf6,0x6
+ .4byte .LASF4302
+ .byte 0x5
+ .byte 0xf7,0x6
+ .4byte .LASF4303
+ .byte 0x5
+ .byte 0xf9,0x6
+ .4byte .LASF4304
+ .byte 0x5
+ .byte 0xfb,0x6
+ .4byte .LASF4305
+ .byte 0x5
+ .byte 0xfd,0x6
+ .4byte .LASF4306
+ .byte 0x5
+ .byte 0xfe,0x6
+ .4byte .LASF4307
+ .byte 0x5
+ .byte 0xff,0x6
+ .4byte .LASF4308
+ .byte 0x5
+ .byte 0x80,0x7
+ .4byte .LASF4309
+ .byte 0x5
+ .byte 0x81,0x7
+ .4byte .LASF4310
+ .byte 0x5
+ .byte 0x83,0x7
+ .4byte .LASF4311
+ .byte 0x5
+ .byte 0x84,0x7
+ .4byte .LASF4312
+ .byte 0x5
+ .byte 0x85,0x7
+ .4byte .LASF4313
+ .byte 0x5
+ .byte 0x87,0x7
+ .4byte .LASF4314
+ .byte 0x5
+ .byte 0x88,0x7
+ .4byte .LASF4315
+ .byte 0x5
+ .byte 0x8b,0x7
+ .4byte .LASF4316
+ .byte 0x5
+ .byte 0x8c,0x7
+ .4byte .LASF4317
+ .byte 0x5
+ .byte 0x8d,0x7
+ .4byte .LASF4318
+ .byte 0x5
+ .byte 0x8e,0x7
+ .4byte .LASF4319
+ .byte 0x5
+ .byte 0x8f,0x7
+ .4byte .LASF4320
+ .byte 0x5
+ .byte 0x90,0x7
+ .4byte .LASF4321
+ .byte 0x5
+ .byte 0x91,0x7
+ .4byte .LASF4322
+ .byte 0x5
+ .byte 0x92,0x7
+ .4byte .LASF4323
+ .byte 0x5
+ .byte 0x93,0x7
+ .4byte .LASF4324
+ .byte 0x5
+ .byte 0x94,0x7
+ .4byte .LASF4325
+ .byte 0x5
+ .byte 0x95,0x7
+ .4byte .LASF4326
+ .byte 0x5
+ .byte 0x96,0x7
+ .4byte .LASF4327
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1189:
+ .string "DAC_WAVE_BIT_WIDTH_4 DWBW(3)"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF2499:
+ .string "SPI_I2SCTL_I2SOPMOD BITS(8,9)"
+.LASF1587:
+ .string "OB_WP_25 ((uint32_t)0x02000000U)"
+.LASF3011:
+ .string "USART_RECEIVE_ENABLE CTL0_REN(1)"
+.LASF365:
+ .string "___int16_t_defined 1"
+.LASF2260:
+ .string "RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)"
+.LASF757:
+ .string "BKP_DATA BITS(0,15)"
+.LASF884:
+ .string "CAN_CTL_RFOD BIT(3)"
+.LASF1936:
+ .string "I2C_STAT1_RXGC BIT(4)"
+.LASF3937:
+ .string "MASK_FCVT_S_WU 0xfff0007f"
+.LASF3934:
+ .string "MATCH_FCVT_S_W 0xd0000053"
+.LASF4353:
+ .string "CAN0_RX0_IRQn"
+.LASF3161:
+ .string "MTIME_HANDLER eclic_mtip_handler"
+.LASF1717:
+ .string "GPIO_BC_CR2 BIT(2)"
+.LASF3982:
+ .string "MATCH_C_JR 0x8002"
+.LASF4309:
+ .string "CSR_PUSHMEPC 0x7EF"
+.LASF2958:
+ .string "USART_STAT_TBE BIT(7)"
+.LASF1400:
+ .string "EXTI_EVEN_EVEN11 BIT(11)"
+.LASF834:
+ .string "CAN_F19DATA0(canx) REG32((canx) + 0x2D8U)"
+.LASF1276:
+ .string "DMA_CHXCTL_MWIDTH BITS(10,11)"
+.LASF2461:
+ .string "SPI_CTL0_MSTMOD BIT(2)"
+.LASF2405:
+ .string "RCU_DEEPSLEEP_V_0_9 DSV_DSLPVS(3)"
+.LASF1301:
+ .string "DMA_INT_HTF DMA_CHXCTL_HTFIE"
+.LASF2988:
+ .string "USART_CTL2_IREN BIT(1)"
+.LASF2139:
+ .string "RCU_INT_CKMIC BIT(23)"
+.LASF4290:
+ .string "CSR_MHPMCOUNTER20H 0xb94"
+.LASF2430:
+ .string "RTC_DIVL_DIV BITS(0,15)"
+.LASF3110:
+ .string "_T_WCHAR "
+.LASF2001:
+ .string "FWDGT_STAT_RUD BIT(1)"
+.LASF536:
+ .string "ADC_IOFF1(adcx) REG32((adcx) + 0x18U)"
+.LASF1614:
+ .string "AFIO_EXTISS0 REG32(AFIO + 0x08U)"
+.LASF1974:
+ .string "I2C_DMA_OFF ((uint32_t)0x00000000U)"
+.LASF2888:
+ .string "TIMER_IC_POLARITY_RISING ((uint16_t)0x0000U)"
+.LASF2496:
+ .string "SPI_I2SCTL_CKPL BIT(3)"
+.LASF826:
+ .string "CAN_F11DATA0(canx) REG32((canx) + 0x298U)"
+.LASF4034:
+ .string "MATCH_C_SUBW 0x9c01"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF2473:
+ .string "SPI_CTL1_DMAREN BIT(0)"
+.LASF509:
+ .string "SPI_BASE (APB1_BUS_BASE + 0x00003800U)"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF4227:
+ .string "CSR_MHPMEVENT24 0x338"
+.LASF980:
+ .string "CAN_RFIFOMDATA0_DB1 BITS(8,15)"
+.LASF4301:
+ .string "CSR_MHPMCOUNTER31H 0xb9f"
+.LASF2987:
+ .string "USART_CTL2_ERRIE BIT(0)"
+.LASF2715:
+ .string "TIMER_CHCTL2_CH2EN BIT(8)"
+.LASF4093:
+ .string "MASK_CUSTOM2_RD 0x707f"
+.LASF913:
+ .string "CAN_TSTAT_MTE2 BIT(19)"
+.LASF4025:
+ .string "MASK_C_ANDI 0xec03"
+.LASF3465:
+ .string "__SWID 0x2000"
+.LASF3517:
+ .string "MSTATUS_VM 0x1F000000"
+.LASF2560:
+ .string "I2S_CKPL_HIGH SPI_I2SCTL_CKPL"
+.LASF2202:
+ .string "RCU_APB1EN_I2C0EN BIT(21)"
+.LASF3935:
+ .string "MASK_FCVT_S_W 0xfff0007f"
+.LASF2450:
+ .string "SPI_CTL0(spix) REG32((spix) + 0x00U)"
+.LASF2875:
+ .string "TIMER_OC_MODE_TOGGLE ((uint16_t)0x0030U)"
+.LASF1471:
+ .string "EXTI_PD_PD6 BIT(6)"
+.LASF1095:
+ .string "CAN_FILTERBITS_16BIT ((uint8_t)0x00U)"
+.LASF4400:
+ .string "long unsigned int"
+.LASF3245:
+ .string "__CC_SUPPORTS_VARADIC_XXX 1"
+.LASF726:
+ .string "BKP_DATA14 REG16((BKP) + 0x50U)"
+.LASF1768:
+ .string "AFIO_EXTI2_SS BITS(8, 11)"
+.LASF2930:
+ .string "TIMER_EXT_TRI_PSC_DIV4 SMCFG_ETPSC(2)"
+.LASF2410:
+ .string "RTC_PSCH REG32(RTC + 0x08U)"
+.LASF4284:
+ .string "CSR_MHPMCOUNTER14H 0xb8e"
+.LASF1776:
+ .string "AFIO_EXTI10_SS BITS(8, 11)"
+.LASF4285:
+ .string "CSR_MHPMCOUNTER15H 0xb8f"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF3570:
+ .string "MCONTROL_ACTION_TRACE_STOP 3"
+.LASF500:
+ .string "EXMC_BASE ((uint32_t)0xA0000000U)"
+.LASF1670:
+ .string "GPIO_OCTL_OCTL3 BIT(3)"
+.LASF4362:
+ .string "TIMER2_IRQn"
+.LASF1339:
+ .string "EXMC_SNCTL_NRTP BITS(2,3)"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF3495:
+ .string "putchar_unlocked(_c) _putchar_unlocked(_c)"
+.LASF3820:
+ .string "MATCH_LR_D 0x1000302f"
+.LASF754:
+ .string "BKP_OCTL REG16((BKP) + 0x2CU)"
+.LASF2774:
+ .string "TIMER_DMA_TRGD ((uint16_t)TIMER_DMAINTEN_TRGDEN)"
+.LASF1407:
+ .string "EXTI_EVEN_EVEN18 BIT(18)"
+.LASF4010:
+ .string "MATCH_C_FSW 0xe000"
+.LASF2413:
+ .string "RTC_DIVL REG32(RTC + 0x14U)"
+.LASF3612:
+ .string "IRQ_H_TIMER 6"
+.LASF477:
+ .string "WCHAR_MAX (__WCHAR_MAX__)"
+.LASF3834:
+ .string "MATCH_MRET 0x30200073"
+.LASF2004:
+ .string "FWDGT_PSC_DIV8 ((uint8_t)PSC_PSC(1))"
+.LASF3331:
+ .string "__need___va_list"
+.LASF1036:
+ .string "GET_ERR_ERRN(regval) GET_BITS((uint32_t)(regval), 4U, 6U)"
+.LASF3304:
+ .string "__DEVOLATILE(type,var) ((type)(__uintptr_t)(volatile void *)(var))"
+.LASF2551:
+ .string "I2S_MODE_MASTERTX I2SCTL_I2SOPMOD(2)"
+.LASF3103:
+ .string "_SIZET_ "
+.LASF1338:
+ .string "EXMC_SNCTL_NRMUX BIT(1)"
+.LASF3578:
+ .string "MIP_SSIP (1 << IRQ_S_SOFT)"
+.LASF1328:
+ .string "ECLIC_PRIGROUP_LEVEL2_PRIO2 2"
+.LASF2906:
+ .string "TIMER_SMCFG_TRGSEL_ETIFP SMCFG_TRGSEL(7)"
+.LASF1115:
+ .string "CAN_INT_WAKEUP CAN_INTEN_WIE"
+.LASF4313:
+ .string "CSR_TXEVT 0x812"
+.LASF438:
+ .string "INT16_MIN (-__INT16_MAX__ - 1)"
+.LASF1609:
+ .string "GPIO_BOP(gpiox) REG32((gpiox) + 0x10U)"
+.LASF4163:
+ .string "CSR_MCAUSE 0x342"
+.LASF1720:
+ .string "GPIO_BC_CR5 BIT(5)"
+.LASF2298:
+ .string "RCU_PLL_MUL12 CFG0_PLLMF(10)"
+.LASF580:
+ .string "ADC_CTL1_SWRCST BIT(22)"
+.LASF2955:
+ .string "USART_STAT_IDLEF BIT(4)"
+.LASF4006:
+ .string "MATCH_C_FSD 0xa000"
+.LASF1225:
+ .string "DAC_TRIANGLE_AMPLITUDE_4095 DAC_WAVE_BIT_WIDTH_12"
+.LASF3163:
+ .string "PMOVI_HANDLER eclic_pmovi_handler"
+.LASF3701:
+ .string "MASK_XOR 0xfe00707f"
+.LASF2556:
+ .string "I2S_STD_LSB I2SCTL_I2SSTD(2)"
+.LASF1530:
+ .string "FMC_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF2063:
+ .string "PMU_LVDT_5 CTL_LVDT(5)"
+.LASF340:
+ .string "SYSTEM_GD32VF103_H "
+.LASF3845:
+ .string "MASK_CSRRS 0x707f"
+.LASF1515:
+ .string "FMC_CTL_LK BIT(7)"
+.LASF4258:
+ .string "CSR_HPMCOUNTER19H 0xc93"
+.LASF3180:
+ .string "_HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1"
+.LASF622:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH1 CTL1_ETSRC(1)"
+.LASF458:
+ .string "UINT_FAST8_MAX (__UINT_FAST8_MAX__)"
+.LASF1047:
+ .string "CAN_ERRN_7 ERR_ERRN(7U)"
+.LASF3265:
+ .string "__alloc_align(x) __attribute__((__alloc_align__(x)))"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF451:
+ .string "INT64_MAX (__INT64_MAX__)"
+.LASF1772:
+ .string "AFIO_EXTI6_SS BITS(8, 11)"
+.LASF1187:
+ .string "DAC_WAVE_BIT_WIDTH_2 DWBW(1)"
+.LASF412:
+ .string "_UINT32_T_DECLARED "
+.LASF1277:
+ .string "DMA_CHXCTL_PRIO BITS(12,13)"
+.LASF783:
+ .string "CAN_STAT(canx) REG32((canx) + 0x04U)"
+.LASF1780:
+ .string "AFIO_EXTI14_SS BITS(8, 11)"
+.LASF673:
+ .string "ADC_CHANNEL_13 ((uint8_t)0x0DU)"
+.LASF1806:
+ .string "GPIO_EVENT_PIN_0 ((uint8_t)0x00U)"
+.LASF2428:
+ .string "RTC_PSCL_PSC BITS(0,15)"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF2976:
+ .string "USART_CTL0_WL BIT(12)"
+.LASF434:
+ .string "UINT8_MAX (__UINT8_MAX__)"
+.LASF3330:
+ .string "__need___va_list "
+.LASF1114:
+ .string "CAN_INT_ERR CAN_INTEN_ERRIE"
+.LASF3889:
+ .string "MASK_FMIN_D 0xfe00707f"
+.LASF1106:
+ .string "CAN_INT_RFO0 CAN_INTEN_RFOIE0"
+.LASF4179:
+ .string "CSR_MHPMCOUNTER7 0xb07"
+.LASF1552:
+ .string "FMC_NSPC ((uint8_t)0xA5U)"
+.LASF1016:
+ .string "TMDATA0_DB0(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF992:
+ .string "CAN_FW_FW(regval) BIT(regval)"
+.LASF3793:
+ .string "MASK_AMOMINU_W 0xf800707f"
+.LASF1899:
+ .string "I2C_CTL0_START BIT(8)"
+.LASF4143:
+ .string "CSR_HPMCOUNTER30 0xc1e"
+.LASF2296:
+ .string "RCU_PLL_MUL10 CFG0_PLLMF(8)"
+.LASF1725:
+ .string "GPIO_BC_CR10 BIT(10)"
+.LASF385:
+ .string "short +1"
+.LASF4253:
+ .string "CSR_HPMCOUNTER14H 0xc8e"
+.LASF1872:
+ .string "GPIO_TIMER4CH3_IREMAP ((uint32_t)0x00200001U)"
+.LASF1601:
+ .string "GPIOC (GPIO_BASE + 0x00000800U)"
+.LASF3270:
+ .string "__always_inline __inline__ __attribute__((__always_inline__))"
+.LASF3864:
+ .string "MATCH_FSGNJN_S 0x20001053"
+.LASF2807:
+ .string "TIMER_DMACFG_DMATC_10TRANSFER DMACFG_DMATC(9)"
+.LASF701:
+ .string "OVSCR_OVSR(regval) (BITS(2,4) & ((uint32_t)(regval) << 2))"
+.LASF3003:
+ .string "USART_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF4089:
+ .string "MASK_CUSTOM2_RS1 0x707f"
+.LASF2984:
+ .string "USART_CTL1_CKEN BIT(11)"
+.LASF4018:
+ .string "MATCH_C_LUI 0x6001"
+.LASF1013:
+ .string "FCTL_HBC1F(regval) (BITS(8,13) & ((uint32_t)(regval) << 8))"
+.LASF3558:
+ .string "MCONTROL_M (1<<6)"
+.LASF3879:
+ .string "MASK_FMUL_D 0xfe00007f"
+.LASF624:
+ .string "ADC0_1_EXTTRIG_REGULAR_T1_CH1 CTL1_ETSRC(3)"
+.LASF677:
+ .string "ADC_CHANNEL_17 ((uint8_t)0x11U)"
+.LASF2235:
+ .string "RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF4235:
+ .string "CSR_MVENDORID 0xf11"
+.LASF2576:
+ .string "SPI_FLAG_TBE SPI_STAT_TBE"
+.LASF2931:
+ .string "TIMER_EXT_TRI_PSC_DIV8 SMCFG_ETPSC(3)"
+.LASF466:
+ .string "INT_FAST64_MAX (__INT_FAST64_MAX__)"
+.LASF1822:
+ .string "GPIO_PIN_SOURCE_0 ((uint8_t)0x00U)"
+.LASF4094:
+ .string "MATCH_CUSTOM2_RD_RS1 0x605b"
+.LASF3238:
+ .string "__GNUCLIKE_MATH_BUILTIN_RELOPS "
+.LASF511:
+ .string "I2C_BASE (APB1_BUS_BASE + 0x00005400U)"
+.LASF3435:
+ .string "_MODE_T_DECLARED "
+.LASF2989:
+ .string "USART_CTL2_IRLP BIT(2)"
+.LASF2789:
+ .string "TIMER_DMACFG_DMATA_CAR DMACFG_DMATA(11)"
+.LASF2783:
+ .string "TIMER_DMACFG_DMATA_SWEVG DMACFG_DMATA(5)"
+.LASF4124:
+ .string "CSR_HPMCOUNTER11 0xc0b"
+.LASF3594:
+ .string "MIE_HEIE MIP_HEIP"
+.LASF2041:
+ .string "DBG_LOW_POWER_STANDBY DBG_CTL_STB_HOLD"
+.LASF2839:
+ .string "TIMER_UPDATE_SRC_REGULAR TIMER_CTL0_UPS"
+.LASF3250:
+ .string "__STRING(x) #x"
+.LASF1763:
+ .string "AFIO_PCF0_SWJ_CFG BITS(24, 26)"
+.LASF1554:
+ .string "OB_SPC_SPC ((uint32_t)0x000000FFU)"
+.LASF510:
+ .string "USART_BASE (APB1_BUS_BASE + 0x00004400U)"
+.LASF1029:
+ .string "GET_RFIFOMDATA0_DB1(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF999:
+ .string "CAN_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF2557:
+ .string "I2S_STD_PCMSHORT I2SCTL_I2SSTD(3)"
+.LASF2113:
+ .string "RCU_CFG0_USBFSPSC BITS(22,23)"
+.LASF1143:
+ .string "DAC_CTL_DBOFF0 BIT(1)"
+.LASF788:
+ .string "CAN_ERR(canx) REG32((canx) + 0x18U)"
+.LASF1427:
+ .string "EXTI_FTEN_FTEN0 BIT(0)"
+.LASF2243:
+ .string "CTL_REG_OFFSET 0x00U"
+.LASF4299:
+ .string "CSR_MHPMCOUNTER29H 0xb9d"
+.LASF2982:
+ .string "USART_CTL1_CPH BIT(9)"
+.LASF1380:
+ .string "EXTI_INTEN_INTEN10 BIT(10)"
+.LASF3650:
+ .string "rdinstret() read_csr(instret)"
+.LASF1512:
+ .string "FMC_CTL_OBPG BIT(4)"
+.LASF420:
+ .string "_UINTPTR_T_DECLARED "
+.LASF1704:
+ .string "GPIO_BOP_CR5 BIT(21)"
+.LASF1753:
+ .string "AFIO_PCF0_USART0_REMAP BIT(2)"
+.LASF4349:
+ .string "DMA0_Channel5_IRQn"
+.LASF2300:
+ .string "RCU_PLL_MUL14 CFG0_PLLMF(12)"
+.LASF1731:
+ .string "GPIO_LOCK_LK0 BIT(0)"
+.LASF3139:
+ .string "_RISCV_CONST_H "
+.LASF2533:
+ .string "I2S_AUDIOSAMPLE_11K ((uint32_t)11025U)"
+.LASF2424:
+ .string "RTC_CTL_RSYNF BIT(3)"
+.LASF1175:
+ .string "DAC_TRIGGER_T6_TRGO CTL_DTSEL(2)"
+.LASF3083:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF1041:
+ .string "CAN_ERRN_1 ERR_ERRN(1U)"
+.LASF2607:
+ .string "TIMER_PSC(timerx) REG32((timerx) + 0x28U)"
+.LASF1907:
+ .string "I2C_CTL1_ERRIE BIT(8)"
+.LASF4335:
+ .string "TAMPER_IRQn"
+.LASF2544:
+ .string "I2S_FRAMEFORMAT_DT24B_CH32B (I2SCTL_DTLEN(1) | SPI_I2SCTL_CHLEN)"
+.LASF2146:
+ .string "RCU_APB2RST_ADC0RST BIT(9)"
+.LASF2535:
+ .string "I2S_AUDIOSAMPLE_22K ((uint32_t)22050U)"
+.LASF2531:
+ .string "SPI_PSC_256 CTL0_PSC(7)"
+.LASF3322:
+ .string "__requires_exclusive(...) __lock_annotate(exclusive_locks_required(__VA_ARGS__))"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF3214:
+ .string "__attribute_malloc__ "
+.LASF2437:
+ .string "RTC_INT_OVERFLOW RTC_INTEN_OVIE"
+.LASF1849:
+ .string "GPIO_PIN_11 BIT(11)"
+.LASF1130:
+ .string "DAC_SWT REG32(DAC + 0x04U)"
+.LASF2350:
+ .string "RCU_PREDV0_DIV11 CFG1_PREDV0(10)"
+.LASF2096:
+ .string "RCU_CTL_HXTALBPS BIT(18)"
+.LASF668:
+ .string "ADC_CHANNEL_8 ((uint8_t)0x08U)"
+.LASF2555:
+ .string "I2S_STD_MSB I2SCTL_I2SSTD(1)"
+.LASF4314:
+ .string "CSR_MMISC_CTL 0x7d0"
+.LASF3638:
+ .string "RISCV_PGLEVEL_BITS 10"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF4375:
+ .string "USBFS_WKUP_IRQn"
+.LASF550:
+ .string "ADC_OVSCR(adcx) REG32((adcx) + 0x80U)"
+.LASF1229:
+ .string "DMA_INTF(dmax) REG32((dmax) + 0x00U)"
+.LASF2131:
+ .string "RCU_INT_PLL2STBIE BIT(14)"
+.LASF1890:
+ .string "I2C_RT(i2cx) REG32((i2cx) + 0x20U)"
+.LASF3903:
+ .string "MASK_FEQ_S 0xfe00707f"
+.LASF2585:
+ .string "I2S_FLAG_TXURERR SPI_STAT_TXURERR"
+.LASF2578:
+ .string "SPI_FLAG_CONFERR SPI_STAT_CONFERR"
+.LASF3182:
+ .string "_FSEEK_OPTIMIZATION 1"
+.LASF1341:
+ .string "EXMC_SNCTL_NREN BIT(6)"
+.LASF1440:
+ .string "EXTI_FTEN_FTEN13 BIT(13)"
+.LASF3962:
+ .string "MATCH_FMADD_S 0x43"
+.LASF1641:
+ .string "GPIO_CTL1_MD11 BITS(12, 13)"
+.LASF3613:
+ .string "IRQ_M_TIMER 7"
+.LASF547:
+ .string "ADC_IDATA2(adcx) REG32((adcx) + 0x44U)"
+.LASF349:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2655:
+ .string "TIMER_DMAINTEN_CH2DEN BIT(11)"
+.LASF3636:
+ .string "MSTATUS_SD MSTATUS32_SD"
+.LASF1922:
+ .string "I2C_STAT0_ADD10SEND BIT(3)"
+.LASF2757:
+ .string "TIMER_FLAG_CH0 TIMER_INTF_CH0IF"
+.LASF2116:
+ .string "RCU_CFG0_PLLMF_4 BIT(29)"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF3393:
+ .string "_REENT_MP_FREELIST(ptr) ((ptr)->_freelist)"
+.LASF4225:
+ .string "CSR_MHPMEVENT22 0x336"
+.LASF3512:
+ .string "MSTATUS_FS 0x00006000"
+.LASF898:
+ .string "CAN_STAT_LASTRX BIT(10)"
+.LASF2279:
+ .string "RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)"
+.LASF4344:
+ .string "DMA0_Channel0_IRQn"
+.LASF2995:
+ .string "USART_CTL2_RTSEN BIT(8)"
+.LASF1323:
+ .string "DMA_MEMORY_TO_MEMORY_ENABLE ((uint32_t)0x00000001U)"
+.LASF3419:
+ .string "__clock_t_defined "
+.LASF1833:
+ .string "GPIO_PIN_SOURCE_11 ((uint8_t)0x0BU)"
+.LASF2494:
+ .string "SPI_I2SCTL_CHLEN BIT(0)"
+.LASF758:
+ .string "BKP_OCTL_RCCV BITS(0,6)"
+.LASF1257:
+ .string "DMA_CH6PADDR(dmax) REG32((dmax) + 0x88U)"
+.LASF761:
+ .string "BKP_OCTL_ROSEL BIT(9)"
+.LASF4260:
+ .string "CSR_HPMCOUNTER21H 0xc95"
+.LASF1967:
+ .string "I2C_SCLSTRETCH_ENABLE ((uint32_t)0x00000000U)"
+.LASF794:
+ .string "CAN_TMI1(canx) REG32((canx) + 0x190U)"
+.LASF4064:
+ .string "MATCH_CUSTOM0_RS1 0x200b"
+.LASF464:
+ .string "UINT_FAST32_MAX (__UINT_FAST32_MAX__)"
+.LASF665:
+ .string "ADC_CHANNEL_5 ((uint8_t)0x05U)"
+.LASF531:
+ .string "ADC_CTL0(adcx) REG32((adcx) + 0x04U)"
+.LASF1236:
+ .string "DMA_CH1CNT(dmax) REG32((dmax) + 0x20U)"
+.LASF945:
+ .string "CAN_ERR_PERR BIT(1)"
+.LASF2375:
+ .string "RCU_PLL1_MUL9 CFG1_PLL1MF(7)"
+.LASF926:
+ .string "CAN_RFIFO1_RFL1 BITS(0,1)"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF3049:
+ .string "CLT2_RTSEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF957:
+ .string "CAN_TMI_FT BIT(1)"
+.LASF2144:
+ .string "RCU_APB2RST_PDRST BIT(5)"
+.LASF3293:
+ .string "__strong_reference(sym,aliassym) extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))"
+.LASF4312:
+ .string "CSR_SLEEPVALUE 0x811"
+.LASF1055:
+ .string "CAN_BT_SJW_3TQ ((uint8_t)0x02U)"
+.LASF2168:
+ .string "RCU_APB1RST_BKPIRST BIT(27)"
+.LASF3738:
+ .string "MATCH_LHU 0x5003"
+.LASF3706:
+ .string "MATCH_OR 0x6033"
+.LASF2768:
+ .string "TIMER_DMA_UPD ((uint16_t)TIMER_DMAINTEN_UPDEN)"
+.LASF450:
+ .string "INT64_MIN (-__INT64_MAX__ - 1)"
+.LASF3481:
+ .string "_stdin_r(x) ((x)->_stdin)"
+.LASF3838:
+ .string "MATCH_SFENCE_VM 0x10400073"
+.LASF641:
+ .string "ADC_SAMPLETIME_13POINT5 SAMPTX_SPT(2)"
+.LASF1215:
+ .string "DAC_TRIANGLE_AMPLITUDE_3 DAC_WAVE_BIT_WIDTH_2"
+.LASF2211:
+ .string "RCU_BDCTL_LXTALBPS BIT(2)"
+.LASF812:
+ .string "CAN_FSCFG(canx) REG32((canx) + 0x20CU)"
+.LASF2475:
+ .string "SPI_CTL1_NSSDRV BIT(2)"
+.LASF3155:
+ .string "ECLIC_INT_ATTR_TRIG_NEG 0x04"
+.LASF2301:
+ .string "RCU_PLL_MUL6_5 CFG0_PLLMF(13)"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF903:
+ .string "CAN_TSTAT_MTE0 BIT(3)"
+.LASF638:
+ .string "SAMPTX_SPT(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1261:
+ .string "DMA_INTF_HTFIF BIT(2)"
+.LASF2575:
+ .string "SPI_FLAG_RBNE SPI_STAT_RBNE"
+.LASF4196:
+ .string "CSR_MHPMCOUNTER24 0xb18"
+.LASF2912:
+ .string "TIMER_TRI_OUT_SRC_O0CPRE CTL1_MMC(4)"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF3972:
+ .string "MATCH_FMSUB_D 0x2000047"
+.LASF2805:
+ .string "TIMER_DMACFG_DMATC_8TRANSFER DMACFG_DMATC(7)"
+.LASF4250:
+ .string "CSR_HPMCOUNTER11H 0xc8b"
+.LASF4051:
+ .string "MASK_C_FLWSP 0xe003"
+.LASF3134:
+ .string "TIMER_MTIME_size 0x8"
+.LASF1956:
+ .string "I2C_SMBUSMODE_ENABLE I2C_CTL0_SMBEN"
+.LASF3863:
+ .string "MASK_FSGNJ_S 0xfe00707f"
+.LASF363:
+ .string "__have_long32 1"
+.LASF1336:
+ .string "EXMC_SNWTCFG0 REG32(EXMC + 0x104U)"
+.LASF1240:
+ .string "DMA_CH2CNT(dmax) REG32((dmax) + 0x34U)"
+.LASF3099:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF4113:
+ .string "CSR_CYCLE 0xc00"
+.LASF1099:
+ .string "CAN_FILTER_MASK_16BITS ((uint32_t)0x0000FFFFU)"
+.LASF3519:
+ .string "MSTATUS64_SD 0x8000000000000000"
+.LASF800:
+ .string "CAN_TMDATA02(canx) REG32((canx) + 0x1A8U)"
+.LASF2181:
+ .string "RCU_APB2EN_PCEN BIT(4)"
+.LASF1855:
+ .string "GPIO_SPI0_REMAP ((uint32_t)0x00000001U)"
+.LASF4351:
+ .string "ADC0_1_IRQn"
+.LASF2077:
+ .string "RCU_CTL REG32(RCU + 0x00U)"
+.LASF3736:
+ .string "MATCH_LBU 0x4003"
+.LASF4368:
+ .string "SPI0_IRQn"
+.LASF947:
+ .string "CAN_ERR_ERRN BITS(4,6)"
+.LASF3945:
+ .string "MASK_FCVT_D_W 0xfff0007f"
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF3037:
+ .string "CTL1_CPH(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF1738:
+ .string "GPIO_LOCK_LK7 BIT(7)"
+.LASF3749:
+ .string "MASK_SD 0x707f"
+.LASF400:
+ .string "__LEAST8 \"hh\""
+.LASF1567:
+ .string "OB_WP_5 ((uint32_t)0x00000020U)"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF3689:
+ .string "MASK_ANDI 0x707f"
+.LASF1262:
+ .string "DMA_INTF_ERRIF BIT(3)"
+.LASF1148:
+ .string "DAC_CTL_DDMAEN0 BIT(12)"
+.LASF2132:
+ .string "RCU_INT_IRC40KSTBIC BIT(16)"
+.LASF1194:
+ .string "DAC_WAVE_BIT_WIDTH_9 DWBW(8)"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF2323:
+ .string "RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)"
+.LASF2765:
+ .string "TIMER_FLAG_CH1O TIMER_INTF_CH1OF"
+.LASF3230:
+ .string "__GNUCLIKE_CTOR_SECTION_HANDLING 1"
+.LASF2710:
+ .string "TIMER_CHCTL2_CH0NP BIT(3)"
+.LASF3437:
+ .string "__clockid_t_defined "
+.LASF813:
+ .string "CAN_FAFIFO(canx) REG32((canx) + 0x214U)"
+.LASF2592:
+ .string "TIMER2 (TIMER_BASE + 0x00000400U)"
+.LASF1750:
+ .string "AFIO_EC_EOE BIT(7)"
+.LASF2772:
+ .string "TIMER_DMA_CH3D ((uint16_t)TIMER_DMAINTEN_CH3DEN)"
+.LASF3799:
+ .string "MASK_LR_W 0xf9f0707f"
+.LASF3999:
+ .string "MASK_C_ADDI4SPN 0xe003"
+.LASF4118:
+ .string "CSR_HPMCOUNTER5 0xc05"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF1986:
+ .string "DATA_RECV(regval) GET_BITS((uint32_t)(regval), 0, 7)"
+.LASF2570:
+ .string "SPI_I2S_INT_FLAG_RXORERR ((uint8_t)0x02U)"
+.LASF1155:
+ .string "DAC_CTL_DDMAEN1 BIT(28)"
+.LASF1405:
+ .string "EXTI_EVEN_EVEN16 BIT(16)"
+.LASF1393:
+ .string "EXTI_EVEN_EVEN4 BIT(4)"
+.LASF3737:
+ .string "MASK_LBU 0x707f"
+.LASF1062:
+ .string "CAN_BT_BS1_6TQ ((uint8_t)0x05U)"
+.LASF3397:
+ .string "_REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last)"
+.LASF2832:
+ .string "TIMER_COUNTER_DOWN ((uint16_t)TIMER_CTL0_DIR)"
+.LASF4386:
+ .string "DMA1_Channel3_IRQn"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF2897:
+ .string "TIMER_IC_PSC_DIV8 ((uint16_t)0x000CU)"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF3992:
+ .string "MATCH_C_ADDIW 0x2001"
+.LASF2127:
+ .string "RCU_INT_IRC8MSTBIE BIT(10)"
+.LASF3900:
+ .string "MATCH_FLT_S 0xa0001053"
+.LASF4182:
+ .string "CSR_MHPMCOUNTER10 0xb0a"
+.LASF2904:
+ .string "TIMER_SMCFG_TRGSEL_CI0FE0 SMCFG_TRGSEL(5)"
+.LASF859:
+ .string "CAN_F16DATA1(canx) REG32((canx) + 0x2C4U)"
+.LASF639:
+ .string "ADC_SAMPLETIME_1POINT5 SAMPTX_SPT(0)"
+.LASF3559:
+ .string "MCONTROL_H (1<<5)"
+.LASF2665:
+ .string "TIMER_INTF_TRGIF BIT(6)"
+.LASF3459:
+ .string "__SOPT 0x0400"
+.LASF1169:
+ .string "DACC_R8DH_DAC1_DH BITS(8,15)"
+.LASF2574:
+ .string "SPI_I2S_INT_FLAG_FERR ((uint8_t)0x06U)"
+.LASF2449:
+ .string "SPI2 (SPI_BASE + 0x00000400U)"
+.LASF2773:
+ .string "TIMER_DMA_CMTD ((uint16_t)TIMER_DMAINTEN_CMTDEN)"
+.LASF3525:
+ .string "SSTATUS_FS 0x00006000"
+.LASF1319:
+ .string "DMA_PRIORITY_MEDIUM CHCTL_PRIO(1U)"
+.LASF3513:
+ .string "MSTATUS_XS 0x00018000"
+.LASF1695:
+ .string "GPIO_BOP_BOP12 BIT(12)"
+.LASF2009:
+ .string "FWDGT_PSC_DIV256 ((uint8_t)PSC_PSC(6))"
+.LASF3085:
+ .string "_GCC_PTRDIFF_T "
+.LASF3750:
+ .string "MATCH_FENCE 0xf"
+.LASF1711:
+ .string "GPIO_BOP_CR12 BIT(28)"
+.LASF3055:
+ .string "CTL2_IRLP(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF1655:
+ .string "GPIO_ISTAT_ISTAT4 BIT(4)"
+.LASF3310:
+ .string "__NULLABILITY_PRAGMA_POP "
+.LASF1460:
+ .string "EXTI_SWIEV_SWIEV14 BIT(14)"
+.LASF2515:
+ .string "SPI_NSS_SOFT SPI_CTL0_SWNSSEN"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF3788:
+ .string "MATCH_AMOMIN_W 0x8000202f"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF2548:
+ .string "I2SCTL_I2SOPMOD(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF1082:
+ .string "CAN_MAILBOX1 ((uint8_t)0x01U)"
+.LASF828:
+ .string "CAN_F13DATA0(canx) REG32((canx) + 0x2A8U)"
+.LASF2286:
+ .string "PLLMF_4 RCU_CFG0_PLLMF_4"
+.LASF1533:
+ .string "FMC_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF386:
+ .string "__int20 +2"
+.LASF4078:
+ .string "MATCH_CUSTOM1_RS1_RS2 0x302b"
+.LASF342:
+ .string "_MACHINE__DEFAULT_TYPES_H "
+.LASF551:
+ .string "ADC_STAT_WDE BIT(0)"
+.LASF3869:
+ .string "MASK_FMIN_S 0xfe00707f"
+.LASF1913:
+ .string "I2C_SADDR0_ADDRESS BITS(1,7)"
+.LASF4274:
+ .string "CSR_MHPMCOUNTER4H 0xb84"
+.LASF3237:
+ .string "__GNUCLIKE_BUILTIN_NEXT_ARG 1"
+.LASF2518:
+ .string "SPI_ENDIAN_LSB SPI_CTL0_LF"
+.LASF1662:
+ .string "GPIO_ISTAT_ISTAT11 BIT(11)"
+.LASF2480:
+ .string "SPI_CTL1_TBEIE BIT(7)"
+.LASF3770:
+ .string "MATCH_MULW 0x200003b"
+.LASF1829:
+ .string "GPIO_PIN_SOURCE_7 ((uint8_t)0x07U)"
+.LASF1490:
+ .string "FMC_STAT REG32((FMC) + 0x0CU)"
+.LASF2400:
+ .string "RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL"
+.LASF2637:
+ .string "TIMER_SMCFG_SMC BITS(0,2)"
+.LASF626:
+ .string "ADC0_1_EXTTRIG_REGULAR_T3_CH3 CTL1_ETSRC(5)"
+.LASF1357:
+ .string "EXMC_MEMORY_TYPE_PSRAM SNCTL_NRTP(1)"
+.LASF2540:
+ .string "I2S_AUDIOSAMPLE_192K ((uint32_t)192000U)"
+.LASF1811:
+ .string "GPIO_EVENT_PIN_5 ((uint8_t)0x05U)"
+.LASF4370:
+ .string "USART0_IRQn"
+.LASF929:
+ .string "CAN_RFIFO1_RFD1 BIT(5)"
+.LASF879:
+ .string "CAN_RFIFOMDATA0(canx,bank) REG32((canx) + 0x1B8U + ((bank) * 0x10U))"
+.LASF4319:
+ .string "CAUSE_BREAKPOINT 0x3"
+.LASF2198:
+ .string "RCU_APB1EN_USART1EN BIT(17)"
+.LASF2966:
+ .string "USART_CTL0_REN BIT(2)"
+.LASF4160:
+ .string "CSR_MCOUNTEREN 0x306"
+.LASF1296:
+ .string "DMA_FLAG_G DMA_INTF_GIF"
+.LASF1841:
+ .string "GPIO_PIN_3 BIT(3)"
+.LASF3683:
+ .string "MASK_SRLI 0xfc00707f"
+.LASF805:
+ .string "CAN_RFIFOMDATA10(canx) REG32((canx) + 0x1BCU)"
+.LASF1019:
+ .string "TMDATA0_DB3(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF2402:
+ .string "RCU_DEEPSLEEP_V_1_2 DSV_DSLPVS(0)"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF2611:
+ .string "TIMER_CH1CV(timerx) REG32((timerx) + 0x38U)"
+.LASF3335:
+ .string "__need_wint_t "
+.LASF3592:
+ .string "MIE_MTIE MIP_MTIP"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF1926:
+ .string "I2C_STAT0_BERR BIT(8)"
+.LASF2334:
+ .string "BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF2011:
+ .string "FWDGT_WRITEACCESS_DISABLE ((uint16_t)0x0000U)"
+.LASF1415:
+ .string "EXTI_RTEN_RTEN7 BIT(7)"
+.LASF2018:
+ .string "GD32VF103_DBG_H "
+.LASF2813:
+ .string "TIMER_DMACFG_DMATC_16TRANSFER DMACFG_DMATC(15)"
+.LASF2996:
+ .string "USART_CTL2_CTSEN BIT(9)"
+.LASF3846:
+ .string "MATCH_CSRRC 0x3073"
+.LASF1637:
+ .string "GPIO_CTL1_MD9 BITS(4, 5)"
+.LASF2537:
+ .string "I2S_AUDIOSAMPLE_44K ((uint32_t)44100U)"
+.LASF1760:
+ .string "AFIO_PCF0_CAN_REMAP BITS(13, 14)"
+.LASF2565:
+ .string "SPI_I2S_INT_TBE ((uint8_t)0x00U)"
+.LASF4216:
+ .string "CSR_MHPMEVENT13 0x32d"
+.LASF1645:
+ .string "GPIO_CTL1_MD13 BITS(20, 21)"
+.LASF3815:
+ .string "MASK_AMOMINU_D 0xf800707f"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF941:
+ .string "CAN_INTEN_ERRIE BIT(15)"
+.LASF430:
+ .string "INTPTR_MAX (__INTPTR_MAX__)"
+.LASF3870:
+ .string "MATCH_FMAX_S 0x28001053"
+.LASF3162:
+ .string "BWEI_HANDLER eclic_bwei_handler"
+.LASF2978:
+ .string "USART_CTL1_ADDR BITS(0,3)"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF2558:
+ .string "I2S_STD_PCMLONG (I2SCTL_I2SSTD(3) | SPI_I2SCTL_PCMSMOD)"
+.LASF2729:
+ .string "TIMER_CCHP_DTCFG BITS(0,7)"
+.LASF1975:
+ .string "I2C_DMALST_ON I2C_CTL1_DMALST"
+.LASF3695:
+ .string "MASK_SLL 0xfe00707f"
+.LASF487:
+ .string "UINT64_C(x) __UINT64_C(x)"
+.LASF3601:
+ .string "PRV_M 3"
+.LASF4303:
+ .string "CSR_MNXTI 0x345"
+.LASF2340:
+ .string "RCU_PREDV0_DIV1 CFG1_PREDV0(0)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF2639:
+ .string "TIMER_SMCFG_MSM BIT(7)"
+.LASF3407:
+ .string "_REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf)"
+.LASF4367:
+ .string "I2C1_ER_IRQn"
+.LASF4193:
+ .string "CSR_MHPMCOUNTER21 0xb15"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2192:
+ .string "RCU_APB1EN_TIMER4EN BIT(3)"
+.LASF4176:
+ .string "CSR_MHPMCOUNTER4 0xb04"
+.LASF4125:
+ .string "CSR_HPMCOUNTER12 0xc0c"
+.LASF4288:
+ .string "CSR_MHPMCOUNTER18H 0xb92"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF2028:
+ .string "DBG_CTL_TIMER0_HOLD BIT(10)"
+.LASF3475:
+ .string "SEEK_CUR 1"
+.LASF1094:
+ .string "CAN_MODE_SLEEP ((uint8_t)0x04U)"
+.LASF961:
+ .string "CAN_TMP_DLENC BITS(0,3)"
+.LASF1084:
+ .string "CAN_NOMAILBOX ((uint8_t)0x03U)"
+.LASF1344:
+ .string "EXMC_SNCTL_NRWTEN BIT(13)"
+.LASF1794:
+ .string "GPIO_OSPEED_2MHZ ((uint8_t)0x02U)"
+.LASF1132:
+ .string "DAC0_L12DH REG32(DAC + 0x0CU)"
+.LASF3384:
+ .string "_REENT_CHECK_SIGNAL_BUF(ptr) "
+.LASF2746:
+ .string "TIMER_INT_TRG TIMER_DMAINTEN_TRGIE"
+.LASF361:
+ .string "__EXP(x) __ ##x ##__"
+.LASF1521:
+ .string "FMC_OBSTAT_SPC BIT(1)"
+.LASF2155:
+ .string "RCU_APB1RST_TIMER5RST BIT(4)"
+.LASF2841:
+ .string "TIMER_ROS_STATE_ENABLE ((uint16_t)TIMER_CCHP_ROS)"
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF4069:
+ .string "MASK_CUSTOM0_RD 0x707f"
+.LASF426:
+ .string "__int_fast16_t_defined 1"
+.LASF1610:
+ .string "GPIO_BC(gpiox) REG32((gpiox) + 0x14U)"
+.LASF1079:
+ .string "CAN_BT_BS2_7TQ ((uint8_t)0x06U)"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF2141:
+ .string "RCU_APB2RST_PARST BIT(2)"
+.LASF1951:
+ .string "I2C_BIT_POS2(val) (((uint32_t)(val) & 0x1F0000U) >> 16)"
+.LASF331:
+ .string "__O volatile"
+.LASF2820:
+ .string "TIMER_EVENT_SRC_CH3G ((uint16_t)0x0010U)"
+.LASF566:
+ .string "ADC_CTL0_SYNCM BITS(16,19)"
+.LASF1954:
+ .string "I2C_STAT1_REG_OFFSET 0x18U"
+.LASF868:
+ .string "CAN_F25DATA1(canx) REG32((canx) + 0x30CU)"
+.LASF2634:
+ .string "TIMER_CTL1_ISO2 BIT(12)"
+.LASF3674:
+ .string "MATCH_SLLI 0x1013"
+.LASF969:
+ .string "CAN_TMDATA1_DB5 BITS(8,15)"
+.LASF2476:
+ .string "SPI_CTL1_NSSP BIT(3)"
+.LASF538:
+ .string "ADC_IOFF3(adcx) REG32((adcx) + 0x20U)"
+.LASF2668:
+ .string "TIMER_INTF_CH1OF BIT(10)"
+.LASF4110:
+ .string "CSR_FFLAGS 0x1"
+.LASF2735:
+ .string "TIMER_CCHP_OAEN BIT(14)"
+.LASF1432:
+ .string "EXTI_FTEN_FTEN5 BIT(5)"
+.LASF3342:
+ .string "_TIME_T_ __int_least64_t"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF3593:
+ .string "MIE_SEIE MIP_SEIP"
+.LASF362:
+ .string "__have_longlong64 1"
+.LASF851:
+ .string "CAN_F8DATA1(canx) REG32((canx) + 0x284U)"
+.LASF894:
+ .string "CAN_STAT_WUIF BIT(3)"
+.LASF4322:
+ .string "CAUSE_MISALIGNED_STORE 0x6"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1385:
+ .string "EXTI_INTEN_INTEN15 BIT(15)"
+.LASF2452:
+ .string "SPI_STAT(spix) REG32((spix) + 0x08U)"
+.LASF3480:
+ .string "stderr (_REENT->_stderr)"
+.LASF403:
+ .string "__LEAST64 \"ll\""
+.LASF1947:
+ .string "I2C_REG_VAL(i2cx,offset) (REG32((i2cx) + (((uint32_t)(offset) & 0xFFFFU) >> 6)))"
+.LASF1640:
+ .string "GPIO_CTL1_CTL10 BITS(10, 11)"
+.LASF1058:
+ .string "CAN_BT_BS1_2TQ ((uint8_t)0x01U)"
+.LASF1183:
+ .string "DAC_WAVE_MODE_LFSR CTL_DWM(1)"
+.LASF2447:
+ .string "SPI0 (SPI_BASE + 0x0000F800U)"
+.LASF1146:
+ .string "DAC_CTL_DWM0 BITS(6,7)"
+.LASF3905:
+ .string "MASK_FLE_D 0xfe00707f"
+.LASF2443:
+ .string "RTC_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2599:
+ .string "TIMER_SMCFG(timerx) REG32((timerx) + 0x08U)"
+.LASF2964:
+ .string "USART_CTL0_SBKCMD BIT(0)"
+.LASF703:
+ .string "ADC_OVERSAMPLING_RATIO_MUL4 OVSCR_OVSR(1)"
+.LASF1315:
+ .string "DMA_MEMORY_WIDTH_16BIT CHCTL_MWIDTH(1U)"
+.LASF3776:
+ .string "MATCH_REMW 0x200603b"
+.LASF2008:
+ .string "FWDGT_PSC_DIV128 ((uint8_t)PSC_PSC(5))"
+.LASF4153:
+ .string "CSR_SPTBR 0x180"
+.LASF3471:
+ .string "FOPEN_MAX 20"
+.LASF3070:
+ .string "WWDGT_CFG_PSC_DIV1 CFG_PSC(0)"
+.LASF1502:
+ .string "FMC_WS_WSCNT BITS(0,2)"
+.LASF2940:
+ .string "USART2 (USART_BASE+(0x00000400U))"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF1174:
+ .string "DAC_TRIGGER_T2_TRGO CTL_DTSEL(1)"
+.LASF1689:
+ .string "GPIO_BOP_BOP6 BIT(6)"
+.LASF2722:
+ .string "TIMER_PSC_PSC BITS(0,15)"
+.LASF1107:
+ .string "CAN_INT_RFNE1 CAN_INTEN_RFNEIE1"
+.LASF1184:
+ .string "DAC_WAVE_MODE_TRIANGLE CTL_DWM(2)"
+.LASF820:
+ .string "CAN_F5DATA0(canx) REG32((canx) + 0x268U)"
+.LASF3527:
+ .string "SSTATUS_PUM 0x00040000"
+.LASF3445:
+ .string "__FILE_defined "
+.LASF2853:
+ .string "TIMER_CCHP_PROT_2 CCHP_PROT(3)"
+.LASF387:
+ .string "__int20__ +2"
+.LASF4033:
+ .string "MASK_C_AND 0xfc63"
+.LASF1309:
+ .string "CHCTL_PWIDTH(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))"
+.LASF3633:
+ .string "PTE_SOFT 0x300"
+.LASF1904:
+ .string "I2C_CTL0_SALT BIT(13)"
+.LASF1920:
+ .string "I2C_STAT0_ADDSEND BIT(1)"
+.LASF858:
+ .string "CAN_F15DATA1(canx) REG32((canx) + 0x2BCU)"
+.LASF2909:
+ .string "TIMER_TRI_OUT_SRC_ENABLE CTL1_MMC(1)"
+.LASF3708:
+ .string "MATCH_AND 0x7033"
+.LASF1210:
+ .string "DATA_ALIGN(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF1520:
+ .string "FMC_OBSTAT_OBERR BIT(0)"
+.LASF2305:
+ .string "RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))"
+.LASF1569:
+ .string "OB_WP_7 ((uint32_t)0x00000080U)"
+.LASF4338:
+ .string "RCU_CTC_IRQn"
+.LASF3668:
+ .string "MATCH_LUI 0x37"
+.LASF617:
+ .string "ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000U)"
+.LASF3492:
+ .string "ferror(p) __sferror(p)"
+.LASF2254:
+ .string "RCU_SCSS_HXTAL CFG0_SCSS(1)"
+.LASF1721:
+ .string "GPIO_BC_CR6 BIT(6)"
+.LASF1445:
+ .string "EXTI_FTEN_FTEN18 BIT(18)"
+.LASF4300:
+ .string "CSR_MHPMCOUNTER30H 0xb9e"
+.LASF3795:
+ .string "MASK_AMOMAXU_W 0xf800707f"
+.LASF1594:
+ .string "OB_WP_ALL ((uint32_t)0xFFFFFFFFU)"
+.LASF1497:
+ .string "OB_USER REG16((OB) + 0x02U)"
+.LASF2534:
+ .string "I2S_AUDIOSAMPLE_16K ((uint32_t)16000U)"
+.LASF1121:
+ .string "CRC_CTL REG32(CRC + 0x08U)"
+.LASF2342:
+ .string "RCU_PREDV0_DIV3 CFG1_PREDV0(2)"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF653:
+ .string "ADC_INSERTED_CHANNEL ((uint8_t)0x02U)"
+.LASF1901:
+ .string "I2C_CTL0_ACKEN BIT(10)"
+.LASF2070:
+ .string "PMU_LDO_LOWPOWER PMU_CTL_LDOLP"
+.LASF2134:
+ .string "RCU_INT_IRC8MSTBIC BIT(18)"
+.LASF3804:
+ .string "MATCH_AMOXOR_D 0x2000302f"
+.LASF2172:
+ .string "RCU_AHBEN_DMA1EN BIT(1)"
+.LASF4337:
+ .string "FMC_IRQn"
+.LASF2016:
+ .string "FWDGT_FLAG_PUD FWDGT_STAT_PUD"
+.LASF1766:
+ .string "AFIO_EXTI0_SS BITS(0, 3)"
+.LASF3009:
+ .string "USART_CTL2_REG_OFFSET (0x00000014U)"
+.LASF413:
+ .string "__int32_t_defined 1"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF539:
+ .string "ADC_WDHT(adcx) REG32((adcx) + 0x24U)"
+.LASF3837:
+ .string "MASK_DRET 0xffffffff"
+.LASF3035:
+ .string "USART_CLEN_NONE CTL1_CLEN(0)"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF2549:
+ .string "I2S_MODE_SLAVETX I2SCTL_I2SOPMOD(0)"
+.LASF2626:
+ .string "TIMER_CTL1_CCUC BIT(2)"
+.LASF3341:
+ .string "_CLOCK_T_ unsigned long"
+.LASF2562:
+ .string "SPI_DMA_RECEIVE ((uint8_t)0x01U)"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF3309:
+ .string "__NULLABILITY_PRAGMA_PUSH "
+.LASF4257:
+ .string "CSR_HPMCOUNTER18H 0xc92"
+.LASF356:
+ .string "__MISC_VISIBLE 0"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF4015:
+ .string "MASK_C_JAL 0xe003"
+.LASF548:
+ .string "ADC_IDATA3(adcx) REG32((adcx) + 0x48U)"
+.LASF960:
+ .string "CAN_TMI_SFID BITS(21,31)"
+.LASF3692:
+ .string "MATCH_SUB 0x40000033"
+.LASF1478:
+ .string "EXTI_PD_PD13 BIT(13)"
+.LASF1556:
+ .string "OB_USER_USER ((uint32_t)0x00FF0000U)"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF922:
+ .string "CAN_RFIFO0_RFL0 BITS(0,1)"
+.LASF1307:
+ .string "DMA_MEMORY_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF3313:
+ .string "__lock_annotate(x) "
+.LASF3329:
+ .string "__pt_guarded_by(x) __lock_annotate(pt_guarded_by(x))"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF3806:
+ .string "MATCH_AMOOR_D 0x4000302f"
+.LASF4102:
+ .string "MATCH_CUSTOM3_RS1_RS2 0x307b"
+.LASF2290:
+ .string "RCU_PLL_MUL4 CFG0_PLLMF(2)"
+.LASF2354:
+ .string "RCU_PREDV0_DIV15 CFG1_PREDV0(14)"
+.LASF871:
+ .string "CAN_TMI(canx,bank) REG32((canx) + 0x180U + ((bank) * 0x10U))"
+.LASF4224:
+ .string "CSR_MHPMEVENT21 0x335"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF3994:
+ .string "MATCH_C_LDSP 0x6002"
+.LASF2220:
+ .string "RCU_RSTSCK_SWRSTF BIT(28)"
+.LASF2304:
+ .string "RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))"
+.LASF2670:
+ .string "TIMER_INTF_CH3OF BIT(12)"
+.LASF3219:
+ .string "__unbounded "
+.LASF853:
+ .string "CAN_F10DATA1(canx) REG32((canx) + 0x294U)"
+.LASF3606:
+ .string "VM_SV39 9"
+.LASF1903:
+ .string "I2C_CTL0_PECTRANS BIT(12)"
+.LASF2712:
+ .string "TIMER_CHCTL2_CH1P BIT(5)"
+.LASF3023:
+ .string "CTL0_WL(regval) (BIT(12) & ((uint32_t)(regval) << 12))"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF1421:
+ .string "EXTI_RTEN_RTEN13 BIT(13)"
+.LASF1207:
+ .string "DAC_LFSR_BITS9_0 DAC_WAVE_BIT_WIDTH_10"
+.LASF532:
+ .string "ADC_CTL1(adcx) REG32((adcx) + 0x08U)"
+.LASF1681:
+ .string "GPIO_OCTL_OCTL14 BIT(14)"
+.LASF4202:
+ .string "CSR_MHPMCOUNTER30 0xb1e"
+.LASF3713:
+ .string "MASK_SLLIW 0xfe00707f"
+.LASF3759:
+ .string "MASK_MULHSU 0xfe00707f"
+.LASF3244:
+ .string "__CC_SUPPORTS_WARNING 1"
+.LASF564:
+ .string "ADC_CTL0_DISIC BIT(12)"
+.LASF1799:
+ .string "GPIO_EVENT_PORT_GPIOD ((uint8_t)0x03U)"
+.LASF1066:
+ .string "CAN_BT_BS1_10TQ ((uint8_t)0x09U)"
+.LASF1865:
+ .string "GPIO_TIMER1_FULL_REMAP ((uint32_t)0x00180300U)"
+.LASF2248:
+ .string "CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2318:
+ .string "RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))"
+.LASF1254:
+ .string "DMA_CH5MADDR(dmax) REG32((dmax) + 0x78U)"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF4293:
+ .string "CSR_MHPMCOUNTER23H 0xb97"
+.LASF3493:
+ .string "clearerr(p) __sclearerr(p)"
+.LASF2993:
+ .string "USART_CTL2_DENR BIT(6)"
+.LASF1499:
+ .string "OB_WP1 REG16((OB) + 0x0AU)"
+.LASF1124:
+ .string "CRC_CTL_RST BIT(0)"
+.LASF3581:
+ .string "MIP_STIP (1 << IRQ_S_TIMER)"
+.LASF994:
+ .string "CAN_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF2219:
+ .string "RCU_RSTSCK_PORRSTF BIT(27)"
+.LASF885:
+ .string "CAN_CTL_ARD BIT(4)"
+.LASF1239:
+ .string "DMA_CH2CTL(dmax) REG32((dmax) + 0x30U)"
+.LASF3125:
+ .string "__need_NULL"
+.LASF2792:
+ .string "TIMER_DMACFG_DMATA_CH1CV DMACFG_DMATA(14)"
+.LASF1537:
+ .string "FMC_OBSTAT_REG_OFFSET 0x1CU"
+.LASF2719:
+ .string "TIMER_CHCTL2_CH3EN BIT(12)"
+.LASF1674:
+ .string "GPIO_OCTL_OCTL7 BIT(7)"
+.LASF2659:
+ .string "TIMER_INTF_UPIF BIT(0)"
+.LASF2082:
+ .string "RCU_AHBEN REG32(RCU + 0x14U)"
+.LASF2166:
+ .string "RCU_APB1RST_CAN0RST BIT(25)"
+.LASF4127:
+ .string "CSR_HPMCOUNTER14 0xc0e"
+.LASF541:
+ .string "ADC_RSQ0(adcx) REG32((adcx) + 0x2CU)"
+.LASF2854:
+ .string "TIMER_BREAK_ENABLE ((uint16_t)TIMER_CCHP_BRKEN)"
+.LASF2216:
+ .string "RCU_RSTSCK_IRC40KSTB BIT(1)"
+.LASF2889:
+ .string "TIMER_IC_POLARITY_FALLING ((uint16_t)0x0002U)"
+.LASF4228:
+ .string "CSR_MHPMEVENT25 0x339"
+.LASF4195:
+ .string "CSR_MHPMCOUNTER23 0xb17"
+.LASF988:
+ .string "CAN_FCTL_HBC1F BITS(8,13)"
+.LASF3467:
+ .string "_IOLBF 1"
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF2816:
+ .string "TIMER_EVENT_SRC_UPG ((uint16_t)0x0001U)"
+.LASF2497:
+ .string "SPI_I2SCTL_I2SSTD BITS(4,5)"
+.LASF525:
+ .string "USE_STDPERIPH_DRIVER "
+.LASF3951:
+ .string "MASK_FCVT_D_LU 0xfff0007f"
+.LASF2204:
+ .string "RCU_APB1EN_CAN0EN BIT(25)"
+.LASF3673:
+ .string "MASK_ADDI 0x707f"
+.LASF2303:
+ .string "RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))"
+.LASF3178:
+ .string "HAVE_INITFINI_ARRAY 1"
+.LASF924:
+ .string "CAN_RFIFO0_RFO0 BIT(4)"
+.LASF2344:
+ .string "RCU_PREDV0_DIV5 CFG1_PREDV0(4)"
+.LASF2943:
+ .string "USART0 (USART_BASE+(0x0000F400U))"
+.LASF377:
+ .string "char"
+.LASF3347:
+ .string "__SYS_LOCK_H__ "
+.LASF3478:
+ .string "stdin (_REENT->_stdin)"
+.LASF2106:
+ .string "RCU_CFG0_AHBPSC BITS(4,7)"
+.LASF664:
+ .string "ADC_CHANNEL_4 ((uint8_t)0x04U)"
+.LASF2367:
+ .string "RCU_PREDV1_DIV11 CFG1_PREDV1(10)"
+.LASF1447:
+ .string "EXTI_SWIEV_SWIEV1 BIT(1)"
+.LASF2246:
+ .string "CFG0_REG_OFFSET 0x04U"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF3191:
+ .string "__RAND_MAX"
+.LASF2891:
+ .string "TIMER_IC_SELECTION_DIRECTTI ((uint16_t)0x0001U)"
+.LASF1374:
+ .string "EXTI_INTEN_INTEN4 BIT(4)"
+.LASF2152:
+ .string "RCU_APB1RST_TIMER2RST BIT(1)"
+.LASF1757:
+ .string "AFIO_PCF0_TIMER1_REMAP BITS(8, 9)"
+.LASF3597:
+ .string "SIP_STIP MIP_STIP"
+.LASF3194:
+ .string "__IMPORT "
+.LASF2293:
+ .string "RCU_PLL_MUL7 CFG0_PLLMF(5)"
+.LASF4376:
+ .string "EXMC_IRQn"
+.LASF605:
+ .string "ADC_INSERTED_CHANNEL_AUTO ADC_CTL0_ICA"
+.LASF3783:
+ .string "MASK_AMOXOR_W 0xf800707f"
+.LASF833:
+ .string "CAN_F18DATA0(canx) REG32((canx) + 0x2D0U)"
+.LASF1164:
+ .string "DACC_R12DH_DAC0_DH BITS(0,11)"
+.LASF1327:
+ .string "ECLIC_PRIGROUP_LEVEL1_PRIO3 1"
+.LASF2771:
+ .string "TIMER_DMA_CH2D ((uint16_t)TIMER_DMAINTEN_CH2DEN)"
+.LASF2273:
+ .string "RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)"
+.LASF1131:
+ .string "DAC0_R12DH REG32(DAC + 0x08U)"
+.LASF2679:
+ .string "TIMER_CHCTL0_CH0MS BITS(0,1)"
+.LASF1910:
+ .string "I2C_CTL1_DMAON BIT(11)"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF3734:
+ .string "MATCH_LD 0x3003"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF528:
+ .string "ADC0 ADC_BASE"
+.LASF1514:
+ .string "FMC_CTL_START BIT(6)"
+.LASF3211:
+ .string "__ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname"
+.LASF1075:
+ .string "CAN_BT_BS2_3TQ ((uint8_t)0x02U)"
+.LASF3842:
+ .string "MATCH_CSRRW 0x1073"
+.LASF2027:
+ .string "DBG_CTL_WWDGT_HOLD BIT(9)"
+.LASF4077:
+ .string "MASK_CUSTOM1_RS1 0x707f"
+.LASF3835:
+ .string "MASK_MRET 0xffffffff"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF3235:
+ .string "__GNUC_VA_LIST_COMPATIBILITY 1"
+.LASF3356:
+ .string "__lock_try_acquire(lock) ((void) 0)"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF2618:
+ .string "TIMER_CTL0_UPDIS BIT(1)"
+.LASF572:
+ .string "ADC_CTL1_RSTCLB BIT(3)"
+.LASF4087:
+ .string "MASK_CUSTOM2 0x707f"
+.LASF2357:
+ .string "RCU_PREDV1_DIV1 CFG1_PREDV1(0)"
+.LASF3506:
+ .string "MSTATUS_UPIE 0x00000010"
+.LASF1893:
+ .string "I2C_CTL0_SMBEN BIT(1)"
+.LASF415:
+ .string "_UINT64_T_DECLARED "
+.LASF503:
+ .string "AHB1_BUS_BASE ((uint32_t)0x40018000U)"
+.LASF4262:
+ .string "CSR_HPMCOUNTER23H 0xc97"
+.LASF3020:
+ .string "CTL0_WM(regval) (BIT(11) & ((uint32_t)(regval) << 11))"
+.LASF3892:
+ .string "MATCH_FCVT_S_D 0x40100053"
+.LASF2391:
+ .string "RCU_PLL2_MUL14 CFG1_PLL2MF(12)"
+.LASF507:
+ .string "WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)"
+.LASF1468:
+ .string "EXTI_PD_PD3 BIT(3)"
+.LASF3137:
+ .string "TIMER_FREQ ((uint32_t)SystemCoreClock/4)"
+.LASF1454:
+ .string "EXTI_SWIEV_SWIEV8 BIT(8)"
+.LASF1629:
+ .string "GPIO_CTL0_MD5 BITS(20, 21)"
+.LASF3405:
+ .string "_REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_new._reent._wcsrtombs_state)"
+.LASF1797:
+ .string "GPIO_EVENT_PORT_GPIOB ((uint8_t)0x01U)"
+.LASF2177:
+ .string "RCU_AHBEN_USBFSEN BIT(12)"
+.LASF965:
+ .string "CAN_TMDATA0_DB1 BITS(8,15)"
+.LASF1803:
+ .string "GPIO_PORT_SOURCE_GPIOC ((uint8_t)0x02U)"
+.LASF3474:
+ .string "SEEK_SET 0"
+.LASF429:
+ .string "INTPTR_MIN (-__INTPTR_MAX__ - 1)"
+.LASF1667:
+ .string "GPIO_OCTL_OCTL0 BIT(0)"
+.LASF3338:
+ .string "_MACHINE__TYPES_H "
+.LASF2932:
+ .string "TIMER_ETP_FALLING TIMER_SMCFG_ETP"
+.LASF2025:
+ .string "DBG_CTL_STB_HOLD BIT(2)"
+.LASF2823:
+ .string "TIMER_EVENT_SRC_BRKG ((uint16_t)0x0080U)"
+.LASF1977:
+ .string "I2C_PEC_ENABLE I2C_CTL0_PECEN"
+.LASF3927:
+ .string "MASK_FCVT_L_D 0xfff0007f"
+.LASF1965:
+ .string "I2C_DUADEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF2871:
+ .string "TIMER_OCN_IDLE_STATE_LOW ((uint16_t)0x0000U)"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF1584:
+ .string "OB_WP_22 ((uint32_t)0x00400000U)"
+.LASF1122:
+ .string "CRC_DATA_DATA BITS(0, 31)"
+.LASF1959:
+ .string "I2C_RECEIVER ((uint32_t)0x00000001U)"
+.LASF2100:
+ .string "RCU_CTL_PLL1EN BIT(26)"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF1367:
+ .string "EXTI_FTEN REG32(EXTI + 0x0CU)"
+.LASF2026:
+ .string "DBG_CTL_FWDGT_HOLD BIT(8)"
+.LASF1361:
+ .string "EXMC_NWAIT_POLARITY_HIGH ((uint32_t)0x00000200U)"
+.LASF4145:
+ .string "CSR_SSTATUS 0x100"
+.LASF1541:
+ .string "WS_WSCNT_0 WS_WSCNT(0)"
+.LASF3856:
+ .string "MATCH_FSUB_S 0x8000053"
+.LASF1282:
+ .string "DMA_FLAG_ADD(flag,shift) ((flag) << ((shift) * 4U))"
+.LASF1743:
+ .string "GPIO_LOCK_LK12 BIT(12)"
+.LASF682:
+ .string "ADC_INT_FLAG_EOC ADC_STAT_EOC"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF865:
+ .string "CAN_F22DATA1(canx) REG32((canx) + 0x2F4U)"
+.LASF2969:
+ .string "USART_CTL0_RBNEIE BIT(5)"
+.LASF3311:
+ .string "__arg_type_tag(arg_kind,arg_idx,type_tag_idx) "
+.LASF1589:
+ .string "OB_WP_27 ((uint32_t)0x08000000U)"
+.LASF373:
+ .string "_SYS__INTSUP_H "
+.LASF4013:
+ .string "MASK_C_ADDI 0xe003"
+.LASF912:
+ .string "CAN_TSTAT_MAL2 BIT(18)"
+.LASF2569:
+ .string "SPI_I2S_INT_FLAG_RBNE ((uint8_t)0x01U)"
+.LASF3281:
+ .string "__null_sentinel __attribute__((__sentinel__))"
+.LASF3054:
+ .string "USART_CTS_DISABLE CLT2_CTSEN(0)"
+.LASF2800:
+ .string "TIMER_DMACFG_DMATC_3TRANSFER DMACFG_DMATC(2)"
+.LASF2346:
+ .string "RCU_PREDV0_DIV7 CFG1_PREDV0(6)"
+.LASF2511:
+ .string "SPI_TRANSMODE_BDRECEIVE SPI_CTL0_BDEN"
+.LASF3399:
+ .string "_REENT_MBTOWC_STATE(ptr) ((ptr)->_new._reent._mbtowc_state)"
+.LASF2998:
+ .string "USART_GP_PSC BITS(0,7)"
+.LASF798:
+ .string "CAN_TMI2(canx) REG32((canx) + 0x1A0U)"
+.LASF3343:
+ .string "_CLOCKID_T_ unsigned long"
+.LASF2135:
+ .string "RCU_INT_HXTALSTBIC BIT(19)"
+.LASF4133:
+ .string "CSR_HPMCOUNTER20 0xc14"
+.LASF2468:
+ .string "SPI_CTL0_FF16 BIT(11)"
+.LASF3730:
+ .string "MATCH_LH 0x1003"
+.LASF3682:
+ .string "MATCH_SRLI 0x5013"
+.LASF809:
+ .string "CAN_RFIFOMDATA11(canx) REG32((canx) + 0x1CCU)"
+.LASF2080:
+ .string "RCU_APB2RST REG32(RCU + 0x0CU)"
+.LASF3672:
+ .string "MATCH_ADDI 0x13"
+.LASF1588:
+ .string "OB_WP_26 ((uint32_t)0x04000000U)"
+.LASF2109:
+ .string "RCU_CFG0_ADCPSC BITS(14,15)"
+.LASF1196:
+ .string "DAC_WAVE_BIT_WIDTH_11 DWBW(10)"
+.LASF389:
+ .string "long +4"
+.LASF1265:
+ .string "DMA_INTC_HTFIFC BIT(2)"
+.LASF1071:
+ .string "CAN_BT_BS1_15TQ ((uint8_t)0x0EU)"
+.LASF3006:
+ .string "USART_STAT_REG_OFFSET (0x00000000U)"
+.LASF2147:
+ .string "RCU_APB2RST_ADC1RST BIT(10)"
+.LASF2251:
+ .string "RCU_CKSYSSRC_PLL CFG0_SCS(2)"
+.LASF1896:
+ .string "I2C_CTL0_PECEN BIT(5)"
+.LASF3337:
+ .string "__need_wint_t"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF4120:
+ .string "CSR_HPMCOUNTER7 0xc07"
+.LASF630:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_TRGO CTL1_ETSIC(0)"
+.LASF4079:
+ .string "MASK_CUSTOM1_RS1_RS2 0x707f"
+.LASF3569:
+ .string "MCONTROL_ACTION_TRACE_START 2"
+.LASF3634:
+ .string "PTE_PPN_SHIFT 10"
+.LASF2222:
+ .string "RCU_RSTSCK_WWDGTRSTF BIT(30)"
+.LASF4281:
+ .string "CSR_MHPMCOUNTER11H 0xb8b"
+.LASF2941:
+ .string "UART3 (USART_BASE+(0x00000800U))"
+.LASF3386:
+ .string "_REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next)"
+.LASF2039:
+ .string "DBG_LOW_POWER_SLEEP DBG_CTL_SLP_HOLD"
+.LASF589:
+ .string "ADC_ISQ_IL BITS(20,21)"
+.LASF445:
+ .string "INT32_MAX (__INT32_MAX__)"
+.LASF2373:
+ .string "CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF680:
+ .string "ADC_INT_EOIC ADC_STAT_EOIC"
+.LASF2844:
+ .string "TIMER_IOS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF3473:
+ .string "L_tmpnam FILENAME_MAX"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF2763:
+ .string "TIMER_FLAG_BRK TIMER_INTF_BRKIF"
+.LASF911:
+ .string "CAN_TSTAT_MTFNERR2 BIT(17)"
+.LASF2359:
+ .string "RCU_PREDV1_DIV3 CFG1_PREDV1(2)"
+.LASF2850:
+ .string "TIMER_CCHP_PROT_OFF CCHP_PROT(0)"
+.LASF4302:
+ .string "CSR_MTVT 0x307"
+.LASF3252:
+ .string "__const const"
+.LASF3192:
+ .string "__RAND_MAX 0x7fffffff"
+.LASF657:
+ .string "ADC_INSERTED_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF3254:
+ .string "__volatile volatile"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF888:
+ .string "CAN_CTL_TTC BIT(7)"
+.LASF1295:
+ .string "DMA_INT_FLAG_ERR DMA_INTF_ERRIF"
+.LASF2232:
+ .string "RCU_DSV_DSLPVS BITS(0,1)"
+.LASF3507:
+ .string "MSTATUS_SPIE 0x00000020"
+.LASF2529:
+ .string "SPI_PSC_64 CTL0_PSC(5)"
+.LASF2528:
+ .string "SPI_PSC_32 CTL0_PSC(4)"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF1745:
+ .string "GPIO_LOCK_LK14 BIT(14)"
+.LASF621:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH0 CTL1_ETSRC(0)"
+.LASF2649:
+ .string "TIMER_DMAINTEN_CMTIE BIT(5)"
+.LASF2107:
+ .string "RCU_CFG0_APB1PSC BITS(8,10)"
+.LASF606:
+ .string "CTL0_SYNCM(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF1754:
+ .string "AFIO_PCF0_USART1_REMAP BIT(3)"
+.LASF3933:
+ .string "MASK_FCLASS_D 0xfff0707f"
+.LASF4215:
+ .string "CSR_MHPMEVENT12 0x32c"
+.LASF2510:
+ .string "SPI_TRANSMODE_RECEIVEONLY SPI_CTL0_RO"
+.LASF4175:
+ .string "CSR_MHPMCOUNTER3 0xb03"
+.LASF4231:
+ .string "CSR_MHPMEVENT28 0x33c"
+.LASF1820:
+ .string "GPIO_EVENT_PIN_14 ((uint8_t)0x0EU)"
+.LASF3756:
+ .string "MATCH_MULH 0x2001033"
+.LASF2849:
+ .string "CCHP_PROT(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF4060:
+ .string "MATCH_C_FSWSP 0xe002"
+.LASF2285:
+ .string "RCU_PLLSRC_HXTAL RCU_CFG0_PLLSEL"
+.LASF393:
+ .string "__INT16 \"h\""
+.LASF2754:
+ .string "TIMER_INT_FLAG_TRG TIMER_INT_TRG"
+.LASF2325:
+ .string "RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)"
+.LASF956:
+ .string "CAN_TMI_TEN BIT(0)"
+.LASF2666:
+ .string "TIMER_INTF_BRKIF BIT(7)"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF2464:
+ .string "SPI_CTL0_LF BIT(7)"
+.LASF3454:
+ .string "__SEOF 0x0020"
+.LASF3414:
+ .string "_GLOBAL_ATEXIT (_GLOBAL_REENT->_atexit)"
+.LASF600:
+ .string "ADC_FLAG_EOIC ADC_STAT_EOIC"
+.LASF1128:
+ .string "DAC1 (1U)"
+.LASF3968:
+ .string "MATCH_FNMADD_S 0x4f"
+.LASF679:
+ .string "ADC_INT_EOC ADC_STAT_EOC"
+.LASF3129:
+ .string "TIMER_MSIP 0xFFC"
+.LASF3438:
+ .string "_CLOCKID_T_DECLARED "
+.LASF3123:
+ .string "NULL"
+.LASF781:
+ .string "CAN1 (CAN0 + 0x00000400U)"
+.LASF3532:
+ .string "DCSR_FULLRESET (1<<28)"
+.LASF1346:
+ .string "EXMC_SNTCFG_ASET BITS(0,3)"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF3220:
+ .string "__ptrvalue "
+.LASF3553:
+ .string "MCONTROL_SELECT (1<<19)"
+.LASF330:
+ .string "__I volatile const"
+.LASF1891:
+ .string "I2C_FMPCFG(i2cx) REG32((i2cx) + 0x90U)"
+.LASF3632:
+ .string "PTE_D 0x080"
+.LASF1002:
+ .string "TSTAT_REG_OFFSET ((uint8_t)0x08U)"
+.LASF2847:
+ .string "TIMER_OUTAUTO_ENABLE ((uint16_t)TIMER_CCHP_OAEN)"
+.LASF935:
+ .string "CAN_INTEN_RFFIE1 BIT(5)"
+.LASF2266:
+ .string "CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))"
+.LASF3202:
+ .string "_NOINLINE __attribute__ ((__noinline__))"
+.LASF1713:
+ .string "GPIO_BOP_CR14 BIT(30)"
+.LASF648:
+ .string "WDHT_WDHT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF3105:
+ .string "__need_size_t"
+.LASF1807:
+ .string "GPIO_EVENT_PIN_1 ((uint8_t)0x01U)"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2253:
+ .string "RCU_SCSS_IRC8M CFG0_SCSS(0)"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF1092:
+ .string "CAN_MODE_INITIALIZE ((uint8_t)0x01U)"
+.LASF2986:
+ .string "USART_CTL1_LMEN BIT(14)"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF977:
+ .string "CAN_RFIFOMP_FI BITS(8,15)"
+.LASF1882:
+ .string "I2C_CTL0(i2cx) REG32((i2cx) + 0x00U)"
+.LASF845:
+ .string "CAN_F2DATA1(canx) REG32((canx) + 0x254U)"
+.LASF1636:
+ .string "GPIO_CTL1_CTL8 BITS(2, 3)"
+.LASF1363:
+ .string "EXTI EXTI_BASE"
+.LASF2038:
+ .string "DBG_CTL_CAN1_HOLD BIT(21)"
+.LASF4114:
+ .string "CSR_TIME 0xc01"
+.LASF2002:
+ .string "PSC_PSC(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))"
+.LASF1779:
+ .string "AFIO_EXTI13_SS BITS(4, 7)"
+.LASF1397:
+ .string "EXTI_EVEN_EVEN8 BIT(8)"
+.LASF4360:
+ .string "TIMER0_Channel_IRQn"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF1337:
+ .string "EXMC_SNCTL_NRBKEN BIT(0)"
+.LASF2024:
+ .string "DBG_CTL_DSLP_HOLD BIT(1)"
+.LASF642:
+ .string "ADC_SAMPLETIME_28POINT5 SAMPTX_SPT(3)"
+.LASF792:
+ .string "CAN_TMDATA00(canx) REG32((canx) + 0x188U)"
+.LASF4085:
+ .string "MASK_CUSTOM1_RD_RS1_RS2 0x707f"
+.LASF2123:
+ .string "RCU_INT_PLL2STBIF BIT(6)"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF2252:
+ .string "CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF687:
+ .string "ADC_RESOLUTION_8B OVSCR_DRES(2)"
+.LASF513:
+ .string "BKP_BASE (APB1_BUS_BASE + 0x00006C00U)"
+.LASF2320:
+ .string "RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)"
+.LASF688:
+ .string "ADC_RESOLUTION_6B OVSCR_DRES(3)"
+.LASF4023:
+ .string "MASK_C_SRAI 0xec03"
+.LASF3801:
+ .string "MASK_SC_W 0xf800707f"
+.LASF2339:
+ .string "CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))"
+.LASF772:
+ .string "OCTL_RCCV(regval) (BITS(0,6) & ((uint32_t)(regval) << 0))"
+.LASF1944:
+ .string "I2C_RT_RISETIME BITS(0,5)"
+.LASF2591:
+ .string "TIMER1 (TIMER_BASE + 0x00000000U)"
+.LASF2361:
+ .string "RCU_PREDV1_DIV5 CFG1_PREDV1(4)"
+.LASF995:
+ .string "CAN_REG_VAL(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 6)))"
+.LASF3212:
+ .string "__ptr_t void *"
+.LASF967:
+ .string "CAN_TMDATA0_DB3 BITS(24,31)"
+.LASF2440:
+ .string "RTC_INT_FLAG_OVERFLOW RTC_CTL_OVIF"
+.LASF2064:
+ .string "PMU_LVDT_6 CTL_LVDT(6)"
+.LASF4005:
+ .string "MASK_C_FLW 0xe003"
+.LASF3366:
+ .string "_RAND48_SEED_2 (0x1234)"
+.LASF1914:
+ .string "I2C_SADDR0_ADDRESS_H BITS(8,9)"
+.LASF3327:
+ .string "__nosanitizethread "
+.LASF1102:
+ .string "CAN_TIMEOUT ((uint32_t)0x0000FFFFU)"
+.LASF1105:
+ .string "CAN_INT_RFF0 CAN_INTEN_RFFIE0"
+.LASF2703:
+ .string "TIMER_CHCTL1_CH2CAPPSC BITS(2,3)"
+.LASF1573:
+ .string "OB_WP_11 ((uint32_t)0x00000800U)"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF765:
+ .string "BKP_TPCS_TIR BIT(1)"
+.LASF3426:
+ .string "_ID_T_DECLARED "
+.LASF3727:
+ .string "MASK_SRAW 0xfe00707f"
+.LASF1483:
+ .string "EXTI_PD_PD18 BIT(18)"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF3423:
+ .string "__daddr_t_defined "
+.LASF612:
+ .string "ADC_DAUL_INSERTED_PARALLEL CTL0_SYNCM(5)"
+.LASF437:
+ .string "UINT_LEAST8_MAX (__UINT_LEAST8_MAX__)"
+.LASF1659:
+ .string "GPIO_ISTAT_ISTAT8 BIT(8)"
+.LASF3800:
+ .string "MATCH_SC_W 0x1800202f"
+.LASF780:
+ .string "CAN0 CAN_BASE"
+.LASF399:
+ .string "__FAST64 \"ll\""
+.LASF1133:
+ .string "DAC0_R8DH REG32(DAC + 0x10U)"
+.LASF1586:
+ .string "OB_WP_24 ((uint32_t)0x01000000U)"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1053:
+ .string "CAN_BT_SJW_1TQ ((uint8_t)0x00U)"
+.LASF3523:
+ .string "SSTATUS_SPIE 0x00000020"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF3666:
+ .string "MATCH_JAL 0x6f"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1921:
+ .string "I2C_STAT0_BTC BIT(2)"
+.LASF3375:
+ .string "_REENT_STDIO_STREAM(var,index) &(var)->__sf[index]"
+.LASF776:
+ .string "TAMPER_PIN_ACTIVE_LOW ((uint16_t)0x0002U)"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF2880:
+ .string "TIMER_OC_SHADOW_ENABLE ((uint16_t)0x0008U)"
+.LASF987:
+ .string "CAN_FCTL_FLD BIT(0)"
+.LASF4379:
+ .string "UART3_IRQn"
+.LASF1426:
+ .string "EXTI_RTEN_RTEN18 BIT(18)"
+.LASF3008:
+ .string "USART_CTL1_REG_OFFSET (0x00000010U)"
+.LASF1438:
+ .string "EXTI_FTEN_FTEN11 BIT(11)"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1897:
+ .string "I2C_CTL0_GCEN BIT(6)"
+.LASF1039:
+ .string "ERR_ERRN(regval) (BITS(4,6) & ((uint32_t)(regval) << 4))"
+.LASF3040:
+ .string "CTL1_CPL(regval) (BIT(10) & ((uint32_t)(regval) << 10))"
+.LASF1995:
+ .string "FWDGT_RLD REG32((FWDGT) + 0x00000008U)"
+.LASF2767:
+ .string "TIMER_FLAG_CH3O TIMER_INTF_CH3OF"
+.LASF3398:
+ .string "_REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state)"
+.LASF3457:
+ .string "__SAPP 0x0100"
+.LASF2857:
+ .string "TIMER_CH_1 ((uint16_t)0x0001U)"
+.LASF1798:
+ .string "GPIO_EVENT_PORT_GPIOC ((uint8_t)0x02U)"
+.LASF3428:
+ .string "_OFF_T_DECLARED "
+.LASF3458:
+ .string "__SSTR 0x0200"
+.LASF1003:
+ .string "RFIFO0_REG_OFFSET ((uint8_t)0x0CU)"
+.LASF4223:
+ .string "CSR_MHPMEVENT20 0x334"
+.LASF623:
+ .string "ADC0_1_EXTTRIG_REGULAR_T0_CH2 CTL1_ETSRC(2)"
+.LASF2368:
+ .string "RCU_PREDV1_DIV12 CFG1_PREDV1(11)"
+.LASF1845:
+ .string "GPIO_PIN_7 BIT(7)"
+.LASF958:
+ .string "CAN_TMI_FF BIT(2)"
+.LASF2019:
+ .string "DBG DBG_BASE"
+.LASF1605:
+ .string "GPIO_CTL0(gpiox) REG32((gpiox) + 0x00U)"
+.LASF2787:
+ .string "TIMER_DMACFG_DMATA_CNT DMACFG_DMATA(9)"
+.LASF2760:
+ .string "TIMER_FLAG_CH3 TIMER_INTF_CH3IF"
+.LASF3489:
+ .string "__sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))"
+.LASF1390:
+ .string "EXTI_EVEN_EVEN1 BIT(1)"
+.LASF976:
+ .string "CAN_RFIFOMP_DLENC BITS(0,3)"
+.LASF4059:
+ .string "MASK_C_SWSP 0xe003"
+.LASF3896:
+ .string "MATCH_FSQRT_D 0x5a000053"
+.LASF1434:
+ .string "EXTI_FTEN_FTEN7 BIT(7)"
+.LASF3098:
+ .string "_SIZE_T_DEFINED "
+.LASF2779:
+ .string "TIMER_DMACFG_DMATA_CTL1 DMACFG_DMATA(1)"
+.LASF436:
+ .string "INT_LEAST8_MAX (__INT_LEAST8_MAX__)"
+.LASF1392:
+ .string "EXTI_EVEN_EVEN3 BIT(3)"
+.LASF1572:
+ .string "OB_WP_10 ((uint32_t)0x00000400U)"
+.LASF3259:
+ .string "__used __attribute__((__used__))"
+.LASF3418:
+ .string "_BLKSIZE_T_DECLARED "
+.LASF2277:
+ .string "RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)"
+.LASF2020:
+ .string "DBG_ID REG32(DBG + 0x00U)"
+.LASF3325:
+ .string "__no_lock_analysis __lock_annotate(no_thread_safety_analysis)"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF2006:
+ .string "FWDGT_PSC_DIV32 ((uint8_t)PSC_PSC(3))"
+.LASF2720:
+ .string "TIMER_CHCTL2_CH3P BIT(13)"
+.LASF2926:
+ .string "TIMER_MASTER_SLAVE_MODE_DISABLE ((uint32_t)0x00000000U)"
+.LASF1591:
+ .string "OB_WP_29 ((uint32_t)0x20000000U)"
+.LASF394:
+ .string "__INT32 \"l\""
+.LASF760:
+ .string "BKP_OCTL_ASOEN BIT(8)"
+.LASF1292:
+ .string "DMA_INT_FLAG_G DMA_INTF_GIF"
+.LASF1329:
+ .string "ECLIC_PRIGROUP_LEVEL3_PRIO1 3"
+.LASF4278:
+ .string "CSR_MHPMCOUNTER8H 0xb88"
+.LASF1561:
+ .string "OB_WP3_WP3 ((uint32_t)0xFF000000U)"
+.LASF3908:
+ .string "MATCH_FEQ_D 0xa2002053"
+.LASF4152:
+ .string "CSR_SIP 0x144"
+.LASF2379:
+ .string "RCU_PLL1_MUL13 CFG1_PLL1MF(11)"
+.LASF346:
+ .string "__NEWLIB__ 4"
+.LASF3224:
+ .string "__END_DECLS "
+.LASF1652:
+ .string "GPIO_ISTAT_ISTAT1 BIT(1)"
+.LASF2723:
+ .string "TIMER_CAR_CARL BITS(0,15)"
+.LASF3724:
+ .string "MATCH_SRLW 0x503b"
+.LASF3119:
+ .string "_GCC_WCHAR_T "
+.LASF4187:
+ .string "CSR_MHPMCOUNTER15 0xb0f"
+.LASF1266:
+ .string "DMA_INTC_ERRIFC BIT(3)"
+.LASF4147:
+ .string "CSR_STVEC 0x105"
+.LASF1408:
+ .string "EXTI_RTEN_RTEN0 BIT(0)"
+.LASF2184:
+ .string "RCU_APB2EN_ADC0EN BIT(9)"
+.LASF2081:
+ .string "RCU_APB1RST REG32(RCU + 0x10U)"
+.LASF1749:
+ .string "AFIO_EC_PORT BITS(4, 6)"
+.LASF350:
+ .string "__GNUC_PREREQ__(ma,mi) __GNUC_PREREQ(ma, mi)"
+.LASF3812:
+ .string "MATCH_AMOMAX_D 0xa000302f"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF2718:
+ .string "TIMER_CHCTL2_CH2NP BIT(11)"
+.LASF2770:
+ .string "TIMER_DMA_CH1D ((uint16_t)TIMER_DMAINTEN_CH1DEN)"
+.LASF2961:
+ .string "USART_DATA_DATA BITS(0,8)"
+.LASF364:
+ .string "___int8_t_defined 1"
+.LASF1459:
+ .string "EXTI_SWIEV_SWIEV13 BIT(13)"
+.LASF4129:
+ .string "CSR_HPMCOUNTER16 0xc10"
+.LASF2983:
+ .string "USART_CTL1_CPL BIT(10)"
+.LASF1932:
+ .string "I2C_STAT0_SMBALT BIT(15)"
+.LASF459:
+ .string "INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)"
+.LASF2214:
+ .string "RCU_BDCTL_BKPRST BIT(16)"
+.LASF931:
+ .string "CAN_INTEN_RFNEIE0 BIT(1)"
+.LASF2645:
+ .string "TIMER_DMAINTEN_CH0IE BIT(1)"
+.LASF953:
+ .string "CAN_BT_SJW BITS(24,25)"
+.LASF2755:
+ .string "TIMER_INT_FLAG_BRK TIMER_INT_BRK"
+.LASF2057:
+ .string "CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))"
+.LASF439:
+ .string "INT16_MAX (__INT16_MAX__)"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2455:
+ .string "SPI_RCRC(spix) REG32((spix) + 0x14U)"
+.LASF1436:
+ .string "EXTI_FTEN_FTEN9 BIT(9)"
+.LASF1192:
+ .string "DAC_WAVE_BIT_WIDTH_7 DWBW(6)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF3033:
+ .string "USART_LBLEN_11B CTL1_LBLEN(1)"
+.LASF3811:
+ .string "MASK_AMOMIN_D 0xf800707f"
+.LASF1216:
+ .string "DAC_TRIANGLE_AMPLITUDE_7 DAC_WAVE_BIT_WIDTH_3"
+.LASF1838:
+ .string "GPIO_PIN_0 BIT(0)"
+.LASF1096:
+ .string "CAN_FILTERBITS_32BIT ((uint8_t)0x01U)"
+.LASF827:
+ .string "CAN_F12DATA0(canx) REG32((canx) + 0x2A0U)"
+.LASF4037:
+ .string "MASK_C_ADDW 0xfc63"
+.LASF2000:
+ .string "FWDGT_STAT_PUD BIT(0)"
+.LASF4142:
+ .string "CSR_HPMCOUNTER29 0xc1d"
+.LASF636:
+ .string "ADC0_1_EXTTRIG_INSERTED_EXTI_15 CTL1_ETSIC(6)"
+.LASF2953:
+ .string "USART_STAT_NERR BIT(2)"
+.LASF946:
+ .string "CAN_ERR_BOERR BIT(2)"
+.LASF3967:
+ .string "MASK_FNMSUB_S 0x600007f"
+.LASF844:
+ .string "CAN_F1DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF2696:
+ .string "TIMER_CHCTL1_CH2COMCTL BITS(4,6)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF3487:
+ .string "__sfeof(p) ((int)(((p)->_flags & __SEOF) != 0))"
+.LASF4040:
+ .string "MATCH_C_BEQZ 0xc001"
+.LASF2224:
+ .string "RCU_AHBRST_USBFSRST BIT(12)"
+.LASF4403:
+ .string "long double"
+.LASF3084:
+ .string "___int_ptrdiff_t_h "
+.LASF3369:
+ .string "_RAND48_MULT_2 (0x0005)"
+.LASF1498:
+ .string "OB_WP0 REG16((OB) + 0x08U)"
+.LASF1581:
+ .string "OB_WP_19 ((uint32_t)0x00080000U)"
+.LASF2501:
+ .string "SPI_I2SCTL_I2SSEL BIT(11)"
+.LASF3203:
+ .string "_NOINLINE_STATIC _NOINLINE static"
+.LASF2049:
+ .string "PMU_CTL_STBRST BIT(3)"
+.LASF3401:
+ .string "_REENT_MBRLEN_STATE(ptr) ((ptr)->_new._reent._mbrlen_state)"
+.LASF2577:
+ .string "SPI_FLAG_CRCERR SPI_STAT_CRCERR"
+.LASF3635:
+ .string "PTE_TABLE(PTE) (((PTE) & (PTE_V | PTE_R | PTE_W | PTE_X)) == PTE_V)"
+.LASF2622:
+ .string "TIMER_CTL0_CAM BITS(5,6)"
+.LASF3240:
+ .string "__CC_SUPPORTS_INLINE 1"
+.LASF1503:
+ .string "FMC_KEY_KEY BITS(0,31)"
+.LASF1583:
+ .string "OB_WP_21 ((uint32_t)0x00200000U)"
+.LASF3344:
+ .string "_TIMER_T_ unsigned long"
+.LASF3555:
+ .string "MCONTROL_ACTION (0x3f<<12)"
+.LASF2387:
+ .string "RCU_PLL2_MUL10 CFG1_PLL2MF(8)"
+.LASF339:
+ .string "LXTAL_VALUE ((uint32_t)32768)"
+.LASF480:
+ .string "INT8_C(x) __INT8_C(x)"
+.LASF3844:
+ .string "MATCH_CSRRS 0x2073"
+.LASF3074:
+ .string "N200_FUNC_H "
+.LASF4116:
+ .string "CSR_HPMCOUNTER3 0xc03"
+.LASF4101:
+ .string "MASK_CUSTOM3_RS1 0x707f"
+.LASF1693:
+ .string "GPIO_BOP_BOP10 BIT(10)"
+.LASF787:
+ .string "CAN_INTEN(canx) REG32((canx) + 0x14U)"
+.LASF1626:
+ .string "GPIO_CTL0_CTL3 BITS(14, 15)"
+.LASF2881:
+ .string "TIMER_OC_SHADOW_DISABLE ((uint16_t)0x0000U)"
+.LASF1709:
+ .string "GPIO_BOP_CR10 BIT(26)"
+.LASF2620:
+ .string "TIMER_CTL0_SPM BIT(3)"
+.LASF4083:
+ .string "MASK_CUSTOM1_RD_RS1 0x707f"
+.LASF3101:
+ .string "___int_size_t_h "
+.LASF2148:
+ .string "RCU_APB2RST_TIMER0RST BIT(11)"
+.LASF4241:
+ .string "CSR_INSTRETH 0xc82"
+.LASF1458:
+ .string "EXTI_SWIEV_SWIEV12 BIT(12)"
+.LASF2835:
+ .string "TIMER_CKDIV_DIV2 CTL0_CKDIV(1)"
+.LASF2711:
+ .string "TIMER_CHCTL2_CH1EN BIT(4)"
+.LASF2441:
+ .string "RTC_FLAG_SECOND RTC_CTL_SCIF"
+.LASF1563:
+ .string "OB_WP_1 ((uint32_t)0x00000002U)"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF4031:
+ .string "MASK_C_OR 0xfc63"
+.LASF1874:
+ .string "GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U)"
+.LASF3315:
+ .string "__locks_exclusive(...) __lock_annotate(exclusive_lock_function(__VA_ARGS__))"
+.LASF3742:
+ .string "MATCH_SB 0x23"
+.LASF3441:
+ .string "_USECONDS_T_DECLARED "
+.LASF4050:
+ .string "MATCH_C_FLWSP 0x6002"
+.LASF4244:
+ .string "CSR_HPMCOUNTER5H 0xc85"
+.LASF3273:
+ .string "__nonnull_all __attribute__((__nonnull__))"
+.LASF3698:
+ .string "MATCH_SLTU 0x3033"
+.LASF3379:
+ .string "_REENT_CHECK_MP(ptr) "
+.LASF2766:
+ .string "TIMER_FLAG_CH2O TIMER_INTF_CH2OF"
+.LASF1814:
+ .string "GPIO_EVENT_PIN_8 ((uint8_t)0x08U)"
+.LASF1195:
+ .string "DAC_WAVE_BIT_WIDTH_10 DWBW(9)"
+.LASF3880:
+ .string "MATCH_FDIV_D 0x1a000053"
+.LASF1579:
+ .string "OB_WP_17 ((uint32_t)0x00020000U)"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF2048:
+ .string "PMU_CTL_WURST BIT(2)"
+.LASF3196:
+ .string "_BEGIN_STD_C "
+.LASF3833:
+ .string "MASK_HRET 0xffffffff"
+.LASF873:
+ .string "CAN_TMDATA0(canx,bank) REG32((canx) + 0x188U + ((bank) * 0x10U))"
+.LASF4382:
+ .string "TIMER6_IRQn"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF4130:
+ .string "CSR_HPMCOUNTER17 0xc11"
+.LASF4014:
+ .string "MATCH_C_JAL 0x2001"
+.LASF3314:
+ .string "__lockable __lock_annotate(lockable)"
+.LASF3868:
+ .string "MATCH_FMIN_S 0x28000053"
+.LASF1429:
+ .string "EXTI_FTEN_FTEN2 BIT(2)"
+.LASF3700:
+ .string "MATCH_XOR 0x4033"
+.LASF3530:
+ .string "DCSR_XDEBUGVER (3U<<30)"
+.LASF2563:
+ .string "SPI_CRC_TX ((uint8_t)0x00U)"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2365:
+ .string "RCU_PREDV1_DIV9 CFG1_PREDV1(8)"
+.LASF4166:
+ .string "CSR_TSELECT 0x7a0"
+.LASF3041:
+ .string "USART_CPL_LOW CTL1_CPL(0)"
+.LASF4039:
+ .string "MASK_C_J 0xe003"
+.LASF2937:
+ .string "TIMER_CHVSEL_DISABLE ((uint16_t)0x0000U)"
+.LASF3822:
+ .string "MATCH_SC_D 0x1800302f"
+.LASF2866:
+ .string "TIMER_OCN_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF2363:
+ .string "RCU_PREDV1_DIV7 CFG1_PREDV1(6)"
+.LASF4221:
+ .string "CSR_MHPMEVENT18 0x332"
+.LASF1218:
+ .string "DAC_TRIANGLE_AMPLITUDE_31 DAC_WAVE_BIT_WIDTH_5"
+.LASF2092:
+ .string "RCU_CTL_IRC8MADJ BITS(3,7)"
+.LASF524:
+ .string "USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)"
+.LASF2907:
+ .string "CTL1_MMC(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF3739:
+ .string "MASK_LHU 0x707f"
+.LASF2212:
+ .string "RCU_BDCTL_RTCSRC BITS(8,9)"
+.LASF660:
+ .string "ADC_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF3179:
+ .string "_HAVE_LONG_DOUBLE 1"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF3392:
+ .string "_REENT_MP_P5S(ptr) ((ptr)->_p5s)"
+.LASF2925:
+ .string "TIMER_MASTER_SLAVE_MODE_ENABLE TIMER_SMCFG_MSM"
+.LASF2695:
+ .string "TIMER_CHCTL1_CH2COMSEN BIT(3)"
+.LASF1950:
+ .string "I2C_REG_VAL2(i2cx,offset) (REG32((i2cx) + ((uint32_t)(offset) >> 22)))"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF601:
+ .string "ADC_FLAG_STIC ADC_STAT_STIC"
+.LASF3165:
+ .string "ECLIC_GROUP_LEVEL1_PRIO3 1"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF2744:
+ .string "TIMER_INT_CH3 TIMER_DMAINTEN_CH3IE"
+.LASF3058:
+ .string "GD32VF103_WWDGT_H "
+.LASF4266:
+ .string "CSR_HPMCOUNTER27H 0xc9b"
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF4391:
+ .string "CAN1_EWMC_IRQn"
+.LASF3004:
+ .string "USART_REG_VAL2(usartx,offset) (REG32((usartx) + ((uint32_t)(offset) >> 22)))"
+.LASF921:
+ .string "CAN_TSTAT_TMLS2 BIT(31)"
+.LASF2658:
+ .string "TIMER_DMAINTEN_TRGDEN BIT(14)"
+.LASF4061:
+ .string "MASK_C_FSWSP 0xe003"
+.LASF3434:
+ .string "_SSIZE_T_DECLARED "
+.LASF3484:
+ .string "__VALIST __gnuc_va_list"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF454:
+ .string "INT_LEAST64_MAX (__INT_LEAST64_MAX__)"
+.LASF936:
+ .string "CAN_INTEN_RFOIE1 BIT(6)"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF3251:
+ .string "__XSTRING(x) __STRING(x)"
+.LASF3615:
+ .string "IRQ_H_EXT 10"
+.LASF1596:
+ .string "FMC_SIZE (*(uint16_t *)0x1FFFF7E0U)"
+.LASF2583:
+ .string "I2S_FLAG_TBE SPI_STAT_TBE"
+.LASF1755:
+ .string "AFIO_PCF0_USART2_REMAP BITS(4, 5)"
+.LASF3819:
+ .string "MASK_AMOSWAP_D 0xf800707f"
+.LASF1870:
+ .string "GPIO_CAN0_FULL_REMAP ((uint32_t)0x001D6000U)"
+.LASF3675:
+ .string "MASK_SLLI 0xfc00707f"
+.LASF2521:
+ .string "SPI_CK_PL_LOW_PH_2EDGE SPI_CTL0_CKPH"
+.LASF2282:
+ .string "RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)"
+.LASF910:
+ .string "CAN_TSTAT_MTF2 BIT(16)"
+.LASF1565:
+ .string "OB_WP_3 ((uint32_t)0x00000008U)"
+.LASF4146:
+ .string "CSR_SIE 0x104"
+.LASF3197:
+ .string "_END_STD_C "
+.LASF1308:
+ .string "DMA_MEMORY_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF917:
+ .string "CAN_TSTAT_TME1 BIT(27)"
+.LASF3504:
+ .string "MSTATUS_HIE 0x00000004"
+.LASF819:
+ .string "CAN_F4DATA0(canx) REG32((canx) + 0x260U)"
+.LASF2114:
+ .string "RCU_CFG0_CKOUT0SEL BITS(24,27)"
+.LASF3769:
+ .string "MASK_REMU 0xfe00707f"
+.LASF2068:
+ .string "PMU_FLAG_LVD PMU_CS_LVDF"
+.LASF489:
+ .string "UINTMAX_C(x) __UINTMAX_C(x)"
+.LASF3491:
+ .string "feof(p) __sfeof(p)"
+.LASF1358:
+ .string "EXMC_MEMORY_TYPE_NOR SNCTL_NRTP(2)"
+.LASF2236:
+ .string "AHBEN_REG_OFFSET 0x14U"
+.LASF595:
+ .string "ADC_OVSCR_OVSS BITS(5,8)"
+.LASF1955:
+ .string "I2C_I2CMODE_ENABLE ((uint32_t)0x00000000U)"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF3456:
+ .string "__SMBF 0x0080"
+.LASF1958:
+ .string "I2C_SMBUS_HOST I2C_CTL0_SMBSEL"
+.LASF1961:
+ .string "I2C_ACK_DISABLE ((uint32_t)0x00000000U)"
+.LASF4242:
+ .string "CSR_HPMCOUNTER3H 0xc83"
+.LASF3403:
+ .string "_REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_new._reent._mbsrtowcs_state)"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1559:
+ .string "OB_WP1_WP1 ((uint32_t)0x0000FF00U)"
+.LASF4374:
+ .string "RTC_ALARM_IRQn"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF337:
+ .string "IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)"
+.LASF4045:
+ .string "MASK_C_SLLI 0xe003"
+.LASF1718:
+ .string "GPIO_BC_CR3 BIT(3)"
+.LASF2289:
+ .string "RCU_PLL_MUL3 CFG0_PLLMF(1)"
+.LASF1542:
+ .string "WS_WSCNT_1 WS_WSCNT(1)"
+.LASF4109:
+ .string "MASK_CUSTOM3_RD_RS1_RS2 0x707f"
+.LASF1101:
+ .string "CAN_FT_REMOTE ((uint32_t)0x00000002U)"
+.LASF1241:
+ .string "DMA_CH2PADDR(dmax) REG32((dmax) + 0x38U)"
+.LASF1511:
+ .string "FMC_CTL_MER BIT(2)"
+.LASF1957:
+ .string "I2C_SMBUS_DEVICE ((uint32_t)0x00000000U)"
+.LASF3983:
+ .string "MASK_C_JR 0xf07f"
+.LASF1317:
+ .string "CHCTL_PRIO(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF3408:
+ .string "_REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err))"
+.LASF2944:
+ .string "USART_STAT(usartx) REG32((usartx) + (0x00000000U))"
+.LASF3218:
+ .string "__bounded "
+.LASF2162:
+ .string "RCU_APB1RST_UART3RST BIT(19)"
+.LASF2775:
+ .string "TIMER_DMAREQUEST_UPDATEEVENT TIMER_CTL1_DMAS"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF628:
+ .string "ADC0_1_EXTTRIG_REGULAR_NONE CTL1_ETSRC(7)"
+.LASF2674:
+ .string "TIMER_SWEVG_CH2G BIT(3)"
+.LASF1707:
+ .string "GPIO_BOP_CR8 BIT(24)"
+.LASF3916:
+ .string "MATCH_FCVT_LU_S 0xc0300053"
+.LASF2159:
+ .string "RCU_APB1RST_SPI2RST BIT(15)"
+.LASF1730:
+ .string "GPIO_BC_CR15 BIT(15)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF2997:
+ .string "USART_CTL2_CTSIE BIT(10)"
+.LASF3115:
+ .string "_WCHAR_T_DEFINED "
+.LASF2033:
+ .string "DBG_CTL_I2C0_HOLD BIT(15)"
+.LASF381:
+ .string "long"
+.LASF3374:
+ .string "_N_LISTS 30"
+.LASF3135:
+ .string "TIMER_CTRL_ADDR 0xd1000000"
+.LASF2821:
+ .string "TIMER_EVENT_SRC_CMTG ((uint16_t)0x0020U)"
+.LASF2208:
+ .string "RCU_APB1EN_DACEN BIT(29)"
+.LASF1273:
+ .string "DMA_CHXCTL_PNAGA BIT(6)"
+.LASF2683:
+ .string "TIMER_CHCTL0_CH0COMCEN BIT(7)"
+.LASF3702:
+ .string "MATCH_SRL 0x5033"
+.LASF3855:
+ .string "MASK_FADD_S 0xfe00007f"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF3050:
+ .string "USART_RTS_ENABLE CLT2_RTSEN(1)"
+.LASF355:
+ .string "__LARGEFILE_VISIBLE 0"
+.LASF3618:
+ .string "IRQ_HOST 13"
+.LASF3667:
+ .string "MASK_JAL 0x7f"
+.LASF4320:
+ .string "CAUSE_MISALIGNED_LOAD 0x4"
+.LASF1852:
+ .string "GPIO_PIN_14 BIT(14)"
+.LASF1173:
+ .string "DAC_TRIGGER_T5_TRGO CTL_DTSEL(0)"
+.LASF2407:
+ .string "RTC RTC_BASE"
+.LASF951:
+ .string "CAN_BT_BS1 BITS(16,19)"
+.LASF1781:
+ .string "AFIO_EXTI15_SS BITS(12, 15)"
+.LASF1472:
+ .string "EXTI_PD_PD7 BIT(7)"
+.LASF1120:
+ .string "CRC_FDATA REG32(CRC + 0x04U)"
+.LASF3725:
+ .string "MASK_SRLW 0xfe00707f"
+.LASF3654:
+ .string "MATCH_BNE 0x1063"
+.LASF2119:
+ .string "RCU_INT_IRC8MSTBIF BIT(2)"
+.LASF1545:
+ .string "OB_FWDGT_HW ((uint8_t)0x00U)"
+.LASF1550:
+ .string "OB_BOOT_B0 ((uint8_t)0x08U)"
+.LASF1011:
+ .string "FDATA_MASK_HIGH(regval) (BITS(16,31) & ((uint32_t)(regval) << 16))"
+.LASF2217:
+ .string "RCU_RSTSCK_RSTFC BIT(24)"
+.LASF998:
+ .string "CAN_REG_VALS(canx,offset) (REG32((canx) + ((uint32_t)(offset) >> 12)))"
+.LASF3970:
+ .string "MATCH_FMADD_D 0x2000043"
+.LASF1671:
+ .string "GPIO_OCTL_OCTL4 BIT(4)"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1443:
+ .string "EXTI_FTEN_FTEN16 BIT(16)"
+.LASF1287:
+ .string "DMA_CHCTL_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF785:
+ .string "CAN_RFIFO0(canx) REG32((canx) + 0x0CU)"
+.LASF1326:
+ .string "ECLIC_PRIGROUP_LEVEL0_PRIO4 0"
+.LASF2990:
+ .string "USART_CTL2_HDEN BIT(3)"
+.LASF1208:
+ .string "DAC_LFSR_BITS10_0 DAC_WAVE_BIT_WIDTH_11"
+.LASF2225:
+ .string "RCU_CFG1_PREDV0 BITS(0,3)"
+.LASF3534:
+ .string "DCSR_EBREAKH (1<<14)"
+.LASF1452:
+ .string "EXTI_SWIEV_SWIEV6 BIT(6)"
+.LASF1360:
+ .string "EXMC_NWAIT_POLARITY_LOW ((uint32_t)0x00000000U)"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF1373:
+ .string "EXTI_INTEN_INTEN3 BIT(3)"
+.LASF3269:
+ .string "__pure __attribute__((__pure__))"
+.LASF367:
+ .string "___int64_t_defined 1"
+.LASF4111:
+ .string "CSR_FRM 0x2"
+.LASF3699:
+ .string "MASK_SLTU 0xfe00707f"
+.LASF2530:
+ .string "SPI_PSC_128 CTL0_PSC(6)"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1056:
+ .string "CAN_BT_SJW_4TQ ((uint8_t)0x03U)"
+.LASF3225:
+ .string "__GNUCLIKE_ASM 3"
+.LASF3691:
+ .string "MASK_ADD 0xfe00707f"
+.LASF4096:
+ .string "MATCH_CUSTOM2_RD_RS1_RS2 0x705b"
+.LASF2245:
+ .string "INT_REG_OFFSET 0x08U"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF2058:
+ .string "PMU_LVDT_0 CTL_LVDT(0)"
+.LASF4128:
+ .string "CSR_HPMCOUNTER15 0xc0f"
+.LASF1259:
+ .string "DMA_INTF_GIF BIT(0)"
+.LASF3696:
+ .string "MATCH_SLT 0x2033"
+.LASF455:
+ .string "UINT_LEAST64_MAX (__UINT_LEAST64_MAX__)"
+.LASF4218:
+ .string "CSR_MHPMEVENT15 0x32f"
+.LASF4249:
+ .string "CSR_HPMCOUNTER10H 0xc8a"
+.LASF1366:
+ .string "EXTI_RTEN REG32(EXTI + 0x08U)"
+.LASF1290:
+ .string "DMA_CHMADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF1739:
+ .string "GPIO_LOCK_LK8 BIT(8)"
+.LASF3521:
+ .string "SSTATUS_SIE 0x00000002"
+.LASF3007:
+ .string "USART_CTL0_REG_OFFSET (0x0000000CU)"
+.LASF1476:
+ .string "EXTI_PD_PD11 BIT(11)"
+.LASF2523:
+ .string "CTL0_PSC(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF676:
+ .string "ADC_CHANNEL_16 ((uint8_t)0x10U)"
+.LASF3939:
+ .string "MASK_FCVT_S_L 0xfff0007f"
+.LASF3431:
+ .string "_GID_T_DECLARED "
+.LASF952:
+ .string "CAN_BT_BS2 BITS(20,22)"
+.LASF1558:
+ .string "OB_WP0_WP0 ((uint32_t)0x000000FFU)"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF4154:
+ .string "CSR_MSTATUS 0x300"
+.LASF2065:
+ .string "PMU_LVDT_7 CTL_LVDT(7)"
+.LASF2372:
+ .string "RCU_PREDV1_DIV16 CFG1_PREDV1(15)"
+.LASF2781:
+ .string "TIMER_DMACFG_DMATA_DMAINTEN DMACFG_DMATA(3)"
+.LASF2250:
+ .string "RCU_CKSYSSRC_HXTAL CFG0_SCS(1)"
+.LASF1332:
+ .string "GD32VF103_EXMC_H "
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF2803:
+ .string "TIMER_DMACFG_DMATC_6TRANSFER DMACFG_DMATC(5)"
+.LASF2910:
+ .string "TIMER_TRI_OUT_SRC_UPDATE CTL1_MMC(2)"
+.LASF3412:
+ .string "_REENT _impure_ptr"
+.LASF3305:
+ .string "__DEQUALIFY(type,var) ((type)(__uintptr_t)(const volatile void *)(var))"
+.LASF3046:
+ .string "CLT2_DENT(regval) (BIT(7) & ((uint32_t)(regval) << 7))"
+.LASF2394:
+ .string "RCU_PLL2_MUL20 CFG1_PLL2MF(15)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF2520:
+ .string "SPI_CK_PL_HIGH_PH_1EDGE SPI_CTL0_CKPL"
+.LASF1453:
+ .string "EXTI_SWIEV_SWIEV7 BIT(7)"
+.LASF4074:
+ .string "MATCH_CUSTOM1 0x2b"
+.LASF1419:
+ .string "EXTI_RTEN_RTEN11 BIT(11)"
+.LASF1243:
+ .string "DMA_CH3CTL(dmax) REG32((dmax) + 0x44U)"
+.LASF2517:
+ .string "SPI_ENDIAN_MSB ((uint32_t)0x00000000U)"
+.LASF3669:
+ .string "MASK_LUI 0x7f"
+.LASF1679:
+ .string "GPIO_OCTL_OCTL12 BIT(12)"
+.LASF3920:
+ .string "MATCH_FCLASS_S 0xe0001053"
+.LASF2415:
+ .string "RTC_CNTL REG32(RTC + 0x1CU)"
+.LASF3455:
+ .string "__SERR 0x0040"
+.LASF3334:
+ .string "_SYS__TYPES_H "
+.LASF4156:
+ .string "CSR_MEDELEG 0x302"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF3233:
+ .string "__GNUCLIKE_BUILTIN_STDARG 1"
+.LASF1867:
+ .string "GPIO_TIMER2_FULL_REMAP ((uint32_t)0x001A0C00U)"
+.LASF2013:
+ .string "FWDGT_KEY_ENABLE ((uint16_t)0xCCCCU)"
+.LASF2761:
+ .string "TIMER_FLAG_CMT TIMER_INTF_CMTIF"
+.LASF2477:
+ .string "SPI_CTL1_TMOD BIT(4)"
+.LASF2769:
+ .string "TIMER_DMA_CH0D ((uint16_t)TIMER_DMAINTEN_CH0DEN)"
+.LASF4354:
+ .string "CAN0_RX1_IRQn"
+.LASF1465:
+ .string "EXTI_PD_PD0 BIT(0)"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF1227:
+ .string "DMA0 (DMA_BASE)"
+.LASF555:
+ .string "ADC_STAT_STRC BIT(4)"
+.LASF3216:
+ .string "__attribute_format_strfmon__(a,b) "
+.LASF2259:
+ .string "RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)"
+.LASF1916:
+ .string "I2C_SADDR1_DUADEN BIT(0)"
+.LASF447:
+ .string "INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)"
+.LASF1819:
+ .string "GPIO_EVENT_PIN_13 ((uint8_t)0x0DU)"
+.LASF3497:
+ .string "__SYS_UNISTD_H__ "
+.LASF431:
+ .string "UINTPTR_MAX (__UINTPTR_MAX__)"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1279:
+ .string "DMA_CHXCNT_CNT BITS(0,15)"
+.LASF3882:
+ .string "MATCH_FSGNJ_D 0x22000053"
+.LASF4333:
+ .string "WWDGT_IRQn"
+.LASF1063:
+ .string "CAN_BT_BS1_7TQ ((uint8_t)0x06U)"
+.LASF407:
+ .string "__int8_t_defined 1"
+.LASF1253:
+ .string "DMA_CH5PADDR(dmax) REG32((dmax) + 0x74U)"
+.LASF1764:
+ .string "AFIO_PCF0_SPI2_REMAP BIT(28)"
+.LASF1298:
+ .string "DMA_FLAG_HTF DMA_INTF_HTFIF"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF972:
+ .string "CAN_RFIFOMI_FT BIT(1)"
+.LASF3564:
+ .string "MCONTROL_LOAD (1<<0)"
+.LASF1353:
+ .string "EXMC_NOR_DATABUS_WIDTH_8B SNCTL_NRW(0)"
+.LASF3248:
+ .string "__CONCAT1(x,y) x ## y"
+.LASF1111:
+ .string "CAN_INT_PERR CAN_INTEN_PERRIE"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF3183:
+ .string "_WIDE_ORIENT 1"
+.LASF1352:
+ .string "SNCTL_NRW(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF2435:
+ .string "RTC_INT_SECOND RTC_INTEN_SCIE"
+.LASF490:
+ .string "REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))"
+.LASF2675:
+ .string "TIMER_SWEVG_CH3G BIT(4)"
+.LASF3622:
+ .string "CONFIG_STRING_ADDR 0x0000100C"
+.LASF3485:
+ .string "__sgetc_raw_r(__ptr,__f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++))"
+.LASF3907:
+ .string "MASK_FLT_D 0xfe00707f"
+.LASF3550:
+ .string "MCONTROL_TYPE(xlen) (0xfULL<<((xlen)-4))"
+.LASF2269:
+ .string "RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)"
+.LASF4052:
+ .string "MATCH_C_MV 0x8002"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF3991:
+ .string "MASK_C_SD 0xe003"
+.LASF3320:
+ .string "__asserts_exclusive(...) __lock_annotate(assert_exclusive_lock(__VA_ARGS__))"
+.LASF1732:
+ .string "GPIO_LOCK_LK1 BIT(1)"
+.LASF3529:
+ .string "SSTATUS64_SD 0x8000000000000000"
+.LASF351:
+ .string "__ATFILE_VISIBLE 0"
+.LASF3878:
+ .string "MATCH_FMUL_D 0x12000053"
+.LASF4046:
+ .string "MATCH_C_FLDSP 0x2002"
+.LASF4334:
+ .string "LVD_IRQn"
+.LASF3466:
+ .string "_IOFBF 0"
+.LASF2203:
+ .string "RCU_APB1EN_I2C1EN BIT(22)"
+.LASF2502:
+ .string "SPI_I2SPSC_DIV BITS(0,7)"
+.LASF667:
+ .string "ADC_CHANNEL_7 ((uint8_t)0x07U)"
+.LASF1334:
+ .string "EXMC_SNCTL0 REG32(EXMC + 0x00U)"
+.LASF1934:
+ .string "I2C_STAT1_I2CBSY BIT(1)"
+.LASF4092:
+ .string "MATCH_CUSTOM2_RD 0x405b"
+.LASF1701:
+ .string "GPIO_BOP_CR2 BIT(18)"
+.LASF811:
+ .string "CAN_FMCFG(canx) REG32((canx) + 0x204U)"
+.LASF891:
+ .string "CAN_STAT_IWS BIT(0)"
+.LASF4306:
+ .string "CSR_MTVT2 0x7EC"
+.LASF850:
+ .string "CAN_F7DATA1(canx) REG32((canx) + 0x27CU)"
+.LASF3649:
+ .string "rdcycle() read_csr(cycle)"
+.LASF3617:
+ .string "IRQ_COP 12"
+.LASF1859:
+ .string "GPIO_USART2_PARTIAL_REMAP ((uint32_t)0x00140010U)"
+.LASF4141:
+ .string "CSR_HPMCOUNTER28 0xc1c"
+.LASF506:
+ .string "RTC_BASE (APB1_BUS_BASE + 0x00002800U)"
+.LASF1139:
+ .string "DACC_R8DH REG32(DAC + 0x28U)"
+.LASF1698:
+ .string "GPIO_BOP_BOP15 BIT(15)"
+.LASF3296:
+ .string "__sym_compat(sym,impl,verid) __asm__(\".symver \" #impl \", \" #sym \"@\" #verid)"
+.LASF3253:
+ .string "__signed signed"
+.LASF2867:
+ .string "TIMER_OCN_POLARITY_LOW ((uint16_t)0x0008U)"
+.LASF978:
+ .string "CAN_RFIFOMP_TS BITS(16,31)"
+.LASF4123:
+ .string "CSR_HPMCOUNTER10 0xc0a"
+.LASF573:
+ .string "ADC_CTL1_DMA BIT(8)"
+.LASF2882:
+ .string "TIMER_OC_FAST_ENABLE ((uint16_t)0x0004)"
+.LASF3549:
+ .string "DCSR_CAUSE_HALT 5"
+.LASF1093:
+ .string "CAN_MODE_NORMAL ((uint8_t)0x02U)"
+.LASF1260:
+ .string "DMA_INTF_FTFIF BIT(1)"
+.LASF766:
+ .string "BKP_TPCS_TPIE BIT(2)"
+.LASF1463:
+ .string "EXTI_SWIEV_SWIEV17 BIT(17)"
+.LASF949:
+ .string "CAN_ERR_RECNT BITS(24,31)"
+.LASF3639:
+ .string "RISCV_PGSHIFT 12"
+.LASF1127:
+ .string "DAC0 (0U)"
+.LASF968:
+ .string "CAN_TMDATA1_DB4 BITS(0,7)"
+.LASF2414:
+ .string "RTC_CNTH REG32(RTC + 0x18U)"
+.LASF2206:
+ .string "RCU_APB1EN_BKPIEN BIT(27)"
+.LASF1562:
+ .string "OB_WP_0 ((uint32_t)0x00000001U)"
+.LASF3430:
+ .string "_UID_T_DECLARED "
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF3189:
+ .string "_READ_WRITE_RETURN_TYPE _ssize_t"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF1653:
+ .string "GPIO_ISTAT_ISTAT2 BIT(2)"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF4135:
+ .string "CSR_HPMCOUNTER22 0xc16"
+.LASF4189:
+ .string "CSR_MHPMCOUNTER17 0xb11"
+.LASF4279:
+ .string "CSR_MHPMCOUNTER9H 0xb89"
+.LASF3567:
+ .string "MCONTROL_ACTION_DEBUG_EXCEPTION 0"
+.LASF485:
+ .string "UINT32_C(x) __UINT32_C(x)"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF616:
+ .string "ADC_DAUL_INSERTED_TRIGGER_ROTATION CTL0_SYNCM(9)"
+.LASF3631:
+ .string "PTE_A 0x040"
+.LASF1665:
+ .string "GPIO_ISTAT_ISTAT14 BIT(14)"
+.LASF3526:
+ .string "SSTATUS_XS 0x00018000"
+.LASF2161:
+ .string "RCU_APB1RST_USART2RST BIT(18)"
+.LASF3052:
+ .string "CLT2_CTSEN(regval) (BIT(9) & ((uint32_t)(regval) << 9))"
+.LASF2908:
+ .string "TIMER_TRI_OUT_SRC_RESET CTL1_MMC(0)"
+.LASF1576:
+ .string "OB_WP_14 ((uint32_t)0x00004000U)"
+.LASF1403:
+ .string "EXTI_EVEN_EVEN14 BIT(14)"
+.LASF3546:
+ .string "DCSR_CAUSE_HWBP 2"
+.LASF2965:
+ .string "USART_CTL0_RWU BIT(1)"
+.LASF767:
+ .string "BKP_TPCS_TEF BIT(8)"
+.LASF2037:
+ .string "DBG_CTL_TIMER6_HOLD BIT(20)"
+.LASF4392:
+ .string "USBFS_IRQn"
+.LASF1172:
+ .string "CTL_DTSEL(regval) (BITS(3,5) & ((uint32_t)(regval) << 3))"
+.LASF2672:
+ .string "TIMER_SWEVG_CH0G BIT(1)"
+.LASF3287:
+ .string "__printflike(fmtarg,firstvararg) __attribute__((__format__ (__printf__, fmtarg, firstvararg)))"
+.LASF569:
+ .string "ADC_CTL1_ADCON BIT(0)"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF4082:
+ .string "MATCH_CUSTOM1_RD_RS1 0x602b"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF2950:
+ .string "USART_GP(usartx) REG32((usartx) + (0x00000018U))"
+.LASF2493:
+ .string "SPI_TCRC_TCRC BITS(0,15)"
+.LASF2059:
+ .string "PMU_LVDT_1 CTL_LVDT(1)"
+.LASF2822:
+ .string "TIMER_EVENT_SRC_TRGG ((uint16_t)0x0040U)"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF2280:
+ .string "RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)"
+.LASF2972:
+ .string "USART_CTL0_PERRIE BIT(8)"
+.LASF1575:
+ .string "OB_WP_13 ((uint32_t)0x00002000U)"
+.LASF3904:
+ .string "MATCH_FLE_D 0xa2000053"
+.LASF2689:
+ .string "TIMER_CHCTL0_CH0CAPPSC BITS(2,3)"
+.LASF3825:
+ .string "MASK_ECALL 0xffffffff"
+.LASF3628:
+ .string "PTE_X 0x008"
+.LASF2465:
+ .string "SPI_CTL0_SWNSS BIT(8)"
+.LASF4259:
+ .string "CSR_HPMCOUNTER20H 0xc94"
+.LASF1343:
+ .string "EXMC_SNCTL_WREN BIT(12)"
+.LASF2409:
+ .string "RTC_CTL REG32(RTC + 0x04U)"
+.LASF1112:
+ .string "CAN_INT_BO CAN_INTEN_BOIE"
+.LASF2421:
+ .string "RTC_CTL_SCIF BIT(0)"
+.LASF1597:
+ .string "SRAM_SIZE (*(uint16_t *)0x1FFFF7E2U)"
+.LASF3411:
+ .string "__ATTRIBUTE_IMPURE_PTR__ "
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF2317:
+ .string "RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF1496:
+ .string "OB_SPC REG16((OB) + 0x00U)"
+.LASF329:
+ .string "GD32VF103_H "
+.LASF562:
+ .string "ADC_CTL0_ICA BIT(10)"
+.LASF496:
+ .string "FLASH_BASE ((uint32_t)0x08000000U)"
+.LASF2859:
+ .string "TIMER_CH_3 ((uint16_t)0x0003U)"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF3232:
+ .string "__GNUCLIKE_BUILTIN_VARARGS 1"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF4366:
+ .string "I2C1_EV_IRQn"
+.LASF1097:
+ .string "CAN_FILTERMODE_MASK ((uint8_t)0x00U)"
+.LASF1856:
+ .string "GPIO_I2C0_REMAP ((uint32_t)0x00000002U)"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2030:
+ .string "DBG_CTL_TIMER2_HOLD BIT(12)"
+.LASF3954:
+ .string "MATCH_FLW 0x2007"
+.LASF2189:
+ .string "RCU_APB1EN_TIMER1EN BIT(0)"
+.LASF2911:
+ .string "TIMER_TRI_OUT_SRC_CH0 CTL1_MMC(3)"
+.LASF2613:
+ .string "TIMER_CH3CV(timerx) REG32((timerx) + 0x40U)"
+.LASF3204:
+ .string "_FSTDIO "
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2433:
+ .string "RTC_ALRMH_ALRM BITS(0,15)"
+.LASF1886:
+ .string "I2C_DATA(i2cx) REG32((i2cx) + 0x10U)"
+.LASF773:
+ .string "RTC_OUTPUT_ALARM_PULSE ((uint16_t)0x0000U)"
+.LASF4190:
+ .string "CSR_MHPMCOUNTER18 0xb12"
+.LASF3952:
+ .string "MATCH_FMV_D_X 0xf2000053"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF1080:
+ .string "CAN_BT_BS2_8TQ ((uint8_t)0x07U)"
+.LASF3410:
+ .string "_Kmax (sizeof (size_t) << 3)"
+.LASF3056:
+ .string "USART_IRLP_LOW CTL2_IRLP(1)"
+.LASF842:
+ .string "CAN_F27DATA0(canx) REG32((canx) + 0x318U)"
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2078:
+ .string "RCU_CFG0 REG32(RCU + 0x04U)"
+.LASF3328:
+ .string "__guarded_by(x) __lock_annotate(guarded_by(x))"
+.LASF778:
+ .string "BKP_INT_FLAG_TAMPER BKP_TPCS_TIF"
+.LASF959:
+ .string "CAN_TMI_EFID BITS(3,31)"
+.LASF1789:
+ .string "GPIO_MODE_OUT_OD ((uint8_t)0x14U)"
+.LASF2741:
+ .string "TIMER_INT_CH0 TIMER_DMAINTEN_CH0IE"
+.LASF3942:
+ .string "MATCH_FMV_S_X 0xf0000053"
+.LASF1046:
+ .string "CAN_ERRN_6 ERR_ERRN(6U)"
+.LASF3353:
+ .string "__lock_close_recursive(lock) ((void) 0)"
+.LASF3460:
+ .string "__SNPT 0x0800"
+.LASF3323:
+ .string "__requires_shared(...) __lock_annotate(shared_locks_required(__VA_ARGS__))"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF1289:
+ .string "DMA_CHPADDR_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF4350:
+ .string "DMA0_Channel6_IRQn"
+.LASF359:
+ .string "__XSI_VISIBLE 0"
+.LASF3181:
+ .string "_FVWRITE_IN_STREAMIO 1"
+.LASF3025:
+ .string "USART_WL_9BIT CTL0_WL(1)"
+.LASF3443:
+ .string "_SYS__PTHREADTYPES_H_ "
+.LASF2538:
+ .string "I2S_AUDIOSAMPLE_48K ((uint32_t)48000U)"
+.LASF1832:
+ .string "GPIO_PIN_SOURCE_10 ((uint8_t)0x0AU)"
+.LASF2436:
+ .string "RTC_INT_ALARM RTC_INTEN_ALRMIE"
+.LASF2215:
+ .string "RCU_RSTSCK_IRC40KEN BIT(0)"
+.LASF2418:
+ .string "RTC_INTEN_SCIE BIT(0)"
+.LASF1557:
+ .string "OB_USER_USER_N ((uint32_t)0xFF000000U)"
+.LASF3623:
+ .string "EXT_IO_BASE 0x40000000"
+.LASF1059:
+ .string "CAN_BT_BS1_3TQ ((uint8_t)0x02U)"
+.LASF615:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(8)"
+.LASF2110:
+ .string "RCU_CFG0_PLLSEL BIT(16)"
+.LASF565:
+ .string "ADC_CTL0_DISNUM BITS(13,15)"
+.LASF2174:
+ .string "RCU_AHBEN_FMCSPEN BIT(4)"
+.LASF2960:
+ .string "USART_STAT_CTSF BIT(9)"
+.LASF693:
+ .string "ADC_OVERSAMPLING_SHIFT_1B OVSCR_OVSS(1)"
+.LASF3231:
+ .string "__GNUCLIKE_BUILTIN_CONSTANT_P 1"
+.LASF1010:
+ .string "BT_MODE(regval) (BITS(30,31) & ((uint32_t)(regval) << 30))"
+.LASF4269:
+ .string "CSR_HPMCOUNTER30H 0xc9e"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF2353:
+ .string "RCU_PREDV0_DIV14 CFG1_PREDV0(13)"
+.LASF1081:
+ .string "CAN_MAILBOX0 ((uint8_t)0x00U)"
+.LASF3247:
+ .string "__P(protos) protos"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF592:
+ .string "ADC_RDATA_ADC1RDTR BITS(16,31)"
+.LASF2606:
+ .string "TIMER_CNT(timerx) REG32((timerx) + 0x24U)"
+.LASF3542:
+ .string "DCSR_STEP (1<<2)"
+.LASF2242:
+ .string "RSTSCK_REG_OFFSET 0x24U"
+.LASF3249:
+ .string "__CONCAT(x,y) __CONCAT1(x,y)"
+.LASF3044:
+ .string "USART_DENR_ENABLE CLT2_DENR(1)"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF3808:
+ .string "MATCH_AMOAND_D 0x6000302f"
+.LASF832:
+ .string "CAN_F17DATA0(canx) REG32((canx) + 0x2C8U)"
+.LASF370:
+ .string "___int_least32_t_defined 1"
+.LASF1388:
+ .string "EXTI_INTEN_INTEN18 BIT(18)"
+.LASF3850:
+ .string "MATCH_CSRRSI 0x6073"
+.LASF1535:
+ .string "FMC_STAT_REG_OFFSET 0x0CU"
+.LASF2175:
+ .string "RCU_AHBEN_CRCEN BIT(6)"
+.LASF2525:
+ .string "SPI_PSC_4 CTL0_PSC(1)"
+.LASF1412:
+ .string "EXTI_RTEN_RTEN4 BIT(4)"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF556:
+ .string "ADC_CTL0_WDCHSEL BITS(0,4)"
+.LASF1524:
+ .string "FMC_WP_WP BITS(0,31)"
+.LASF1200:
+ .string "DAC_LFSR_BITS2_0 DAC_WAVE_BIT_WIDTH_3"
+.LASF3138:
+ .string "N200_ECLIC_H "
+.LASF2642:
+ .string "TIMER_SMCFG_SMC1 BIT(14)"
+.LASF2825:
+ .string "TIMER_COUNTER_EDGE CTL0_CAM(0)"
+.LASF1810:
+ .string "GPIO_EVENT_PIN_4 ((uint8_t)0x04U)"
+.LASF570:
+ .string "ADC_CTL1_CTN BIT(1)"
+.LASF4239:
+ .string "CSR_CYCLEH 0xc80"
+.LASF4035:
+ .string "MASK_C_SUBW 0xfc63"
+.LASF3775:
+ .string "MASK_DIVUW 0xfe00707f"
+.LASF2974:
+ .string "USART_CTL0_PCEN BIT(10)"
+.LASF4210:
+ .string "CSR_MHPMEVENT7 0x327"
+.LASF1627:
+ .string "GPIO_CTL0_MD4 BITS(16, 17)"
+.LASF3301:
+ .string "__SCCSID(s) struct __hack"
+.LASF582:
+ .string "ADC_SAMPTX_SPTN BITS(0,2)"
+.LASF3679:
+ .string "MASK_SLTIU 0x707f"
+.LASF449:
+ .string "UINT_LEAST32_MAX (__UINT_LEAST32_MAX__)"
+.LASF1656:
+ .string "GPIO_ISTAT_ISTAT5 BIT(5)"
+.LASF3663:
+ .string "MASK_BGEU 0x707f"
+.LASF2739:
+ .string "TIMER_DMATB_DMATB BITS(0,15)"
+.LASF3160:
+ .string "MSIP_HANDLER eclic_msip_handler"
+.LASF3605:
+ .string "VM_SV32 8"
+.LASF3551:
+ .string "MCONTROL_DMODE(xlen) (1ULL<<((xlen)-5))"
+.LASF2963:
+ .string "USART_BAUD_INTDIV BITS(4,15)"
+.LASF3048:
+ .string "USART_DENT_DISABLE CLT2_DENT(0)"
+.LASF1377:
+ .string "EXTI_INTEN_INTEN7 BIT(7)"
+.LASF1842:
+ .string "GPIO_PIN_4 BIT(4)"
+.LASF1049:
+ .string "CAN_NORMAL_MODE ((uint8_t)0x00U)"
+.LASF4044:
+ .string "MATCH_C_SLLI 0x2"
+.LASF382:
+ .string "signed +0"
+.LASF1321:
+ .string "DMA_PRIORITY_ULTRA_HIGH CHCTL_PRIO(3U)"
+.LASF1828:
+ .string "GPIO_PIN_SOURCE_6 ((uint8_t)0x06U)"
+.LASF684:
+ .string "OVSCR_DRES(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF2814:
+ .string "TIMER_DMACFG_DMATC_17TRANSFER DMACFG_DMATC(16)"
+.LASF1141:
+ .string "DAC1_DO REG32(DAC + 0x30U)"
+.LASF3852:
+ .string "MATCH_CSRRCI 0x7073"
+.LASF1162:
+ .string "DAC1_L12DH_DAC1_DH BITS(4,15)"
+.LASF4289:
+ .string "CSR_MHPMCOUNTER19H 0xb93"
+.LASF1747:
+ .string "GPIO_LOCK_LKK BIT(16)"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF4268:
+ .string "CSR_HPMCOUNTER29H 0xc9d"
+.LASF3894:
+ .string "MATCH_FCVT_D_S 0x42000053"
+.LASF3427:
+ .string "_INO_T_DECLARED "
+.LASF423:
+ .string "__int_least32_t_defined 1"
+.LASF3851:
+ .string "MASK_CSRRSI 0x707f"
+.LASF1248:
+ .string "DMA_CH4CNT(dmax) REG32((dmax) + 0x5CU)"
+.LASF1244:
+ .string "DMA_CH3CNT(dmax) REG32((dmax) + 0x48U)"
+.LASF411:
+ .string "_INT32_T_DECLARED "
+.LASF1538:
+ .string "UNLOCK_KEY0 ((uint32_t)0x45670123U)"
+.LASF3881:
+ .string "MASK_FDIV_D 0xfe00007f"
+.LASF2682:
+ .string "TIMER_CHCTL0_CH0COMCTL BITS(4,6)"
+.LASF410:
+ .string "__int16_t_defined 1"
+.LASF2915:
+ .string "TIMER_TRI_OUT_SRC_O3CPRE CTL1_MMC(7)"
+.LASF651:
+ .string "ISQ_IL(regval) (BITS(20,21) & ((uint32_t)(regval) << 20))"
+.LASF4209:
+ .string "CSR_MHPMEVENT6 0x326"
+.LASF2738:
+ .string "TIMER_DMACFG_DMATC BITS(8,12)"
+.LASF3985:
+ .string "MASK_C_JALR 0xf07f"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF2315:
+ .string "RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))"
+.LASF2624:
+ .string "TIMER_CTL0_CKDIV BITS(8,9)"
+.LASF4159:
+ .string "CSR_MTVEC 0x305"
+.LASF3409:
+ .string "_REENT_INIT_PTR(var) { memset((var), 0, sizeof(*(var))); _REENT_INIT_PTR_ZEROED(var); }"
+.LASF3229:
+ .string "__GNUCLIKE___SECTION 1"
+.LASF1040:
+ .string "CAN_ERRN_0 ERR_ERRN(0U)"
+.LASF1481:
+ .string "EXTI_PD_PD16 BIT(16)"
+.LASF3184:
+ .string "_UNBUF_STREAM_OPT 1"
+.LASF521:
+ .string "RCU_BASE (AHB1_BUS_BASE + 0x00009000U)"
+.LASF695:
+ .string "ADC_OVERSAMPLING_SHIFT_3B OVSCR_OVSS(3)"
+.LASF3771:
+ .string "MASK_MULW 0xfe00707f"
+.LASF1108:
+ .string "CAN_INT_RFF1 CAN_INTEN_RFFIE1"
+.LASF3299:
+ .string "__RCSID(s) struct __hack"
+.LASF1043:
+ .string "CAN_ERRN_3 ERR_ERRN(3U)"
+.LASF2201:
+ .string "RCU_APB1EN_UART4EN BIT(20)"
+.LASF3794:
+ .string "MATCH_AMOMAXU_W 0xe000202f"
+.LASF4369:
+ .string "SPI1_IRQn"
+.LASF2182:
+ .string "RCU_APB2EN_PDEN BIT(5)"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF3000:
+ .string "USART_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF4246:
+ .string "CSR_HPMCOUNTER7H 0xc87"
+.LASF933:
+ .string "CAN_INTEN_RFOIE0 BIT(3)"
+.LASF3031:
+ .string "CTL1_LBLEN(regval) (BIT(5) & ((uint32_t)(regval) << 5))"
+.LASF4291:
+ .string "CSR_MHPMCOUNTER21H 0xb95"
+.LASF3890:
+ .string "MATCH_FMAX_D 0x2a001053"
+.LASF4245:
+ .string "CSR_HPMCOUNTER6H 0xc86"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF3694:
+ .string "MATCH_SLL 0x1033"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF2690:
+ .string "TIMER_CHCTL0_CH0CAPFLT BITS(4,7)"
+.LASF796:
+ .string "CAN_TMDATA01(canx) REG32((canx) + 0x198U)"
+.LASF2458:
+ .string "SPI_I2SPSC(spix) REG32((spix) + 0x20U)"
+.LASF1988:
+ .string "I2C_DTCY_16_9 I2C_CKCFG_DTCY"
+.LASF3518:
+ .string "MSTATUS32_SD 0x80000000"
+.LASF1424:
+ .string "EXTI_RTEN_RTEN16 BIT(16)"
+.LASF2261:
+ .string "RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)"
+.LASF4000:
+ .string "MATCH_C_FLD 0x2000"
+.LASF3528:
+ .string "SSTATUS32_SD 0x80000000"
+.LASF2432:
+ .string "RTC_CNTL_CNT BITS(0,15)"
+.LASF1927:
+ .string "I2C_STAT0_LOSTARB BIT(9)"
+.LASF2855:
+ .string "TIMER_BREAK_DISABLE ((uint16_t)0x0000U)"
+.LASF3911:
+ .string "MASK_FCVT_W_S 0xfff0007f"
+.LASF4352:
+ .string "CAN0_TX_IRQn"
+.LASF557:
+ .string "ADC_CTL0_EOCIE BIT(5)"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF4346:
+ .string "DMA0_Channel2_IRQn"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF2522:
+ .string "SPI_CK_PL_HIGH_PH_2EDGE (SPI_CTL0_CKPL | SPI_CTL0_CKPH)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF2270:
+ .string "RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF397:
+ .string "__FAST16 "
+.LASF3079:
+ .string "_T_PTRDIFF_ "
+.LASF1076:
+ .string "CAN_BT_BS2_4TQ ((uint8_t)0x03U)"
+.LASF804:
+ .string "CAN_RFIFOMDATA00(canx) REG32((canx) + 0x1B8U)"
+.LASF2980:
+ .string "USART_CTL1_LBDIE BIT(6)"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF1370:
+ .string "EXTI_INTEN_INTEN0 BIT(0)"
+.LASF2066:
+ .string "PMU_FLAG_WAKEUP PMU_CS_WUF"
+.LASF3319:
+ .string "__unlocks(...) __lock_annotate(unlock_function(__VA_ARGS__))"
+.LASF1911:
+ .string "I2C_CTL1_DMALST BIT(12)"
+.LASF2597:
+ .string "TIMER_CTL0(timerx) REG32((timerx) + 0x00U)"
+.LASF4387:
+ .string "DMA1_Channel4_IRQn"
+.LASF3382:
+ .string "_REENT_CHECK_EMERGENCY(ptr) "
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF1202:
+ .string "DAC_LFSR_BITS4_0 DAC_WAVE_BIT_WIDTH_5"
+.LASF3208:
+ .string "__PMT(args) args"
+.LASF499:
+ .string "DBG_BASE ((uint32_t)0xE0042000U)"
+.LASF3912:
+ .string "MATCH_FCVT_WU_S 0xc0100053"
+.LASF1109:
+ .string "CAN_INT_RFO1 CAN_INTEN_RFOIE1"
+.LASF2069:
+ .string "PMU_LDO_NORMAL ((uint32_t)0x00000000U)"
+.LASF2390:
+ .string "RCU_PLL2_MUL13 CFG1_PLL2MF(11)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF3131:
+ .string "TIMER_MTIMECMP 0x8"
+.LASF2439:
+ .string "RTC_INT_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF948:
+ .string "CAN_ERR_TECNT BITS(16,23)"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF533:
+ .string "ADC_SAMPT0(adcx) REG32((adcx) + 0x0CU)"
+.LASF756:
+ .string "BKP_TPCS REG16((BKP) + 0x34U)"
+.LASF2596:
+ .string "TIMER6 (TIMER_BASE + 0x00001400U)"
+.LASF824:
+ .string "CAN_F9DATA0(canx) REG32((canx) + 0x288U)"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF1908:
+ .string "I2C_CTL1_EVIE BIT(9)"
+.LASF3292:
+ .string "__printf0like(fmtarg,firstvararg) "
+.LASF1532:
+ .string "FMC_BIT_POS0(val) (((uint32_t)(val) >> 6) & 0x1FU)"
+.LASF1964:
+ .string "I2C_ACKPOS_CURRENT ((uint32_t)0x00000001U)"
+.LASF4325:
+ .string "CAUSE_SUPERVISOR_ECALL 0x9"
+.LASF3463:
+ .string "__SL64 0x8000"
+.LASF1501:
+ .string "OB_WP3 REG16((OB) + 0x0EU)"
+.LASF1433:
+ .string "EXTI_FTEN_FTEN6 BIT(6)"
+.LASF862:
+ .string "CAN_F19DATA1(canx) REG32((canx) + 0x2DCU)"
+.LASF4321:
+ .string "CAUSE_FAULT_LOAD 0x5"
+.LASF2545:
+ .string "I2S_FRAMEFORMAT_DT32B_CH32B (I2SCTL_DTLEN(2) | SPI_I2SCTL_CHLEN)"
+.LASF3921:
+ .string "MASK_FCLASS_S 0xfff0707f"
+.LASF3752:
+ .string "MATCH_FENCE_I 0x100f"
+.LASF1634:
+ .string "GPIO_CTL0_CTL7 BITS(30, 31)"
+.LASF2337:
+ .string "RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)"
+.LASF3096:
+ .string "_BSD_SIZE_T_ "
+.LASF2467:
+ .string "SPI_CTL0_RO BIT(10)"
+.LASF1028:
+ .string "GET_RFIFOMDATA0_DB0(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF471:
+ .string "SIZE_MAX (__SIZE_MAX__)"
+.LASF1310:
+ .string "DMA_PERIPHERAL_WIDTH_8BIT CHCTL_PWIDTH(0U)"
+.LASF3226:
+ .string "__GNUCLIKE_MATH_BUILTIN_CONSTANTS "
+.LASF2074:
+ .string "WFE_CMD ((uint8_t)0x01U)"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF2444:
+ .string "RTC_FLAG_RSYN RTC_CTL_RSYNF"
+.LASF4192:
+ .string "CSR_MHPMCOUNTER20 0xb14"
+.LASF2322:
+ .string "RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)"
+.LASF3289:
+ .string "__format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg)))"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF1945:
+ .string "I2C_FMPCFG_FMPEN BIT(0)"
+.LASF2623:
+ .string "TIMER_CTL0_ARSE BIT(7)"
+.LASF428:
+ .string "__int_fast64_t_defined 1"
+.LASF1937:
+ .string "I2C_STAT1_DEFSMB BIT(5)"
+.LASF937:
+ .string "CAN_INTEN_WERRIE BIT(8)"
+.LASF3720:
+ .string "MATCH_SUBW 0x4000003b"
+.LASF1690:
+ .string "GPIO_BOP_BOP7 BIT(7)"
+.LASF3078:
+ .string "_PTRDIFF_T "
+.LASF697:
+ .string "ADC_OVERSAMPLING_SHIFT_5B OVSCR_OVSS(5)"
+.LASF3118:
+ .string "__INT_WCHAR_T_H "
+.LASF1488:
+ .string "FMC_KEY REG32((FMC) + 0x04U)"
+.LASF2894:
+ .string "TIMER_IC_PSC_DIV1 ((uint16_t)0x0000U)"
+.LASF2745:
+ .string "TIMER_INT_CMT TIMER_DMAINTEN_CMTIE"
+.LASF576:
+ .string "ADC_CTL1_ETEIC BIT(15)"
+.LASF3185:
+ .string "__SYS_CONFIG_H__ "
+.LASF1508:
+ .string "FMC_STAT_ENDF BIT(5)"
+.LASF1286:
+ .string "DMA_CHMADDR(dma,channel) REG32(((dma) + 0x14U) + 0x14U * (uint32_t)(channel))"
+.LASF2438:
+ .string "RTC_INT_FLAG_SECOND RTC_CTL_SCIF"
+.LASF2865:
+ .string "TIMER_OC_POLARITY_LOW ((uint16_t)0x0002U)"
+.LASF2335:
+ .string "RCU_RTCSRC_NONE BDCTL_RTCSRC(0)"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF2034:
+ .string "DBG_CTL_I2C1_HOLD BIT(16)"
+.LASF1335:
+ .string "EXMC_SNTCFG0 REG32(EXMC + 0x04U)"
+.LASF3648:
+ .string "rdtime() read_csr(time)"
+.LASF421:
+ .string "__int_least8_t_defined 1"
+.LASF950:
+ .string "CAN_BT_BAUDPSC BITS(0,9)"
+.LASF4139:
+ .string "CSR_HPMCOUNTER26 0xc1a"
+.LASF1722:
+ .string "GPIO_BC_CR7 BIT(7)"
+.LASF3318:
+ .string "__trylocks_shared(...) __lock_annotate(shared_trylock_function(__VA_ARGS__))"
+.LASF2667:
+ .string "TIMER_INTF_CH0OF BIT(9)"
+.LASF1416:
+ .string "EXTI_RTEN_RTEN8 BIT(8)"
+.LASF1190:
+ .string "DAC_WAVE_BIT_WIDTH_5 DWBW(4)"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF3568:
+ .string "MCONTROL_ACTION_DEBUG_MODE 1"
+.LASF608:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_PARALLEL CTL0_SYNCM(1)"
+.LASF1004:
+ .string "RFIFO1_REG_OFFSET ((uint8_t)0x10U)"
+.LASF3809:
+ .string "MASK_AMOAND_D 0xf800707f"
+.LASF2199:
+ .string "RCU_APB1EN_USART2EN BIT(18)"
+.LASF3586:
+ .string "MIP_MEIP (1 << IRQ_M_EXT)"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF417:
+ .string "_INTMAX_T_DECLARED "
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF2992:
+ .string "USART_CTL2_SCEN BIT(5)"
+.LASF634:
+ .string "ADC0_1_EXTTRIG_INSERTED_T2_CH3 CTL1_ETSIC(4)"
+.LASF2495:
+ .string "SPI_I2SCTL_DTLEN BITS(1,2)"
+.LASF3620:
+ .string "DEFAULT_NMIVEC 0x00001004"
+.LASF2532:
+ .string "I2S_AUDIOSAMPLE_8K ((uint32_t)8000U)"
+.LASF3533:
+ .string "DCSR_EBREAKM (1<<15)"
+.LASF3697:
+ .string "MASK_SLT 0xfe00707f"
+.LASF954:
+ .string "CAN_BT_LCMOD BIT(30)"
+.LASF1401:
+ .string "EXTI_EVEN_EVEN12 BIT(12)"
+.LASF405:
+ .string "_INT8_T_DECLARED "
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF4126:
+ .string "CSR_HPMCOUNTER13 0xc0d"
+.LASF1136:
+ .string "DAC1_R8DH REG32(DAC + 0x1CU)"
+.LASF2644:
+ .string "TIMER_DMAINTEN_UPIE BIT(0)"
+.LASF3284:
+ .string "__offsetof(type,field) offsetof(type, field)"
+.LASF1571:
+ .string "OB_WP_9 ((uint32_t)0x00000200U)"
+.LASF3637:
+ .string "SSTATUS_SD SSTATUS32_SD"
+.LASF3603:
+ .string "VM_MBB 1"
+.LASF2777:
+ .string "DMACFG_DMATA(regval) (BITS(0, 4) & ((uint32_t)(regval) << 0U))"
+.LASF4356:
+ .string "EXTI5_9_IRQn"
+.LASF4409:
+ .string "IRQn"
+.LASF3364:
+ .string "_RAND48_SEED_0 (0x330e)"
+.LASF1631:
+ .string "GPIO_CTL0_MD6 BITS(24, 25)"
+.LASF643:
+ .string "ADC_SAMPLETIME_41POINT5 SAMPTX_SPT(4)"
+.LASF1177:
+ .string "DAC_TRIGGER_T1_TRGO CTL_DTSEL(4)"
+.LASF1072:
+ .string "CAN_BT_BS1_16TQ ((uint8_t)0x0FU)"
+.LASF2156:
+ .string "RCU_APB1RST_TIMER6RST BIT(5)"
+.LASF4183:
+ .string "CSR_MHPMCOUNTER11 0xb0b"
+.LASF1238:
+ .string "DMA_CH1MADDR(dmax) REG32((dmax) + 0x28U)"
+.LASF4294:
+ .string "CSR_MHPMCOUNTER24H 0xb98"
+.LASF1985:
+ .string "DATA_TRANS(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF689:
+ .string "ADC_OVERSAMPLING_ALL_CONVERT 0"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF944:
+ .string "CAN_ERR_WERR BIT(0)"
+.LASF2590:
+ .string "TIMER0 (TIMER_BASE + 0x00012C00U)"
+.LASF1365:
+ .string "EXTI_EVEN REG32(EXTI + 0x04U)"
+.LASF1090:
+ .string "CAN_SFID_MASK ((uint32_t)0x000007FFU)"
+.LASF3705:
+ .string "MASK_SRA 0xfe00707f"
+.LASF2140:
+ .string "RCU_APB2RST_AFRST BIT(0)"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF1694:
+ .string "GPIO_BOP_BOP11 BIT(11)"
+.LASF1877:
+ .string "GPIO_TIMER1ITI1_REMAP ((uint32_t)0x00202000U)"
+.LASF3282:
+ .string "__exported __attribute__((__visibility__(\"default\")))"
+.LASF3614:
+ .string "IRQ_S_EXT 9"
+.LASF2271:
+ .string "RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)"
+.LASF1158:
+ .string "DAC0_R12DH_DAC0_DH BITS(0,11)"
+.LASF3358:
+ .string "__lock_release(lock) ((void) 0)"
+.LASF3789:
+ .string "MASK_AMOMIN_W 0xf800707f"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF763:
+ .string "BKP_TPCTL_TPAL BIT(1)"
+.LASF1506:
+ .string "FMC_STAT_PGERR BIT(2)"
+.LASF1619:
+ .string "GPIO_CTL0_MD0 BITS(0, 1)"
+.LASF2924:
+ .string "TIMER_SLAVE_MODE_EXTERNAL0 SMCFG_SMC(7)"
+.LASF2975:
+ .string "USART_CTL0_WM BIT(11)"
+.LASF1993:
+ .string "FWDGT_CTL REG32((FWDGT) + 0x00000000U)"
+.LASF2798:
+ .string "TIMER_DMACFG_DMATC_1TRANSFER DMACFG_DMATC(0)"
+.LASF418:
+ .string "_UINTMAX_T_DECLARED "
+.LASF1485:
+ .string "FMC FMC_BASE"
+.LASF3986:
+ .string "MATCH_C_EBREAK 0x9002"
+.LASF4254:
+ .string "CSR_HPMCOUNTER15H 0xc8f"
+.LASF2786:
+ .string "TIMER_DMACFG_DMATA_CHCTL2 DMACFG_DMATA(8)"
+.LASF1683:
+ .string "GPIO_BOP_BOP0 BIT(0)"
+.LASF1940:
+ .string "I2C_STAT1_PECV BITS(8,15)"
+.LASF3910:
+ .string "MATCH_FCVT_W_S 0xc0000053"
+.LASF1923:
+ .string "I2C_STAT0_STPDET BIT(4)"
+.LASF3276:
+ .string "__returns_twice __attribute__((__returns_twice__))"
+.LASF902:
+ .string "CAN_TSTAT_MAL0 BIT(2)"
+.LASF3627:
+ .string "PTE_W 0x004"
+.LASF3998:
+ .string "MATCH_C_ADDI4SPN 0x0"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF3307:
+ .string "_Nullable "
+.LASF1204:
+ .string "DAC_LFSR_BITS6_0 DAC_WAVE_BIT_WIDTH_7"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF2650:
+ .string "TIMER_DMAINTEN_TRGIE BIT(6)"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF699:
+ .string "ADC_OVERSAMPLING_SHIFT_7B OVSCR_OVSS(7)"
+.LASF3686:
+ .string "MATCH_ORI 0x6013"
+.LASF2307:
+ .string "RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))"
+.LASF2142:
+ .string "RCU_APB2RST_PBRST BIT(3)"
+.LASF2654:
+ .string "TIMER_DMAINTEN_CH1DEN BIT(10)"
+.LASF1675:
+ .string "GPIO_OCTL_OCTL8 BIT(8)"
+.LASF4038:
+ .string "MATCH_C_J 0xa001"
+.LASF997:
+ .string "CAN_REGIDX_BITS(regidx,bitpos0,bitpos1) (((uint32_t)(regidx) << 12) | ((uint32_t)(bitpos0) << 6) | (uint32_t)(bitpos1))"
+.LASF1953:
+ .string "I2C_STAT0_REG_OFFSET 0x14U"
+.LASF1715:
+ .string "GPIO_BC_CR0 BIT(0)"
+.LASF3017:
+ .string "USART_PM_NONE CTL0_PM(0)"
+.LASF4233:
+ .string "CSR_MHPMEVENT30 0x33e"
+.LASF4207:
+ .string "CSR_MHPMEVENT4 0x324"
+.LASF3766:
+ .string "MATCH_REM 0x2006033"
+.LASF1034:
+ .string "GET_RFIFOMDATA1_DB6(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF1976:
+ .string "I2C_DMALST_OFF ((uint32_t)0x00000000U)"
+.LASF4007:
+ .string "MASK_C_FSD 0xe003"
+.LASF867:
+ .string "CAN_F24DATA1(canx) REG32((canx) + 0x304U)"
+.LASF2706:
+ .string "TIMER_CHCTL1_CH3CAPFLT BITS(12,15)"
+.LASF663:
+ .string "ADC_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF3354:
+ .string "__lock_acquire(lock) ((void) 0)"
+.LASF1351:
+ .string "EXMC_SNTCFG(region) REG32(EXMC + 0x04U + 0x08U * (region))"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF2329:
+ .string "RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)"
+.LASF4181:
+ .string "CSR_MHPMCOUNTER9 0xb09"
+.LASF3380:
+ .string "_REENT_CHECK_TM(ptr) "
+.LASF4097:
+ .string "MASK_CUSTOM2_RD_RS1_RS2 0x707f"
+.LASF3953:
+ .string "MASK_FMV_D_X 0xfff0707f"
+.LASF4219:
+ .string "CSR_MHPMEVENT16 0x330"
+.LASF1978:
+ .string "I2C_PEC_DISABLE ((uint32_t)0x00000000U)"
+.LASF2054:
+ .string "PMU_CS_STBF BIT(1)"
+.LASF2403:
+ .string "RCU_DEEPSLEEP_V_1_1 DSV_DSLPVS(1)"
+.LASF4099:
+ .string "MASK_CUSTOM3 0x707f"
+.LASF3978:
+ .string "MATCH_C_NOP 0x1"
+.LASF2705:
+ .string "TIMER_CHCTL1_CH3CAPPSC BITS(10,11)"
+.LASF1767:
+ .string "AFIO_EXTI1_SS BITS(4, 7)"
+.LASF1774:
+ .string "AFIO_EXTI8_SS BITS(0, 3)"
+.LASF4211:
+ .string "CSR_MHPMEVENT8 0x328"
+.LASF4263:
+ .string "CSR_HPMCOUNTER24H 0xc98"
+.LASF2806:
+ .string "TIMER_DMACFG_DMATC_9TRANSFER DMACFG_DMATC(8)"
+.LASF4383:
+ .string "DMA1_Channel0_IRQn"
+.LASF1802:
+ .string "GPIO_PORT_SOURCE_GPIOB ((uint8_t)0x01U)"
+.LASF3086:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF3385:
+ .string "_REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam)"
+.LASF435:
+ .string "INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)"
+.LASF964:
+ .string "CAN_TMDATA0_DB0 BITS(0,7)"
+.LASF1469:
+ .string "EXTI_PD_PD4 BIT(4)"
+.LASF2778:
+ .string "TIMER_DMACFG_DMATA_CTL0 DMACFG_DMATA(0)"
+.LASF4122:
+ .string "CSR_HPMCOUNTER9 0xc09"
+.LASF3693:
+ .string "MASK_SUB 0xfe00707f"
+.LASF1206:
+ .string "DAC_LFSR_BITS8_0 DAC_WAVE_BIT_WIDTH_9"
+.LASF2808:
+ .string "TIMER_DMACFG_DMATC_11TRANSFER DMACFG_DMATC(10)"
+.LASF2956:
+ .string "USART_STAT_RBNE BIT(5)"
+.LASF1560:
+ .string "OB_WP2_WP2 ((uint32_t)0x00FF0000U)"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF3947:
+ .string "MASK_FCVT_D_WU 0xfff0007f"
+.LASF857:
+ .string "CAN_F14DATA1(canx) REG32((canx) + 0x2B4U)"
+.LASF2831:
+ .string "TIMER_COUNTER_UP ((uint16_t)0x0000U)"
+.LASF4398:
+ .string "short unsigned int"
+.LASF741:
+ .string "BKP_DATA29 REG16((BKP) + 0x8CU)"
+.LASF4043:
+ .string "MASK_C_BNEZ 0xe003"
+.LASF1322:
+ .string "DMA_MEMORY_TO_MEMORY_DISABLE ((uint32_t)0x00000000U)"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF900:
+ .string "CAN_TSTAT_MTF0 BIT(0)"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF1643:
+ .string "GPIO_CTL1_MD12 BITS(16, 17)"
+.LASF1145:
+ .string "DAC_CTL_DTSEL0 BITS(3,5)"
+.LASF2593:
+ .string "TIMER3 (TIMER_BASE + 0x00000800U)"
+.LASF2791:
+ .string "TIMER_DMACFG_DMATA_CH0CV DMACFG_DMATA(13)"
+.LASF3802:
+ .string "MATCH_AMOADD_D 0x302f"
+.LASF3128:
+ .string "N200_TIMER_H "
+.LASF1144:
+ .string "DAC_CTL_DTEN0 BIT(2)"
+.LASF575:
+ .string "ADC_CTL1_ETSIC BITS(12,14)"
+.LASF3130:
+ .string "TIMER_MSIP_size 0x4"
+.LASF2050:
+ .string "PMU_CTL_LVDEN BIT(4)"
+.LASF3073:
+ .string "WWDGT_CFG_PSC_DIV8 CFG_PSC(3)"
+.LASF3571:
+ .string "MCONTROL_ACTION_TRACE_EMIT 4"
+.LASF2918:
+ .string "TIMER_ENCODER_MODE0 SMCFG_SMC(1)"
+.LASF3264:
+ .string "__alloc_size2(n,x) __attribute__((__alloc_size__(n, x)))"
+.LASF3336:
+ .string "_WINT_T "
+.LASF1862:
+ .string "GPIO_TIMER0_FULL_REMAP ((uint32_t)0x001600C0U)"
+.LASF3647:
+ .string "clear_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrc %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF2748:
+ .string "TIMER_INT_FLAG_UP TIMER_INT_UP"
+.LASF3685:
+ .string "MASK_SRAI 0xfc00707f"
+.LASF1320:
+ .string "DMA_PRIORITY_HIGH CHCTL_PRIO(2U)"
+.LASF1546:
+ .string "OB_DEEPSLEEP_NRST ((uint8_t)0x02U)"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF896:
+ .string "CAN_STAT_TS BIT(8)"
+.LASF1863:
+ .string "GPIO_TIMER1_PARTIAL_REMAP0 ((uint32_t)0x00180100U)"
+.LASF1455:
+ .string "EXTI_SWIEV_SWIEV9 BIT(9)"
+.LASF1668:
+ .string "GPIO_OCTL_OCTL1 BIT(1)"
+.LASF2188:
+ .string "RCU_APB2EN_USART0EN BIT(14)"
+.LASF3830:
+ .string "MATCH_SRET 0x10200073"
+.LASF4112:
+ .string "CSR_FCSR 0x3"
+.LASF1736:
+ .string "GPIO_LOCK_LK5 BIT(5)"
+.LASF717:
+ .string "BKP_DATA5 REG16((BKP) + 0x18U)"
+.LASF611:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_SLOW CTL0_SYNCM(4)"
+.LASF1274:
+ .string "DMA_CHXCTL_MNAGA BIT(7)"
+.LASF2491:
+ .string "SPI_CRCPOLY_CRCPOLY BITS(0,15)"
+.LASF3317:
+ .string "__trylocks_exclusive(...) __lock_annotate(exclusive_trylock_function(__VA_ARGS__))"
+.LASF2610:
+ .string "TIMER_CH0CV(timerx) REG32((timerx) + 0x34U)"
+.LASF1900:
+ .string "I2C_CTL0_STOP BIT(9)"
+.LASF398:
+ .string "__FAST32 "
+.LASF1250:
+ .string "DMA_CH4MADDR(dmax) REG32((dmax) + 0x64U)"
+.LASF1381:
+ .string "EXTI_INTEN_INTEN11 BIT(11)"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF729:
+ .string "BKP_DATA17 REG16((BKP) + 0x5CU)"
+.LASF3391:
+ .string "_REENT_MP_RESULT_K(ptr) ((ptr)->_result_k)"
+.LASF1705:
+ .string "GPIO_BOP_CR6 BIT(22)"
+.LASF303:
+ .string "__riscv 1"
+.LASF4408:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF3535:
+ .string "DCSR_EBREAKS (1<<13)"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF3213:
+ .string "__long_double_t long double"
+.LASF467:
+ .string "UINT_FAST64_MAX (__UINT_FAST64_MAX__)"
+.LASF2629:
+ .string "TIMER_CTL1_TI0S BIT(7)"
+.LASF3010:
+ .string "CTL0_REN(regval) (BIT(2) & ((uint32_t)(regval) << 2))"
+.LASF774:
+ .string "RTC_OUTPUT_SECOND_PULSE ((uint16_t)0x0200U)"
+.LASF823:
+ .string "CAN_F8DATA0(canx) REG32((canx) + 0x280U)"
+.LASF4053:
+ .string "MASK_C_MV 0xf003"
+.LASF3198:
+ .string "_NOTHROW "
+.LASF2999:
+ .string "USART_GP_GUAT BITS(8,15)"
+.LASF2426:
+ .string "RTC_CTL_LWOFF BIT(5)"
+.LASF1751:
+ .string "AFIO_PCF0_SPI0_REMAP BIT(0)"
+.LASF1068:
+ .string "CAN_BT_BS1_12TQ ((uint8_t)0x0BU)"
+.LASF656:
+ .string "ADC_INSERTED_CHANNEL_0 ((uint8_t)0x00U)"
+.LASF3784:
+ .string "MATCH_AMOOR_W 0x4000202f"
+.LASF1885:
+ .string "I2C_SADDR1(i2cx) REG32((i2cx) + 0x0CU)"
+.LASF577:
+ .string "ADC_CTL1_ETSRC BITS(17,19)"
+.LASF2858:
+ .string "TIMER_CH_2 ((uint16_t)0x0002U)"
+.LASF1051:
+ .string "CAN_SILENT_MODE ((uint8_t)0x02U)"
+.LASF3817:
+ .string "MASK_AMOMAXU_D 0xf800707f"
+.LASF2568:
+ .string "SPI_I2S_INT_FLAG_TBE ((uint8_t)0x00U)"
+.LASF2846:
+ .string "TIMER_BREAK_POLARITY_HIGH ((uint16_t)TIMER_CCHP_BRKP)"
+.LASF2621:
+ .string "TIMER_CTL0_DIR BIT(4)"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF4329:
+ .string "CLIC_INT_SFT"
+.LASF375:
+ .string "signed"
+.LASF4342:
+ .string "EXTI3_IRQn"
+.LASF974:
+ .string "CAN_RFIFOMI_EFID BITS(3,31)"
+.LASF4103:
+ .string "MASK_CUSTOM3_RS1_RS2 0x707f"
+.LASF2736:
+ .string "TIMER_CCHP_POEN BIT(15)"
+.LASF2507:
+ .string "SPI_BIDIRECTIONAL_TRANSMIT SPI_CTL0_BDOEN"
+.LASF552:
+ .string "ADC_STAT_EOC BIT(1)"
+.LASF353:
+ .string "__GNU_VISIBLE 0"
+.LASF2890:
+ .string "TIMER_IC_POLARITY_BOTH_EDGE ((uint16_t)0x000AU)"
+.LASF2378:
+ .string "RCU_PLL1_MUL12 CFG1_PLL1MF(10)"
+.LASF1638:
+ .string "GPIO_CTL1_CTL9 BITS(6, 7)"
+.LASF1441:
+ .string "EXTI_FTEN_FTEN14 BIT(14)"
+.LASF1543:
+ .string "WS_WSCNT_2 WS_WSCNT(2)"
+.LASF2633:
+ .string "TIMER_CTL1_ISO1N BIT(11)"
+.LASF1251:
+ .string "DMA_CH5CTL(dmax) REG32((dmax) + 0x6CU)"
+.LASF2178:
+ .string "RCU_APB2EN_AFEN BIT(0)"
+.LASF1272:
+ .string "DMA_CHXCTL_CMEN BIT(5)"
+.LASF2185:
+ .string "RCU_APB2EN_ADC1EN BIT(10)"
+.LASF3787:
+ .string "MASK_AMOAND_W 0xf800707f"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1180:
+ .string "DAC_TRIGGER_SOFTWARE CTL_DTSEL(7)"
+.LASF1618:
+ .string "AFIO_PCF1 REG32(AFIO + 0x1CU)"
+.LASF2349:
+ .string "RCU_PREDV0_DIV10 CFG1_PREDV0(9)"
+.LASF2205:
+ .string "RCU_APB1EN_CAN1EN BIT(26)"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF3607:
+ .string "VM_SV48 10"
+.LASF2788:
+ .string "TIMER_DMACFG_DMATA_PSC DMACFG_DMATA(10)"
+.LASF3372:
+ .string "_REENT_ASCTIME_SIZE 26"
+.LASF2845:
+ .string "TIMER_BREAK_POLARITY_LOW ((uint16_t)0x0000U)"
+.LASF3841:
+ .string "MASK_WFI 0xffffffff"
+.LASF3976:
+ .string "MATCH_FNMADD_D 0x200004f"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF3917:
+ .string "MASK_FCVT_LU_S 0xfff0007f"
+.LASF3548:
+ .string "DCSR_CAUSE_STEP 4"
+.LASF1364:
+ .string "EXTI_INTEN REG32(EXTI + 0x00U)"
+.LASF675:
+ .string "ADC_CHANNEL_15 ((uint8_t)0x0FU)"
+.LASF401:
+ .string "__LEAST16 \"h\""
+.LASF1540:
+ .string "WS_WSCNT(regval) (BITS(0,2) & ((uint32_t)(regval)))"
+.LASF4318:
+ .string "CAUSE_ILLEGAL_INSTRUCTION 0x2"
+.LASF4297:
+ .string "CSR_MHPMCOUNTER27H 0xb9b"
+.LASF1448:
+ .string "EXTI_SWIEV_SWIEV2 BIT(2)"
+.LASF4270:
+ .string "CSR_HPMCOUNTER31H 0xc9f"
+.LASF808:
+ .string "CAN_RFIFOMDATA01(canx) REG32((canx) + 0x1C8U)"
+.LASF2676:
+ .string "TIMER_SWEVG_CMTG BIT(5)"
+.LASF2153:
+ .string "RCU_APB1RST_TIMER3RST BIT(2)"
+.LASF3989:
+ .string "MASK_C_LD 0xe003"
+.LASF1247:
+ .string "DMA_CH4CTL(dmax) REG32((dmax) + 0x58U)"
+.LASF2003:
+ .string "FWDGT_PSC_DIV4 ((uint8_t)PSC_PSC(0))"
+.LASF1990:
+ .string "I2C_ADDFORMAT_10BITS I2C_SADDR0_ADDFORMAT"
+.LASF1197:
+ .string "DAC_WAVE_BIT_WIDTH_12 DWBW(11)"
+.LASF1624:
+ .string "GPIO_CTL0_CTL2 BITS(10, 11)"
+.LASF3158:
+ .string "ECLIC_CFG_NLBITS_MASK _AC(0x1E,UL)"
+.LASF2244:
+ .string "BDCTL_REG_OFFSET 0x20U"
+.LASF1214:
+ .string "DAC_TRIANGLE_AMPLITUDE_1 DAC_WAVE_BIT_WIDTH_1"
+.LASF1318:
+ .string "DMA_PRIORITY_LOW CHCTL_PRIO(0U)"
+.LASF3029:
+ .string "USART_STB_2BIT CTL1_STB(2)"
+.LASF3053:
+ .string "USART_CTS_ENABLE CLT2_CTSEN(1)"
+.LASF2962:
+ .string "USART_BAUD_FRADIV BITS(0,3)"
+.LASF2619:
+ .string "TIMER_CTL0_UPS BIT(2)"
+.LASF1787:
+ .string "GPIO_MODE_IPD ((uint8_t)0x28U)"
+.LASF475:
+ .string "PTRDIFF_MIN (-PTRDIFF_MAX - 1)"
+.LASF2179:
+ .string "RCU_APB2EN_PAEN BIT(2)"
+.LASF2169:
+ .string "RCU_APB1RST_PMURST BIT(28)"
+.LASF4119:
+ .string "CSR_HPMCOUNTER6 0xc06"
+.LASF3723:
+ .string "MASK_SLLW 0xfe00707f"
+.LASF1354:
+ .string "EXMC_NOR_DATABUS_WIDTH_16B SNCTL_NRW(1)"
+.LASF4251:
+ .string "CSR_HPMCOUNTER12H 0xc8c"
+.LASF923:
+ .string "CAN_RFIFO0_RFF0 BIT(3)"
+.LASF3677:
+ .string "MASK_SLTI 0x707f"
+.LASF2031:
+ .string "DBG_CTL_TIMER3_HOLD BIT(13)"
+.LASF4073:
+ .string "MASK_CUSTOM0_RD_RS1_RS2 0x707f"
+.LASF849:
+ .string "CAN_F6DATA1(canx) REG32((canx) + 0x274U)"
+.LASF1551:
+ .string "OB_USER_MASK ((uint8_t)0xF0U)"
+.LASF1519:
+ .string "FMC_ADDR0_ADDR BITS(0,31)"
+.LASF1824:
+ .string "GPIO_PIN_SOURCE_2 ((uint8_t)0x02U)"
+.LASF549:
+ .string "ADC_RDATA(adcx) REG32((adcx) + 0x4CU)"
+.LASF1677:
+ .string "GPIO_OCTL_OCTL10 BIT(10)"
+.LASF3826:
+ .string "MATCH_EBREAK 0x100073"
+.LASF2598:
+ .string "TIMER_CTL1(timerx) REG32((timerx) + 0x04U)"
+.LASF2292:
+ .string "RCU_PLL_MUL6 CFG0_PLLMF(4)"
+.LASF4165:
+ .string "CSR_MIP 0x344"
+.LASF1894:
+ .string "I2C_CTL0_SMBSEL BIT(3)"
+.LASF2752:
+ .string "TIMER_INT_FLAG_CH3 TIMER_INT_CH3"
+.LASF1312:
+ .string "DMA_PERIPHERAL_WIDTH_32BIT CHCTL_PWIDTH(2U)"
+.LASF2971:
+ .string "USART_CTL0_TBEIE BIT(7)"
+.LASF2747:
+ .string "TIMER_INT_BRK TIMER_DMAINTEN_BRKIE"
+.LASF1156:
+ .string "DAC_SWT_SWTR0 BIT(0)"
+.LASF3449:
+ .string "__SLBF 0x0001"
+.LASF2892:
+ .string "TIMER_IC_SELECTION_INDIRECTTI ((uint16_t)0x0002U)"
+.LASF4198:
+ .string "CSR_MHPMCOUNTER26 0xb1a"
+.LASF4304:
+ .string "CSR_MCOUNTINHIBIT 0x320"
+.LASF887:
+ .string "CAN_CTL_ABOR BIT(6)"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF3239:
+ .string "__GNUCLIKE_BUILTIN_MEMCPY 1"
+.LASF2470:
+ .string "SPI_CTL0_CRCEN BIT(13)"
+.LASF3541:
+ .string "DCSR_HALT (1<<3)"
+.LASF1123:
+ .string "CRC_FDATA_FDATA BITS(0, 7)"
+.LASF3961:
+ .string "MASK_FSD 0x707f"
+.LASF4004:
+ .string "MATCH_C_FLW 0x6000"
+.LASF3291:
+ .string "__strftimelike(fmtarg,firstvararg) __attribute__((__format__ (__strftime__, fmtarg, firstvararg)))"
+.LASF983:
+ .string "CAN_RFIFOMDATA1_DB4 BITS(0,7)"
+.LASF818:
+ .string "CAN_F3DATA0(canx) REG32((canx) + 0x258U)"
+.LASF3821:
+ .string "MASK_LR_D 0xf9f0707f"
+.LASF1348:
+ .string "EXMC_SNTCFG_DSET BITS(8,15)"
+.LASF1474:
+ .string "EXTI_PD_PD9 BIT(9)"
+.LASF4402:
+ .string "long long unsigned int"
+.LASF2044:
+ .string "PMU_CTL REG32((PMU) + 0x00U)"
+.LASF2264:
+ .string "RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)"
+.LASF2615:
+ .string "TIMER_DMACFG(timerx) REG32((timerx) + 0x48U)"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF986:
+ .string "CAN_RFIFOMDATA1_DB7 BITS(24,31)"
+.LASF1313:
+ .string "CHCTL_MWIDTH(regval) (BITS(10,11) & ((uint32_t)(regval) << 10))"
+.LASF856:
+ .string "CAN_F13DATA1(canx) REG32((canx) + 0x2ACU)"
+.LASF4204:
+ .string "CSR_MUCOUNTEREN 0x320"
+.LASF1119:
+ .string "CRC_DATA REG32(CRC + 0x00U)"
+.LASF3875:
+ .string "MASK_FADD_D 0xfe00007f"
+.LASF473:
+ .string "SIG_ATOMIC_MAX (__STDINT_EXP(INT_MAX))"
+.LASF2075:
+ .string "GD32VF103_RCU_H "
+.LASF784:
+ .string "CAN_TSTAT(canx) REG32((canx) + 0x08U)"
+.LASF2275:
+ .string "RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)"
+.LASF1518:
+ .string "FMC_CTL_ENDIE BIT(12)"
+.LASF1398:
+ .string "EXTI_EVEN_EVEN9 BIT(9)"
+.LASF1280:
+ .string "DMA_CHXPADDR_PADDR BITS(0,31)"
+.LASF3516:
+ .string "MSTATUS_MXR 0x00080000"
+.LASF899:
+ .string "CAN_STAT_RXL BIT(11)"
+.LASF3805:
+ .string "MASK_AMOXOR_D 0xf800707f"
+.LASF1539:
+ .string "UNLOCK_KEY1 ((uint32_t)0xCDEF89ABU)"
+.LASF1970:
+ .string "I2C_GCEN_DISABLE ((uint32_t)0x00000000U)"
+.LASF3452:
+ .string "__SWR 0x0008"
+.LASF2934:
+ .string "TIMER_HALLINTERFACE_ENABLE TIMER_CTL1_TI0S"
+.LASF3624:
+ .string "DRAM_BASE 0x80000000"
+.LASF4036:
+ .string "MATCH_C_ADDW 0x9c21"
+.LASF940:
+ .string "CAN_INTEN_ERRNIE BIT(11)"
+.LASF3979:
+ .string "MASK_C_NOP 0xffff"
+.LASF3943:
+ .string "MASK_FMV_S_X 0xfff0707f"
+.LASF4396:
+ .string "unsigned char"
+.LASF1406:
+ .string "EXTI_EVEN_EVEN17 BIT(17)"
+.LASF3028:
+ .string "USART_STB_0_5BIT CTL1_STB(1)"
+.LASF2662:
+ .string "TIMER_INTF_CH2IF BIT(3)"
+.LASF2514:
+ .string "SPI_FRAMESIZE_8BIT ((uint32_t)0x00000000U)"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF4172:
+ .string "CSR_DSCRATCH 0x7b2"
+.LASF3611:
+ .string "IRQ_S_TIMER 5"
+.LASF1088:
+ .string "CAN_FIFO1 ((uint8_t)0x01U)"
+.LASF2749:
+ .string "TIMER_INT_FLAG_CH0 TIMER_INT_CH0"
+.LASF2837:
+ .string "TIMER_SP_MODE_SINGLE TIMER_CTL0_SPM"
+.LASF3173:
+ .string "_WANT_IO_LONG_LONG 1"
+.LASF4208:
+ .string "CSR_MHPMEVENT5 0x325"
+.LASF786:
+ .string "CAN_RFIFO1(canx) REG32((canx) + 0x10U)"
+.LASF3395:
+ .string "_REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf)"
+.LASF1972:
+ .string "I2C_SRESET_RESET ((uint32_t)0x00000000U)"
+.LASF3716:
+ .string "MATCH_SRAIW 0x4000501b"
+.LASF3346:
+ .string "__Long long"
+.LASF2095:
+ .string "RCU_CTL_HXTALSTB BIT(17)"
+.LASF1699:
+ .string "GPIO_BOP_CR0 BIT(16)"
+.LASF1647:
+ .string "GPIO_CTL1_MD14 BITS(24, 25)"
+.LASF2714:
+ .string "TIMER_CHCTL2_CH1NP BIT(7)"
+.LASF1660:
+ .string "GPIO_ISTAT_ISTAT9 BIT(9)"
+.LASF1952:
+ .string "I2C_CTL1_REG_OFFSET 0x04U"
+.LASF2759:
+ .string "TIMER_FLAG_CH2 TIMER_INTF_CH2IF"
+.LASF2921:
+ .string "TIMER_SLAVE_MODE_RESTART SMCFG_SMC(4)"
+.LASF4199:
+ .string "CSR_MHPMCOUNTER27 0xb1b"
+.LASF2579:
+ .string "SPI_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF2295:
+ .string "RCU_PLL_MUL9 CFG0_PLLMF(7)"
+.LASF705:
+ .string "ADC_OVERSAMPLING_RATIO_MUL16 OVSCR_OVSR(3)"
+.LASF1931:
+ .string "I2C_STAT0_SMBTO BIT(14)"
+.LASF1696:
+ .string "GPIO_BOP_BOP13 BIT(13)"
+.LASF1224:
+ .string "DAC_TRIANGLE_AMPLITUDE_2047 DAC_WAVE_BIT_WIDTH_11"
+.LASF3707:
+ .string "MASK_OR 0xfe00707f"
+.LASF2864:
+ .string "TIMER_OC_POLARITY_HIGH ((uint16_t)0x0000U)"
+.LASF3464:
+ .string "__SNLK 0x0001"
+.LASF1712:
+ .string "GPIO_BOP_CR13 BIT(29)"
+.LASF4155:
+ .string "CSR_MISA 0x301"
+.LASF3223:
+ .string "__BEGIN_DECLS "
+.LASF3377:
+ .ascii "_REENT_INIT_PTR_ZEROED(var) { (var)->_stdin = _REENT_STDIO_S"
+ .ascii "TREAM(var, 0); (var)->_stdout = _REENT_STDIO_STREAM(var, 1);"
+ .ascii " (var)->_stderr = _REENT_STDIO_STREAM(var, 2); (var)->_new._"
+ .ascii "reent._rand_next = 1; (var)->_new._reent._r48._seed[0] = _RA"
+ .ascii "ND48_SEED_0; (var)->_new._reent._r48._seed[1] = _RAND48_S"
+ .string "EED_1; (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; (var)->_new._reent._r48._add = _RAND48_ADD; }"
+.LASF2125:
+ .string "RCU_INT_IRC40KSTBIE BIT(8)"
+.LASF1461:
+ .string "EXTI_SWIEV_SWIEV15 BIT(15)"
+.LASF1735:
+ .string "GPIO_LOCK_LK4 BIT(4)"
+.LASF1816:
+ .string "GPIO_EVENT_PIN_10 ((uint8_t)0x0AU)"
+.LASF463:
+ .string "INT_FAST32_MAX (__INT_FAST32_MAX__)"
+.LASF2709:
+ .string "TIMER_CHCTL2_CH0NEN BIT(2)"
+.LASF3205:
+ .string "__need_size_t "
+.LASF1998:
+ .string "FWDGT_PSC_PSC BITS(0,2)"
+.LASF3721:
+ .string "MASK_SUBW 0xfe00707f"
+.LASF4068:
+ .string "MATCH_CUSTOM0_RD 0x400b"
+.LASF3421:
+ .string "__time_t_defined "
+.LASF2586:
+ .string "I2S_FLAG_RXORERR SPI_STAT_RXORERR"
+.LASF3886:
+ .string "MATCH_FSGNJX_D 0x22002053"
+.LASF2693:
+ .string "TIMER_CHCTL1_CH2MS BITS(0,1)"
+.LASF1981:
+ .string "I2C_SALTSEND_ENABLE I2C_CTL0_SALT"
+.LASF1026:
+ .string "GET_RFIFOMP_DLENC(regval) GET_BITS((uint32_t)(regval), 0U, 3U)"
+.LASF2543:
+ .string "I2S_FRAMEFORMAT_DT16B_CH32B (I2SCTL_DTLEN(0) | SPI_I2SCTL_CHLEN)"
+.LASF2469:
+ .string "SPI_CTL0_CRCNT BIT(12)"
+.LASF1846:
+ .string "GPIO_PIN_8 BIT(8)"
+.LASF2903:
+ .string "TIMER_SMCFG_TRGSEL_CI0F_ED SMCFG_TRGSEL(4)"
+.LASF3963:
+ .string "MASK_FMADD_S 0x600007f"
+.LASF527:
+ .string "GD32VF103_ADC_H "
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF841:
+ .string "CAN_F26DATA0(canx) REG32((canx) + 0x310U)"
+.LASF347:
+ .string "__NEWLIB_MINOR__ 1"
+.LASF1284:
+ .string "DMA_CHCNT(dma,channel) REG32(((dma) + 0x0CU) + 0x14U * (uint32_t)(channel))"
+.LASF981:
+ .string "CAN_RFIFOMDATA0_DB2 BITS(16,23)"
+.LASF2332:
+ .string "RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)"
+.LASF1391:
+ .string "EXTI_EVEN_EVEN2 BIT(2)"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF578:
+ .string "ADC_CTL1_ETERC BIT(20)"
+.LASF402:
+ .string "__LEAST32 \"l\""
+.LASF581:
+ .string "ADC_CTL1_TSVREN BIT(23)"
+.LASF1507:
+ .string "FMC_STAT_WPERR BIT(4)"
+.LASF3255:
+ .string "__weak_symbol __attribute__((__weak__))"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF1368:
+ .string "EXTI_SWIEV REG32(EXTI + 0x10U)"
+.LASF1509:
+ .string "FMC_CTL_PG BIT(0)"
+.LASF2762:
+ .string "TIMER_FLAG_TRG TIMER_INTF_TRGIF"
+.LASF3777:
+ .string "MASK_REMW 0xfe00707f"
+.LASF3625:
+ .string "PTE_V 0x001"
+.LASF1409:
+ .string "EXTI_RTEN_RTEN1 BIT(1)"
+.LASF1038:
+ .string "GET_ERR_RECNT(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF2513:
+ .string "SPI_FRAMESIZE_16BIT SPI_CTL0_FF16"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF596:
+ .string "ADC_OVSCR_TOVS BIT(9)"
+.LASF2732:
+ .string "TIMER_CCHP_ROS BIT(11)"
+.LASF1642:
+ .string "GPIO_CTL1_CTL11 BITS(14, 15)"
+.LASF1968:
+ .string "I2C_SCLSTRETCH_DISABLE I2C_CTL0_SS"
+.LASF3928:
+ .string "MATCH_FCVT_LU_D 0xc2300053"
+.LASF893:
+ .string "CAN_STAT_ERRIF BIT(2)"
+.LASF3768:
+ .string "MATCH_REMU 0x2007033"
+.LASF1349:
+ .string "EXMC_SNTCFG_BUSLAT BITS(16,19)"
+.LASF1314:
+ .string "DMA_MEMORY_WIDTH_8BIT CHCTL_MWIDTH(0U)"
+.LASF3332:
+ .string "__GNUC_VA_LIST "
+.LASF2226:
+ .string "RCU_CFG1_PREDV1 BITS(4,7)"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF3126:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF2694:
+ .string "TIMER_CHCTL1_CH2COMFEN BIT(2)"
+.LASF3133:
+ .string "TIMER_MTIME 0x0"
+.LASF4026:
+ .string "MATCH_C_SUB 0x8c01"
+.LASF1607:
+ .string "GPIO_ISTAT(gpiox) REG32((gpiox) + 0x08U)"
+.LASF486:
+ .string "INT64_C(x) __INT64_C(x)"
+.LASF2991:
+ .string "USART_CTL2_NKEN BIT(4)"
+.LASF971:
+ .string "CAN_TMDATA1_DB7 BITS(24,31)"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF2873:
+ .string "TIMER_OC_MODE_ACTIVE ((uint16_t)0x0010U)"
+.LASF1294:
+ .string "DMA_INT_FLAG_HTF DMA_INTF_HTFIF"
+.LASF4022:
+ .string "MATCH_C_SRAI 0x8401"
+.LASF831:
+ .string "CAN_F16DATA0(canx) REG32((canx) + 0x2C0U)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF655:
+ .string "ADC_CHANNEL_DISCON_DISABLE ((uint8_t)0x04U)"
+.LASF4298:
+ .string "CSR_MHPMCOUNTER28H 0xb9c"
+.LASF520:
+ .string "DMA_BASE (AHB1_BUS_BASE + 0x00008000U)"
+.LASF1118:
+ .string "CRC CRC_BASE"
+.LASF1394:
+ .string "EXTI_EVEN_EVEN5 BIT(5)"
+.LASF848:
+ .string "CAN_F5DATA1(canx) REG32((canx) + 0x26CU)"
+.LASF2973:
+ .string "USART_CTL0_PM BIT(9)"
+.LASF1639:
+ .string "GPIO_CTL1_MD10 BITS(8, 9)"
+.LASF3726:
+ .string "MATCH_SRAW 0x4000503b"
+.LASF559:
+ .string "ADC_CTL0_EOICIE BIT(7)"
+.LASF4389:
+ .string "CAN1_RX0_IRQn"
+.LASF3490:
+ .string "__sfileno(p) ((p)->_file)"
+.LASF3574:
+ .string "MCONTROL_MATCH_GE 2"
+.LASF875:
+ .string "CAN_FDATA0(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x0U)"
+.LASF4095:
+ .string "MASK_CUSTOM2_RD_RS1 0x707f"
+.LASF914:
+ .string "CAN_TSTAT_MST2 BIT(23)"
+.LASF3094:
+ .string "__SIZE_T "
+.LASF4091:
+ .string "MASK_CUSTOM2_RS1_RS2 0x707f"
+.LASF4169:
+ .string "CSR_TDATA3 0x7a3"
+.LASF2486:
+ .string "SPI_STAT_CONFERR BIT(5)"
+.LASF3272:
+ .string "__nonnull(x) __attribute__((__nonnull__ x))"
+.LASF3703:
+ .string "MASK_SRL 0xfe00707f"
+.LASF1873:
+ .string "GPIO_CAN1_REMAP ((uint32_t)0x00200040U)"
+.LASF2316:
+ .string "RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))"
+.LASF4339:
+ .string "EXTI0_IRQn"
+.LASF348:
+ .string "__NEWLIB_PATCHLEVEL__ 0"
+.LASF3154:
+ .string "ECLIC_INT_ATTR_TRIG_POS 0x00"
+.LASF1741:
+ .string "GPIO_LOCK_LK10 BIT(10)"
+.LASF1839:
+ .string "GPIO_PIN_1 BIT(1)"
+.LASF3222:
+ .string "__has_feature(x) 0"
+.LASF344:
+ .string "_NEWLIB_VERSION_H__ 1"
+.LASF1345:
+ .string "EXMC_SNCTL_ASYNCWAIT BIT(15)"
+.LASF1620:
+ .string "GPIO_CTL0_CTL0 BITS(2, 3)"
+.LASF1963:
+ .string "I2C_ACKPOS_NEXT ((uint32_t)0x00000000U)"
+.LASF3171:
+ .string "__NEWLIB_H__ 1"
+.LASF1100:
+ .string "CAN_FT_DATA ((uint32_t)0x00000000U)"
+.LASF1835:
+ .string "GPIO_PIN_SOURCE_13 ((uint8_t)0x0DU)"
+.LASF3488:
+ .string "__sferror(p) ((int)(((p)->_flags & __SERR) != 0))"
+.LASF493:
+ .string "BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))"
+.LASF3246:
+ .string "__CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF2671:
+ .string "TIMER_SWEVG_UPG BIT(0)"
+.LASF2099:
+ .string "RCU_CTL_PLLSTB BIT(25)"
+.LASF2595:
+ .string "TIMER5 (TIMER_BASE + 0x00001000U)"
+.LASF2957:
+ .string "USART_STAT_TC BIT(6)"
+.LASF3975:
+ .string "MASK_FNMSUB_D 0x600007f"
+.LASF1487:
+ .string "FMC_WS REG32((FMC) + 0x00U)"
+.LASF2740:
+ .string "TIMER_INT_UP TIMER_DMAINTEN_UPIE"
+.LASF3051:
+ .string "USART_RTS_DISABLE CLT2_RTSEN(0)"
+.LASF2572:
+ .string "SPI_INT_FLAG_CRCERR ((uint8_t)0x04U)"
+.LASF3988:
+ .string "MATCH_C_LD 0x6000"
+.LASF1836:
+ .string "GPIO_PIN_SOURCE_14 ((uint8_t)0x0EU)"
+.LASF1135:
+ .string "DAC1_L12DH REG32(DAC + 0x18U)"
+.LASF2299:
+ .string "RCU_PLL_MUL13 CFG0_PLLMF(11)"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF1149:
+ .string "DAC_CTL_DEN1 BIT(16)"
+.LASF2651:
+ .string "TIMER_DMAINTEN_BRKIE BIT(7)"
+.LASF2478:
+ .string "SPI_CTL1_ERRIE BIT(5)"
+.LASF2933:
+ .string "TIMER_ETP_RISING ((uint32_t)0x00000000U)"
+.LASF908:
+ .string "CAN_TSTAT_MTE1 BIT(11)"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF498:
+ .string "OB_BASE ((uint32_t)0x1FFFF800U)"
+.LASF1547:
+ .string "OB_DEEPSLEEP_RST ((uint8_t)0x00U)"
+.LASF1615:
+ .string "AFIO_EXTISS1 REG32(AFIO + 0x0CU)"
+.LASF2256:
+ .string "CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF863:
+ .string "CAN_F20DATA1(canx) REG32((canx) + 0x2E4U)"
+.LASF3367:
+ .string "_RAND48_MULT_0 (0xe66d)"
+.LASF2979:
+ .string "USART_CTL1_LBLEN BIT(5)"
+.LASF3728:
+ .string "MATCH_LB 0x3"
+.LASF2073:
+ .string "WFI_CMD ((uint8_t)0x00U)"
+.LASF2105:
+ .string "RCU_CFG0_SCSS BITS(2,3)"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF815:
+ .string "CAN_F0DATA0(canx) REG32((canx) + 0x240U)"
+.LASF2636:
+ .string "TIMER_CTL1_ISO3 BIT(14)"
+.LASF619:
+ .string "ADC_CONTINUOUS_MODE ADC_CTL1_CTN"
+.LASF3520:
+ .string "SSTATUS_UIE 0x00000001"
+.LASF2371:
+ .string "RCU_PREDV1_DIV15 CFG1_PREDV1(14)"
+.LASF1917:
+ .string "I2C_SADDR1_ADDRESS2 BITS(1,7)"
+.LASF2504:
+ .string "SPI_I2SPSC_MCKOEN BIT(9)"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF1831:
+ .string "GPIO_PIN_SOURCE_9 ((uint8_t)0x09U)"
+.LASF3348:
+ .string "__LOCK_INIT(class,lock) static int lock = 0;"
+.LASF3929:
+ .string "MASK_FCVT_LU_D 0xfff0007f"
+.LASF2884:
+ .string "TIMER_OC_CLEAR_ENABLE ((uint16_t)0x0080U)"
+.LASF1962:
+ .string "I2C_ACK_ENABLE ((uint32_t)0x00000001U)"
+.LASF1813:
+ .string "GPIO_EVENT_PIN_7 ((uint8_t)0x07U)"
+.LASF2193:
+ .string "RCU_APB1EN_TIMER5EN BIT(4)"
+.LASF966:
+ .string "CAN_TMDATA0_DB2 BITS(16,23)"
+.LASF731:
+ .string "BKP_DATA19 REG16((BKP) + 0x64U)"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF934:
+ .string "CAN_INTEN_RFNEIE1 BIT(4)"
+.LASF2098:
+ .string "RCU_CTL_PLLEN BIT(24)"
+.LASF3764:
+ .string "MATCH_DIVU 0x2005033"
+.LASF1342:
+ .string "EXMC_SNCTL_NRWTPOL BIT(9)"
+.LASF4407:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\env_Eclipse\\init.c"
+.LASF1946:
+ .string "I2C_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF1269:
+ .string "DMA_CHXCTL_HTFIE BIT(2)"
+.LASF2790:
+ .string "TIMER_DMACFG_DMATA_CREP DMACFG_DMATA(12)"
+.LASF518:
+ .string "GPIO_BASE (APB2_BUS_BASE + 0x00000800U)"
+.LASF2905:
+ .string "TIMER_SMCFG_TRGSEL_CI1FE1 SMCFG_TRGSEL(6)"
+.LASF3503:
+ .string "MSTATUS_SIE 0x00000002"
+.LASF1528:
+ .string "FMC_REG_VAL(offset) (REG32(FMC + ((uint32_t)(offset) >> 6)))"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF2863:
+ .string "TIMER_CCXN_DISABLE ((uint16_t)0x0000U)"
+.LASF737:
+ .string "BKP_DATA25 REG16((BKP) + 0x7CU)"
+.LASF2646:
+ .string "TIMER_DMAINTEN_CH1IE BIT(2)"
+.LASF4148:
+ .string "CSR_SSCRATCH 0x140"
+.LASF3186:
+ .string "__IEEE_LITTLE_ENDIAN "
+.LASF2233:
+ .string "RCU_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF869:
+ .string "CAN_F26DATA1(canx) REG32((canx) + 0x314U)"
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF3735:
+ .string "MASK_LD 0x707f"
+.LASF2326:
+ .string "RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)"
+.LASF3150:
+ .string "ECLIC_INT_ATTR_OFFSET _AC(0x1002,UL)"
+.LASF4009:
+ .string "MASK_C_SW 0xe003"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF2794:
+ .string "TIMER_DMACFG_DMATA_CH3CV DMACFG_DMATA(16)"
+.LASF341:
+ .string "_STDINT_H "
+.LASF1430:
+ .string "EXTI_FTEN_FTEN3 BIT(3)"
+.LASF419:
+ .string "_INTPTR_T_DECLARED "
+.LASF1125:
+ .string "GD32VF103_DAC_H "
+.LASF2843:
+ .string "TIMER_IOS_STATE_ENABLE ((uint16_t)TIMER_CCHP_IOS)"
+.LASF1884:
+ .string "I2C_SADDR0(i2cx) REG32((i2cx) + 0x08U)"
+.LASF1024:
+ .string "GET_RFIFOMI_EFID(regval) GET_BITS((uint32_t)(regval), 3U, 31U)"
+.LASF2111:
+ .string "RCU_CFG0_PREDV0_LSB BIT(17)"
+.LASF4065:
+ .string "MASK_CUSTOM0_RS1 0x707f"
+.LASF354:
+ .string "__ISO_C_VISIBLE 2011"
+.LASF4371:
+ .string "USART1_IRQn"
+.LASF2382:
+ .string "RCU_PLL1_MUL16 CFG1_PLL1MF(14)"
+.LASF1032:
+ .string "GET_RFIFOMDATA1_DB4(regval) GET_BITS((uint32_t)(regval), 0U, 7U)"
+.LASF3971:
+ .string "MASK_FMADD_D 0x600007f"
+.LASF2648:
+ .string "TIMER_DMAINTEN_CH3IE BIT(4)"
+.LASF3645:
+ .string "swap_csr(reg,val) ({ unsigned long __tmp; if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(val)); else asm volatile (\"csrrw %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(val)); __tmp; })"
+.LASF3887:
+ .string "MASK_FSGNJX_D 0xfe00707f"
+.LASF3508:
+ .string "MSTATUS_HPIE 0x00000040"
+.LASF3227:
+ .string "__GNUCLIKE___TYPEOF 1"
+.LASF2801:
+ .string "TIMER_DMACFG_DMATC_4TRANSFER DMACFG_DMATC(3)"
+.LASF2374:
+ .string "RCU_PLL1_MUL8 CFG1_PLL1MF(6)"
+.LASF3026:
+ .string "CTL1_STB(regval) (BITS(12,13) & ((uint32_t)(regval) << 12))"
+.LASF3256:
+ .string "__dead2 __attribute__((__noreturn__))"
+.LASF2780:
+ .string "TIMER_DMACFG_DMATA_SMCFG DMACFG_DMATA(2)"
+.LASF1479:
+ .string "EXTI_PD_PD14 BIT(14)"
+.LASF1213:
+ .string "DAC_ALIGN_8B_R DATA_ALIGN(2)"
+.LASF2187:
+ .string "RCU_APB2EN_SPI0EN BIT(12)"
+.LASF2968:
+ .string "USART_CTL0_IDLEIE BIT(4)"
+.LASF2416:
+ .string "RTC_ALRMH REG32(RTC + 0x20U)"
+.LASF1167:
+ .string "DACC_L12DH_DAC1_DH BITS(20,31)"
+.LASF962:
+ .string "CAN_TMP_TSEN BIT(8)"
+.LASF3818:
+ .string "MATCH_AMOSWAP_D 0x800302f"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF3157:
+ .string "ECLIC_ADDR_BASE 0xd2000000"
+.LASF3858:
+ .string "MATCH_FMUL_S 0x10000053"
+.LASF1982:
+ .string "I2C_SALTSEND_DISABLE ((uint32_t)0x00000000U)"
+.LASF2519:
+ .string "SPI_CK_PL_LOW_PH_1EDGE ((uint32_t)0x00000000U)"
+.LASF4016:
+ .string "MATCH_C_LI 0x4001"
+.LASF4238:
+ .string "CSR_MHARTID 0xf14"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF2377:
+ .string "RCU_PLL1_MUL11 CFG1_PLL1MF(9)"
+.LASF725:
+ .string "BKP_DATA13 REG16((BKP) + 0x4CU)"
+.LASF1878:
+ .string "GPIO_EXMC_NADV_REMAP ((uint32_t)0x80000400U)"
+.LASF730:
+ .string "BKP_DATA18 REG16((BKP) + 0x60U)"
+.LASF1008:
+ .string "BT_BS2(regval) (BITS(20,22) & ((uint32_t)(regval) << 20))"
+.LASF2815:
+ .string "TIMER_DMACFG_DMATC_18TRANSFER DMACFG_DMATC(17)"
+.LASF4286:
+ .string "CSR_MHPMCOUNTER16H 0xb90"
+.LASF692:
+ .string "ADC_OVERSAMPLING_SHIFT_NONE OVSCR_OVSS(0)"
+.LASF1992:
+ .string "FWDGT FWDGT_BASE"
+.LASF1422:
+ .string "EXTI_RTEN_RTEN14 BIT(14)"
+.LASF3278:
+ .string "__restrict restrict"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF1682:
+ .string "GPIO_OCTL_OCTL15 BIT(15)"
+.LASF1933:
+ .string "I2C_STAT1_MASTER BIT(0)"
+.LASF3059:
+ .string "WWDGT WWDGT_BASE"
+.LASF4243:
+ .string "CSR_HPMCOUNTER4H 0xc84"
+.LASF3001:
+ .string "USART_REG_VAL(usartx,offset) (REG32((usartx) + (((uint32_t)(offset) & (0x0000FFFFU)) >> 6)))"
+.LASF2321:
+ .string "RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)"
+.LASF474:
+ .string "PTRDIFF_MAX (__PTRDIFF_MAX__)"
+.LASF930:
+ .string "CAN_INTEN_TMEIE BIT(0)"
+.LASF1270:
+ .string "DMA_CHXCTL_ERRIE BIT(3)"
+.LASF2419:
+ .string "RTC_INTEN_ALRMIE BIT(1)"
+.LASF2902:
+ .string "TIMER_SMCFG_TRGSEL_ITI3 SMCFG_TRGSEL(3)"
+.LASF3524:
+ .string "SSTATUS_SPP 0x00000100"
+.LASF2338:
+ .string "RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)"
+.LASF3609:
+ .string "IRQ_H_SOFT 2"
+.LASF4115:
+ .string "CSR_INSTRET 0xc02"
+.LASF4048:
+ .string "MATCH_C_LWSP 0x4002"
+.LASF2145:
+ .string "RCU_APB2RST_PERST BIT(6)"
+.LASF4030:
+ .string "MATCH_C_OR 0x8c41"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF3324:
+ .string "__requires_unlocked(...) __lock_annotate(locks_excluded(__VA_ARGS__))"
+.LASF1848:
+ .string "GPIO_PIN_10 BIT(10)"
+.LASF876:
+ .string "CAN_FDATA1(canx,bank) REG32((canx) + 0x240U + ((bank) * 0x8U) + 0x4U)"
+.LASF4100:
+ .string "MATCH_CUSTOM3_RS1 0x207b"
+.LASF803:
+ .string "CAN_RFIFOMP0(canx) REG32((canx) + 0x1B4U)"
+.LASF2167:
+ .string "RCU_APB1RST_CAN1RST BIT(26)"
+.LASF4385:
+ .string "DMA1_Channel2_IRQn"
+.LASF4261:
+ .string "CSR_HPMCOUNTER22H 0xc96"
+.LASF2923:
+ .string "TIMER_SLAVE_MODE_EVENT SMCFG_SMC(6)"
+.LASF3848:
+ .string "MATCH_CSRRWI 0x5073"
+.LASF3843:
+ .string "MASK_CSRRW 0x707f"
+.LASF793:
+ .string "CAN_TMDATA10(canx) REG32((canx) + 0x18CU)"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF482:
+ .string "INT16_C(x) __INT16_C(x)"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF1646:
+ .string "GPIO_CTL1_CTL13 BITS(22, 23)"
+.LASF4066:
+ .string "MATCH_CUSTOM0_RS1_RS2 0x300b"
+.LASF3718:
+ .string "MATCH_ADDW 0x3b"
+.LASF1871:
+ .string "GPIO_PD01_REMAP ((uint32_t)0x00008000U)"
+.LASF2087:
+ .string "RCU_AHBRST REG32(RCU + 0x28U)"
+.LASF928:
+ .string "CAN_RFIFO1_RFO1 BIT(4)"
+.LASF1604:
+ .string "AFIO AFIO_BASE"
+.LASF4174:
+ .string "CSR_MINSTRET 0xb02"
+.LASF1355:
+ .string "SNCTL_NRTP(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))"
+.LASF843:
+ .string "CAN_F0DATA1(canx) REG32((canx) + 0x244U)"
+.LASF1719:
+ .string "GPIO_BC_CR4 BIT(4)"
+.LASF1221:
+ .string "DAC_TRIANGLE_AMPLITUDE_255 DAC_WAVE_BIT_WIDTH_8"
+.LASF2630:
+ .string "TIMER_CTL1_ISO0 BIT(8)"
+.LASF3261:
+ .string "__aligned(x) __attribute__((__aligned__(x)))"
+.LASF3116:
+ .string "_WCHAR_T_H "
+.LASF3588:
+ .string "MIE_HSIE MIP_HSIP"
+.LASF2032:
+ .string "DBG_CTL_CAN0_HOLD BIT(14)"
+.LASF2489:
+ .string "SPI_STAT_FERR BIT(8)"
+.LASF3803:
+ .string "MASK_AMOADD_D 0xf800707f"
+.LASF4282:
+ .string "CSR_MHPMCOUNTER12H 0xb8c"
+.LASF4173:
+ .string "CSR_MCYCLE 0xb00"
+.LASF2919:
+ .string "TIMER_ENCODER_MODE1 SMCFG_SMC(2)"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF2887:
+ .string "TIMER_UPDATECTL_CCUTRI TIMER_CTL1_CCUC"
+.LASF544:
+ .string "ADC_ISQ(adcx) REG32((adcx) + 0x38U)"
+.LASF2462:
+ .string "SPI_CTL0_PSC BITS(3,5)"
+.LASF3498:
+ .string "STDIN_FILENO 0"
+.LASF963:
+ .string "CAN_TMP_TS BITS(16,31)"
+.LASF584:
+ .string "ADC_WDHT_WDHT BITS(0,11)"
+.LASF3938:
+ .string "MATCH_FCVT_S_L 0xd0200053"
+.LASF3262:
+ .string "__section(x) __attribute__((__section__(x)))"
+.LASF3823:
+ .string "MASK_SC_D 0xf800707f"
+.LASF2218:
+ .string "RCU_RSTSCK_EPRSTF BIT(26)"
+.LASF3554:
+ .string "MCONTROL_TIMING (1<<18)"
+.LASF3064:
+ .string "WWDGT_CTL_WDGTEN BIT(7)"
+.LASF4358:
+ .string "TIMER0_UP_IRQn"
+.LASF3093:
+ .string "_T_SIZE "
+.LASF3349:
+ .string "__LOCK_INIT_RECURSIVE(class,lock) static int lock = 0;"
+.LASF481:
+ .string "UINT8_C(x) __UINT8_C(x)"
+.LASF779:
+ .string "GD32VF103_CAN_H "
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF1969:
+ .string "I2C_GCEN_ENABLE I2C_CTL0_GCEN"
+.LASF1771:
+ .string "AFIO_EXTI5_SS BITS(4, 7)"
+.LASF749:
+ .string "BKP_DATA37 REG16((BKP) + 0xACU)"
+.LASF1906:
+ .string "I2C_CTL1_I2CCLK BITS(0,5)"
+.LASF508:
+ .string "FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)"
+.LASF646:
+ .string "ADC_SAMPLETIME_239POINT5 SAMPTX_SPT(7)"
+.LASF1305:
+ .string "DMA_PERIPH_INCREASE_DISABLE ((uint8_t)0x00U)"
+.LASF1783:
+ .string "GPIO_MODE_SET(n,mode) ((uint32_t)((uint32_t)(mode) << (4U * (n))))"
+.LASF1152:
+ .string "DAC_CTL_DTSEL1 BITS(19,21)"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF4067:
+ .string "MASK_CUSTOM0_RS1_RS2 0x707f"
+.LASF3376:
+ .ascii "_REENT_INIT(var) { 0, _REENT_STDIO_STREAM(&(var), 0), _REENT"
+ .ascii "_STDIO_STREAM(&(var), 1), _REENT_STDIO_STREAM(&(var), 2), 0,"
+ .ascii " \"\", 0, _NULL, 0, _NULL, _NULL, 0, _NULL, _NULL, 0, _NULL,"
+ .ascii " { { 0, _NULL, \"\", {0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, {"
+ .string " {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, _RAND48_ADD }, {0, {0}}, {0, {0}}, {0, {0}}, \"\", \"\", 0, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}}, {0, {0}} } }, _REENT_INIT_ATEXIT _NULL, {_NULL, 0, _NULL} }"
+.LASF1303:
+ .string "DMA_PERIPHERAL_TO_MEMORY ((uint8_t)0x00U)"
+.LASF764:
+ .string "BKP_TPCS_TER BIT(0)"
+.LASF2922:
+ .string "TIMER_SLAVE_MODE_PAUSE SMCFG_SMC(5)"
+.LASF2627:
+ .string "TIMER_CTL1_DMAS BIT(3)"
+.LASF495:
+ .string "GET_BITS(regval,start,end) (((regval) & BITS((start),(end))) >> (start))"
+.LASF2954:
+ .string "USART_STAT_ORERR BIT(3)"
+.LASF825:
+ .string "CAN_F10DATA0(canx) REG32((canx) + 0x290U)"
+.LASF2017:
+ .string "FWDGT_FLAG_RUD FWDGT_STAT_RUD"
+.LASF2408:
+ .string "RTC_INTEN REG32(RTC + 0x00U)"
+.LASF3885:
+ .string "MASK_FSGNJN_D 0xfe00707f"
+.LASF461:
+ .string "UINT_FAST16_MAX (__UINT_FAST16_MAX__)"
+.LASF1590:
+ .string "OB_WP_28 ((uint32_t)0x10000000U)"
+.LASF2383:
+ .string "RCU_PLL1_MUL20 CFG1_PLL1MF(15)"
+.LASF3482:
+ .string "_stdout_r(x) ((x)->_stdout)"
+.LASF1996:
+ .string "FWDGT_STAT REG32((FWDGT) + 0x0000000CU)"
+.LASF3451:
+ .string "__SRD 0x0004"
+.LASF671:
+ .string "ADC_CHANNEL_11 ((uint8_t)0x0BU)"
+.LASF1672:
+ .string "GPIO_OCTL_OCTL5 BIT(5)"
+.LASF2716:
+ .string "TIMER_CHCTL2_CH2P BIT(9)"
+.LASF810:
+ .string "CAN_FCTL(canx) REG32((canx) + 0x200U)"
+.LASF1129:
+ .string "DAC_CTL REG32(DAC + 0x00U)"
+.LASF1230:
+ .string "DMA_INTC(dmax) REG32((dmax) + 0x04U)"
+.LASF2742:
+ .string "TIMER_INT_CH1 TIMER_DMAINTEN_CH1IE"
+.LASF2834:
+ .string "TIMER_CKDIV_DIV1 CTL0_CKDIV(0)"
+.LASF2878:
+ .string "TIMER_OC_MODE_PWM0 ((uint16_t)0x0060U)"
+.LASF3918:
+ .string "MATCH_FMV_X_S 0xe0000053"
+.LASF1494:
+ .string "FMC_WP REG32((FMC) + 0x20U)"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF2046:
+ .string "PMU_CTL_LDOLP BIT(0)"
+.LASF3678:
+ .string "MATCH_SLTIU 0x3013"
+.LASF864:
+ .string "CAN_F21DATA1(canx) REG32((canx) + 0x2ECU)"
+.LASF3661:
+ .string "MASK_BLTU 0x707f"
+.LASF3106:
+ .string "__wchar_t__ "
+.LASF2314:
+ .string "RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))"
+.LASF4308:
+ .string "CSR_PUSHMCAUSE 0x7EE"
+.LASF4255:
+ .string "CSR_HPMCOUNTER16H 0xc90"
+.LASF2398:
+ .string "RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF2827:
+ .string "TIMER_COUNTER_CENTER_UP CTL0_CAM(2)"
+.LASF3914:
+ .string "MATCH_FCVT_L_S 0xc0200053"
+.LASF1516:
+ .string "FMC_CTL_OBWEN BIT(9)"
+.LASF890:
+ .string "CAN_CTL_DFZ BIT(16)"
+.LASF3584:
+ .string "MIP_SEIP (1 << IRQ_S_EXT)"
+.LASF3608:
+ .string "IRQ_S_SOFT 1"
+.LASF1399:
+ .string "EXTI_EVEN_EVEN10 BIT(10)"
+.LASF979:
+ .string "CAN_RFIFOMDATA0_DB0 BITS(0,7)"
+.LASF1676:
+ .string "GPIO_OCTL_OCTL9 BIT(9)"
+.LASF909:
+ .string "CAN_TSTAT_MST1 BIT(15)"
+.LASF3080:
+ .string "_T_PTRDIFF "
+.LASF1860:
+ .string "GPIO_USART2_FULL_REMAP ((uint32_t)0x00140030U)"
+.LASF3169:
+ .string "_STDIO_H_ "
+.LASF644:
+ .string "ADC_SAMPLETIME_55POINT5 SAMPTX_SPT(5)"
+.LASF502:
+ .string "APB2_BUS_BASE ((uint32_t)0x40010000U)"
+.LASF534:
+ .string "ADC_SAMPT1(adcx) REG32((adcx) + 0x10U)"
+.LASF4047:
+ .string "MASK_C_FLDSP 0xe003"
+.LASF3861:
+ .string "MASK_FDIV_S 0xfe00007f"
+.LASF2060:
+ .string "PMU_LVDT_2 CTL_LVDT(2)"
+.LASF1740:
+ .string "GPIO_LOCK_LK9 BIT(9)"
+.LASF3100:
+ .string "_SIZE_T_DECLARED "
+.LASF2474:
+ .string "SPI_CTL1_DMATEN BIT(1)"
+.LASF607:
+ .string "ADC_MODE_FREE CTL0_SYNCM(0)"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF762:
+ .string "BKP_TPCTL_TPEN BIT(0)"
+.LASF2348:
+ .string "RCU_PREDV0_DIV9 CFG1_PREDV0(8)"
+.LASF3871:
+ .string "MASK_FMAX_S 0xfe00707f"
+.LASF3924:
+ .string "MATCH_FCVT_WU_D 0xc2100053"
+.LASF3088:
+ .string "__size_t__ "
+.LASF4328:
+ .string "CLIC_INT_RESERVED"
+.LASF2588:
+ .string "I2S_FLAG_FERR SPI_STAT_FERR"
+.LASF603:
+ .string "CTL0_DISNUM(regval) (BITS(13,15) & ((uint32_t)(regval) << 13))"
+.LASF2836:
+ .string "TIMER_CKDIV_DIV4 CTL0_CKDIV(2)"
+.LASF4024:
+ .string "MATCH_C_ANDI 0x8801"
+.LASF2352:
+ .string "RCU_PREDV0_DIV13 CFG1_PREDV0(12)"
+.LASF3748:
+ .string "MATCH_SD 0x3023"
+.LASF775:
+ .string "TAMPER_PIN_ACTIVE_HIGH ((uint16_t)0x0000U)"
+.LASF3515:
+ .string "MSTATUS_PUM 0x00040000"
+.LASF3995:
+ .string "MASK_C_LDSP 0xe003"
+.LASF1219:
+ .string "DAC_TRIANGLE_AMPLITUDE_63 DAC_WAVE_BIT_WIDTH_6"
+.LASF690:
+ .string "ADC_OVERSAMPLING_ONE_CONVERT 1"
+.LASF4217:
+ .string "CSR_MHPMEVENT14 0x32e"
+.LASF2948:
+ .string "USART_CTL1(usartx) REG32((usartx) + (0x00000010U))"
+.LASF3357:
+ .string "__lock_try_acquire_recursive(lock) ((void) 0)"
+.LASF1281:
+ .string "DMA_CHXMADDR_MADDR BITS(0,31)"
+.LASF3745:
+ .string "MASK_SH 0x707f"
+.LASF1237:
+ .string "DMA_CH1PADDR(dmax) REG32((dmax) + 0x24U)"
+.LASF1971:
+ .string "I2C_SRESET_SET I2C_CTL0_SRESET"
+.LASF505:
+ .string "TIMER_BASE (APB1_BUS_BASE + 0x00000000U)"
+.LASF942:
+ .string "CAN_INTEN_WIE BIT(16)"
+.LASF1383:
+ .string "EXTI_INTEN_INTEN13 BIT(13)"
+.LASF1818:
+ .string "GPIO_EVENT_PIN_12 ((uint8_t)0x0CU)"
+.LASF2840:
+ .string "TIMER_UPDATE_SRC_GLOBAL ((uint32_t)0x00000000U)"
+.LASF1451:
+ .string "EXTI_SWIEV_SWIEV5 BIT(5)"
+.LASF3433:
+ .string "_KEY_T_DECLARED "
+.LASF3715:
+ .string "MASK_SRLIW 0xfe00707f"
+.LASF465:
+ .string "INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)"
+.LASF1466:
+ .string "EXTI_PD_PD1 BIT(1)"
+.LASF3142:
+ .string "_BITUL(x) (_AC(1,UL) << (x))"
+.LASF1060:
+ .string "CAN_BT_BS1_4TQ ((uint8_t)0x03U)"
+.LASF3760:
+ .string "MATCH_MULHU 0x2003033"
+.LASF3446:
+ .string "_NEWLIB_STDIO_H "
+.LASF3710:
+ .string "MATCH_ADDIW 0x1b"
+.LASF1630:
+ .string "GPIO_CTL0_CTL5 BITS(22, 23)"
+.LASF4151:
+ .string "CSR_SBADADDR 0x143"
+.LASF2023:
+ .string "DBG_CTL_SLP_HOLD BIT(0)"
+.LASF1905:
+ .string "I2C_CTL0_SRESET BIT(15)"
+.LASF2617:
+ .string "TIMER_CTL0_CEN BIT(0)"
+.LASF2200:
+ .string "RCU_APB1EN_UART3EN BIT(19)"
+.LASF666:
+ .string "ADC_CHANNEL_6 ((uint8_t)0x06U)"
+.LASF915:
+ .string "CAN_TSTAT_NUM BITS(24,25)"
+.LASF4203:
+ .string "CSR_MHPMCOUNTER31 0xb1f"
+.LASF789:
+ .string "CAN_BT(canx) REG32((canx) + 0x1CU)"
+.LASF1991:
+ .string "GD32VF103_FWDGT_H "
+.LASF4390:
+ .string "CAN1_RX1_IRQn"
+.LASF1147:
+ .string "DAC_CTL_DWBW0 BITS(8,11)"
+.LASF1386:
+ .string "EXTI_INTEN_INTEN16 BIT(16)"
+.LASF425:
+ .string "__int_fast8_t_defined 1"
+.LASF620:
+ .string "CTL1_ETSRC(regval) (BITS(17,19) & ((uint32_t)(regval) << 17))"
+.LASF2901:
+ .string "TIMER_SMCFG_TRGSEL_ITI2 SMCFG_TRGSEL(2)"
+.LASF2083:
+ .string "RCU_APB2EN REG32(RCU + 0x18U)"
+.LASF2809:
+ .string "TIMER_DMACFG_DMATC_12TRANSFER DMACFG_DMATC(11)"
+.LASF625:
+ .string "ADC0_1_EXTTRIG_REGULAR_T2_TRGO CTL1_ETSRC(4)"
+.LASF1283:
+ .string "DMA_CHCTL(dma,channel) REG32(((dma) + 0x08U) + 0x14U * (uint32_t)(channel))"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1611:
+ .string "GPIO_LOCK(gpiox) REG32((gpiox) + 0x18U)"
+.LASF2587:
+ .string "I2S_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1025:
+ .string "GET_RFIFOMI_SFID(regval) GET_BITS((uint32_t)(regval), 21U, 31U)"
+.LASF3077:
+ .string "_ANSI_STDDEF_H "
+.LASF1746:
+ .string "GPIO_LOCK_LK15 BIT(15)"
+.LASF4075:
+ .string "MASK_CUSTOM1 0x707f"
+.LASF3422:
+ .string "_TIME_T_DECLARED "
+.LASF3177:
+ .string "_MB_LEN_MAX 1"
+.LASF440:
+ .string "UINT16_MAX (__UINT16_MAX__)"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF1510:
+ .string "FMC_CTL_PER BIT(1)"
+.LASF3108:
+ .string "_WCHAR_T "
+.LASF2423:
+ .string "RTC_CTL_OVIF BIT(2)"
+.LASF838:
+ .string "CAN_F23DATA0(canx) REG32((canx) + 0x3F8U)"
+.LASF3147:
+ .string "ECLIC_MTH_OFFSET 0xB"
+.LASF1858:
+ .string "GPIO_USART1_REMAP ((uint32_t)0x00000008U)"
+.LASF2101:
+ .string "RCU_CTL_PLL1STB BIT(27)"
+.LASF1733:
+ .string "GPIO_LOCK_LK2 BIT(2)"
+.LASF2554:
+ .string "I2S_STD_PHILLIPS I2SCTL_I2SSTD(0)"
+.LASF1582:
+ .string "OB_WP_20 ((uint32_t)0x00100000U)"
+.LASF491:
+ .string "REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))"
+.LASF1331:
+ .string "__SEV eclic_send_event"
+.LASF1033:
+ .string "GET_RFIFOMDATA1_DB5(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF1134:
+ .string "DAC1_R12DH REG32(DAC + 0x14U)"
+.LASF837:
+ .string "CAN_F22DATA0(canx) REG32((canx) + 0x2F0U)"
+.LASF2970:
+ .string "USART_CTL0_TCIE BIT(6)"
+.LASF1020:
+ .string "TMDATA1_DB4(regval) (BITS(0,7) & ((uint32_t)(regval) << 0))"
+.LASF4063:
+ .string "MASK_CUSTOM0 0x707f"
+.LASF1879:
+ .string "GD32VF103_I2C_H "
+.LASF2420:
+ .string "RTC_INTEN_OVIE BIT(2)"
+.LASF2842:
+ .string "TIMER_ROS_STATE_DISABLE ((uint16_t)0x0000U)"
+.LASF4256:
+ .string "CSR_HPMCOUNTER17H 0xc91"
+.LASF3839:
+ .string "MASK_SFENCE_VM 0xfff07fff"
+.LASF3470:
+ .string "BUFSIZ 1024"
+.LASF3922:
+ .string "MATCH_FCVT_W_D 0xc2000053"
+.LASF1350:
+ .string "EXMC_SNCTL(region) REG32(EXMC + 0x08U * (region))"
+.LASF2384:
+ .string "CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1726:
+ .string "GPIO_BC_CR11 BIT(11)"
+.LASF3964:
+ .string "MATCH_FMSUB_S 0x47"
+.LASF1805:
+ .string "GPIO_PORT_SOURCE_GPIOE ((uint8_t)0x04U)"
+.LASF4267:
+ .string "CSR_HPMCOUNTER28H 0xc9c"
+.LASF4168:
+ .string "CSR_TDATA2 0x7a2"
+.LASF3930:
+ .string "MATCH_FMV_X_D 0xe2000053"
+.LASF2396:
+ .string "RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL"
+.LASF2312:
+ .string "RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))"
+.LASF2138:
+ .string "RCU_INT_PLL2STBIC BIT(22)"
+.LASF3865:
+ .string "MASK_FSGNJN_S 0xfe00707f"
+.LASF484:
+ .string "INT32_C(x) __INT32_C(x)"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF3387:
+ .string "_REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed)"
+.LASF1650:
+ .string "GPIO_CTL1_CTL15 BITS(30, 31)"
+.LASF3969:
+ .string "MASK_FNMADD_S 0x600007f"
+.LASF3280:
+ .string "__predict_false(exp) __builtin_expect((exp), 0)"
+.LASF710:
+ .string "GD32VF103_BKP_H "
+.LASF2258:
+ .string "RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)"
+.LASF2479:
+ .string "SPI_CTL1_RBNEIE BIT(6)"
+.LASF3589:
+ .string "MIE_MSIE MIP_MSIP"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF4188:
+ .string "CSR_MHPMCOUNTER16 0xb10"
+.LASF3974:
+ .string "MATCH_FNMSUB_D 0x200004b"
+.LASF1686:
+ .string "GPIO_BOP_BOP3 BIT(3)"
+.LASF2108:
+ .string "RCU_CFG0_APB2PSC BITS(11,13)"
+.LASF3097:
+ .string "_SIZE_T_DEFINED_ "
+.LASF736:
+ .string "BKP_DATA24 REG16((BKP) + 0x78U)"
+.LASF1729:
+ .string "GPIO_BC_CR14 BIT(14)"
+.LASF2163:
+ .string "RCU_APB1RST_UART4RST BIT(20)"
+.LASF4359:
+ .string "TIMER0_TRG_CMT_IRQn"
+.LASF4177:
+ .string "CSR_MHPMCOUNTER5 0xb05"
+.LASF4327:
+ .string "CAUSE_MACHINE_ECALL 0xb"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF2609:
+ .string "TIMER_CREP(timerx) REG32((timerx) + 0x30U)"
+.LASF2341:
+ .string "RCU_PREDV0_DIV2 CFG1_PREDV0(1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF3687:
+ .string "MASK_ORI 0x707f"
+.LASF1249:
+ .string "DMA_CH4PADDR(dmax) REG32((dmax) + 0x60U)"
+.LASF2657:
+ .string "TIMER_DMAINTEN_CMTDEN BIT(13)"
+.LASF3360:
+ .string "_ATEXIT_SIZE 32"
+.LASF3583:
+ .string "MIP_MTIP (1 << IRQ_M_TIMER)"
+.LASF352:
+ .string "__BSD_VISIBLE 0"
+.LASF740:
+ .string "BKP_DATA28 REG16((BKP) + 0x88U)"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF2977:
+ .string "USART_CTL0_UEN BIT(13)"
+.LASF3019:
+ .string "USART_PM_ODD CTL0_PM(3)"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF2281:
+ .string "RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)"
+.LASF652:
+ .string "ADC_REGULAR_CHANNEL ((uint8_t)0x01U)"
+.LASF1035:
+ .string "GET_RFIFOMDATA1_DB7(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF3561:
+ .string "MCONTROL_U (1<<3)"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF3057:
+ .string "USART_IRLP_NORMAL CTL2_IRLP(0)"
+.LASF3840:
+ .string "MATCH_WFI 0x10500073"
+.LASF1179:
+ .string "DAC_TRIGGER_EXTI_9 CTL_DTSEL(6)"
+.LASF1703:
+ .string "GPIO_BOP_CR4 BIT(20)"
+.LASF2838:
+ .string "TIMER_SP_MODE_REPETITIVE ((uint32_t)0x00000000U)"
+.LASF4002:
+ .string "MATCH_C_LW 0x4000"
+.LASF4230:
+ .string "CSR_MHPMEVENT27 0x33b"
+.LASF4214:
+ .string "CSR_MHPMEVENT11 0x32b"
+.LASF2389:
+ .string "RCU_PLL2_MUL12 CFG1_PLL2MF(10)"
+.LASF2604:
+ .string "TIMER_CHCTL1(timerx) REG32((timerx) + 0x1CU)"
+.LASF3390:
+ .string "_REENT_MP_RESULT(ptr) ((ptr)->_result)"
+.LASF3486:
+ .string "__sgetc_r(__ptr,__p) __sgetc_raw_r(__ptr, __p)"
+.LASF2228:
+ .string "RCU_CFG1_PLL2MF BITS(12,15)"
+.LASF3351:
+ .string "__lock_init_recursive(lock) ((void) 0)"
+.LASF3022:
+ .string "USART_WM_ADDR CTL0_WM(1)"
+.LASF395:
+ .string "__INT64 \"ll\""
+.LASF1979:
+ .string "I2C_PECTRANS_ENABLE I2C_CTL0_PECTRANS"
+.LASF3148:
+ .string "ECLIC_INT_IP_OFFSET _AC(0x1000,UL)"
+.LASF3400:
+ .string "_REENT_WCTOMB_STATE(ptr) ((ptr)->_new._reent._wctomb_state)"
+.LASF1126:
+ .string "DAC DAC_BASE"
+.LASF4393:
+ .string "ECLIC_NUM_INTERRUPTS"
+.LASF1473:
+ .string "EXTI_PD_PD8 BIT(8)"
+.LASF4170:
+ .string "CSR_DCSR 0x7b0"
+.LASF975:
+ .string "CAN_RFIFOMI_SFID BITS(21,31)"
+.LASF406:
+ .string "_UINT8_T_DECLARED "
+.LASF993:
+ .string "CAN_FDATA_FD(regval) BIT(regval)"
+.LASF2492:
+ .string "SPI_RCRC_RCRC BITS(0,15)"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1077:
+ .string "CAN_BT_BS2_5TQ ((uint8_t)0x04U)"
+.LASF1263:
+ .string "DMA_INTC_GIFC BIT(0)"
+.LASF2571:
+ .string "SPI_INT_FLAG_CONFERR ((uint8_t)0x03U)"
+.LASF2035:
+ .string "DBG_CTL_TIMER4_HOLD BIT(18)"
+.LASF2508:
+ .string "SPI_BIDIRECTIONAL_RECEIVE (~SPI_CTL0_BDOEN)"
+.LASF1549:
+ .string "OB_STDBY_RST ((uint8_t)0x00U)"
+.LASF2207:
+ .string "RCU_APB1EN_PMUEN BIT(28)"
+.LASF3440:
+ .string "_TIMER_T_DECLARED "
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF4347:
+ .string "DMA0_Channel3_IRQn"
+.LASF4377:
+ .string "TIMER4_IRQn"
+.LASF728:
+ .string "BKP_DATA16 REG16((BKP) + 0x58U)"
+.LASF659:
+ .string "ADC_INSERTED_CHANNEL_3 ((uint8_t)0x03U)"
+.LASF2724:
+ .string "TIMER_CREP_CREP BITS(0,7)"
+.LASF1439:
+ .string "EXTI_FTEN_FTEN12 BIT(12)"
+.LASF718:
+ .string "BKP_DATA6 REG16((BKP) + 0x1CU)"
+.LASF1014:
+ .string "TMI_EFID(regval) (BITS(3,31) & ((uint32_t)(regval) << 3))"
+.LASF583:
+ .string "ADC_IOFFX_IOFF BITS(0,11)"
+.LASF1935:
+ .string "I2C_STAT1_TR BIT(2)"
+.LASF2811:
+ .string "TIMER_DMACFG_DMATC_14TRANSFER DMACFG_DMATC(13)"
+.LASF4029:
+ .string "MASK_C_XOR 0xfc63"
+.LASF3722:
+ .string "MATCH_SLLW 0x103b"
+.LASF802:
+ .string "CAN_RFIFOMI0(canx) REG32((canx) + 0x1B0U)"
+.LASF446:
+ .string "UINT32_MAX (__UINT32_MAX__)"
+.LASF1306:
+ .string "DMA_PERIPH_INCREASE_ENABLE ((uint8_t)0x01U)"
+.LASF1005:
+ .string "ERR_REG_OFFSET ((uint8_t)0x18U)"
+.LASF1997:
+ .string "FWDGT_CTL_CMD BITS(0,15)"
+.LASF3577:
+ .string "MCONTROL_MATCH_MASK_HIGH 5"
+.LASF609:
+ .string "ADC_DAUL_REGULAL_PARALLEL_INSERTED_ROTATION CTL0_SYNCM(2)"
+.LASF739:
+ .string "BKP_DATA27 REG16((BKP) + 0x84U)"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF3500:
+ .string "STDERR_FILENO 2"
+.LASF2879:
+ .string "TIMER_OC_MODE_PWM1 ((uint16_t)0x0070U)"
+.LASF1989:
+ .string "I2C_ADDFORMAT_7BITS ((uint32_t)0x00000000U)"
+.LASF990:
+ .string "CAN_FSCFG_FS(regval) BIT(regval)"
+.LASF1585:
+ .string "OB_WP_23 ((uint32_t)0x00800000U)"
+.LASF558:
+ .string "ADC_CTL0_WDEIE BIT(6)"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF560:
+ .string "ADC_CTL0_SM BIT(8)"
+.LASF1009:
+ .string "BT_SJW(regval) (BITS(24,25) & ((uint32_t)(regval) << 24))"
+.LASF727:
+ .string "BKP_DATA15 REG16((BKP) + 0x54U)"
+.LASF3915:
+ .string "MASK_FCVT_L_S 0xfff0007f"
+.LASF3522:
+ .string "SSTATUS_UPIE 0x00000010"
+.LASF554:
+ .string "ADC_STAT_STIC BIT(3)"
+.LASF2445:
+ .string "RTC_FLAG_LWOF RTC_CTL_LWOFF"
+.LASF745:
+ .string "BKP_DATA33 REG16((BKP) + 0x9CU)"
+.LASF4098:
+ .string "MATCH_CUSTOM3 0x7b"
+.LASF4086:
+ .string "MATCH_CUSTOM2 0x5b"
+.LASF817:
+ .string "CAN_F2DATA0(canx) REG32((canx) + 0x250U)"
+.LASF2149:
+ .string "RCU_APB2RST_SPI0RST BIT(12)"
+.LASF3156:
+ .string "ECLIC_INT_CTRL_OFFSET _AC(0x1003,UL)"
+.LASF334:
+ .string "HXTAL_VALUE_25M HXTAL_VALUE"
+.LASF1857:
+ .string "GPIO_USART0_REMAP ((uint32_t)0x00000004U)"
+.LASF2429:
+ .string "RTC_DIVH_DIV BITS(0,3)"
+.LASF598:
+ .string "ADC_FLAG_WDE ADC_STAT_WDE"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF1915:
+ .string "I2C_SADDR0_ADDFORMAT BIT(15)"
+.LASF468:
+ .string "INTMAX_MAX (__INTMAX_MAX__)"
+.LASF390:
+ .string "_INTPTR_EQ_INT "
+.LASF649:
+ .string "WDLT_WDLT(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF2343:
+ .string "RCU_PREDV0_DIV4 CFG1_PREDV0(3)"
+.LASF2137:
+ .string "RCU_INT_PLL1STBIC BIT(21)"
+.LASF897:
+ .string "CAN_STAT_RS BIT(9)"
+.LASF4201:
+ .string "CSR_MHPMCOUNTER29 0xb1d"
+.LASF1598:
+ .string "GD32VF103_GPIO_H "
+.LASF3598:
+ .string "PRV_U 0"
+.LASF1395:
+ .string "EXTI_EVEN_EVEN6 BIT(6)"
+.LASF1827:
+ .string "GPIO_PIN_SOURCE_5 ((uint8_t)0x05U)"
+.LASF3114:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF2331:
+ .string "RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)"
+.LASF4240:
+ .string "CSR_TIMEH 0xc81"
+.LASF799:
+ .string "CAN_TMP2(canx) REG32((canx) + 0x1A4U)"
+.LASF1809:
+ .string "GPIO_EVENT_PIN_3 ((uint8_t)0x03U)"
+.LASF2005:
+ .string "FWDGT_PSC_DIV16 ((uint8_t)PSC_PSC(2))"
+.LASF691:
+ .string "OVSCR_OVSS(regval) (BITS(5,8) & ((uint32_t)(regval) << 5))"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF1413:
+ .string "EXTI_RTEN_RTEN5 BIT(5)"
+.LASF2195:
+ .string "RCU_APB1EN_WWDGTEN BIT(11)"
+.LASF3731:
+ .string "MASK_LH 0x707f"
+.LASF3536:
+ .string "DCSR_EBREAKU (1<<12)"
+.LASF3303:
+ .string "__DECONST(type,var) ((type)(__uintptr_t)(const void *)(var))"
+.LASF3127:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF2785:
+ .string "TIMER_DMACFG_DMATA_CHCTL1 DMACFG_DMATA(7)"
+.LASF1489:
+ .string "FMC_OBKEY REG32((FMC) + 0x08U)"
+.LASF2812:
+ .string "TIMER_DMACFG_DMATC_15TRANSFER DMACFG_DMATC(14)"
+.LASF379:
+ .string "__int20"
+.LASF2898:
+ .string "SMCFG_TRGSEL(regval) (BITS(4, 6) & ((uint32_t)(regval) << 4U))"
+.LASF2062:
+ .string "PMU_LVDT_4 CTL_LVDT(4)"
+.LASF733:
+ .string "BKP_DATA21 REG16((BKP) + 0x6CU)"
+.LASF738:
+ .string "BKP_DATA26 REG16((BKP) + 0x80U)"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF1762:
+ .string "AFIO_PCF0_TIMER4CH3_IREMAP BIT(16)"
+.LASF2395:
+ .string "RCU_PREDV0SRC_HXTAL ((uint32_t)0x00000000U)"
+.LASF797:
+ .string "CAN_TMDATA11(canx) REG32((canx) + 0x19CU)"
+.LASF1324:
+ .string "DMA_CHANNEL_CNT_MASK DMA_CHXCNT_CNT"
+.LASF2190:
+ .string "RCU_APB1EN_TIMER2EN BIT(1)"
+.LASF3616:
+ .string "IRQ_M_EXT 11"
+.LASF2406:
+ .string "GD32VF103_RTC_H "
+.LASF4104:
+ .string "MATCH_CUSTOM3_RD 0x407b"
+.LASF1085:
+ .string "CAN_FF_STANDARD ((uint32_t)0x00000000U)"
+.LASF1657:
+ .string "GPIO_ISTAT_ISTAT6 BIT(6)"
+.LASF2067:
+ .string "PMU_FLAG_STANDBY PMU_CS_STBF"
+.LASF1252:
+ .string "DMA_CH5CNT(dmax) REG32((dmax) + 0x70U)"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF2463:
+ .string "SPI_CTL0_SPIEN BIT(6)"
+.LASF590:
+ .string "ADC_IDATAX_IDATAN BITS(0,15)"
+.LASF2717:
+ .string "TIMER_CHCTL2_CH2NEN BIT(10)"
+.LASF4341:
+ .string "EXTI2_IRQn"
+.LASF1138:
+ .string "DACC_L12DH REG32(DAC + 0x24U)"
+.LASF1378:
+ .string "EXTI_INTEN_INTEN8 BIT(8)"
+.LASF1843:
+ .string "GPIO_PIN_5 BIT(5)"
+.LASF2701:
+ .string "TIMER_CHCTL1_CH3COMCTL BITS(12,14)"
+.LASF3370:
+ .string "_RAND48_ADD (0x000b)"
+.LASF3014:
+ .string "USART_TRANSMIT_ENABLE CTL0_TEN(1)"
+.LASF522:
+ .string "FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)"
+.LASF3781:
+ .string "MASK_AMOADD_W 0xf800707f"
+.LASF2488:
+ .string "SPI_STAT_TRANS BIT(7)"
+.LASF904:
+ .string "CAN_TSTAT_MST0 BIT(7)"
+.LASF2446:
+ .string "GD32VF103_SPI_H "
+.LASF332:
+ .string "__IO volatile"
+.LASF3709:
+ .string "MASK_AND 0xfe00707f"
+.LASF2124:
+ .string "RCU_INT_CKMIF BIT(7)"
+.LASF3763:
+ .string "MASK_DIV 0xfe00707f"
+.LASF1117:
+ .string "GD32VF103_CRC_H "
+.LASF751:
+ .string "BKP_DATA39 REG16((BKP) + 0xB4U)"
+.LASF1580:
+ .string "OB_WP_18 ((uint32_t)0x00040000U)"
+.LASF1193:
+ .string "DAC_WAVE_BIT_WIDTH_8 DWBW(7)"
+.LASF1278:
+ .string "DMA_CHXCTL_M2M BIT(14)"
+.LASF3791:
+ .string "MASK_AMOMAX_W 0xf800707f"
+.LASF4397:
+ .string "short int"
+.LASF3340:
+ .string "unsigned signed"
+.LASF2580:
+ .string "SPI_FLAG_TRANS SPI_STAT_TRANS"
+.LASF1297:
+ .string "DMA_FLAG_FTF DMA_INTF_FTFIF"
+.LASF1925:
+ .string "I2C_STAT0_TBE BIT(7)"
+.LASF4247:
+ .string "CSR_HPMCOUNTER8H 0xc88"
+.LASF1030:
+ .string "GET_RFIFOMDATA0_DB2(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF3604:
+ .string "VM_MBBID 2"
+.LASF1574:
+ .string "OB_WP_12 ((uint32_t)0x00001000U)"
+.LASF3732:
+ .string "MATCH_LW 0x2003"
+.LASF1404:
+ .string "EXTI_EVEN_EVEN15 BIT(15)"
+.LASF3121:
+ .string "_BSD_WCHAR_T_"
+.LASF3860:
+ .string "MATCH_FDIV_S 0x18000053"
+.LASF3719:
+ .string "MASK_ADDW 0xfe00707f"
+.LASF3780:
+ .string "MATCH_AMOADD_W 0x202f"
+.LASF3113:
+ .string "_BSD_WCHAR_T_ "
+.LASF2094:
+ .string "RCU_CTL_HXTALEN BIT(16)"
+.LASF2186:
+ .string "RCU_APB2EN_TIMER0EN BIT(11)"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF3469:
+ .string "EOF (-1)"
+.LASF3499:
+ .string "STDOUT_FILENO 1"
+.LASF1209:
+ .string "DAC_LFSR_BITS11_0 DAC_WAVE_BIT_WIDTH_12"
+.LASF2795:
+ .string "TIMER_DMACFG_DMATA_CCHP DMACFG_DMATA(17)"
+.LASF4137:
+ .string "CSR_HPMCOUNTER24 0xc18"
+.LASF3089:
+ .string "__SIZE_T__ "
+.LASF3746:
+ .string "MATCH_SW 0x2023"
+.LASF4070:
+ .string "MATCH_CUSTOM0_RD_RS1 0x600b"
+.LASF1983:
+ .string "I2C_ARP_ENABLE I2C_CTL0_ARPEN"
+.LASF1999:
+ .string "FWDGT_RLD_RLD BITS(0,11)"
+.LASF1866:
+ .string "GPIO_TIMER2_PARTIAL_REMAP ((uint32_t)0x001A0800U)"
+.LASF2209:
+ .string "RCU_BDCTL_LXTALEN BIT(0)"
+.LASF3751:
+ .string "MASK_FENCE 0x707f"
+.LASF3670:
+ .string "MATCH_AUIPC 0x17"
+.LASF2158:
+ .string "RCU_APB1RST_SPI1RST BIT(14)"
+.LASF3765:
+ .string "MASK_DIVU 0xfe00707f"
+.LASF2345:
+ .string "RCU_PREDV0_DIV6 CFG1_PREDV0(5)"
+.LASF2183:
+ .string "RCU_APB2EN_PEEN BIT(6)"
+.LASF1800:
+ .string "GPIO_EVENT_PORT_GPIOE ((uint8_t)0x04U)"
+.LASF2484:
+ .string "SPI_STAT_TXURERR BIT(3)"
+.LASF1333:
+ .string "EXMC (EXMC_BASE)"
+.LASF1050:
+ .string "CAN_LOOPBACK_MODE ((uint8_t)0x01U)"
+.LASF384:
+ .string "char +0"
+.LASF4323:
+ .string "CAUSE_FAULT_STORE 0x7"
+.LASF1710:
+ .string "GPIO_BOP_CR11 BIT(27)"
+.LASF1154:
+ .string "DAC_CTL_DWBW1 BITS(24,27)"
+.LASF3786:
+ .string "MATCH_AMOAND_W 0x6000202f"
+.LASF1007:
+ .string "BT_BS1(regval) (BITS(16,19) & ((uint32_t)(regval) << 16))"
+.LASF3853:
+ .string "MASK_CSRRCI 0x707f"
+.LASF444:
+ .string "INT32_MIN (-__INT32_MAX__ - 1)"
+.LASF4310:
+ .string "CSR_PUSHMSUBM 0x7EB"
+.LASF2656:
+ .string "TIMER_DMAINTEN_CH3DEN BIT(12)"
+.LASF750:
+ .string "BKP_DATA38 REG16((BKP) + 0xB0U)"
+.LASF512:
+ .string "CAN_BASE (APB1_BUS_BASE + 0x00006400U)"
+.LASF2072:
+ .string "PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)"
+.LASF2360:
+ .string "RCU_PREDV1_DIV4 CFG1_PREDV1(3)"
+.LASF2472:
+ .string "SPI_CTL0_BDEN BIT(15)"
+.LASF3175:
+ .string "_WANT_IO_LONG_DOUBLE 1"
+.LASF4081:
+ .string "MASK_CUSTOM1_RD 0x707f"
+.LASF3063:
+ .string "WWDGT_CTL_CNT BITS(0,6)"
+.LASF1411:
+ .string "EXTI_RTEN_RTEN3 BIT(3)"
+.LASF2230:
+ .string "RCU_CFG1_I2S1SEL BIT(17)"
+.LASF1493:
+ .string "FMC_OBSTAT REG32((FMC) + 0x1CU)"
+.LASF3416:
+ .string "_SYS_TYPES_H "
+.LASF1784:
+ .string "GPIO_MODE_MASK(n) (0xFU << (4U * (n)))"
+.LASF2860:
+ .string "TIMER_CCX_ENABLE ((uint16_t)0x0001U)"
+.LASF1661:
+ .string "GPIO_ISTAT_ISTAT10 BIT(10)"
+.LASF567:
+ .string "ADC_CTL0_IWDEN BIT(22)"
+.LASF4084:
+ .string "MATCH_CUSTOM1_RD_RS1_RS2 0x702b"
+.LASF2861:
+ .string "TIMER_CCX_DISABLE ((uint16_t)0x0000U)"
+.LASF1371:
+ .string "EXTI_INTEN_INTEN1 BIT(1)"
+.LASF3932:
+ .string "MATCH_FCLASS_D 0xe2001053"
+.LASF369:
+ .string "___int_least16_t_defined 1"
+.LASF2868:
+ .string "TIMER_OC_IDLE_STATE_HIGH ((uint16_t)0x0100)"
+.LASF702:
+ .string "ADC_OVERSAMPLING_RATIO_MUL2 OVSCR_OVSR(0)"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF3872:
+ .string "MATCH_FSQRT_S 0x58000053"
+.LASF4019:
+ .string "MASK_C_LUI 0xe003"
+.LASF1258:
+ .string "DMA_CH6MADDR(dmax) REG32((dmax) + 0x8CU)"
+.LASF2967:
+ .string "USART_CTL0_TEN BIT(3)"
+.LASF2358:
+ .string "RCU_PREDV1_DIV2 CFG1_PREDV1(1)"
+.LASF3152:
+ .string "ECLIC_INT_ATTR_TRIG_LEVEL 0x00"
+.LASF3796:
+ .string "MATCH_AMOSWAP_W 0x800202f"
+.LASF2874:
+ .string "TIMER_OC_MODE_INACTIVE ((uint16_t)0x0020U)"
+.LASF1513:
+ .string "FMC_CTL_OBER BIT(5)"
+.LASF1073:
+ .string "CAN_BT_BS2_1TQ ((uint8_t)0x00U)"
+.LASF807:
+ .string "CAN_RFIFOMP1(canx) REG32((canx) + 0x1C4U)"
+.LASF2055:
+ .string "PMU_CS_LVDF BIT(2)"
+.LASF3652:
+ .string "MATCH_BEQ 0x63"
+.LASF925:
+ .string "CAN_RFIFO0_RFD0 BIT(5)"
+.LASF3024:
+ .string "USART_WL_8BIT CTL0_WL(0)"
+.LASF3151:
+ .string "ECLIC_INT_ATTR_SHV 0x01"
+.LASF3030:
+ .string "USART_STB_1_5BIT CTL1_STB(3)"
+.LASF3557:
+ .string "MCONTROL_MATCH (0xf<<7)"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF3120:
+ .string "_WCHAR_T_DECLARED "
+.LASF2247:
+ .string "CFG1_REG_OFFSET 0x2CU"
+.LASF3990:
+ .string "MATCH_C_SD 0xe000"
+.LASF2804:
+ .string "TIMER_DMACFG_DMATC_7TRANSFER DMACFG_DMATC(6)"
+.LASF561:
+ .string "ADC_CTL0_WDSC BIT(9)"
+.LASF704:
+ .string "ADC_OVERSAMPLING_RATIO_MUL8 OVSCR_OVSR(2)"
+.LASF3209:
+ .string "__DOTS , ..."
+.LASF366:
+ .string "___int32_t_defined 1"
+.LASF2090:
+ .string "RCU_CTL_IRC8MEN BIT(0)"
+.LASF1181:
+ .string "CTL_DWM(regval) (BITS(6,7) & ((uint32_t)(regval) << 6))"
+.LASF3949:
+ .string "MASK_FCVT_D_L 0xfff0007f"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF3537:
+ .string "DCSR_STOPCYCLE (1<<10)"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF3243:
+ .string "__CC_SUPPORTS___FUNC__ 1"
+.LASF633:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_CH0 CTL1_ETSIC(3)"
+.LASF3199:
+ .string "_LONG_DOUBLE long double"
+.LASF1621:
+ .string "GPIO_CTL0_MD1 BITS(4, 5)"
+.LASF4164:
+ .string "CSR_MBADADDR 0x343"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF2856:
+ .string "TIMER_CH_0 ((uint16_t)0x0000U)"
+.LASF2164:
+ .string "RCU_APB1RST_I2C0RST BIT(21)"
+.LASF2283:
+ .string "RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)"
+.LASF4380:
+ .string "UART4_IRQn"
+.LASF2136:
+ .string "RCU_INT_PLLSTBIC BIT(20)"
+.LASF1769:
+ .string "AFIO_EXTI3_SS BITS(12, 15)"
+.LASF2893:
+ .string "TIMER_IC_SELECTION_ITS ((uint16_t)0x0003U)"
+.LASF1613:
+ .string "AFIO_PCF0 REG32(AFIO + 0x04U)"
+.LASF632:
+ .string "ADC0_1_EXTTRIG_INSERTED_T1_TRGO CTL1_ETSIC(2)"
+.LASF3984:
+ .string "MATCH_C_JALR 0x9002"
+.LASF4295:
+ .string "CSR_MHPMCOUNTER25H 0xb99"
+.LASF3294:
+ .string "__weak_reference(sym,alias) __asm__(\".weak \" #alias); __asm__(\".equ \" #alias \", \" #sym)"
+.LASF492:
+ .string "REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))"
+.LASF4273:
+ .string "CSR_MHPMCOUNTER3H 0xb83"
+.LASF906:
+ .string "CAN_TSTAT_MTFNERR1 BIT(9)"
+.LASF2012:
+ .string "FWDGT_KEY_RELOAD ((uint16_t)0xAAAAU)"
+.LASF1691:
+ .string "GPIO_BOP_BOP8 BIT(8)"
+.LASF2509:
+ .string "SPI_TRANSMODE_FULLDUPLEX ((uint32_t)0x00000000U)"
+.LASF3359:
+ .string "__lock_release_recursive(lock) ((void) 0)"
+.LASF2632:
+ .string "TIMER_CTL1_ISO1 BIT(10)"
+.LASF2920:
+ .string "TIMER_ENCODER_MODE2 SMCFG_SMC(3)"
+.LASF3406:
+ .string "_REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf)"
+.LASF422:
+ .string "__int_least16_t_defined 1"
+.LASF1168:
+ .string "DACC_R8DH_DAC0_DH BITS(0,7)"
+.LASF2347:
+ .string "RCU_PREDV0_DIV8 CFG1_PREDV0(7)"
+.LASF3111:
+ .string "__WCHAR_T "
+.LASF3543:
+ .string "DCSR_PRV (3<<0)"
+.LASF408:
+ .string "_INT16_T_DECLARED "
+.LASF3966:
+ .string "MATCH_FNMSUB_S 0x4b"
+.LASF3461:
+ .string "__SOFF 0x1000"
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF1188:
+ .string "DAC_WAVE_BIT_WIDTH_3 DWBW(2)"
+.LASF1045:
+ .string "CAN_ERRN_5 ERR_ERRN(5U)"
+.LASF3640:
+ .string "RISCV_PGSIZE (1 << RISCV_PGSHIFT)"
+.LASF918:
+ .string "CAN_TSTAT_TME2 BIT(28)"
+.LASF4287:
+ .string "CSR_MHPMCOUNTER17H 0xb91"
+.LASF1723:
+ .string "GPIO_BC_CR8 BIT(8)"
+.LASF2697:
+ .string "TIMER_CHCTL1_CH2COMCEN BIT(7)"
+.LASF2276:
+ .string "RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF4003:
+ .string "MASK_C_LW 0xe003"
+.LASF4399:
+ .string "long int"
+.LASF614:
+ .string "ADC_DAUL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(7)"
+.LASF2237:
+ .string "APB1EN_REG_OFFSET 0x1CU"
+.LASF1889:
+ .string "I2C_CKCFG(i2cx) REG32((i2cx) + 0x1CU)"
+.LASF2582:
+ .string "I2S_FLAG_RBNE SPI_STAT_RBNE"
+.LASF4027:
+ .string "MASK_C_SUB 0xfc63"
+.LASF3862:
+ .string "MATCH_FSGNJ_S 0x20000053"
+.LASF3420:
+ .string "_CLOCK_T_DECLARED "
+.LASF2297:
+ .string "RCU_PLL_MUL11 CFG0_PLLMF(9)"
+.LASF1362:
+ .string "GD32VF103_EXTI_H "
+.LASF4361:
+ .string "TIMER1_IRQn"
+.LASF1756:
+ .string "AFIO_PCF0_TIMER0_REMAP BITS(6, 7)"
+.LASF3925:
+ .string "MASK_FCVT_WU_D 0xfff0007f"
+.LASF1340:
+ .string "EXMC_SNCTL_NRW BITS(4,5)"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF3560:
+ .string "MCONTROL_S (1<<4)"
+.LASF3015:
+ .string "USART_TRANSMIT_DISABLE CTL0_TEN(0)"
+.LASF2196:
+ .string "RCU_APB1EN_SPI1EN BIT(14)"
+.LASF4378:
+ .string "SPI2_IRQn"
+.LASF4167:
+ .string "CSR_TDATA1 0x7a1"
+.LASF880:
+ .string "CAN_RFIFOMDATA1(canx,bank) REG32((canx) + 0x1BCU + ((bank) * 0x10U))"
+.LASF2708:
+ .string "TIMER_CHCTL2_CH0P BIT(1)"
+.LASF391:
+ .string "_INT32_EQ_LONG "
+.LASF1069:
+ .string "CAN_BT_BS1_13TQ ((uint8_t)0x0CU)"
+.LASF3958:
+ .string "MATCH_FSW 0x2027"
+.LASF1928:
+ .string "I2C_STAT0_AERR BIT(10)"
+.LASF2319:
+ .string "CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))"
+.LASF2869:
+ .string "TIMER_OC_IDLE_STATE_LOW ((uint16_t)0x0000)"
+.LASF535:
+ .string "ADC_IOFF0(adcx) REG32((adcx) + 0x14U)"
+.LASF1384:
+ .string "EXTI_INTEN_INTEN14 BIT(14)"
+.LASF907:
+ .string "CAN_TSTAT_MAL1 BIT(10)"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF2045:
+ .string "PMU_CS REG32((PMU) + 0x04U)"
+.LASF4206:
+ .string "CSR_MHPMEVENT3 0x323"
+.LASF597:
+ .string "ADC_OVSCR_DRES BITS(12,13)"
+.LASF2376:
+ .string "RCU_PLL1_MUL10 CFG1_PLL1MF(8)"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF2088:
+ .string "RCU_CFG1 REG32(RCU + 0x2CU)"
+.LASF1311:
+ .string "DMA_PERIPHERAL_WIDTH_16BIT CHCTL_PWIDTH(1U)"
+.LASF2877:
+ .string "TIMER_OC_MODE_HIGH ((uint16_t)0x0050U)"
+.LASF685:
+ .string "ADC_RESOLUTION_12B OVSCR_DRES(0)"
+.LASF2883:
+ .string "TIMER_OC_FAST_DISABLE ((uint16_t)0x0000)"
+.LASF4326:
+ .string "CAUSE_HYPERVISOR_ECALL 0xa"
+.LASF1795:
+ .string "GPIO_OSPEED_50MHZ ((uint8_t)0x03U)"
+.LASF686:
+ .string "ADC_RESOLUTION_10B OVSCR_DRES(1)"
+.LASF2241:
+ .string "APB2RST_REG_OFFSET 0x0CU"
+.LASF2994:
+ .string "USART_CTL2_DENT BIT(7)"
+.LASF2796:
+ .string "TIMER_DMACFG_DMATA_DMACFG DMACFG_DMATA(18)"
+.LASF2483:
+ .string "SPI_STAT_I2SCH BIT(2)"
+.LASF3792:
+ .string "MATCH_AMOMINU_W 0xc000202f"
+.LASF3012:
+ .string "USART_RECEIVE_DISABLE CTL0_REN(0)"
+.LASF2631:
+ .string "TIMER_CTL1_ISO0N BIT(9)"
+.LASF3944:
+ .string "MATCH_FCVT_D_W 0xd2000053"
+.LASF2685:
+ .string "TIMER_CHCTL0_CH1COMFEN BIT(10)"
+.LASF2817:
+ .string "TIMER_EVENT_SRC_CH0G ((uint16_t)0x0002U)"
+.LASF662:
+ .string "ADC_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF3067:
+ .string "WWDGT_CFG_EWIE BIT(9)"
+.LASF1853:
+ .string "GPIO_PIN_15 BIT(15)"
+.LASF4271:
+ .string "CSR_MCYCLEH 0xb80"
+.LASF3778:
+ .string "MATCH_REMUW 0x200703b"
+.LASF3483:
+ .string "_stderr_r(x) ((x)->_stderr)"
+.LASF1527:
+ .string "FMC_REGIDX_BIT(regidx,bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))"
+.LASF3704:
+ .string "MATCH_SRA 0x40005033"
+.LASF1103:
+ .string "CAN_INT_TME CAN_INTEN_TMEIE"
+.LASF516:
+ .string "AFIO_BASE (APB2_BUS_BASE + 0x00000000U)"
+.LASF1895:
+ .string "I2C_CTL0_ARPEN BIT(4)"
+.LASF2362:
+ .string "RCU_PREDV1_DIV6 CFG1_PREDV1(5)"
+.LASF2160:
+ .string "RCU_APB1RST_USART1RST BIT(17)"
+.LASF1924:
+ .string "I2C_STAT0_RBNE BIT(6)"
+.LASF2393:
+ .string "RCU_PLL2_MUL16 CFG1_PLL2MF(14)"
+.LASF1684:
+ .string "GPIO_BOP_BOP1 BIT(1)"
+.LASF2764:
+ .string "TIMER_FLAG_CH0O TIMER_INTF_CH0OF"
+.LASF707:
+ .string "ADC_OVERSAMPLING_RATIO_MUL64 OVSCR_OVSR(5)"
+.LASF1042:
+ .string "CAN_ERRN_2 ERR_ERRN(2U)"
+.LASF1617:
+ .string "AFIO_EXTISS3 REG32(AFIO + 0x14U)"
+.LASF1444:
+ .string "EXTI_FTEN_FTEN17 BIT(17)"
+.LASF2287:
+ .string "CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))"
+.LASF2386:
+ .string "RCU_PLL2_MUL9 CFG1_PLL2MF(7)"
+.LASF4108:
+ .string "MATCH_CUSTOM3_RD_RS1_RS2 0x707b"
+.LASF2117:
+ .string "RCU_INT_IRC40KSTBIF BIT(0)"
+.LASF2589:
+ .string "GD32VF103_TIMER_H "
+.LASF1017:
+ .string "TMDATA0_DB1(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2036:
+ .string "DBG_CTL_TIMER5_HOLD BIT(19)"
+.LASF3076:
+ .string "_STDDEF_H_ "
+.LASF4062:
+ .string "MATCH_CUSTOM0 0xb"
+.LASF721:
+ .string "BKP_DATA9 REG16((BKP) + 0x28U)"
+.LASF3424:
+ .string "__caddr_t_defined "
+.LASF3539:
+ .string "DCSR_CAUSE (7<<6)"
+.LASF3221:
+ .string "__has_extension __has_feature"
+.LASF4220:
+ .string "CSR_MHPMEVENT17 0x331"
+.LASF4234:
+ .string "CSR_MHPMEVENT31 0x33f"
+.LASF3164:
+ .string "ECLIC_GROUP_LEVEL0_PRIO4 0"
+.LASF2686:
+ .string "TIMER_CHCTL0_CH1COMSEN BIT(11)"
+.LASF840:
+ .string "CAN_F25DATA0(canx) REG32((canx) + 0x308U)"
+.LASF4264:
+ .string "CSR_HPMCOUNTER25H 0xc99"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF1716:
+ .string "GPIO_BC_CR1 BIT(1)"
+.LASF2085:
+ .string "RCU_BDCTL REG32(RCU + 0x20U)"
+.LASF989:
+ .string "CAN_FMCFG_FMOD(regval) BIT(regval)"
+.LASF2079:
+ .string "RCU_INT REG32(RCU + 0x08U)"
+.LASF3960:
+ .string "MATCH_FSD 0x3027"
+.LASF2584:
+ .string "I2S_FLAG_CH SPI_STAT_I2SCH"
+.LASF2197:
+ .string "RCU_APB1EN_SPI2EN BIT(15)"
+.LASF4106:
+ .string "MATCH_CUSTOM3_RD_RS1 0x607b"
+.LASF920:
+ .string "CAN_TSTAT_TMLS1 BIT(30)"
+.LASF478:
+ .string "WINT_MAX (__WINT_MAX__)"
+.LASF855:
+ .string "CAN_F12DATA1(canx) REG32((canx) + 0x2A4U)"
+.LASF3188:
+ .string "__OBSOLETE_MATH __OBSOLETE_MATH_DEFAULT"
+.LASF4229:
+ .string "CSR_MHPMEVENT26 0x33a"
+.LASF1015:
+ .string "TMI_SFID(regval) (BITS(21,31) & ((uint32_t)(regval) << 21))"
+.LASF861:
+ .string "CAN_F18DATA1(canx) REG32((canx) + 0x2D4U)"
+.LASF1564:
+ .string "OB_WP_2 ((uint32_t)0x00000004U)"
+.LASF3068:
+ .string "WWDGT_STAT_EWIF BIT(0)"
+.LASF1782:
+ .string "AFIO_PCF1_EXMC_NADV BIT(10)"
+.LASF2221:
+ .string "RCU_RSTSCK_FWDGTRSTF BIT(29)"
+.LASF4171:
+ .string "CSR_DPC 0x7b1"
+.LASF1477:
+ .string "EXTI_PD_PD12 BIT(12)"
+.LASF1022:
+ .string "TMDATA1_DB6(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF1801:
+ .string "GPIO_PORT_SOURCE_GPIOA ((uint8_t)0x00U)"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF3596:
+ .string "SIP_SSIP MIP_SSIP"
+.LASF2733:
+ .string "TIMER_CCHP_BRKEN BIT(12)"
+.LASF2128:
+ .string "RCU_INT_HXTALSTBIE BIT(11)"
+.LASF3898:
+ .string "MATCH_FLE_S 0xa0000053"
+.LASF3901:
+ .string "MASK_FLT_S 0xfe00707f"
+.LASF563:
+ .string "ADC_CTL0_DISRC BIT(11)"
+.LASF3660:
+ .string "MATCH_BLTU 0x6063"
+.LASF3595:
+ .string "MIE_MEIE MIP_MEIP"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF2336:
+ .string "RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)"
+.LASF4054:
+ .string "MATCH_C_ADD 0x9002"
+.LASF1234:
+ .string "DMA_CH0MADDR(dmax) REG32((dmax) + 0x14U)"
+.LASF814:
+ .string "CAN_FW(canx) REG32((canx) + 0x21CU)"
+.LASF1752:
+ .string "AFIO_PCF0_I2C0_REMAP BIT(1)"
+.LASF2605:
+ .string "TIMER_CHCTL2(timerx) REG32((timerx) + 0x20U)"
+.LASF2936:
+ .string "TIMER_CHVSEL_ENABLE ((uint16_t)TIMER_CFG_OUTSEL)"
+.LASF3897:
+ .string "MASK_FSQRT_D 0xfff0007f"
+.LASF2330:
+ .string "RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)"
+.LASF3573:
+ .string "MCONTROL_MATCH_NAPOT 1"
+.LASF2567:
+ .string "SPI_I2S_INT_ERR ((uint8_t)0x02U)"
+.LASF3210:
+ .string "__THROW "
+.LASF806:
+ .string "CAN_RFIFOMI1(canx) REG32((canx) + 0x1C0U)"
+.LASF1470:
+ .string "EXTI_PD_PD5 BIT(5)"
+.LASF1420:
+ .string "EXTI_RTEN_RTEN12 BIT(12)"
+.LASF830:
+ .string "CAN_F15DATA0(canx) REG32((canx) + 0x2B8U)"
+.LASF4105:
+ .string "MASK_CUSTOM3_RD 0x707f"
+.LASF4348:
+ .string "DMA0_Channel4_IRQn"
+.LASF1680:
+ .string "GPIO_OCTL_OCTL13 BIT(13)"
+.LASF3827:
+ .string "MASK_EBREAK 0xffffffff"
+.LASF1939:
+ .string "I2C_STAT1_DUMODF BIT(7)"
+.LASF530:
+ .string "ADC_STAT(adcx) REG32((adcx) + 0x00U)"
+.LASF720:
+ .string "BKP_DATA8 REG16((BKP) + 0x24U)"
+.LASF3032:
+ .string "USART_LBLEN_10B CTL1_LBLEN(0)"
+.LASF427:
+ .string "__int_fast32_t_defined 1"
+.LASF1669:
+ .string "GPIO_OCTL_OCTL2 BIT(2)"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF1593:
+ .string "OB_WP_31 ((uint32_t)0x80000000U)"
+.LASF1166:
+ .string "DACC_L12DH_DAC0_DH BITS(4,15)"
+.LASF3587:
+ .string "MIE_SSIE MIP_SSIP"
+.LASF3948:
+ .string "MATCH_FCVT_D_L 0xd2200053"
+.LASF4200:
+ .string "CSR_MHPMCOUNTER28 0xb1c"
+.LASF1044:
+ .string "CAN_ERRN_4 ERR_ERRN(4U)"
+.LASF3339:
+ .string "__size_t"
+.LASF3774:
+ .string "MATCH_DIVUW 0x200503b"
+.LASF3018:
+ .string "USART_PM_EVEN CTL0_PM(2)"
+.LASF3926:
+ .string "MATCH_FCVT_L_D 0xc2200053"
+.LASF955:
+ .string "CAN_BT_SCMOD BIT(31)"
+.LASF4180:
+ .string "CSR_MHPMCOUNTER8 0xb08"
+.LASF2691:
+ .string "TIMER_CHCTL0_CH1CAPPSC BITS(10,11)"
+.LASF3761:
+ .string "MASK_MULHU 0xfe00707f"
+.LASF2022:
+ .string "DBG_ID_ID_CODE BITS(0,31)"
+.LASF724:
+ .string "BKP_DATA12 REG16((BKP) + 0x48U)"
+.LASF4144:
+ .string "CSR_HPMCOUNTER31 0xc1f"
+.LASF3779:
+ .string "MASK_REMUW 0xfe00707f"
+.LASF1140:
+ .string "DAC0_DO REG32(DAC + 0x2CU)"
+.LASF2427:
+ .string "RTC_PSCH_PSC BITS(0,3)"
+.LASF1171:
+ .string "DAC1_DO_DAC1_DO BITS(0,11)"
+.LASF1417:
+ .string "EXTI_RTEN_RTEN9 BIT(9)"
+.LASF719:
+ .string "BKP_DATA7 REG16((BKP) + 0x20U)"
+.LASF2257:
+ .string "RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)"
+.LASF2061:
+ .string "PMU_LVDT_3 CTL_LVDT(3)"
+.LASF1544:
+ .string "OB_FWDGT_SW ((uint8_t)0x01U)"
+.LASF4283:
+ .string "CSR_MHPMCOUNTER13H 0xb8d"
+.LASF1330:
+ .string "ECLIC_PRIGROUP_LEVEL4_PRIO0 4"
+.LASF4212:
+ .string "CSR_MHPMEVENT9 0x329"
+.LASF2641:
+ .string "TIMER_SMCFG_ETPSC BITS(12,13)"
+.LASF452:
+ .string "UINT64_MAX (__UINT64_MAX__)"
+.LASF1918:
+ .string "I2C_DATA_TRB BITS(0,7)"
+.LASF3468:
+ .string "_IONBF 2"
+.LASF1987:
+ .string "I2C_DTCY_2 ((uint32_t)0x00000000U)"
+.LASF1578:
+ .string "OB_WP_16 ((uint32_t)0x00010000U)"
+.LASF1737:
+ .string "GPIO_LOCK_LK6 BIT(6)"
+.LASF3217:
+ .string "__flexarr [0]"
+.LASF735:
+ .string "BKP_DATA23 REG16((BKP) + 0x74U)"
+.LASF3946:
+ .string "MATCH_FCVT_D_WU 0xd2100053"
+.LASF3511:
+ .string "MSTATUS_MPP 0x00001800"
+.LASF4041:
+ .string "MASK_C_BEQZ 0xe003"
+.LASF3854:
+ .string "MATCH_FADD_S 0x53"
+.LASF4252:
+ .string "CSR_HPMCOUNTER13H 0xc8d"
+.LASF3146:
+ .string "ECLIC_INFO_OFFSET 0x4"
+.LASF883:
+ .string "CAN_CTL_TFO BIT(2)"
+.LASF3782:
+ .string "MATCH_AMOXOR_W 0x2000202f"
+.LASF2262:
+ .string "RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)"
+.LASF2731:
+ .string "TIMER_CCHP_IOS BIT(10)"
+.LASF3140:
+ .string "_AC(X,Y) (X ##Y)"
+.LASF1773:
+ .string "AFIO_EXTI7_SS BITS(12, 15)"
+.LASF2524:
+ .string "SPI_PSC_2 CTL0_PSC(0)"
+.LASF895:
+ .string "CAN_STAT_SLPIF BIT(4)"
+.LASF3200:
+ .string "_ATTRIBUTE(attrs) __attribute__ (attrs)"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF2947:
+ .string "USART_CTL0(usartx) REG32((usartx) + (0x0000000CU))"
+.LASF709:
+ .string "ADC_OVERSAMPLING_RATIO_MUL256 OVSCR_OVSR(7)"
+.LASF752:
+ .string "BKP_DATA40 REG16((BKP) + 0xB8U)"
+.LASF1450:
+ .string "EXTI_SWIEV_SWIEV4 BIT(4)"
+.LASF2830:
+ .string "TIMER_PSC_RELOAD_UPDATE ((uint32_t)0x00000000U)"
+.LASF1553:
+ .string "FMC_USPC ((uint8_t)0xBBU)"
+.LASF2143:
+ .string "RCU_APB2RST_PCRST BIT(4)"
+.LASF714:
+ .string "BKP_DATA2 REG16((BKP) + 0x0CU)"
+.LASF1223:
+ .string "DAC_TRIANGLE_AMPLITUDE_1023 DAC_WAVE_BIT_WIDTH_10"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF1608:
+ .string "GPIO_OCTL(gpiox) REG32((gpiox) + 0x0CU)"
+.LASF1048:
+ .string "CAN_STATE_PENDING ((uint32_t)0x00000000U)"
+.LASF383:
+ .string "unsigned +0"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1255:
+ .string "DMA_CH6CTL(dmax) REG32((dmax) + 0x80U)"
+.LASF1702:
+ .string "GPIO_BOP_CR3 BIT(19)"
+.LASF2485:
+ .string "SPI_STAT_CRCERR BIT(4)"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF2126:
+ .string "RCU_INT_LXTALSTBIE BIT(9)"
+.LASF2399:
+ .string "RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF3005:
+ .string "USART_BIT_POS2(val) (((uint32_t)(val) & (0x001F0000U)) >> 16)"
+.LASF3899:
+ .string "MASK_FLE_S 0xfe00707f"
+.LASF878:
+ .string "CAN_RFIFOMP(canx,bank) REG32((canx) + 0x1B4U + ((bank) * 0x10U))"
+.LASF3884:
+ .string "MATCH_FSGNJN_D 0x22001053"
+.LASF674:
+ .string "ADC_CHANNEL_14 ((uint8_t)0x0EU)"
+.LASF3956:
+ .string "MATCH_FLD 0x3007"
+.LASF2173:
+ .string "RCU_AHBEN_SRAMSPEN BIT(2)"
+.LASF593:
+ .string "ADC_OVSCR_OVSEN BIT(0)"
+.LASF3877:
+ .string "MASK_FSUB_D 0xfe00007f"
+.LASF2833:
+ .string "CTL0_CKDIV(regval) ((uint16_t)(BITS(8, 9) & ((uint32_t)(regval) << 8U)))"
+.LASF2600:
+ .string "TIMER_DMAINTEN(timerx) REG32((timerx) + 0x0CU)"
+.LASF3957:
+ .string "MASK_FLD 0x707f"
+.LASF416:
+ .string "__int64_t_defined 1"
+.LASF723:
+ .string "BKP_DATA11 REG16((BKP) + 0x44U)"
+.LASF2103:
+ .string "RCU_CTL_PLL2STB BIT(29)"
+.LASF3664:
+ .string "MATCH_JALR 0x67"
+.LASF3462:
+ .string "__SORD 0x2000"
+.LASF2885:
+ .string "TIMER_OC_CLEAR_DISABLE ((uint16_t)0x0000U)"
+.LASF3448:
+ .string "_funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))"
+.LASF3997:
+ .string "MASK_C_SDSP 0xe003"
+.LASF378:
+ .string "short"
+.LASF1356:
+ .string "EXMC_MEMORY_TYPE_SRAM SNCTL_NRTP(0)"
+.LASF1464:
+ .string "EXTI_SWIEV_SWIEV18 BIT(18)"
+.LASF1523:
+ .string "FMC_OBSTAT_DATA BITS(10,25)"
+.LASF3228:
+ .string "__GNUCLIKE___OFFSETOF 1"
+.LASF771:
+ .string "BKP_DATA_GET(regval) GET_BITS((uint32_t)(regval), 0, 15)"
+.LASF2928:
+ .string "TIMER_EXT_TRI_PSC_OFF SMCFG_ETPSC(0)"
+.LASF2364:
+ .string "RCU_PREDV1_DIV8 CFG1_PREDV1(7)"
+.LASF991:
+ .string "CAN_FAFIFOR_FAF(regval) BIT(regval)"
+.LASF3071:
+ .string "WWDGT_CFG_PSC_DIV2 CFG_PSC(1)"
+.LASF3404:
+ .string "_REENT_WCRTOMB_STATE(ptr) ((ptr)->_new._reent._wcrtomb_state)"
+.LASF4136:
+ .string "CSR_HPMCOUNTER23 0xc17"
+.LASF4406:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF1186:
+ .string "DAC_WAVE_BIT_WIDTH_1 DWBW(0)"
+.LASF1517:
+ .string "FMC_CTL_ERRIE BIT(10)"
+.LASF4315:
+ .string "CSR_MSUBM 0x7c4"
+.LASF748:
+ .string "BKP_DATA36 REG16((BKP) + 0xA8U)"
+.LASF870:
+ .string "CAN_F27DATA1(canx) REG32((canx) + 0x31CU)"
+.LASF734:
+ .string "BKP_DATA22 REG16((BKP) + 0x70U)"
+.LASF1012:
+ .string "FDATA_MASK_LOW(regval) (BITS(0,15) & ((uint32_t)(regval) << 0))"
+.LASF3206:
+ .string "__need_NULL "
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF2021:
+ .string "DBG_CTL REG32(DBG + 0x04U)"
+.LASF1823:
+ .string "GPIO_PIN_SOURCE_1 ((uint8_t)0x01U)"
+.LASF2704:
+ .string "TIMER_CHCTL1_CH2CAPFLT BITS(4,7)"
+.LASF1666:
+ .string "GPIO_ISTAT_ISTAT15 BIT(15)"
+.LASF3476:
+ .string "SEEK_END 2"
+.LASF3016:
+ .string "CTL0_PM(regval) (BITS(9,10) & ((uint32_t)(regval) << 9))"
+.LASF2466:
+ .string "SPI_CTL0_SWNSSEN BIT(9)"
+.LASF2546:
+ .string "I2S_MCKOUT_DISABLE ((uint32_t)0x00000000U)"
+.LASF591:
+ .string "ADC_RDATA_RDATA BITS(0,15)"
+.LASF938:
+ .string "CAN_INTEN_PERRIE BIT(9)"
+.LASF1775:
+ .string "AFIO_EXTI9_SS BITS(4, 7)"
+.LASF3242:
+ .string "__CC_SUPPORTS___INLINE__ 1"
+.LASF2120:
+ .string "RCU_INT_HXTALSTBIF BIT(3)"
+.LASF358:
+ .string "__SVID_VISIBLE 0"
+.LASF4357:
+ .string "TIMER0_BRK_IRQn"
+.LASF2104:
+ .string "RCU_CFG0_SCS BITS(0,1)"
+.LASF2673:
+ .string "TIMER_SWEVG_CH1G BIT(2)"
+.LASF1449:
+ .string "EXTI_SWIEV_SWIEV3 BIT(3)"
+.LASF1663:
+ .string "GPIO_ISTAT_ISTAT12 BIT(12)"
+.LASF747:
+ .string "BKP_DATA35 REG16((BKP) + 0xA4U)"
+.LASF3371:
+ .string "_REENT_EMERGENCY_SIZE 25"
+.LASF1246:
+ .string "DMA_CH3MADDR(dmax) REG32((dmax) + 0x50U)"
+.LASF1098:
+ .string "CAN_FILTERMODE_LIST ((uint8_t)0x01U)"
+.LASF3814:
+ .string "MATCH_AMOMINU_D 0xc000302f"
+.LASF2240:
+ .string "APB1RST_REG_OFFSET 0x10U"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF3867:
+ .string "MASK_FSGNJX_S 0xfe00707f"
+.LASF4032:
+ .string "MATCH_C_AND 0x8c61"
+.LASF1887:
+ .string "I2C_STAT0(i2cx) REG32((i2cx) + 0x14U)"
+.LASF3308:
+ .string "_Null_unspecified "
+.LASF2699:
+ .string "TIMER_CHCTL1_CH3COMFEN BIT(10)"
+.LASF2263:
+ .string "RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)"
+.LASF822:
+ .string "CAN_F7DATA0(canx) REG32((canx) + 0x278U)"
+.LASF2227:
+ .string "RCU_CFG1_PLL1MF BITS(8,11)"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF722:
+ .string "BKP_DATA10 REG16((BKP) + 0x40U)"
+.LASF939:
+ .string "CAN_INTEN_BOIE BIT(10)"
+.LASF3547:
+ .string "DCSR_CAUSE_DEBUGINT 3"
+.LASF1821:
+ .string "GPIO_EVENT_PIN_15 ((uint8_t)0x0FU)"
+.LASF2876:
+ .string "TIMER_OC_MODE_LOW ((uint16_t)0x0040U)"
+.LASF3874:
+ .string "MATCH_FADD_D 0x2000053"
+.LASF1792:
+ .string "GPIO_MODE_AF_PP ((uint8_t)0x18U)"
+.LASF3580:
+ .string "MIP_MSIP (1 << IRQ_M_SOFT)"
+.LASF3207:
+ .string "_SYS_CDEFS_H_ "
+.LASF3345:
+ .string "_NULL 0"
+.LASF2730:
+ .string "TIMER_CCHP_PROT BITS(8,9)"
+.LASF4107:
+ .string "MASK_CUSTOM3_RD_RS1 0x707f"
+.LASF1226:
+ .string "GD32VF103_DMA_H "
+.LASF3642:
+ .string "write_fpu(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"fmv.w.x \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF3378:
+ .string "_REENT_CHECK_RAND48(ptr) "
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF4373:
+ .string "EXTI10_15_IRQn"
+.LASF1157:
+ .string "DAC_SWT_SWTR1 BIT(1)"
+.LASF2014:
+ .string "FWDGT_PSC_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF2602:
+ .string "TIMER_SWEVG(timerx) REG32((timerx) + 0x14U)"
+.LASF4150:
+ .string "CSR_SCAUSE 0x142"
+.LASF1087:
+ .string "CAN_FIFO0 ((uint8_t)0x00U)"
+.LASF3680:
+ .string "MATCH_XORI 0x4013"
+.LASF2010:
+ .string "FWDGT_WRITEACCESS_ENABLE ((uint16_t)0x5555U)"
+.LASF2700:
+ .string "TIMER_CHCTL1_CH3COMSEN BIT(11)"
+.LASF3733:
+ .string "MASK_LW 0x707f"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF1949:
+ .string "I2C_REGIDX_BIT2(regidx,bitpos,regidx2,bitpos2) (((uint32_t)(regidx2) << 22) | (uint32_t)((bitpos2) << 16) | (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos)))"
+.LASF3502:
+ .string "MSTATUS_UIE 0x00000001"
+.LASF753:
+ .string "BKP_DATA41 REG16((BKP) + 0xBCU)"
+.LASF2370:
+ .string "RCU_PREDV1_DIV14 CFG1_PREDV1(13)"
+.LASF2076:
+ .string "RCU RCU_BASE"
+.LASF2750:
+ .string "TIMER_INT_FLAG_CH1 TIMER_INT_CH1"
+.LASF4157:
+ .string "CSR_MIDELEG 0x303"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF2635:
+ .string "TIMER_CTL1_ISO2N BIT(13)"
+.LASF2824:
+ .string "CTL0_CAM(regval) ((uint16_t)(BITS(5, 6) & ((uint32_t)(regval) << 5U)))"
+.LASF2043:
+ .string "PMU PMU_BASE"
+.LASF4071:
+ .string "MASK_CUSTOM0_RD_RS1 0x707f"
+.LASF4276:
+ .string "CSR_MHPMCOUNTER6H 0xb86"
+.LASF3326:
+ .string "__nosanitizeaddress "
+.LASF746:
+ .string "BKP_DATA34 REG16((BKP) + 0xA0U)"
+.LASF2616:
+ .string "TIMER_DMATB(timerx) REG32((timerx) + 0x4CU)"
+.LASF2547:
+ .string "I2S_MCKOUT_ENABLE SPI_I2SPSC_MCKOEN"
+.LASF3807:
+ .string "MASK_AMOOR_D 0xf800707f"
+.LASF618:
+ .string "ADC_DATAALIGN_LEFT ADC_CTL1_DAL"
+.LASF368:
+ .string "___int_least8_t_defined 1"
+.LASF2278:
+ .string "RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)"
+.LASF3562:
+ .string "MCONTROL_EXECUTE (1<<2)"
+.LASF2180:
+ .string "RCU_APB2EN_PBEN BIT(3)"
+.LASF801:
+ .string "CAN_TMDATA12(canx) REG32((canx) + 0x1ACU)"
+.LASF669:
+ .string "ADC_CHANNEL_9 ((uint8_t)0x09U)"
+.LASF1902:
+ .string "I2C_CTL0_POAP BIT(11)"
+.LASF2561:
+ .string "SPI_DMA_TRANSMIT ((uint8_t)0x00U)"
+.LASF4405:
+ .string "_init"
+.LASF1744:
+ .string "GPIO_LOCK_LK13 BIT(13)"
+.LASF396:
+ .string "__FAST8 "
+.LASF2053:
+ .string "PMU_CS_WUF BIT(0)"
+.LASF647:
+ .string "IOFFX_IOFF(regval) (BITS(0,11) & ((uint32_t)(regval) << 0))"
+.LASF1796:
+ .string "GPIO_EVENT_PORT_GPIOA ((uint8_t)0x00U)"
+.LASF571:
+ .string "ADC_CTL1_CLB BIT(2)"
+.LASF1708:
+ .string "GPIO_BOP_CR9 BIT(25)"
+.LASF629:
+ .string "CTL1_ETSIC(regval) (BITS(12,14) & ((uint32_t)(regval) << 12))"
+.LASF3816:
+ .string "MATCH_AMOMAXU_D 0xe000302f"
+.LASF1759:
+ .string "AFIO_PCF0_TIMER3_REMAP BIT(12)"
+.LASF3365:
+ .string "_RAND48_SEED_1 (0xabcd)"
+.LASF2313:
+ .string "RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))"
+.LASF3545:
+ .string "DCSR_CAUSE_SWBP 1"
+.LASF529:
+ .string "ADC1 (ADC_BASE + 0x400U)"
+.LASF3906:
+ .string "MATCH_FLT_D 0xa2001053"
+.LASF759:
+ .string "BKP_OCTL_COEN BIT(7)"
+.LASF2487:
+ .string "SPI_STAT_RXORERR BIT(6)"
+.LASF4343:
+ .string "EXTI4_IRQn"
+.LASF1163:
+ .string "DAC1_R8DH_DAC1_DH BITS(0,7)"
+.LASF2404:
+ .string "RCU_DEEPSLEEP_V_1_0 DSV_DSLPVS(2)"
+.LASF2401:
+ .string "DSV_DSLPVS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))"
+.LASF2913:
+ .string "TIMER_TRI_OUT_SRC_O1CPRE CTL1_MMC(5)"
+.LASF2758:
+ .string "TIMER_FLAG_CH1 TIMER_INTF_CH1IF"
+.LASF3417:
+ .string "_BLKCNT_T_DECLARED "
+.LASF1113:
+ .string "CAN_INT_ERRN CAN_INTEN_ERRNIE"
+.LASF1064:
+ .string "CAN_BT_BS1_8TQ ((uint8_t)0x07U)"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF2381:
+ .string "RCU_PLL1_MUL15 CFG1_PLL1MF(13)"
+.LASF1232:
+ .string "DMA_CH0CNT(dmax) REG32((dmax) + 0x0CU)"
+.LASF2952:
+ .string "USART_STAT_FERR BIT(1)"
+.LASF3556:
+ .string "MCONTROL_CHAIN (1<<11)"
+.LASF2914:
+ .string "TIMER_TRI_OUT_SRC_O2CPRE CTL1_MMC(6)"
+.LASF1592:
+ .string "OB_WP_30 ((uint32_t)0x40000000U)"
+.LASF3268:
+ .string "__malloc_like __attribute__((__malloc__))"
+.LASF2328:
+ .string "RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)"
+.LASF3913:
+ .string "MASK_FCVT_WU_S 0xfff0007f"
+.LASF2029:
+ .string "DBG_CTL_TIMER1_HOLD BIT(11)"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF1369:
+ .string "EXTI_PD REG32(EXTI + 0x14U)"
+.LASF1758:
+ .string "AFIO_PCF0_TIMER2_REMAP BITS(10, 11)"
+.LASF1960:
+ .string "I2C_TRANSMITTER ((uint32_t)0xFFFFFFFEU)"
+.LASF4213:
+ .string "CSR_MHPMEVENT10 0x32a"
+.LASF708:
+ .string "ADC_OVERSAMPLING_RATIO_MUL128 OVSCR_OVSR(6)"
+.LASF1777:
+ .string "AFIO_EXTI11_SS BITS(12, 15)"
+.LASF519:
+ .string "ADC_BASE (APB2_BUS_BASE + 0x00002400U)"
+.LASF4158:
+ .string "CSR_MIE 0x304"
+.LASF2434:
+ .string "RTC_ALRML_ALRM BITS(0,15)"
+.LASF3688:
+ .string "MATCH_ANDI 0x7013"
+.LASF545:
+ .string "ADC_IDATA0(adcx) REG32((adcx) + 0x3CU)"
+.LASF4277:
+ .string "CSR_MHPMCOUNTER7H 0xb87"
+.LASF2457:
+ .string "SPI_I2SCTL(spix) REG32((spix) + 0x1CU)"
+.LASF1770:
+ .string "AFIO_EXTI4_SS BITS(0, 3)"
+.LASF3671:
+ .string "MASK_AUIPC 0x7f"
+.LASF3859:
+ .string "MASK_FMUL_S 0xfe00007f"
+.LASF3931:
+ .string "MASK_FMV_X_D 0xfff0707f"
+.LASF4186:
+ .string "CSR_MHPMCOUNTER14 0xb0e"
+.LASF2268:
+ .string "RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)"
+.LASF3285:
+ .string "__rangeof(type,start,end) (__offsetof(type, end) - __offsetof(type, start))"
+.LASF3576:
+ .string "MCONTROL_MATCH_MASK_LOW 4"
+.LASF905:
+ .string "CAN_TSTAT_MTF1 BIT(8)"
+.LASF1785:
+ .string "GPIO_MODE_AIN ((uint8_t)0x00U)"
+.LASF517:
+ .string "EXTI_BASE (APB2_BUS_BASE + 0x00000400U)"
+.LASF2542:
+ .string "I2S_FRAMEFORMAT_DT16B_CH16B I2SCTL_DTLEN(0)"
+.LASF4317:
+ .string "CAUSE_FAULT_FETCH 0x1"
+.LASF1070:
+ .string "CAN_BT_BS1_14TQ ((uint8_t)0x0DU)"
+.LASF1505:
+ .string "FMC_STAT_BUSY BIT(0)"
+.LASF2417:
+ .string "RTC_ALRML REG32(RTC + 0x24U)"
+.LASF3643:
+ .string "read_csr(reg) ({ unsigned long __tmp; asm volatile (\"csrr %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF2663:
+ .string "TIMER_INTF_CH3IF BIT(4)"
+.LASF1376:
+ .string "EXTI_INTEN_INTEN6 BIT(6)"
+.LASF594:
+ .string "ADC_OVSCR_OVSR BITS(2,4)"
+.LASF3442:
+ .string "_SUSECONDS_T_DECLARED "
+.LASF1622:
+ .string "GPIO_CTL0_CTL1 BITS(6, 7)"
+.LASF2118:
+ .string "RCU_INT_LXTALSTBIF BIT(1)"
+.LASF4345:
+ .string "DMA0_Channel1_IRQn"
+.LASF4395:
+ .string "signed char"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF333:
+ .string "HXTAL_VALUE ((uint32_t)8000000)"
+.LASF610:
+ .string "ADC_DAUL_INSERTED_PARALLEL_REGULAL_FOLLOWUP_FAST CTL0_SYNCM(3)"
+.LASF3510:
+ .string "MSTATUS_SPP 0x00000100"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1847:
+ .string "GPIO_PIN_9 BIT(9)"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF2154:
+ .string "RCU_APB1RST_TIMER4RST BIT(3)"
+.LASF627:
+ .string "ADC0_1_EXTTRIG_REGULAR_EXTI_11 CTL1_ETSRC(6)"
+.LASF2089:
+ .string "RCU_DSV REG32(RCU + 0x34U)"
+.LASF1000:
+ .string "CAN_BIT_POS1(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3965:
+ .string "MASK_FMSUB_S 0x600007f"
+.LASF4330:
+ .string "CLIC_INT_TMR"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF2661:
+ .string "TIMER_INTF_CH1IF BIT(2)"
+.LASF392:
+ .string "__INT8 \"hh\""
+.LASF2288:
+ .string "RCU_PLL_MUL2 CFG0_PLLMF(0)"
+.LASF1761:
+ .string "AFIO_PCF0_PD01_REMAP BIT(15)"
+.LASF1486:
+ .string "OB OB_BASE"
+.LASF3266:
+ .string "__generic(expr,t,yes,no) _Generic(expr, t: yes, default: no)"
+.LASF497:
+ .string "SRAM_BASE ((uint32_t)0x20000000U)"
+.LASF3187:
+ .string "__OBSOLETE_MATH_DEFAULT 1"
+.LASF3681:
+ .string "MASK_XORI 0x707f"
+.LASF3810:
+ .string "MATCH_AMOMIN_D 0x8000302f"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF4236:
+ .string "CSR_MARCHID 0xf12"
+.LASF3034:
+ .string "CTL1_CLEN(regval) (BIT(8) & ((uint32_t)(regval) << 8))"
+.LASF852:
+ .string "CAN_F9DATA1(canx) REG32((canx) + 0x28CU)"
+.LASF3579:
+ .string "MIP_HSIP (1 << IRQ_H_SOFT)"
+.LASF1142:
+ .string "DAC_CTL_DEN0 BIT(0)"
+.LASF4388:
+ .string "CAN1_TX_IRQn"
+.LASF2539:
+ .string "I2S_AUDIOSAMPLE_96K ((uint32_t)96000U)"
+.LASF3333:
+ .string "_SYS_REENT_H_ "
+.LASF433:
+ .string "INT8_MAX (__INT8_MAX__)"
+.LASF3753:
+ .string "MASK_FENCE_I 0x707f"
+.LASF1482:
+ .string "EXTI_PD_PD17 BIT(17)"
+.LASF540:
+ .string "ADC_WDLT(adcx) REG32((adcx) + 0x28U)"
+.LASF1065:
+ .string "CAN_BT_BS1_9TQ ((uint8_t)0x08U)"
+.LASF1714:
+ .string "GPIO_BOP_CR15 BIT(31)"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF1612:
+ .string "AFIO_EC REG32(AFIO + 0x00U)"
+.LASF2573:
+ .string "I2S_INT_FLAG_TXURERR ((uint8_t)0x05U)"
+.LASF3646:
+ .string "set_csr(reg,bit) ({ unsigned long __tmp; if (__builtin_constant_p(bit) && (unsigned long)(bit) < 32) asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"i\"(bit)); else asm volatile (\"csrrs %0, \" #reg \", %1\" : \"=r\"(__tmp) : \"r\"(bit)); __tmp; })"
+.LASF1748:
+ .string "AFIO_EC_PIN BITS(0, 3)"
+.LASF1182:
+ .string "DAC_WAVE_DISABLE CTL_DWM(0)"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF2799:
+ .string "TIMER_DMACFG_DMATC_2TRANSFER DMACFG_DMATC(1)"
+.LASF1687:
+ .string "GPIO_BOP_BOP4 BIT(4)"
+.LASF3923:
+ .string "MASK_FCVT_W_D 0xfff0007f"
+.LASF2051:
+ .string "PMU_CTL_LVDT BITS(5,7)"
+.LASF3626:
+ .string "PTE_R 0x002"
+.LASF3711:
+ .string "MASK_ADDIW 0x707f"
+.LASF3785:
+ .string "MASK_AMOOR_W 0xf800707f"
+.LASF2927:
+ .string "SMCFG_ETPSC(regval) (BITS(12, 13) & ((uint32_t)(regval) << 12U))"
+.LASF1654:
+ .string "GPIO_ISTAT_ISTAT3 BIT(3)"
+.LASF3297:
+ .string "__sym_default(sym,impl,verid) __asm__(\".symver \" #impl \", \" #sym \"@@\" #verid)"
+.LASF1425:
+ .string "EXTI_RTEN_RTEN17 BIT(17)"
+.LASF2482:
+ .string "SPI_STAT_TBE BIT(1)"
+.LASF4131:
+ .string "CSR_HPMCOUNTER18 0xc12"
+.LASF1437:
+ .string "EXTI_FTEN_FTEN10 BIT(10)"
+.LASF388:
+ .string "int +2"
+.LASF3496:
+ .string "L_ctermid 16"
+.LASF2388:
+ .string "RCU_PLL2_MUL11 CFG1_PLL2MF(9)"
+.LASF3619:
+ .string "DEFAULT_RSTVEC 0x00001000"
+.LASF4272:
+ .string "CSR_MINSTRETH 0xb82"
+.LASF2284:
+ .string "RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)"
+.LASF2506:
+ .string "SPI_SLAVE ((uint32_t)0x00000000U)"
+.LASF3514:
+ .string "MSTATUS_MPRV 0x00020000"
+.LASF3575:
+ .string "MCONTROL_MATCH_LT 3"
+.LASF2603:
+ .string "TIMER_CHCTL0(timerx) REG32((timerx) + 0x18U)"
+.LASF2411:
+ .string "RTC_PSCL REG32(RTC + 0x0CU)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF1083:
+ .string "CAN_MAILBOX2 ((uint8_t)0x02U)"
+.LASF4072:
+ .string "MATCH_CUSTOM0_RD_RS1_RS2 0x700b"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF1061:
+ .string "CAN_BT_BS1_5TQ ((uint8_t)0x04U)"
+.LASF874:
+ .string "CAN_TMDATA1(canx,bank) REG32((canx) + 0x18CU + ((bank) * 0x10U))"
+.LASF460:
+ .string "INT_FAST16_MAX (__INT_FAST16_MAX__)"
+.LASF996:
+ .string "CAN_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3883:
+ .string "MASK_FSGNJ_D 0xfe00707f"
+.LASF2669:
+ .string "TIMER_INTF_CH2OF BIT(11)"
+.LASF1536:
+ .string "FMC_CTL_REG_OFFSET 0x10U"
+.LASF2828:
+ .string "TIMER_COUNTER_CENTER_BOTH CTL0_CAM(3)"
+.LASF1778:
+ .string "AFIO_EXTI12_SS BITS(0, 3)"
+.LASF1161:
+ .string "DAC1_R12DH_DAC1_DH BITS(0,11)"
+.LASF1495:
+ .string "FMC_PID REG32((FMC) + 0x100U)"
+.LASF3940:
+ .string "MATCH_FCVT_S_LU 0xd0300053"
+.LASF3167:
+ .string "ECLIC_GROUP_LEVEL3_PRIO1 3"
+.LASF1435:
+ .string "EXTI_FTEN_FTEN8 BIT(8)"
+.LASF3630:
+ .string "PTE_G 0x020"
+.LASF514:
+ .string "PMU_BASE (APB1_BUS_BASE + 0x00007000U)"
+.LASF1375:
+ .string "EXTI_INTEN_INTEN5 BIT(5)"
+.LASF1840:
+ .string "GPIO_PIN_2 BIT(2)"
+.LASF2397:
+ .string "RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)"
+.LASF982:
+ .string "CAN_RFIFOMDATA0_DB3 BITS(24,31)"
+.LASF2291:
+ .string "RCU_PLL_MUL5 CFG0_PLLMF(3)"
+.LASF453:
+ .string "INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF1812:
+ .string "GPIO_EVENT_PIN_6 ((uint8_t)0x06U)"
+.LASF755:
+ .string "BKP_TPCTL REG16((BKP) + 0x30U)"
+.LASF2115:
+ .string "RCU_CFG0_ADCPSC_2 BIT(28)"
+.LASF2007:
+ .string "FWDGT_PSC_DIV64 ((uint8_t)PSC_PSC(4))"
+.LASF3047:
+ .string "USART_DENT_ENABLE CLT2_DENT(1)"
+.LASF4140:
+ .string "CSR_HPMCOUNTER27 0xc1b"
+.LASF442:
+ .string "INT_LEAST16_MAX (__INT_LEAST16_MAX__)"
+.LASF2512:
+ .string "SPI_TRANSMODE_BDTRANSMIT (SPI_CTL0_BDEN | SPI_CTL0_BDOEN)"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF3538:
+ .string "DCSR_STOPTIME (1<<9)"
+.LASF2797:
+ .string "DMACFG_DMATC(regval) (BITS(8, 12) & ((uint32_t)(regval) << 8U))"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF3413:
+ .string "_GLOBAL_REENT _global_impure_ptr"
+.LASF1633:
+ .string "GPIO_CTL0_MD7 BITS(28, 29)"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF2949:
+ .string "USART_CTL2(usartx) REG32((usartx) + (0x00000014U))"
+.LASF3849:
+ .string "MASK_CSRRWI 0x707f"
+.LASF645:
+ .string "ADC_SAMPLETIME_71POINT5 SAMPTX_SPT(6)"
+.LASF836:
+ .string "CAN_F21DATA0(canx) REG32((canx) + 0x2E8U)"
+.LASF1428:
+ .string "EXTI_FTEN_FTEN1 BIT(1)"
+.LASF2896:
+ .string "TIMER_IC_PSC_DIV4 ((uint16_t)0x0008U)"
+.LASF3676:
+ .string "MATCH_SLTI 0x2013"
+.LASF985:
+ .string "CAN_RFIFOMDATA1_DB6 BITS(16,23)"
+.LASF1268:
+ .string "DMA_CHXCTL_FTFIE BIT(1)"
+.LASF1245:
+ .string "DMA_CH3PADDR(dmax) REG32((dmax) + 0x4CU)"
+.LASF1410:
+ .string "EXTI_RTEN_RTEN2 BIT(2)"
+.LASF1256:
+ .string "DMA_CH6CNT(dmax) REG32((dmax) + 0x84U)"
+.LASF2959:
+ .string "USART_STAT_LBDF BIT(8)"
+.LASF585:
+ .string "ADC_WDLT_WDLT BITS(0,11)"
+.LASF3300:
+ .string "__RCSID_SOURCE(s) struct __hack"
+.LASF854:
+ .string "CAN_F11DATA1(canx) REG32((canx) + 0x29CU)"
+.LASF744:
+ .string "BKP_DATA32 REG16((BKP) + 0x98U)"
+.LASF1830:
+ .string "GPIO_PIN_SOURCE_8 ((uint8_t)0x08U)"
+.LASF3655:
+ .string "MASK_BNE 0x707f"
+.LASF1054:
+ .string "CAN_BT_SJW_2TQ ((uint8_t)0x01U)"
+.LASF376:
+ .string "unsigned"
+.LASF476:
+ .string "WCHAR_MIN (__WCHAR_MIN__)"
+.LASF1919:
+ .string "I2C_STAT0_SBSEND BIT(0)"
+.LASF523:
+ .string "CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)"
+.LASF3444:
+ .string "__need_inttypes"
+.LASF2564:
+ .string "SPI_CRC_RX ((uint8_t)0x01U)"
+.LASF2751:
+ .string "TIMER_INT_FLAG_CH2 TIMER_INT_CH2"
+.LASF2608:
+ .string "TIMER_CAR(timerx) REG32((timerx) + 0x2CU)"
+.LASF3039:
+ .string "USART_CPH_2CK CTL1_CPH(1)"
+.LASF2351:
+ .string "RCU_PREDV0_DIV12 CFG1_PREDV0(11)"
+.LASF4080:
+ .string "MATCH_CUSTOM1_RD 0x402b"
+.LASF1526:
+ .string "FMC_PID_PID BITS(0,31)"
+.LASF4049:
+ .string "MASK_C_LWSP 0xe003"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF2294:
+ .string "RCU_PLL_MUL8 CFG0_PLLMF(6)"
+.LASF1484:
+ .string "GD32VF103_FMC_H "
+.LASF3714:
+ .string "MATCH_SRLIW 0x501b"
+.LASF4191:
+ .string "CSR_MHPMCOUNTER19 0xb13"
+.LASF2688:
+ .string "TIMER_CHCTL0_CH1COMCEN BIT(15)"
+.LASF4237:
+ .string "CSR_MIMPID 0xf13"
+.LASF2938:
+ .string "GD32VF103_USART_H "
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF2900:
+ .string "TIMER_SMCFG_TRGSEL_ITI1 SMCFG_TRGSEL(1)"
+.LASF3563:
+ .string "MCONTROL_STORE (1<<1)"
+.LASF3665:
+ .string "MASK_JALR 0x707f"
+.LASF3283:
+ .string "__hidden __attribute__((__visibility__(\"hidden\")))"
+.LASF2886:
+ .string "TIMER_UPDATECTL_CCU ((uint32_t)0x00000000U)"
+.LASF3290:
+ .string "__strfmonlike(fmtarg,firstvararg) __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))"
+.LASF3042:
+ .string "USART_CPL_HIGH CTL1_CPL(1)"
+.LASF716:
+ .string "BKP_DATA4 REG16((BKP) + 0x14U)"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1191:
+ .string "DAC_WAVE_BIT_WIDTH_6 DWBW(5)"
+.LASF2425:
+ .string "RTC_CTL_CMF BIT(4)"
+.LASF3394:
+ .string "_REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf)"
+.LASF1170:
+ .string "DAC0_DO_DAC0_DO BITS(0,11)"
+.LASF3857:
+ .string "MASK_FSUB_S 0xfe00007f"
+.LASF4185:
+ .string "CSR_MHPMCOUNTER13 0xb0d"
+.LASF3302:
+ .string "__COPYRIGHT(s) struct __hack"
+.LASF479:
+ .string "WINT_MIN (__WINT_MIN__)"
+.LASF732:
+ .string "BKP_DATA20 REG16((BKP) + 0x68U)"
+.LASF2047:
+ .string "PMU_CTL_STBMOD BIT(1)"
+.LASF1825:
+ .string "GPIO_PIN_SOURCE_3 ((uint8_t)0x03U)"
+.LASF1930:
+ .string "I2C_STAT0_PECERR BIT(12)"
+.LASF335:
+ .string "HXTAL_STARTUP_TIMEOUT ((uint16_t)0xFFFF)"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1929:
+ .string "I2C_STAT0_OUERR BIT(11)"
+.LASF1402:
+ .string "EXTI_EVEN_EVEN13 BIT(13)"
+.LASF1431:
+ .string "EXTI_FTEN_FTEN4 BIT(4)"
+.LASF637:
+ .string "ADC0_1_EXTTRIG_INSERTED_NONE CTL1_ETSIC(7)"
+.LASF1534:
+ .string "FMC_REG_OFFSET_GET(flag) ((uint32_t)(flag) >> 12)"
+.LASF3453:
+ .string "__SRW 0x0010"
+.LASF542:
+ .string "ADC_RSQ1(adcx) REG32((adcx) + 0x30U)"
+.LASF3368:
+ .string "_RAND48_MULT_1 (0xdeec)"
+.LASF1793:
+ .string "GPIO_OSPEED_10MHZ ((uint8_t)0x01U)"
+.LASF3980:
+ .string "MATCH_C_ADDI16SP 0x6101"
+.LASF743:
+ .string "BKP_DATA31 REG16((BKP) + 0x94U)"
+.LASF4020:
+ .string "MATCH_C_SRLI 0x8001"
+.LASF3494:
+ .string "getchar_unlocked() _getchar_unlocked()"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF2490:
+ .string "SPI_DATA_DATA BITS(0,15)"
+.LASF2171:
+ .string "RCU_AHBEN_DMA0EN BIT(0)"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF635:
+ .string "ADC0_1_EXTTRIG_INSERTED_T3_TRGO CTL1_ETSIC(5)"
+.LASF3361:
+ .string "_ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}"
+.LASF3425:
+ .string "_FSBLKCNT_T_DECLARED "
+.LASF4336:
+ .string "RTC_IRQn"
+.LASF3895:
+ .string "MASK_FCVT_D_S 0xfff0007f"
+.LASF1888:
+ .string "I2C_STAT1(i2cx) REG32((i2cx) + 0x18U)"
+.LASF338:
+ .string "IRC40K_VALUE ((uint32_t)40000)"
+.LASF4088:
+ .string "MATCH_CUSTOM2_RS1 0x205b"
+.LASF3659:
+ .string "MASK_BGE 0x707f"
+.LASF2194:
+ .string "RCU_APB1EN_TIMER6EN BIT(5)"
+.LASF3572:
+ .string "MCONTROL_MATCH_EQUAL 0"
+.LASF670:
+ .string "ADC_CHANNEL_10 ((uint8_t)0x0AU)"
+.LASF1021:
+ .string "TMDATA1_DB5(regval) (BITS(8,15) & ((uint32_t)(regval) << 8))"
+.LASF2302:
+ .string "RCU_PLL_MUL16 CFG0_PLLMF(14)"
+.LASF3112:
+ .string "_WCHAR_T_ "
+.LASF2272:
+ .string "CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))"
+.LASF1688:
+ .string "GPIO_BOP_BOP5 BIT(5)"
+.LASF4057:
+ .string "MASK_C_FSDSP 0xe003"
+.LASF3082:
+ .string "_PTRDIFF_T_ "
+.LASF2084:
+ .string "RCU_APB1EN REG32(RCU + 0x1CU)"
+.LASF483:
+ .string "UINT16_C(x) __UINT16_C(x)"
+.LASF1635:
+ .string "GPIO_CTL1_MD8 BITS(0, 1)"
+.LASF3909:
+ .string "MASK_FEQ_D 0xfe00707f"
+.LASF4056:
+ .string "MATCH_C_FSDSP 0xa002"
+.LASF650:
+ .string "RSQ0_RL(regval) (BITS(20,23) & ((uint32_t)(regval) << 20))"
+.LASF3888:
+ .string "MATCH_FMIN_D 0x2a000053"
+.LASF2647:
+ .string "TIMER_DMAINTEN_CH2IE BIT(3)"
+.LASF3758:
+ .string "MATCH_MULHSU 0x2002033"
+.LASF3373:
+ .string "_REENT_SIGNAL_SIZE 24"
+.LASF882:
+ .string "CAN_CTL_SLPWMOD BIT(1)"
+.LASF847:
+ .string "CAN_F4DATA1(canx) REG32((canx) + 0x264U)"
+.LASF4340:
+ .string "EXTI1_IRQn"
+.LASF1883:
+ .string "I2C_CTL1(i2cx) REG32((i2cx) + 0x04U)"
+.LASF1522:
+ .string "FMC_OBSTAT_USER BITS(2,9)"
+.LASF3644:
+ .string "write_csr(reg,val) ({ if (__builtin_constant_p(val) && (unsigned long)(val) < 32) asm volatile (\"csrw \" #reg \", %0\" :: \"i\"(val)); else asm volatile (\"csrw \" #reg \", %0\" :: \"r\"(val)); })"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF715:
+ .string "BKP_DATA3 REG16((BKP) + 0x10U)"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF2664:
+ .string "TIMER_INTF_CMTIF BIT(5)"
+.LASF2459:
+ .string "SPI_CTL0_CKPH BIT(0)"
+.LASF4017:
+ .string "MASK_C_LI 0xe003"
+.LASF4324:
+ .string "CAUSE_USER_ECALL 0x8"
+.LASF3959:
+ .string "MASK_FSW 0x707f"
+.LASF2151:
+ .string "RCU_APB1RST_TIMER1RST BIT(0)"
+.LASF2122:
+ .string "RCU_INT_PLL1STBIF BIT(5)"
+.LASF2625:
+ .string "TIMER_CTL1_CCSE BIT(0)"
+.LASF3743:
+ .string "MASK_SB 0x707f"
+.LASF2680:
+ .string "TIMER_CHCTL0_CH0COMFEN BIT(2)"
+.LASF3712:
+ .string "MATCH_SLLIW 0x101b"
+.LASF2862:
+ .string "TIMER_CCXN_ENABLE ((uint16_t)0x0004U)"
+.LASF2713:
+ .string "TIMER_CHCTL2_CH1NEN BIT(6)"
+.LASF2793:
+ .string "TIMER_DMACFG_DMATA_CH2CV DMACFG_DMATA(15)"
+.LASF3847:
+ .string "MASK_CSRRC 0x707f"
+.LASF742:
+ .string "BKP_DATA30 REG16((BKP) + 0x90U)"
+.LASF816:
+ .string "CAN_F1DATA0(canx) REG32((canx) + 0x248U)"
+.LASF3312:
+ .string "__datatype_type_tag(kind,type) "
+.LASF3973:
+ .string "MASK_FMSUB_D 0x600007f"
+.LASF2086:
+ .string "RCU_RSTSCK REG32(RCU + 0x24U)"
+.LASF970:
+ .string "CAN_TMDATA1_DB6 BITS(16,23)"
+.LASF1228:
+ .string "DMA1 (DMA_BASE + 0x0400U)"
+.LASF3081:
+ .string "__PTRDIFF_T "
+.LASF2453:
+ .string "SPI_DATA(spix) REG32((spix) + 0x0CU)"
+.LASF2643:
+ .string "TIMER_SMCFG_ETP BIT(15)"
+.LASF2951:
+ .string "USART_STAT_PERR BIT(0)"
+.LASF1037:
+ .string "GET_ERR_TECNT(regval) GET_BITS((uint32_t)(regval), 16U, 23U)"
+.LASF2052:
+ .string "PMU_CTL_BKPWEN BIT(8)"
+.LASF2239:
+ .string "AHBRST_REG_OFFSET 0x28U"
+.LASF432:
+ .string "INT8_MIN (-__INT8_MAX__ - 1)"
+.LASF2628:
+ .string "TIMER_CTL1_MMC BITS(4,6)"
+.LASF3450:
+ .string "__SNBF 0x0002"
+.LASF2442:
+ .string "RTC_FLAG_ALARM RTC_CTL_ALRMIF"
+.LASF3505:
+ .string "MSTATUS_MIE 0x00000008"
+.LASF1199:
+ .string "DAC_LFSR_BITS1_0 DAC_WAVE_BIT_WIDTH_2"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF3132:
+ .string "TIMER_MTIMECMP_size 0x8"
+.LASF3981:
+ .string "MASK_C_ADDI16SP 0xef83"
+.LASF1271:
+ .string "DMA_CHXCTL_DIR BIT(4)"
+.LASF1456:
+ .string "EXTI_SWIEV_SWIEV10 BIT(10)"
+.LASF866:
+ .string "CAN_F23DATA1(canx) REG32((canx) + 0x2FCU)"
+.LASF586:
+ .string "ADC_RSQX_RSQN BITS(0,4)"
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF2324:
+ .string "CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))"
+.LASF462:
+ .string "INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)"
+.LASF1980:
+ .string "I2C_PECTRANS_DISABLE ((uint32_t)0x00000000U)"
+.LASF2249:
+ .string "RCU_CKSYSSRC_IRC8M CFG0_SCS(0)"
+.LASF1359:
+ .string "EXMC_BANK0_NORSRAM_REGION0 ((uint32_t)0x00000000U)"
+.LASF1001:
+ .string "STAT_REG_OFFSET ((uint8_t)0x04U)"
+.LASF3061:
+ .string "WWDGT_CFG REG32((WWDGT) + 0x00000004U)"
+.LASF3090:
+ .string "_SIZE_T "
+.LASF1285:
+ .string "DMA_CHPADDR(dma,channel) REG32(((dma) + 0x10U) + 0x14U * (uint32_t)(channel))"
+.LASF4365:
+ .string "I2C0_ER_IRQn"
+.LASF2306:
+ .string "RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))"
+.LASF3389:
+ .string "_REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add)"
+.LASF2112:
+ .string "RCU_CFG0_PLLMF BITS(18,21)"
+.LASF2677:
+ .string "TIMER_SWEVG_TRGG BIT(6)"
+.LASF574:
+ .string "ADC_CTL1_DAL BIT(11)"
+.LASF2498:
+ .string "SPI_I2SCTL_PCMSMOD BIT(7)"
+.LASF1151:
+ .string "DAC_CTL_DTEN1 BIT(18)"
+.LASF2935:
+ .string "TIMER_HALLINTERFACE_DISABLE ((uint32_t)0x00000000U)"
+.LASF3234:
+ .string "__GNUCLIKE_BUILTIN_VAALIST 1"
+.LASF3531:
+ .string "DCSR_NDRESET (1<<29)"
+.LASF672:
+ .string "ADC_CHANNEL_12 ((uint8_t)0x0CU)"
+.LASF2380:
+ .string "RCU_PLL1_MUL14 CFG1_PLL1MF(12)"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF345:
+ .string "_NEWLIB_VERSION \"4.1.0\""
+.LASF3754:
+ .string "MATCH_MUL 0x2000033"
+.LASF1948:
+ .string "I2C_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF2721:
+ .string "TIMER_CNT_CNT BITS(0,15)"
+.LASF881:
+ .string "CAN_CTL_IWMOD BIT(0)"
+.LASF1786:
+ .string "GPIO_MODE_IN_FLOATING ((uint8_t)0x04U)"
+.LASF1938:
+ .string "I2C_STAT1_HSTSMB BIT(6)"
+.LASF1727:
+ .string "GPIO_BC_CR12 BIT(12)"
+.LASF3043:
+ .string "CLT2_DENR(regval) (BIT(6) & ((uint32_t)(regval) << 6))"
+.LASF4372:
+ .string "USART2_IRQn"
+.LASF4305:
+ .string "CSR_MNVEC 0x7C3"
+.LASF706:
+ .string "ADC_OVERSAMPLING_RATIO_MUL32 OVSCR_OVSR(4)"
+.LASF409:
+ .string "_UINT16_T_DECLARED "
+.LASF3656:
+ .string "MATCH_BLT 0x4063"
+.LASF2133:
+ .string "RCU_INT_LXTALSTBIC BIT(17)"
+.LASF886:
+ .string "CAN_CTL_AWU BIT(5)"
+.LASF4205:
+ .string "CSR_MSCOUNTEREN 0x321"
+.LASF3950:
+ .string "MATCH_FCVT_D_LU 0xd2300053"
+.LASF3891:
+ .string "MASK_FMAX_D 0xfe00707f"
+.LASF2753:
+ .string "TIMER_INT_FLAG_CMT TIMER_INT_CMT"
+.LASF1673:
+ .string "GPIO_OCTL_OCTL6 BIT(6)"
+.LASF3190:
+ .string "_POINTER_INT long"
+.LASF3288:
+ .string "__scanflike(fmtarg,firstvararg) __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF3271:
+ .string "__noinline __attribute__ ((__noinline__))"
+.LASF2681:
+ .string "TIMER_CHCTL0_CH0COMSEN BIT(3)"
+.LASF3472:
+ .string "FILENAME_MAX 1024"
+.LASF901:
+ .string "CAN_TSTAT_MTFNERR0 BIT(1)"
+.LASF2150:
+ .string "RCU_APB2RST_USART0RST BIT(14)"
+.LASF456:
+ .string "INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)"
+.LASF3717:
+ .string "MASK_SRAIW 0xfe00707f"
+.LASF3170:
+ .string "_ANSIDECL_H_ "
+.LASF694:
+ .string "ADC_OVERSAMPLING_SHIFT_2B OVSCR_OVSS(2)"
+.LASF3590:
+ .string "MIE_STIE MIP_STIP"
+.LASF1606:
+ .string "GPIO_CTL1(gpiox) REG32((gpiox) + 0x04U)"
+.LASF3274:
+ .string "__fastcall __attribute__((__fastcall__))"
+.LASF943:
+ .string "CAN_INTEN_SLPWIE BIT(17)"
+.LASF4292:
+ .string "CSR_MHPMCOUNTER22H 0xb96"
+.LASF1235:
+ .string "DMA_CH1CTL(dmax) REG32((dmax) + 0x1CU)"
+.LASF1817:
+ .string "GPIO_EVENT_PIN_11 ((uint8_t)0x0BU)"
+.LASF604:
+ .string "ADC_SCAN_MODE ADC_CTL0_SM"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF2234:
+ .string "RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))"
+.LASF2942:
+ .string "UART4 (USART_BASE+(0x00000C00U))"
+.LASF3036:
+ .string "USART_CLEN_EN CTL1_CLEN(1)"
+.LASF3267:
+ .string "__min_size(x) static (x)"
+.LASF343:
+ .string "_SYS_FEATURES_H "
+.LASF839:
+ .string "CAN_F24DATA0(canx) REG32((canx) + 0x300U)"
+.LASF1706:
+ .string "GPIO_BOP_CR7 BIT(23)"
+.LASF3936:
+ .string "MATCH_FCVT_S_WU 0xd0100053"
+.LASF1078:
+ .string "CAN_BT_BS2_6TQ ((uint8_t)0x05U)"
+.LASF599:
+ .string "ADC_FLAG_EOC ADC_STAT_EOC"
+.LASF654:
+ .string "ADC_REGULAR_INSERTED_CHANNEL ((uint8_t)0x03U)"
+.LASF2737:
+ .string "TIMER_DMACFG_DMATA BITS(0,4)"
+.LASF3653:
+ .string "MASK_BEQ 0x707f"
+.LASF3658:
+ .string "MATCH_BGE 0x5063"
+.LASF3824:
+ .string "MATCH_ECALL 0x73"
+.LASF2851:
+ .string "TIMER_CCHP_PROT_0 CCHP_PROT(1)"
+.LASF448:
+ .string "INT_LEAST32_MAX (__INT_LEAST32_MAX__)"
+.LASF2899:
+ .string "TIMER_SMCFG_TRGSEL_ITI0 SMCFG_TRGSEL(0)"
+.LASF3117:
+ .string "___int_wchar_t_h "
+.LASF1875:
+ .string "GPIO_SWJ_DISABLE_REMAP ((uint32_t)0x00300200U)"
+.LASF3383:
+ .string "_REENT_CHECK_MISC(ptr) "
+.LASF3813:
+ .string "MASK_AMOMAX_D 0xf800707f"
+.LASF2223:
+ .string "RCU_RSTSCK_LPRSTF BIT(31)"
+.LASF3641:
+ .string "read_fpu(reg) ({ unsigned long __tmp; asm volatile (\"fmv.x.w %0, \" #reg : \"=r\"(__tmp)); __tmp; })"
+.LASF3684:
+ .string "MATCH_SRAI 0x40005013"
+.LASF3767:
+ .string "MASK_REM 0xfe00707f"
+.LASF1568:
+ .string "OB_WP_6 ((uint32_t)0x00000040U)"
+.LASF1851:
+ .string "GPIO_PIN_13 BIT(13)"
+.LASF3136:
+ .string "TIMER_REG(offset) _REG32(TIMER_CTRL_ADDR, offset)"
+.LASF711:
+ .string "BKP BKP_BASE"
+.LASF1231:
+ .string "DMA_CH0CTL(dmax) REG32((dmax) + 0x08U)"
+.LASF1165:
+ .string "DACC_R12DH_DAC1_DH BITS(16,27)"
+.LASF1176:
+ .string "DAC_TRIGGER_T4_TRGO CTL_DTSEL(3)"
+.LASF1057:
+ .string "CAN_BT_BS1_1TQ ((uint8_t)0x00U)"
+.LASF2702:
+ .string "TIMER_CHCTL1_CH3COMCEN BIT(15)"
+.LASF2527:
+ .string "SPI_PSC_16 CTL0_PSC(3)"
+.LASF3159:
+ .string "ECLIC_CFG_NLBITS_LSB (1u)"
+.LASF2422:
+ .string "RTC_CTL_ALRMIF BIT(1)"
+.LASF2451:
+ .string "SPI_CTL1(spix) REG32((spix) + 0x04U)"
+.LASF3565:
+ .string "MCONTROL_TYPE_NONE 0"
+.LASF1201:
+ .string "DAC_LFSR_BITS3_0 DAC_WAVE_BIT_WIDTH_4"
+.LASF3415:
+ .string "__BIT_TYPES_DEFINED__ 1"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF602:
+ .string "ADC_FLAG_STRC ADC_STAT_STRC"
+.LASF2784:
+ .string "TIMER_DMACFG_DMATA_CHCTL0 DMACFG_DMATA(6)"
+.LASF1442:
+ .string "EXTI_FTEN_FTEN15 BIT(15)"
+.LASF2071:
+ .string "PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)"
+.LASF4134:
+ .string "CSR_HPMCOUNTER21 0xc15"
+.LASF380:
+ .string "__int20__"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF1467:
+ .string "EXTI_PD_PD2 BIT(2)"
+.LASF1531:
+ .string "FMC_REG_VALS(offset) (REG32(FMC + ((uint32_t)(offset) >> 12)))"
+.LASF488:
+ .string "INTMAX_C(x) __INTMAX_C(x)"
+.LASF829:
+ .string "CAN_F14DATA0(canx) REG32((canx) + 0x2B0U)"
+.LASF3143:
+ .string "_BITULL(x) (_AC(1,ULL) << (x))"
+.LASF1023:
+ .string "TMDATA1_DB7(regval) (BITS(24,31) & ((uint32_t)(regval) << 24))"
+.LASF3069:
+ .string "CFG_PSC(regval) (BITS(7,8) & ((uint32_t)(regval) << 7))"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF2042:
+ .string "GD32VF103_PMU_H "
+.LASF846:
+ .string "CAN_F3DATA1(canx) REG32((canx) + 0x25CU)"
+.LASF3021:
+ .string "USART_WM_IDLE CTL0_WM(0)"
+.LASF501:
+ .string "APB1_BUS_BASE ((uint32_t)0x40000000U)"
+.LASF553:
+ .string "ADC_STAT_EOIC BIT(2)"
+.LASF1876:
+ .string "GPIO_SPI2_REMAP ((uint32_t)0x00201100U)"
+.LASF4121:
+ .string "CSR_HPMCOUNTER8 0xc08"
+.LASF4076:
+ .string "MATCH_CUSTOM1_RS1 0x202b"
+.LASF1994:
+ .string "FWDGT_PSC REG32((FWDGT) + 0x00000004U)"
+.LASF3363:
+ .string "_REENT_SMALL_CHECK_INIT(ptr) "
+.LASF1804:
+ .string "GPIO_PORT_SOURCE_GPIOD ((uint8_t)0x03U)"
+.LASF1052:
+ .string "CAN_SILENT_LOOPBACK_MODE ((uint8_t)0x03U)"
+.LASF2612:
+ .string "TIMER_CH2CV(timerx) REG32((timerx) + 0x3CU)"
+.LASF3236:
+ .string "__compiler_membar() __asm __volatile(\" \" : : : \"memory\")"
+.LASF3828:
+ .string "MATCH_URET 0x200073"
+.LASF1788:
+ .string "GPIO_MODE_IPU ((uint8_t)0x48U)"
+.LASF3902:
+ .string "MATCH_FEQ_S 0xa0002053"
+.LASF3740:
+ .string "MATCH_LWU 0x6003"
+.LASF1086:
+ .string "CAN_FF_EXTENDED ((uint32_t)0x00000004U)"
+.LASF3124:
+ .string "NULL ((void *)0)"
+.LASF443:
+ .string "UINT_LEAST16_MAX (__UINT_LEAST16_MAX__)"
+.LASF1941:
+ .string "I2C_CKCFG_CLKC BITS(0,11)"
+.LASF1475:
+ .string "EXTI_PD_PD10 BIT(10)"
+.LASF1110:
+ .string "CAN_INT_WERR CAN_INTEN_WERRIE"
+.LASF2091:
+ .string "RCU_CTL_IRC8MSTB BIT(1)"
+.LASF1595:
+ .string "FMC_TIMEOUT_COUNT ((uint32_t)0x000F0000U)"
+.LASF2471:
+ .string "SPI_CTL0_BDOEN BIT(14)"
+.LASF3836:
+ .string "MATCH_DRET 0x7b200073"
+.LASF2640:
+ .string "TIMER_SMCFG_ETFC BITS(8,11)"
+.LASF3790:
+ .string "MATCH_AMOMAX_W 0xa000202f"
+.LASF1316:
+ .string "DMA_MEMORY_WIDTH_32BIT CHCTL_MWIDTH(2U)"
+.LASF696:
+ .string "ADC_OVERSAMPLING_SHIFT_4B OVSCR_OVSS(4)"
+.LASF1198:
+ .string "DAC_LFSR_BIT0 DAC_WAVE_BIT_WIDTH_1"
+.LASF3279:
+ .string "__predict_true(exp) __builtin_expect((exp), 1)"
+.LASF613:
+ .string "ADC_DAUL_REGULAL_PARALLEL CTL0_SYNCM(6)"
+.LASF3987:
+ .string "MASK_C_EBREAK 0xffff"
+.LASF2594:
+ .string "TIMER4 (TIMER_BASE + 0x00000C00U)"
+.LASF3773:
+ .string "MASK_DIVW 0xfe00707f"
+.LASF3479:
+ .string "stdout (_REENT->_stdout)"
+.LASF3866:
+ .string "MATCH_FSGNJX_S 0x20002053"
+.LASF927:
+ .string "CAN_RFIFO1_RFF1 BIT(3)"
+.LASF1734:
+ .string "GPIO_LOCK_LK3 BIT(3)"
+.LASF3741:
+ .string "MASK_LWU 0x707f"
+.LASF791:
+ .string "CAN_TMP0(canx) REG32((canx) + 0x184U)"
+.LASF1649:
+ .string "GPIO_CTL1_MD15 BITS(28, 29)"
+.LASF1104:
+ .string "CAN_INT_RFNE0 CAN_INTEN_RFNEIE0"
+.LASF1304:
+ .string "DMA_MEMORY_TO_PERIPHERAL ((uint8_t)0x01U)"
+.LASF4316:
+ .string "CAUSE_MISALIGNED_FETCH 0x0"
+.LASF1264:
+ .string "DMA_INTC_FTFIFC BIT(1)"
+.LASF2652:
+ .string "TIMER_DMAINTEN_UPDEN BIT(8)"
+.LASF1150:
+ .string "DAC_CTL_DBOFF1 BIT(17)"
+.LASF1418:
+ .string "EXTI_RTEN_RTEN10 BIT(10)"
+.LASF3321:
+ .string "__asserts_shared(...) __lock_annotate(assert_shared_lock(__VA_ARGS__))"
+.LASF504:
+ .string "AHB3_BUS_BASE ((uint32_t)0x60000000U)"
+.LASF3102:
+ .string "_GCC_SIZE_T "
+.LASF1678:
+ .string "GPIO_OCTL_OCTL11 BIT(11)"
+.LASF3277:
+ .string "__unreachable() __builtin_unreachable()"
+.LASF2945:
+ .string "USART_DATA(usartx) REG32((usartx) + (0x00000004U))"
+.LASF4232:
+ .string "CSR_MHPMEVENT29 0x33d"
+.LASF3362:
+ .string "_REENT_INIT_ATEXIT _NULL, _ATEXIT_INIT,"
+.LASF1570:
+ .string "OB_WP_8 ((uint32_t)0x00000100U)"
+.LASF777:
+ .string "BKP_FLAG_TAMPER BKP_TPCS_TEF"
+.LASF374:
+ .string "__STDINT_EXP(x) __ ##x ##__"
+.LASF4384:
+ .string "DMA1_Channel1_IRQn"
+.LASF1233:
+ .string "DMA_CH0PADDR(dmax) REG32((dmax) + 0x10U)"
+.LASF3755:
+ .string "MASK_MUL 0xfe00707f"
+.LASF3122:
+ .string "__need_wchar_t"
+.LASF1765:
+ .string "AFIO_PCF0_TIMER1_ITI1_REMAP BIT(29)"
+.LASF973:
+ .string "CAN_RFIFOMI_FF BIT(2)"
+.LASF3436:
+ .string "_NLINK_T_DECLARED "
+.LASF3201:
+ .string "_ELIDABLE_INLINE static __inline__"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF1850:
+ .string "GPIO_PIN_12 BIT(12)"
+.LASF3831:
+ .string "MASK_SRET 0xffffffff"
+.LASF3651:
+ .string "RISCV_ENCODING_H "
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF3876:
+ .string "MATCH_FSUB_D 0xa000053"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF932:
+ .string "CAN_INTEN_RFFIE0 BIT(2)"
+.LASF3829:
+ .string "MASK_URET 0xffffffff"
+.LASF1869:
+ .string "GPIO_CAN0_PARTIAL_REMAP ((uint32_t)0x001D4000U)"
+.LASF1504:
+ .string "FMC_OBKEY_OBKEY BITS(0,31)"
+.LASF3062:
+ .string "WWDGT_STAT REG32((WWDGT) + 0x00000008U)"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF3582:
+ .string "MIP_HTIP (1 << IRQ_H_TIMER)"
+.LASF1220:
+ .string "DAC_TRIANGLE_AMPLITUDE_127 DAC_WAVE_BIT_WIDTH_7"
+.LASF2660:
+ .string "TIMER_INTF_CH0IF BIT(1)"
+.LASF2985:
+ .string "USART_CTL1_STB BITS(12,13)"
+.LASF1492:
+ .string "FMC_ADDR REG32((FMC) + 0x14U)"
+.LASF2734:
+ .string "TIMER_CCHP_BRKP BIT(13)"
+.LASF3075:
+ .string "_STDDEF_H "
+.LASF1302:
+ .string "DMA_INT_ERR DMA_CHXCTL_ERRIE"
+.LASF1966:
+ .string "I2C_DUADEN_ENABLE ((uint32_t)0x00000001U)"
+.LASF1457:
+ .string "EXTI_SWIEV_SWIEV11 BIT(11)"
+.LASF3091:
+ .string "_SYS_SIZE_T_H "
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF2559:
+ .string "I2S_CKPL_LOW ((uint32_t)0x00000000U)"
+.LASF3509:
+ .string "MSTATUS_MPIE 0x00000080"
+.LASF3602:
+ .string "VM_MBARE 0"
+.LASF1868:
+ .string "GPIO_TIMER3_REMAP ((uint32_t)0x00001000U)"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF1491:
+ .string "FMC_CTL REG32((FMC) + 0x10U)"
+.LASF1446:
+ .string "EXTI_SWIEV_SWIEV0 BIT(0)"
+.LASF3388:
+ .string "_REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult)"
+.LASF683:
+ .string "ADC_INT_FLAG_EOIC ADC_STAT_EOIC"
+.LASF3832:
+ .string "MATCH_HRET 0x20200073"
+.LASF1018:
+ .string "TMDATA0_DB2(regval) (BITS(16,23) & ((uint32_t)(regval) << 16))"
+.LASF360:
+ .string "__SSP_FORTIFY_LEVEL 0"
+.LASF2448:
+ .string "SPI1 SPI_BASE"
+.LASF2412:
+ .string "RTC_DIVH REG32(RTC + 0x10U)"
+.LASF3275:
+ .string "__result_use_check __attribute__((__warn_unused_result__))"
+.LASF3095:
+ .string "_SIZE_T_ "
+.LASF2355:
+ .string "RCU_PREDV0_DIV16 CFG1_PREDV0(15)"
+.LASF658:
+ .string "ADC_INSERTED_CHANNEL_2 ((uint8_t)0x02U)"
+.LASF2552:
+ .string "I2S_MODE_MASTERRX I2SCTL_I2SOPMOD(3)"
+.LASF2810:
+ .string "TIMER_DMACFG_DMATC_13TRANSFER DMACFG_DMATC(12)"
+.LASF4280:
+ .string "CSR_MHPMCOUNTER10H 0xb8a"
+.LASF3600:
+ .string "PRV_H 2"
+.LASF3260:
+ .string "__packed __attribute__((__packed__))"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1203:
+ .string "DAC_LFSR_BITS5_0 DAC_WAVE_BIT_WIDTH_6"
+.LASF2356:
+ .string "CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))"
+.LASF2369:
+ .string "RCU_PREDV1_DIV13 CFG1_PREDV1(12)"
+.LASF782:
+ .string "CAN_CTL(canx) REG32((canx) + 0x00U)"
+.LASF4001:
+ .string "MASK_C_FLD 0xe003"
+.LASF3993:
+ .string "MASK_C_ADDIW 0xe003"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF568:
+ .string "ADC_CTL0_RWDEN BIT(23)"
+.LASF1644:
+ .string "GPIO_CTL1_CTL12 BITS(18, 19)"
+.LASF2684:
+ .string "TIMER_CHCTL0_CH1MS BITS(8,9)"
+.LASF2829:
+ .string "TIMER_PSC_RELOAD_NOW TIMER_SWEVG_UPG"
+.LASF2872:
+ .string "TIMER_OC_MODE_TIMING ((uint16_t)0x0000U)"
+.LASF3662:
+ .string "MATCH_BGEU 0x7063"
+.LASF3762:
+ .string "MATCH_DIV 0x2004033"
+.LASF3306:
+ .string "_Nonnull "
+.LASF3396:
+ .string "_REENT_EMERGENCY(ptr) ((ptr)->_emergency)"
+.LASF1700:
+ .string "GPIO_BOP_CR1 BIT(17)"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF3540:
+ .string "DCSR_DEBUGINT (1<<5)"
+.LASF3263:
+ .string "__alloc_size(x) __attribute__((__alloc_size__(x)))"
+.LASF889:
+ .string "CAN_CTL_SWRST BIT(15)"
+.LASF3941:
+ .string "MASK_FCVT_S_LU 0xfff0007f"
+.LASF4222:
+ .string "CSR_MHPMEVENT19 0x333"
+.LASF698:
+ .string "ADC_OVERSAMPLING_SHIFT_6B OVSCR_OVSS(6)"
+.LASF640:
+ .string "ADC_SAMPLETIME_7POINT5 SAMPTX_SPT(1)"
+.LASF2238:
+ .string "APB2EN_REG_OFFSET 0x18U"
+.LASF1912:
+ .string "I2C_SADDR0_ADDRESS0 BIT(0)"
+.LASF2516:
+ .string "SPI_NSS_HARD ((uint32_t)0x00000000U)"
+.LASF1697:
+ .string "GPIO_BOP_BOP14 BIT(14)"
+.LASF2210:
+ .string "RCU_BDCTL_LXTALSTB BIT(1)"
+.LASF2311:
+ .string "RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))"
+.LASF4162:
+ .string "CSR_MEPC 0x341"
+.LASF821:
+ .string "CAN_F6DATA0(canx) REG32((canx) + 0x270U)"
+.LASF3316:
+ .string "__locks_shared(...) __lock_annotate(shared_lock_function(__VA_ARGS__))"
+.LASF543:
+ .string "ADC_RSQ2(adcx) REG32((adcx) + 0x34U)"
+.LASF3107:
+ .string "__WCHAR_T__ "
+.LASF336:
+ .string "IRC8M_VALUE ((uint32_t)8000000)"
+.LASF4331:
+ .string "CLIC_INT_BWEI"
+.LASF4404:
+ .string "_fini"
+.LASF1462:
+ .string "EXTI_SWIEV_SWIEV16 BIT(16)"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF1074:
+ .string "CAN_BT_BS2_2TQ ((uint8_t)0x01U)"
+.LASF713:
+ .string "BKP_DATA1 REG16((BKP) + 0x08U)"
+.LASF3092:
+ .string "_T_SIZE_ "
+.LASF2526:
+ .string "SPI_PSC_8 CTL0_PSC(2)"
+.LASF1808:
+ .string "GPIO_EVENT_PIN_2 ((uint8_t)0x02U)"
+.LASF1599:
+ .string "GPIOA (GPIO_BASE + 0x00000000U)"
+.LASF2265:
+ .string "RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)"
+.LASF2165:
+ .string "RCU_APB1RST_I2C1RST BIT(22)"
+.LASF472:
+ .string "SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)"
+.LASF2743:
+ .string "TIMER_INT_CH2 TIMER_DMAINTEN_CH2IE"
+.LASF1602:
+ .string "GPIOD (GPIO_BASE + 0x00000C00U)"
+.LASF3355:
+ .string "__lock_acquire_recursive(lock) ((void) 0)"
+.LASF2939:
+ .string "USART1 USART_BASE"
+.LASF1664:
+ .string "GPIO_ISTAT_ISTAT13 BIT(13)"
+.LASF3501:
+ .string "RISCV_CSR_ENCODING_H "
+.LASF4028:
+ .string "MATCH_C_XOR 0x8c21"
+.LASF2550:
+ .string "I2S_MODE_SLAVERX I2SCTL_I2SOPMOD(1)"
+.LASF441:
+ .string "INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)"
+.LASF1854:
+ .string "GPIO_PIN_ALL BITS(0, 15)"
+.LASF1211:
+ .string "DAC_ALIGN_12B_R DATA_ALIGN(0)"
+.LASF537:
+ .string "ADC_IOFF2(adcx) REG32((adcx) + 0x1CU)"
+.LASF4311:
+ .string "CSR_WFE 0x810"
+.LASF2653:
+ .string "TIMER_DMAINTEN_CH0DEN BIT(9)"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF3193:
+ .string "__EXPORT "
+.LASF4042:
+ .string "MATCH_C_BNEZ 0xe001"
+.LASF712:
+ .string "BKP_DATA0 REG16((BKP) + 0x04U)"
+.LASF1826:
+ .string "GPIO_PIN_SOURCE_4 ((uint8_t)0x04U)"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1089:
+ .string "CAN_RFIF_RFL_MASK ((uint32_t)0x00000003U)"
+.LASF2130:
+ .string "RCU_INT_PLL1STBIE BIT(13)"
+.LASF4012:
+ .string "MATCH_C_ADDI 0x1"
+.LASF1382:
+ .string "EXTI_INTEN_INTEN12 BIT(12)"
+.LASF2385:
+ .string "RCU_PLL2_MUL8 CFG1_PLL2MF(6)"
+.LASF1529:
+ .string "FMC_BIT_POS(val) ((uint32_t)(val) & 0x1FU)"
+.LASF3772:
+ .string "MATCH_DIVW 0x200403b"
+.LASF3447:
+ .string "_flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))"
+.LASF1067:
+ .string "CAN_BT_BS1_11TQ ((uint8_t)0x0AU)"
+.LASF769:
+ .string "BKP_DATA0_9(number) REG16((BKP) + 0x04U + (number) * 0x04U)"
+.LASF3629:
+ .string "PTE_U 0x010"
+.LASF1205:
+ .string "DAC_LFSR_BITS7_0 DAC_WAVE_BIT_WIDTH_8"
+.LASF3144:
+ .string "ECLICINTCTLBITS 4"
+.LASF1396:
+ .string "EXTI_EVEN_EVEN7 BIT(7)"
+.LASF1898:
+ .string "I2C_CTL0_SS BIT(7)"
+.LASF631:
+ .string "ADC0_1_EXTTRIG_INSERTED_T0_CH3 CTL1_ETSIC(1)"
+.LASF3087:
+ .string "__need_ptrdiff_t"
+.LASF1658:
+ .string "GPIO_ISTAT_ISTAT7 BIT(7)"
+.LASF2536:
+ .string "I2S_AUDIOSAMPLE_32K ((uint32_t)32000U)"
+.LASF2916:
+ .string "SMCFG_SMC(regval) (BITS(0, 2) & ((uint32_t)(regval) << 0U))"
+.LASF4275:
+ .string "CSR_MHPMCOUNTER5H 0xb85"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF3610:
+ .string "IRQ_M_SOFT 3"
+.LASF3298:
+ .string "__FBSDID(s) struct __hack"
+.LASF1909:
+ .string "I2C_CTL1_BUFIE BIT(10)"
+.LASF3566:
+ .string "MCONTROL_TYPE_MATCH 2"
+.LASF2481:
+ .string "SPI_STAT_RBNE BIT(0)"
+.LASF4055:
+ .string "MASK_C_ADD 0xf003"
+.LASF4138:
+ .string "CSR_HPMCOUNTER25 0xc19"
+.LASF1973:
+ .string "I2C_DMA_ON I2C_CTL1_DMAON"
+.LASF1414:
+ .string "EXTI_RTEN_RTEN6 BIT(6)"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF2802:
+ .string "TIMER_DMACFG_DMATC_5TRANSFER DMACFG_DMATC(4)"
+.LASF1178:
+ .string "DAC_TRIGGER_T3_TRGO CTL_DTSEL(5)"
+.LASF4265:
+ .string "CSR_HPMCOUNTER26H 0xc9a"
+.LASF3873:
+ .string "MASK_FSQRT_S 0xfff0007f"
+.LASF2500:
+ .string "SPI_I2SCTL_I2SEN BIT(10)"
+.LASF1880:
+ .string "I2C0 I2C_BASE"
+.LASF404:
+ .string "_SYS__STDINT_H "
+.LASF1185:
+ .string "DWBW(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))"
+.LASF4401:
+ .string "long long int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF4307:
+ .string "CSR_JALMNXTI 0x7ED"
+.LASF2707:
+ .string "TIMER_CHCTL2_CH0EN BIT(0)"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF2310:
+ .string "RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))"
+.LASF4248:
+ .string "CSR_HPMCOUNTER9H 0xc89"
+.LASF2601:
+ .string "TIMER_INTF(timerx) REG32((timerx) + 0x10U)"
+.LASF4178:
+ .string "CSR_MHPMCOUNTER6 0xb06"
+.LASF3176:
+ .string "_REENT_CHECK_VERIFY 1"
+.LASF700:
+ .string "ADC_OVERSAMPLING_SHIFT_8B OVSCR_OVSS(8)"
+.LASF3996:
+ .string "MATCH_C_SDSP 0xe002"
+.LASF2895:
+ .string "TIMER_IC_PSC_DIV2 ((uint16_t)0x0004U)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF3585:
+ .string "MIP_HEIP (1 << IRQ_H_EXT)"
+.LASF1379:
+ .string "EXTI_INTEN_INTEN9 BIT(9)"
+.LASF1844:
+ .string "GPIO_PIN_6 BIT(6)"
+.LASF3168:
+ .string "ECLIC_GROUP_LEVEL4_PRIO0 4"
+.LASF4008:
+ .string "MATCH_C_SW 0xc000"
+.LASF2456:
+ .string "SPI_TCRC(spix) REG32((spix) + 0x18U)"
+.LASF2229:
+ .string "RCU_CFG1_PREDV0SEL BIT(16)"
+.LASF1616:
+ .string "AFIO_EXTISS2 REG32(AFIO + 0x10U)"
+.LASF515:
+ .string "DAC_BASE (APB1_BUS_BASE + 0x00007400U)"
+.LASF1525:
+ .string "FMC_WSEN_WSEN BIT(0)"
+.LASF2392:
+ .string "RCU_PLL2_MUL15 CFG1_PLL2MF(13)"
+.LASF2698:
+ .string "TIMER_CHCTL1_CH3MS BITS(8,9)"
+.LASF872:
+ .string "CAN_TMP(canx,bank) REG32((canx) + 0x184U + ((bank) * 0x10U))"
+.LASF1791:
+ .string "GPIO_MODE_AF_OD ((uint8_t)0x1CU)"
+.LASF4364:
+ .string "I2C0_EV_IRQn"
+.LASF3241:
+ .string "__CC_SUPPORTS___INLINE 1"
+.LASF1389:
+ .string "EXTI_EVEN_EVEN0 BIT(0)"
+.LASF3195:
+ .string "_READ_WRITE_BUFSIZE_TYPE int"
+.LASF877:
+ .string "CAN_RFIFOMI(canx,bank) REG32((canx) + 0x1B0U + ((bank) * 0x10U))"
+.LASF3797:
+ .string "MASK_AMOSWAP_W 0xf800707f"
+.LASF1222:
+ .string "DAC_TRIANGLE_AMPLITUDE_511 DAC_WAVE_BIT_WIDTH_9"
+.LASF681:
+ .string "ADC_INT_FLAG_WDE ADC_STAT_WDE"
+.LASF3045:
+ .string "USART_DENR_DISABLE CLT2_DENR(0)"
+.LASF1742:
+ .string "GPIO_LOCK_LK11 BIT(11)"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF2503:
+ .string "SPI_I2SPSC_OF BIT(8)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF1137:
+ .string "DACC_R12DH REG32(DAC + 0x20U)"
+.LASF1628:
+ .string "GPIO_CTL0_CTL4 BITS(18, 19)"
+.LASF457:
+ .string "INT_FAST8_MAX (__INT_FAST8_MAX__)"
+.LASF1293:
+ .string "DMA_INT_FLAG_FTF DMA_INTF_FTFIF"
+.LASF2692:
+ .string "TIMER_CHCTL0_CH1CAPFLT BITS(12,15)"
+.LASF588:
+ .string "ADC_ISQ_ISQN BITS(0,4)"
+.LASF4090:
+ .string "MATCH_CUSTOM2_RS1_RS2 0x305b"
+.LASF3744:
+ .string "MATCH_SH 0x1023"
+.LASF1288:
+ .string "DMA_CHCNT_RESET_VALUE ((uint32_t)0x00000000U)"
+.LASF2431:
+ .string "RTC_CNTH_CNT BITS(0,15)"
+.LASF2333:
+ .string "RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)"
+.LASF3153:
+ .string "ECLIC_INT_ATTR_TRIG_EDGE 0x02"
+.LASF1555:
+ .string "OB_SPC_SPC_N ((uint32_t)0x0000FF00U)"
+.LASF1623:
+ .string "GPIO_CTL0_MD2 BITS(8, 9)"
+.LASF3172:
+ .string "_WANT_IO_C99_FORMATS 1"
+.LASF1291:
+ .string "DMA_CHINTF_RESET_VALUE (DMA_INTF_GIF | DMA_INTF_FTFIF | DMA_INTF_HTFIF | DMA_INTF_ERRIF)"
+.LASF1387:
+ .string "EXTI_INTEN_INTEN17 BIT(17)"
+.LASF4381:
+ .string "TIMER5_IRQn"
+.LASF2566:
+ .string "SPI_I2S_INT_RBNE ((uint8_t)0x01U)"
+.LASF1217:
+ .string "DAC_TRIANGLE_AMPLITUDE_15 DAC_WAVE_BIT_WIDTH_4"
+.LASF3477:
+ .string "TMP_MAX 26"
+.LASF4332:
+ .string "CLIC_INT_PMOVI"
+.LASF2191:
+ .string "RCU_APB1EN_TIMER3EN BIT(2)"
+.LASF3065:
+ .string "WWDGT_CFG_WIN BITS(0,6)"
+.LASF2309:
+ .string "RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF2848:
+ .string "TIMER_OUTAUTO_DISABLE ((uint16_t)0x0000U)"
+.LASF1728:
+ .string "GPIO_BC_CR13 BIT(13)"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2176:
+ .string "RCU_AHBEN_EXMCEN BIT(8)"
+.LASF1212:
+ .string "DAC_ALIGN_12B_L DATA_ALIGN(1)"
+.LASF1651:
+ .string "GPIO_ISTAT_ISTAT0 BIT(0)"
+.LASF3027:
+ .string "USART_STB_1BIT CTL1_STB(0)"
+.LASF2170:
+ .string "RCU_APB1RST_DACRST BIT(29)"
+.LASF3166:
+ .string "ECLIC_GROUP_LEVEL2_PRIO2 2"
+.LASF1943:
+ .string "I2C_CKCFG_FAST BIT(15)"
+.LASF3066:
+ .string "WWDGT_CFG_PSC BITS(7,8)"
+.LASF3352:
+ .string "__lock_close(lock) ((void) 0)"
+.LASF892:
+ .string "CAN_STAT_SLPWS BIT(1)"
+.LASF3174:
+ .string "_WANT_REGISTER_FINI 1"
+.LASF3038:
+ .string "USART_CPH_1CK CTL1_CPH(0)"
+.LASF1242:
+ .string "DMA_CH2MADDR(dmax) REG32((dmax) + 0x3CU)"
+.LASF4363:
+ .string "TIMER3_IRQn"
+.LASF2460:
+ .string "SPI_CTL0_CKPL BIT(1)"
+.LASF2870:
+ .string "TIMER_OCN_IDLE_STATE_HIGH ((uint16_t)0x0200U)"
+.LASF1861:
+ .string "GPIO_TIMER0_PARTIAL_REMAP ((uint32_t)0x00160040U)"
+.LASF1006:
+ .string "BT_BAUDPSC(regval) (BITS(0,9) & ((uint32_t)(regval) << 0))"
+.LASF4184:
+ .string "CSR_MHPMCOUNTER12 0xb0c"
+.LASF1500:
+ .string "OB_WP2 REG16((OB) + 0x0CU)"
+.LASF1577:
+ .string "OB_WP_15 ((uint32_t)0x00008000U)"
+.LASF4161:
+ .string "CSR_MSCRATCH 0x340"
+.LASF2505:
+ .string "SPI_MASTER (SPI_CTL0_MSTMOD | SPI_CTL0_SWNSS)"
+.LASF1031:
+ .string "GET_RFIFOMDATA0_DB3(regval) GET_BITS((uint32_t)(regval), 24U, 31U)"
+.LASF587:
+ .string "ADC_RSQ0_RL BITS(20,23)"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF2687:
+ .string "TIMER_CHCTL0_CH1COMCTL BITS(12,14)"
+.LASF3432:
+ .string "_PID_T_DECLARED "
+.LASF2776:
+ .string "TIMER_DMAREQUEST_CHANNELEVENT ((uint32_t)0x00000000U)"
+.LASF2581:
+ .string "SPI_FLAG_FERR SPI_STAT_FERR"
+.LASF4021:
+ .string "MASK_C_SRLI 0xec03"
+.LASF3657:
+ .string "MASK_BLT 0x707f"
+.LASF3060:
+ .string "WWDGT_CTL REG32((WWDGT) + 0x00000000U)"
+.LASF2097:
+ .string "RCU_CTL_CKMEN BIT(19)"
+.LASF2274:
+ .string "RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)"
+.LASF678:
+ .string "ADC_INT_WDE ADC_STAT_WDE"
+.LASF1834:
+ .string "GPIO_PIN_SOURCE_12 ((uint8_t)0x0CU)"
+.LASF1027:
+ .string "GET_RFIFOMP_FI(regval) GET_BITS((uint32_t)(regval), 8U, 15U)"
+.LASF2678:
+ .string "TIMER_SWEVG_BRKG BIT(7)"
+.LASF1300:
+ .string "DMA_INT_FTF DMA_CHXCTL_FTFIE"
+.LASF2553:
+ .string "I2SCTL_I2SSTD(regval) (BITS(4,5) & ((uint32_t)(regval) << 4))"
+.LASF3295:
+ .string "__warn_references(sym,msg) __asm__(\".section .gnu.warning.\" #sym); __asm__(\".asciz \\\"\" msg \"\\\"\"); __asm__(\".previous\")"
+.LASF1372:
+ .string "EXTI_INTEN_INTEN2 BIT(2)"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF3798:
+ .string "MATCH_LR_W 0x1000202f"
+.LASF1648:
+ .string "GPIO_CTL1_CTL14 BITS(26, 27)"
+.LASF3109:
+ .string "_T_WCHAR_ "
+.LASF2040:
+ .string "DBG_LOW_POWER_DEEPSLEEP DBG_CTL_DSLP_HOLD"
+.LASF2308:
+ .string "RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))"
+.LASF984:
+ .string "CAN_RFIFOMDATA1_DB5 BITS(8,15)"
+.LASF2213:
+ .string "RCU_BDCTL_RTCEN BIT(15)"
+.LASF4132:
+ .string "CSR_HPMCOUNTER19 0xc13"
+.LASF2826:
+ .string "TIMER_COUNTER_CENTER_DOWN CTL0_CAM(1)"
+.LASF1325:
+ .string "GD32VF103_ECLIC_H "
+.LASF1984:
+ .string "I2C_ARP_DISABLE ((uint32_t)0x00000000U)"
+.LASF494:
+ .string "BITS(start,end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))"
+.LASF469:
+ .string "INTMAX_MIN (-INTMAX_MAX - 1)"
+.LASF1480:
+ .string "EXTI_PD_PD15 BIT(15)"
+.LASF3591:
+ .string "MIE_HTIE MIP_HTIP"
+.LASF3747:
+ .string "MASK_SW 0x707f"
+.LASF2056:
+ .string "PMU_CS_WUPEN BIT(8)"
+.LASF790:
+ .string "CAN_TMI0(canx) REG32((canx) + 0x180U)"
+.LASF2102:
+ .string "RCU_CTL_PLL2EN BIT(28)"
+.LASF2121:
+ .string "RCU_INT_PLLSTBIF BIT(4)"
+.LASF2327:
+ .string "RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)"
+.LASF1160:
+ .string "DAC0_R8DH_DAC0_DH BITS(0,7)"
+.LASF4226:
+ .string "CSR_MHPMEVENT23 0x337"
+.LASF3104:
+ .string "__size_t "
+.LASF2541:
+ .string "I2SCTL_DTLEN(regval) (BITS(1,2) & ((uint32_t)(regval) << 1))"
+.LASF3955:
+ .string "MASK_FLW 0x707f"
+.LASF357:
+ .string "__POSIX_VISIBLE 199009"
+.LASF4296:
+ .string "CSR_MHPMCOUNTER26H 0xb9a"
+.LASF4194:
+ .string "CSR_MHPMCOUNTER22 0xb16"
+.LASF3599:
+ .string "PRV_S 1"
+.LASF3381:
+ .string "_REENT_CHECK_ASCTIME_BUF(ptr) "
+.LASF2129:
+ .string "RCU_INT_PLLSTBIE BIT(12)"
+.LASF2231:
+ .string "RCU_CFG1_I2S2SEL BIT(18)"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF1864:
+ .string "GPIO_TIMER1_PARTIAL_REMAP1 ((uint32_t)0x00180200U)"
+.LASF1423:
+ .string "EXTI_RTEN_RTEN15 BIT(15)"
+.LASF3149:
+ .string "ECLIC_INT_IE_OFFSET _AC(0x1001,UL)"
+.LASF2725:
+ .string "TIMER_CH0CV_CH0VAL BITS(0,15)"
+.LASF1625:
+ .string "GPIO_CTL0_MD3 BITS(12, 13)"
+.LASF2981:
+ .string "USART_CTL1_CLEN BIT(8)"
+.LASF835:
+ .string "CAN_F20DATA0(canx) REG32((canx) + 0x2E0U)"
+.LASF1692:
+ .string "GPIO_BOP_BOP9 BIT(9)"
+.LASF372:
+ .string "__EXP"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1881:
+ .string "I2C1 (I2C_BASE + 0x00000400U)"
+.LASF3215:
+ .string "__attribute_pure__ "
+.LASF795:
+ .string "CAN_TMP1(canx) REG32((canx) + 0x194U)"
+.LASF4058:
+ .string "MATCH_C_SWSP 0xc002"
+.LASF546:
+ .string "ADC_IDATA1(adcx) REG32((adcx) + 0x40U)"
+.LASF2157:
+ .string "RCU_APB1RST_WWDGTRST BIT(11)"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF1600:
+ .string "GPIOB (GPIO_BASE + 0x00000400U)"
+.LASF2917:
+ .string "TIMER_SLAVE_MODE_DISABLE SMCFG_SMC(0)"
+.LASF2255:
+ .string "RCU_SCSS_PLL CFG0_SCSS(2)"
+.LASF919:
+ .string "CAN_TSTAT_TMLS0 BIT(29)"
+.LASF3258:
+ .string "__unused __attribute__((__unused__))"
+.LASF1837:
+ .string "GPIO_PIN_SOURCE_15 ((uint8_t)0x0FU)"
+.LASF3002:
+ .string "USART_BIT_POS(val) ((uint32_t)(val) & (0x0000001FU))"
+.LASF1275:
+ .string "DMA_CHXCTL_PWIDTH BITS(8,9)"
+.LASF2782:
+ .string "TIMER_DMACFG_DMATA_INTF DMACFG_DMATA(4)"
+.LASF768:
+ .string "BKP_TPCS_TIF BIT(9)"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF526:
+ .string "GD32VF103_LIBOPT_H "
+.LASF2638:
+ .string "TIMER_SMCFG_TRGS BITS(4,6)"
+.LASF4117:
+ .string "CSR_HPMCOUNTER4 0xc04"
+.LASF1724:
+ .string "GPIO_BC_CR9 BIT(9)"
+.LASF2726:
+ .string "TIMER_CH1CV_CH1VAL BITS(0,15)"
+.LASF3257:
+ .string "__pure2 __attribute__((__const__))"
+.LASF371:
+ .string "___int_least64_t_defined 1"
+.LASF4197:
+ .string "CSR_MHPMCOUNTER25 0xb19"
+.LASF2946:
+ .string "USART_BAUD(usartx) REG32((usartx) + (0x00000008U))"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF3286:
+ .string "__containerof(x,s,m) ({ const volatile __typeof(((s *)0)->m) *__x = (x); __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));})"
+.LASF3429:
+ .string "_DEV_T_DECLARED "
+.LASF4355:
+ .string "CAN0_EWMC_IRQn"
+.LASF4149:
+ .string "CSR_SEPC 0x141"
+.LASF3621:
+ .string "DEFAULT_MTVEC 0x00001010"
+.LASF3552:
+ .string "MCONTROL_MASKMAX(xlen) (0x3fULL<<((xlen)-11))"
+.LASF860:
+ .string "CAN_F17DATA1(canx) REG32((canx) + 0x24CU)"
+.LASF1347:
+ .string "EXMC_SNTCFG_AHLD BITS(4,7)"
+.LASF3544:
+ .string "DCSR_CAUSE_NONE 0"
+.LASF4011:
+ .string "MASK_C_FSW 0xe003"
+.LASF1790:
+ .string "GPIO_MODE_OUT_PP ((uint8_t)0x10U)"
+.LASF3072:
+ .string "WWDGT_CFG_PSC_DIV4 CFG_PSC(2)"
+.LASF3350:
+ .string "__lock_init(lock) ((void) 0)"
+.LASF1603:
+ .string "GPIOE (GPIO_BASE + 0x00001000U)"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF3145:
+ .string "ECLIC_CFG_OFFSET 0x0"
+.LASF3757:
+ .string "MASK_MULH 0xfe00707f"
+.LASF2728:
+ .string "TIMER_CH3CV_CH3VAL BITS(0,15)"
+.LASF2819:
+ .string "TIMER_EVENT_SRC_CH2G ((uint16_t)0x0008U)"
+.LASF1091:
+ .string "CAN_EFID_MASK ((uint32_t)0x1FFFFFFFU)"
+.LASF1116:
+ .string "CAN_INT_SLPW CAN_INTEN_SLPWIE"
+.LASF2727:
+ .string "TIMER_CH2CV_CH2VAL BITS(0,15)"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF1153:
+ .string "DAC_CTL_DWM1 BITS(22,23)"
+.LASF2015:
+ .string "FWDGT_RLD_TIMEOUT ((uint32_t)0x000FFFFFU)"
+.LASF1815:
+ .string "GPIO_EVENT_PIN_9 ((uint8_t)0x09U)"
+.LASF1566:
+ .string "OB_WP_4 ((uint32_t)0x00000010U)"
+.LASF470:
+ .string "UINTMAX_MAX (__UINTMAX_MAX__)"
+.LASF916:
+ .string "CAN_TSTAT_TME0 BIT(26)"
+.LASF661:
+ .string "ADC_CHANNEL_1 ((uint8_t)0x01U)"
+.LASF3439:
+ .string "__timer_t_defined "
+.LASF579:
+ .string "ADC_CTL1_SWICST BIT(21)"
+.LASF1267:
+ .string "DMA_CHXCTL_CHEN BIT(0)"
+.LASF2093:
+ .string "RCU_CTL_IRC8MCALIB BITS(8,15)"
+.LASF2366:
+ .string "RCU_PREDV1_DIV10 CFG1_PREDV1(9)"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF3402:
+ .string "_REENT_MBRTOWC_STATE(ptr) ((ptr)->_new._reent._mbrtowc_state)"
+.LASF2818:
+ .string "TIMER_EVENT_SRC_CH1G ((uint16_t)0x0004U)"
+.LASF3013:
+ .string "CTL0_TEN(regval) (BIT(3) & ((uint32_t)(regval) << 3))"
+.LASF3141:
+ .string "_AT(T,X) ((T)(X))"
+.LASF4394:
+ .string "unsigned int"
+.LASF2454:
+ .string "SPI_CRCPOLY(spix) REG32((spix) + 0x10U)"
+.LASF1942:
+ .string "I2C_CKCFG_DTCY BIT(14)"
+.LASF2267:
+ .string "RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)"
+.LASF424:
+ .string "__int_least64_t_defined 1"
+.LASF1892:
+ .string "I2C_CTL0_I2CEN BIT(0)"
+.LASF770:
+ .string "BKP_DATA10_41(number) REG16((BKP) + 0x40U + ((number)-10U) * 0x04U)"
+.LASF2614:
+ .string "TIMER_CCHP(timerx) REG32((timerx) + 0x44U)"
+.LASF414:
+ .string "_INT64_T_DECLARED "
+.LASF2756:
+ .string "TIMER_FLAG_UP TIMER_INTF_UPIF"
+.LASF3893:
+ .string "MASK_FCVT_S_D 0xfff0007f"
+.LASF1685:
+ .string "GPIO_BOP_BOP2 BIT(2)"
+.LASF2852:
+ .string "TIMER_CCHP_PROT_1 CCHP_PROT(2)"
+.LASF3729:
+ .string "MASK_LB 0x707f"
+.LASF3919:
+ .string "MASK_FMV_X_S 0xfff0707f"
+.LASF2929:
+ .string "TIMER_EXT_TRI_PSC_DIV2 SMCFG_ETPSC(1)"
+.LASF1159:
+ .string "DAC0_L12DH_DAC0_DH BITS(4,15)"
+.LASF1632:
+ .string "GPIO_CTL0_CTL6 BITS(26, 27)"
+.LASF1548:
+ .string "OB_STDBY_NRST ((uint8_t)0x04U)"
+.LASF1299:
+ .string "DMA_FLAG_ERR DMA_INTF_ERRIF"
+.LASF3977:
+ .string "MASK_FNMADD_D 0x600007f"
+.LASF3690:
+ .string "MATCH_ADD 0x33"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S
new file mode 100644
index 0000000000..231d14e55f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/start.S
@@ -0,0 +1,258 @@
+// See LICENSE for license details.
+
+#include "riscv_encoding.h"
+
+ .section .init
+
+ .weak eclic_msip_handler
+ .weak eclic_mtip_handler
+ .weak eclic_bwei_handler
+ .weak eclic_pmovi_handler
+ .weak WWDGT_IRQHandler
+ .weak LVD_IRQHandler
+ .weak TAMPER_IRQHandler
+ .weak RTC_IRQHandler
+ .weak FMC_IRQHandler
+ .weak RCU_IRQHandler
+ .weak EXTI0_IRQHandler
+ .weak EXTI1_IRQHandler
+ .weak EXTI2_IRQHandler
+ .weak EXTI3_IRQHandler
+ .weak EXTI4_IRQHandler
+ .weak DMA0_Channel0_IRQHandler
+ .weak DMA0_Channel1_IRQHandler
+ .weak DMA0_Channel2_IRQHandler
+ .weak DMA0_Channel3_IRQHandler
+ .weak DMA0_Channel4_IRQHandler
+ .weak DMA0_Channel5_IRQHandler
+ .weak DMA0_Channel6_IRQHandler
+ .weak ADC0_1_IRQHandler
+ .weak CAN0_TX_IRQHandler
+ .weak CAN0_RX0_IRQHandler
+ .weak CAN0_RX1_IRQHandler
+ .weak CAN0_EWMC_IRQHandler
+ .weak EXTI5_9_IRQHandler
+ .weak TIMER0_BRK_IRQHandler
+ .weak TIMER0_UP_IRQHandler
+ .weak TIMER0_TRG_CMT_IRQHandler
+ .weak TIMER0_Channel_IRQHandler
+ .weak TIMER1_IRQHandler
+ .weak TIMER2_IRQHandler
+ .weak TIMER3_IRQHandler
+ .weak I2C0_EV_IRQHandler
+ .weak I2C0_ER_IRQHandler
+ .weak I2C1_EV_IRQHandler
+ .weak I2C1_ER_IRQHandler
+ .weak SPI0_IRQHandler
+ .weak SPI1_IRQHandler
+ .weak USART0_IRQHandler
+ .weak USART1_IRQHandler
+ .weak USART2_IRQHandler
+ .weak EXTI10_15_IRQHandler
+ .weak RTC_Alarm_IRQHandler
+ .weak USBFS_WKUP_IRQHandler
+ .weak EXMC_IRQHandler
+ .weak TIMER4_IRQHandler
+ .weak SPI2_IRQHandler
+ .weak UART3_IRQHandler
+ .weak UART4_IRQHandler
+ .weak TIMER5_IRQHandler
+ .weak TIMER6_IRQHandler
+ .weak DMA1_Channel0_IRQHandler
+ .weak DMA1_Channel1_IRQHandler
+ .weak DMA1_Channel2_IRQHandler
+ .weak DMA1_Channel3_IRQHandler
+ .weak DMA1_Channel4_IRQHandler
+ .weak CAN1_TX_IRQHandler
+ .weak CAN1_RX0_IRQHandler
+ .weak CAN1_RX1_IRQHandler
+ .weak CAN1_EWMC_IRQHandler
+ .weak USBFS_IRQHandler
+
+vector_base:
+ j _start
+ .align 2
+ .word 0
+ .word 0
+ .word eclic_msip_handler
+ .word 0
+ .word 0
+ .word 0
+ .word eclic_mtip_handler
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word eclic_bwei_handler
+ .word eclic_pmovi_handler
+ .word WWDGT_IRQHandler
+ .word LVD_IRQHandler
+ .word TAMPER_IRQHandler
+ .word RTC_IRQHandler
+ .word FMC_IRQHandler
+ .word RCU_IRQHandler
+ .word EXTI0_IRQHandler
+ .word EXTI1_IRQHandler
+ .word EXTI2_IRQHandler
+ .word EXTI3_IRQHandler
+ .word EXTI4_IRQHandler
+ .word DMA0_Channel0_IRQHandler
+ .word DMA0_Channel1_IRQHandler
+ .word DMA0_Channel2_IRQHandler
+ .word DMA0_Channel3_IRQHandler
+ .word DMA0_Channel4_IRQHandler
+ .word DMA0_Channel5_IRQHandler
+ .word DMA0_Channel6_IRQHandler
+ .word ADC0_1_IRQHandler
+ .word CAN0_TX_IRQHandler
+ .word CAN0_RX0_IRQHandler
+ .word CAN0_RX1_IRQHandler
+ .word CAN0_EWMC_IRQHandler
+ .word EXTI5_9_IRQHandler
+ .word TIMER0_BRK_IRQHandler
+ .word TIMER0_UP_IRQHandler
+ .word TIMER0_TRG_CMT_IRQHandler
+ .word TIMER0_Channel_IRQHandler
+ .word TIMER1_IRQHandler
+ .word TIMER2_IRQHandler
+ .word TIMER3_IRQHandler
+ .word I2C0_EV_IRQHandler
+ .word I2C0_ER_IRQHandler
+ .word I2C1_EV_IRQHandler
+ .word I2C1_ER_IRQHandler
+ .word SPI0_IRQHandler
+ .word SPI1_IRQHandler
+ .word USART0_IRQHandler
+ .word USART1_IRQHandler
+ .word USART2_IRQHandler
+ .word EXTI10_15_IRQHandler
+ .word RTC_Alarm_IRQHandler
+ .word USBFS_WKUP_IRQHandler
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word EXMC_IRQHandler
+ .word 0
+ .word TIMER4_IRQHandler
+ .word SPI2_IRQHandler
+ .word UART3_IRQHandler
+ .word UART4_IRQHandler
+ .word TIMER5_IRQHandler
+ .word TIMER6_IRQHandler
+ .word DMA1_Channel0_IRQHandler
+ .word DMA1_Channel1_IRQHandler
+ .word DMA1_Channel2_IRQHandler
+ .word DMA1_Channel3_IRQHandler
+ .word DMA1_Channel4_IRQHandler
+ .word 0
+ .word 0
+ .word CAN1_TX_IRQHandler
+ .word CAN1_RX0_IRQHandler
+ .word CAN1_RX1_IRQHandler
+ .word CAN1_EWMC_IRQHandler
+ .word USBFS_IRQHandler
+
+ .globl _start
+ .type _start,@function
+
+_start:
+
+ csrc CSR_MSTATUS, MSTATUS_MIE
+ /* Jump to logical address first to ensure correct operation of RAM region */
+ la a0, _start
+ li a1, 1
+ slli a1, a1, 29
+ bleu a1, a0, _start0800
+ srli a1, a1, 2
+ bleu a1, a0, _start0800
+ la a0, _start0800
+ add a0, a0, a1
+ jr a0
+
+_start0800:
+
+ /* Set the the NMI base to share with mtvec by setting CSR_MMISC_CTL */
+ li t0, 0x200
+ csrs CSR_MMISC_CTL, t0
+
+ /* Intial the mtvt*/
+ la t0, vector_base
+ csrw CSR_MTVT, t0
+
+ /* Intial the mtvt2 and enable it*/
+ la t0, irq_entry
+ csrw CSR_MTVT2, t0
+ csrs CSR_MTVT2, 0x1
+
+ /* Intial the CSR MTVEC for the Trap ane NMI base addr*/
+ la t0, trap_entry
+ csrw CSR_MTVEC, t0
+
+#ifdef __riscv_flen
+ /* Enable FPU */
+ li t0, MSTATUS_FS
+ csrs mstatus, t0
+ csrw fcsr, x0
+#endif
+
+.option push
+.option norelax
+ la gp, __global_pointer$
+.option pop
+ la sp, _sp
+
+ /* Load data section */
+ la a0, _data_lma
+ la a1, _data
+ la a2, _edata
+ bgeu a1, a2, 2f
+1:
+ lw t0, (a0)
+ sw t0, (a1)
+ addi a0, a0, 4
+ addi a1, a1, 4
+ bltu a1, a2, 1b
+2:
+ /* Clear bss section */
+ la a0, __bss_start
+ la a1, _end
+ bgeu a0, a1, 2f
+1:
+ sw zero, (a0)
+ addi a0, a0, 4
+ bltu a0, a1, 1b
+2:
+ /*enable mcycle_minstret*/
+ csrci CSR_MCOUNTINHIBIT, 0x5
+ /* Call global constructors */
+ la a0, __libc_fini_array
+ call atexit
+ call __libc_init_array
+
+
+ /* argc = argv = 0 */
+ li a0, 0
+ li a1, 0
+ call entry
+ tail exit
+
+1:
+ j 1b
+
+ .global disable_mcycle_minstret
+disable_mcycle_minstret:
+ csrsi CSR_MCOUNTINHIBIT, 0x5
+ ret
+
+ .global enable_mcycle_minstret
+enable_mcycle_minstret:
+ csrci CSR_MCOUNTINHIBIT, 0x5
+ ret
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/your_printf.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/your_printf.c
new file mode 100644
index 0000000000..bbb95b6167
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/your_printf.c
@@ -0,0 +1,5 @@
+int __wrap_printf(const char* fmt, ...)
+{
+ // You can implement your own printf to reduce the code size, because the printf is really a big function
+}
+
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/your_printf.s b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/your_printf.s
new file mode 100644
index 0000000000..d6f2977d91
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/your_printf.s
@@ -0,0 +1,1885 @@
+ .file "your_printf.c"
+ .option nopic
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 1
+ .globl __wrap_printf
+ .type __wrap_printf, @function
+__wrap_printf:
+.LFB0:
+ .file 1 "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\env_Eclipse\\your_printf.c"
+ .loc 1 2 1
+ .cfi_startproc
+ addi sp,sp,-64
+ .cfi_def_cfa_offset 64
+ sw s0,28(sp)
+ .cfi_offset 8, -36
+ addi s0,sp,32
+ .cfi_def_cfa 8, 32
+ sw a0,-20(s0)
+ sw a1,4(s0)
+ sw a2,8(s0)
+ sw a3,12(s0)
+ sw a4,16(s0)
+ sw a5,20(s0)
+ sw a6,24(s0)
+ sw a7,28(s0)
+ .loc 1 4 1
+ nop
+ mv a0,a5
+ lw s0,28(sp)
+ .cfi_restore 8
+ .cfi_def_cfa 2, 64
+ addi sp,sp,64
+ .cfi_def_cfa_offset 0
+ jr ra
+ .cfi_endproc
+.LFE0:
+ .size __wrap_printf, .-__wrap_printf
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .4byte 0x6a
+ .2byte 0x4
+ .4byte .Ldebug_abbrev0
+ .byte 0x4
+ .byte 0x1
+ .4byte .LASF330
+ .byte 0xc
+ .4byte .LASF331
+ .4byte .LASF332
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte .Ldebug_line0
+ .4byte .Ldebug_macro0
+ .byte 0x2
+ .4byte .LASF333
+ .byte 0x1
+ .byte 0x1
+ .byte 0x5
+ .4byte 0x54
+ .4byte .LFB0
+ .4byte .LFE0-.LFB0
+ .byte 0x1
+ .byte 0x9c
+ .4byte 0x54
+ .byte 0x3
+ .string "fmt"
+ .byte 0x1
+ .byte 0x1
+ .byte 0x1f
+ .4byte 0x5b
+ .byte 0x2
+ .byte 0x91
+ .byte 0x4c
+ .byte 0x4
+ .byte 0
+ .byte 0x5
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .byte 0x6
+ .byte 0x4
+ .4byte 0x68
+ .byte 0x7
+ .byte 0x1
+ .byte 0x8
+ .4byte .LASF329
+ .byte 0x8
+ .4byte 0x61
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .byte 0x1
+ .byte 0x11
+ .byte 0x1
+ .byte 0x25
+ .byte 0xe
+ .byte 0x13
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0x1b
+ .byte 0xe
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x10
+ .byte 0x17
+ .byte 0x99,0x42
+ .byte 0x17
+ .byte 0
+ .byte 0
+ .byte 0x2
+ .byte 0x2e
+ .byte 0x1
+ .byte 0x3f
+ .byte 0x19
+ .byte 0x3
+ .byte 0xe
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x27
+ .byte 0x19
+ .byte 0x49
+ .byte 0x13
+ .byte 0x11
+ .byte 0x1
+ .byte 0x12
+ .byte 0x6
+ .byte 0x40
+ .byte 0x18
+ .byte 0x97,0x42
+ .byte 0x19
+ .byte 0x1
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x3
+ .byte 0x5
+ .byte 0
+ .byte 0x3
+ .byte 0x8
+ .byte 0x3a
+ .byte 0xb
+ .byte 0x3b
+ .byte 0xb
+ .byte 0x39
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0x2
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0x4
+ .byte 0x18
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0x5
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0x8
+ .byte 0
+ .byte 0
+ .byte 0x6
+ .byte 0xf
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0x7
+ .byte 0x24
+ .byte 0
+ .byte 0xb
+ .byte 0xb
+ .byte 0x3e
+ .byte 0xb
+ .byte 0x3
+ .byte 0xe
+ .byte 0
+ .byte 0
+ .byte 0x8
+ .byte 0x26
+ .byte 0
+ .byte 0x49
+ .byte 0x13
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .4byte 0x1c
+ .2byte 0x2
+ .4byte .Ldebug_info0
+ .byte 0x4
+ .byte 0
+ .2byte 0
+ .2byte 0
+ .4byte .Ltext0
+ .4byte .Letext0-.Ltext0
+ .4byte 0
+ .4byte 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .2byte 0x4
+ .byte 0x2
+ .4byte .Ldebug_line0
+ .byte 0x3
+ .byte 0
+ .byte 0x1
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF0
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF1
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF2
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF3
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF4
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF5
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF6
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF7
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF8
+ .byte 0x5
+ .byte 0xa
+ .4byte .LASF9
+ .byte 0x5
+ .byte 0xb
+ .4byte .LASF10
+ .byte 0x5
+ .byte 0xc
+ .4byte .LASF11
+ .byte 0x5
+ .byte 0xd
+ .4byte .LASF12
+ .byte 0x5
+ .byte 0xe
+ .4byte .LASF13
+ .byte 0x5
+ .byte 0xf
+ .4byte .LASF14
+ .byte 0x5
+ .byte 0x10
+ .4byte .LASF15
+ .byte 0x5
+ .byte 0x11
+ .4byte .LASF16
+ .byte 0x5
+ .byte 0x12
+ .4byte .LASF17
+ .byte 0x5
+ .byte 0x13
+ .4byte .LASF18
+ .byte 0x5
+ .byte 0x14
+ .4byte .LASF19
+ .byte 0x5
+ .byte 0x15
+ .4byte .LASF20
+ .byte 0x5
+ .byte 0x16
+ .4byte .LASF21
+ .byte 0x5
+ .byte 0x17
+ .4byte .LASF22
+ .byte 0x5
+ .byte 0x18
+ .4byte .LASF23
+ .byte 0x5
+ .byte 0x19
+ .4byte .LASF24
+ .byte 0x5
+ .byte 0x1a
+ .4byte .LASF25
+ .byte 0x5
+ .byte 0x1b
+ .4byte .LASF26
+ .byte 0x5
+ .byte 0x1c
+ .4byte .LASF27
+ .byte 0x5
+ .byte 0x1d
+ .4byte .LASF28
+ .byte 0x5
+ .byte 0x1e
+ .4byte .LASF29
+ .byte 0x5
+ .byte 0x1f
+ .4byte .LASF30
+ .byte 0x5
+ .byte 0x20
+ .4byte .LASF31
+ .byte 0x5
+ .byte 0x21
+ .4byte .LASF32
+ .byte 0x5
+ .byte 0x22
+ .4byte .LASF33
+ .byte 0x5
+ .byte 0x23
+ .4byte .LASF34
+ .byte 0x5
+ .byte 0x24
+ .4byte .LASF35
+ .byte 0x5
+ .byte 0x25
+ .4byte .LASF36
+ .byte 0x5
+ .byte 0x26
+ .4byte .LASF37
+ .byte 0x5
+ .byte 0x27
+ .4byte .LASF38
+ .byte 0x5
+ .byte 0x28
+ .4byte .LASF39
+ .byte 0x5
+ .byte 0x29
+ .4byte .LASF40
+ .byte 0x5
+ .byte 0x2a
+ .4byte .LASF41
+ .byte 0x5
+ .byte 0x2b
+ .4byte .LASF42
+ .byte 0x5
+ .byte 0x2c
+ .4byte .LASF43
+ .byte 0x5
+ .byte 0x2d
+ .4byte .LASF44
+ .byte 0x5
+ .byte 0x2e
+ .4byte .LASF45
+ .byte 0x5
+ .byte 0x2f
+ .4byte .LASF46
+ .byte 0x5
+ .byte 0x30
+ .4byte .LASF47
+ .byte 0x5
+ .byte 0x31
+ .4byte .LASF48
+ .byte 0x5
+ .byte 0x32
+ .4byte .LASF49
+ .byte 0x5
+ .byte 0x33
+ .4byte .LASF50
+ .byte 0x5
+ .byte 0x34
+ .4byte .LASF51
+ .byte 0x5
+ .byte 0x35
+ .4byte .LASF52
+ .byte 0x5
+ .byte 0x36
+ .4byte .LASF53
+ .byte 0x5
+ .byte 0x37
+ .4byte .LASF54
+ .byte 0x5
+ .byte 0x38
+ .4byte .LASF55
+ .byte 0x5
+ .byte 0x39
+ .4byte .LASF56
+ .byte 0x5
+ .byte 0x3a
+ .4byte .LASF57
+ .byte 0x5
+ .byte 0x3b
+ .4byte .LASF58
+ .byte 0x5
+ .byte 0x3c
+ .4byte .LASF59
+ .byte 0x5
+ .byte 0x3d
+ .4byte .LASF60
+ .byte 0x5
+ .byte 0x3e
+ .4byte .LASF61
+ .byte 0x5
+ .byte 0x3f
+ .4byte .LASF62
+ .byte 0x5
+ .byte 0x40
+ .4byte .LASF63
+ .byte 0x5
+ .byte 0x41
+ .4byte .LASF64
+ .byte 0x5
+ .byte 0x42
+ .4byte .LASF65
+ .byte 0x5
+ .byte 0x43
+ .4byte .LASF66
+ .byte 0x5
+ .byte 0x44
+ .4byte .LASF67
+ .byte 0x5
+ .byte 0x45
+ .4byte .LASF68
+ .byte 0x5
+ .byte 0x46
+ .4byte .LASF69
+ .byte 0x5
+ .byte 0x47
+ .4byte .LASF70
+ .byte 0x5
+ .byte 0x48
+ .4byte .LASF71
+ .byte 0x5
+ .byte 0x49
+ .4byte .LASF72
+ .byte 0x5
+ .byte 0x4a
+ .4byte .LASF73
+ .byte 0x5
+ .byte 0x4b
+ .4byte .LASF74
+ .byte 0x5
+ .byte 0x4c
+ .4byte .LASF75
+ .byte 0x5
+ .byte 0x4d
+ .4byte .LASF76
+ .byte 0x5
+ .byte 0x4e
+ .4byte .LASF77
+ .byte 0x5
+ .byte 0x4f
+ .4byte .LASF78
+ .byte 0x5
+ .byte 0x50
+ .4byte .LASF79
+ .byte 0x5
+ .byte 0x51
+ .4byte .LASF80
+ .byte 0x5
+ .byte 0x52
+ .4byte .LASF81
+ .byte 0x5
+ .byte 0x53
+ .4byte .LASF82
+ .byte 0x5
+ .byte 0x54
+ .4byte .LASF83
+ .byte 0x5
+ .byte 0x55
+ .4byte .LASF84
+ .byte 0x5
+ .byte 0x56
+ .4byte .LASF85
+ .byte 0x5
+ .byte 0x57
+ .4byte .LASF86
+ .byte 0x5
+ .byte 0x58
+ .4byte .LASF87
+ .byte 0x5
+ .byte 0x59
+ .4byte .LASF88
+ .byte 0x5
+ .byte 0x5a
+ .4byte .LASF89
+ .byte 0x5
+ .byte 0x5b
+ .4byte .LASF90
+ .byte 0x5
+ .byte 0x5c
+ .4byte .LASF91
+ .byte 0x5
+ .byte 0x5d
+ .4byte .LASF92
+ .byte 0x5
+ .byte 0x5e
+ .4byte .LASF93
+ .byte 0x5
+ .byte 0x5f
+ .4byte .LASF94
+ .byte 0x5
+ .byte 0x60
+ .4byte .LASF95
+ .byte 0x5
+ .byte 0x61
+ .4byte .LASF96
+ .byte 0x5
+ .byte 0x62
+ .4byte .LASF97
+ .byte 0x5
+ .byte 0x63
+ .4byte .LASF98
+ .byte 0x5
+ .byte 0x64
+ .4byte .LASF99
+ .byte 0x5
+ .byte 0x65
+ .4byte .LASF100
+ .byte 0x5
+ .byte 0x66
+ .4byte .LASF101
+ .byte 0x5
+ .byte 0x67
+ .4byte .LASF102
+ .byte 0x5
+ .byte 0x68
+ .4byte .LASF103
+ .byte 0x5
+ .byte 0x69
+ .4byte .LASF104
+ .byte 0x5
+ .byte 0x6a
+ .4byte .LASF105
+ .byte 0x5
+ .byte 0x6b
+ .4byte .LASF106
+ .byte 0x5
+ .byte 0x6c
+ .4byte .LASF107
+ .byte 0x5
+ .byte 0x6d
+ .4byte .LASF108
+ .byte 0x5
+ .byte 0x6e
+ .4byte .LASF109
+ .byte 0x5
+ .byte 0x6f
+ .4byte .LASF110
+ .byte 0x5
+ .byte 0x70
+ .4byte .LASF111
+ .byte 0x5
+ .byte 0x71
+ .4byte .LASF112
+ .byte 0x5
+ .byte 0x72
+ .4byte .LASF113
+ .byte 0x5
+ .byte 0x73
+ .4byte .LASF114
+ .byte 0x5
+ .byte 0x74
+ .4byte .LASF115
+ .byte 0x5
+ .byte 0x75
+ .4byte .LASF116
+ .byte 0x5
+ .byte 0x76
+ .4byte .LASF117
+ .byte 0x5
+ .byte 0x77
+ .4byte .LASF118
+ .byte 0x5
+ .byte 0x78
+ .4byte .LASF119
+ .byte 0x5
+ .byte 0x79
+ .4byte .LASF120
+ .byte 0x5
+ .byte 0x7a
+ .4byte .LASF121
+ .byte 0x5
+ .byte 0x7b
+ .4byte .LASF122
+ .byte 0x5
+ .byte 0x7c
+ .4byte .LASF123
+ .byte 0x5
+ .byte 0x7d
+ .4byte .LASF124
+ .byte 0x5
+ .byte 0x7e
+ .4byte .LASF125
+ .byte 0x5
+ .byte 0x7f
+ .4byte .LASF126
+ .byte 0x5
+ .byte 0x80,0x1
+ .4byte .LASF127
+ .byte 0x5
+ .byte 0x81,0x1
+ .4byte .LASF128
+ .byte 0x5
+ .byte 0x82,0x1
+ .4byte .LASF129
+ .byte 0x5
+ .byte 0x83,0x1
+ .4byte .LASF130
+ .byte 0x5
+ .byte 0x84,0x1
+ .4byte .LASF131
+ .byte 0x5
+ .byte 0x85,0x1
+ .4byte .LASF132
+ .byte 0x5
+ .byte 0x86,0x1
+ .4byte .LASF133
+ .byte 0x5
+ .byte 0x87,0x1
+ .4byte .LASF134
+ .byte 0x5
+ .byte 0x88,0x1
+ .4byte .LASF135
+ .byte 0x5
+ .byte 0x89,0x1
+ .4byte .LASF136
+ .byte 0x5
+ .byte 0x8a,0x1
+ .4byte .LASF137
+ .byte 0x5
+ .byte 0x8b,0x1
+ .4byte .LASF138
+ .byte 0x5
+ .byte 0x8c,0x1
+ .4byte .LASF139
+ .byte 0x5
+ .byte 0x8d,0x1
+ .4byte .LASF140
+ .byte 0x5
+ .byte 0x8e,0x1
+ .4byte .LASF141
+ .byte 0x5
+ .byte 0x8f,0x1
+ .4byte .LASF142
+ .byte 0x5
+ .byte 0x90,0x1
+ .4byte .LASF143
+ .byte 0x5
+ .byte 0x91,0x1
+ .4byte .LASF144
+ .byte 0x5
+ .byte 0x92,0x1
+ .4byte .LASF145
+ .byte 0x5
+ .byte 0x93,0x1
+ .4byte .LASF146
+ .byte 0x5
+ .byte 0x94,0x1
+ .4byte .LASF147
+ .byte 0x5
+ .byte 0x95,0x1
+ .4byte .LASF148
+ .byte 0x5
+ .byte 0x96,0x1
+ .4byte .LASF149
+ .byte 0x5
+ .byte 0x97,0x1
+ .4byte .LASF150
+ .byte 0x5
+ .byte 0x98,0x1
+ .4byte .LASF151
+ .byte 0x5
+ .byte 0x99,0x1
+ .4byte .LASF152
+ .byte 0x5
+ .byte 0x9a,0x1
+ .4byte .LASF153
+ .byte 0x5
+ .byte 0x9b,0x1
+ .4byte .LASF154
+ .byte 0x5
+ .byte 0x9c,0x1
+ .4byte .LASF155
+ .byte 0x5
+ .byte 0x9d,0x1
+ .4byte .LASF156
+ .byte 0x5
+ .byte 0x9e,0x1
+ .4byte .LASF157
+ .byte 0x5
+ .byte 0x9f,0x1
+ .4byte .LASF158
+ .byte 0x5
+ .byte 0xa0,0x1
+ .4byte .LASF159
+ .byte 0x5
+ .byte 0xa1,0x1
+ .4byte .LASF160
+ .byte 0x5
+ .byte 0xa2,0x1
+ .4byte .LASF161
+ .byte 0x5
+ .byte 0xa3,0x1
+ .4byte .LASF162
+ .byte 0x5
+ .byte 0xa4,0x1
+ .4byte .LASF163
+ .byte 0x5
+ .byte 0xa5,0x1
+ .4byte .LASF164
+ .byte 0x5
+ .byte 0xa6,0x1
+ .4byte .LASF165
+ .byte 0x5
+ .byte 0xa7,0x1
+ .4byte .LASF166
+ .byte 0x5
+ .byte 0xa8,0x1
+ .4byte .LASF167
+ .byte 0x5
+ .byte 0xa9,0x1
+ .4byte .LASF168
+ .byte 0x5
+ .byte 0xaa,0x1
+ .4byte .LASF169
+ .byte 0x5
+ .byte 0xab,0x1
+ .4byte .LASF170
+ .byte 0x5
+ .byte 0xac,0x1
+ .4byte .LASF171
+ .byte 0x5
+ .byte 0xad,0x1
+ .4byte .LASF172
+ .byte 0x5
+ .byte 0xae,0x1
+ .4byte .LASF173
+ .byte 0x5
+ .byte 0xaf,0x1
+ .4byte .LASF174
+ .byte 0x5
+ .byte 0xb0,0x1
+ .4byte .LASF175
+ .byte 0x5
+ .byte 0xb1,0x1
+ .4byte .LASF176
+ .byte 0x5
+ .byte 0xb2,0x1
+ .4byte .LASF177
+ .byte 0x5
+ .byte 0xb3,0x1
+ .4byte .LASF178
+ .byte 0x5
+ .byte 0xb4,0x1
+ .4byte .LASF179
+ .byte 0x5
+ .byte 0xb5,0x1
+ .4byte .LASF180
+ .byte 0x5
+ .byte 0xb6,0x1
+ .4byte .LASF181
+ .byte 0x5
+ .byte 0xb7,0x1
+ .4byte .LASF182
+ .byte 0x5
+ .byte 0xb8,0x1
+ .4byte .LASF183
+ .byte 0x5
+ .byte 0xb9,0x1
+ .4byte .LASF184
+ .byte 0x5
+ .byte 0xba,0x1
+ .4byte .LASF185
+ .byte 0x5
+ .byte 0xbb,0x1
+ .4byte .LASF186
+ .byte 0x5
+ .byte 0xbc,0x1
+ .4byte .LASF187
+ .byte 0x5
+ .byte 0xbd,0x1
+ .4byte .LASF188
+ .byte 0x5
+ .byte 0xbe,0x1
+ .4byte .LASF189
+ .byte 0x5
+ .byte 0xbf,0x1
+ .4byte .LASF190
+ .byte 0x5
+ .byte 0xc0,0x1
+ .4byte .LASF191
+ .byte 0x5
+ .byte 0xc1,0x1
+ .4byte .LASF192
+ .byte 0x5
+ .byte 0xc2,0x1
+ .4byte .LASF193
+ .byte 0x5
+ .byte 0xc3,0x1
+ .4byte .LASF194
+ .byte 0x5
+ .byte 0xc4,0x1
+ .4byte .LASF195
+ .byte 0x5
+ .byte 0xc5,0x1
+ .4byte .LASF196
+ .byte 0x5
+ .byte 0xc6,0x1
+ .4byte .LASF197
+ .byte 0x5
+ .byte 0xc7,0x1
+ .4byte .LASF198
+ .byte 0x5
+ .byte 0xc8,0x1
+ .4byte .LASF199
+ .byte 0x5
+ .byte 0xc9,0x1
+ .4byte .LASF200
+ .byte 0x5
+ .byte 0xca,0x1
+ .4byte .LASF201
+ .byte 0x5
+ .byte 0xcb,0x1
+ .4byte .LASF202
+ .byte 0x5
+ .byte 0xcc,0x1
+ .4byte .LASF203
+ .byte 0x5
+ .byte 0xcd,0x1
+ .4byte .LASF204
+ .byte 0x5
+ .byte 0xce,0x1
+ .4byte .LASF205
+ .byte 0x5
+ .byte 0xcf,0x1
+ .4byte .LASF206
+ .byte 0x5
+ .byte 0xd0,0x1
+ .4byte .LASF207
+ .byte 0x5
+ .byte 0xd1,0x1
+ .4byte .LASF208
+ .byte 0x5
+ .byte 0xd2,0x1
+ .4byte .LASF209
+ .byte 0x5
+ .byte 0xd3,0x1
+ .4byte .LASF210
+ .byte 0x5
+ .byte 0xd4,0x1
+ .4byte .LASF211
+ .byte 0x5
+ .byte 0xd5,0x1
+ .4byte .LASF212
+ .byte 0x5
+ .byte 0xd6,0x1
+ .4byte .LASF213
+ .byte 0x5
+ .byte 0xd7,0x1
+ .4byte .LASF214
+ .byte 0x5
+ .byte 0xd8,0x1
+ .4byte .LASF215
+ .byte 0x5
+ .byte 0xd9,0x1
+ .4byte .LASF216
+ .byte 0x5
+ .byte 0xda,0x1
+ .4byte .LASF217
+ .byte 0x5
+ .byte 0xdb,0x1
+ .4byte .LASF218
+ .byte 0x5
+ .byte 0xdc,0x1
+ .4byte .LASF219
+ .byte 0x5
+ .byte 0xdd,0x1
+ .4byte .LASF220
+ .byte 0x5
+ .byte 0xde,0x1
+ .4byte .LASF221
+ .byte 0x5
+ .byte 0xdf,0x1
+ .4byte .LASF222
+ .byte 0x5
+ .byte 0xe0,0x1
+ .4byte .LASF223
+ .byte 0x5
+ .byte 0xe1,0x1
+ .4byte .LASF224
+ .byte 0x5
+ .byte 0xe2,0x1
+ .4byte .LASF225
+ .byte 0x5
+ .byte 0xe3,0x1
+ .4byte .LASF226
+ .byte 0x5
+ .byte 0xe4,0x1
+ .4byte .LASF227
+ .byte 0x5
+ .byte 0xe5,0x1
+ .4byte .LASF228
+ .byte 0x5
+ .byte 0xe6,0x1
+ .4byte .LASF229
+ .byte 0x5
+ .byte 0xe7,0x1
+ .4byte .LASF230
+ .byte 0x5
+ .byte 0xe8,0x1
+ .4byte .LASF231
+ .byte 0x5
+ .byte 0xe9,0x1
+ .4byte .LASF232
+ .byte 0x5
+ .byte 0xea,0x1
+ .4byte .LASF233
+ .byte 0x5
+ .byte 0xeb,0x1
+ .4byte .LASF234
+ .byte 0x5
+ .byte 0xec,0x1
+ .4byte .LASF235
+ .byte 0x5
+ .byte 0xed,0x1
+ .4byte .LASF236
+ .byte 0x5
+ .byte 0xee,0x1
+ .4byte .LASF237
+ .byte 0x5
+ .byte 0xef,0x1
+ .4byte .LASF238
+ .byte 0x5
+ .byte 0xf0,0x1
+ .4byte .LASF239
+ .byte 0x5
+ .byte 0xf1,0x1
+ .4byte .LASF240
+ .byte 0x5
+ .byte 0xf2,0x1
+ .4byte .LASF241
+ .byte 0x5
+ .byte 0xf3,0x1
+ .4byte .LASF242
+ .byte 0x5
+ .byte 0xf4,0x1
+ .4byte .LASF243
+ .byte 0x5
+ .byte 0xf5,0x1
+ .4byte .LASF244
+ .byte 0x5
+ .byte 0xf6,0x1
+ .4byte .LASF245
+ .byte 0x5
+ .byte 0xf7,0x1
+ .4byte .LASF246
+ .byte 0x5
+ .byte 0xf8,0x1
+ .4byte .LASF247
+ .byte 0x5
+ .byte 0xf9,0x1
+ .4byte .LASF248
+ .byte 0x5
+ .byte 0xfa,0x1
+ .4byte .LASF249
+ .byte 0x5
+ .byte 0xfb,0x1
+ .4byte .LASF250
+ .byte 0x5
+ .byte 0xfc,0x1
+ .4byte .LASF251
+ .byte 0x5
+ .byte 0xfd,0x1
+ .4byte .LASF252
+ .byte 0x5
+ .byte 0xfe,0x1
+ .4byte .LASF253
+ .byte 0x5
+ .byte 0xff,0x1
+ .4byte .LASF254
+ .byte 0x5
+ .byte 0x80,0x2
+ .4byte .LASF255
+ .byte 0x5
+ .byte 0x81,0x2
+ .4byte .LASF256
+ .byte 0x5
+ .byte 0x82,0x2
+ .4byte .LASF257
+ .byte 0x5
+ .byte 0x83,0x2
+ .4byte .LASF258
+ .byte 0x5
+ .byte 0x84,0x2
+ .4byte .LASF259
+ .byte 0x5
+ .byte 0x85,0x2
+ .4byte .LASF260
+ .byte 0x5
+ .byte 0x86,0x2
+ .4byte .LASF261
+ .byte 0x5
+ .byte 0x87,0x2
+ .4byte .LASF262
+ .byte 0x5
+ .byte 0x88,0x2
+ .4byte .LASF263
+ .byte 0x5
+ .byte 0x89,0x2
+ .4byte .LASF264
+ .byte 0x5
+ .byte 0x8a,0x2
+ .4byte .LASF265
+ .byte 0x5
+ .byte 0x8b,0x2
+ .4byte .LASF266
+ .byte 0x5
+ .byte 0x8c,0x2
+ .4byte .LASF267
+ .byte 0x5
+ .byte 0x8d,0x2
+ .4byte .LASF268
+ .byte 0x5
+ .byte 0x8e,0x2
+ .4byte .LASF269
+ .byte 0x5
+ .byte 0x8f,0x2
+ .4byte .LASF270
+ .byte 0x5
+ .byte 0x90,0x2
+ .4byte .LASF271
+ .byte 0x5
+ .byte 0x91,0x2
+ .4byte .LASF272
+ .byte 0x5
+ .byte 0x92,0x2
+ .4byte .LASF273
+ .byte 0x5
+ .byte 0x93,0x2
+ .4byte .LASF274
+ .byte 0x5
+ .byte 0x94,0x2
+ .4byte .LASF275
+ .byte 0x5
+ .byte 0x95,0x2
+ .4byte .LASF276
+ .byte 0x5
+ .byte 0x96,0x2
+ .4byte .LASF277
+ .byte 0x5
+ .byte 0x97,0x2
+ .4byte .LASF278
+ .byte 0x5
+ .byte 0x98,0x2
+ .4byte .LASF279
+ .byte 0x5
+ .byte 0x99,0x2
+ .4byte .LASF280
+ .byte 0x5
+ .byte 0x9a,0x2
+ .4byte .LASF281
+ .byte 0x5
+ .byte 0x9b,0x2
+ .4byte .LASF282
+ .byte 0x5
+ .byte 0x9c,0x2
+ .4byte .LASF283
+ .byte 0x5
+ .byte 0x9d,0x2
+ .4byte .LASF284
+ .byte 0x5
+ .byte 0x9e,0x2
+ .4byte .LASF285
+ .byte 0x5
+ .byte 0x9f,0x2
+ .4byte .LASF286
+ .byte 0x5
+ .byte 0xa0,0x2
+ .4byte .LASF287
+ .byte 0x5
+ .byte 0xa1,0x2
+ .4byte .LASF288
+ .byte 0x5
+ .byte 0xa2,0x2
+ .4byte .LASF289
+ .byte 0x5
+ .byte 0xa3,0x2
+ .4byte .LASF290
+ .byte 0x5
+ .byte 0xa4,0x2
+ .4byte .LASF291
+ .byte 0x5
+ .byte 0xa5,0x2
+ .4byte .LASF292
+ .byte 0x5
+ .byte 0xa6,0x2
+ .4byte .LASF293
+ .byte 0x5
+ .byte 0xa7,0x2
+ .4byte .LASF294
+ .byte 0x5
+ .byte 0xa8,0x2
+ .4byte .LASF295
+ .byte 0x5
+ .byte 0xa9,0x2
+ .4byte .LASF296
+ .byte 0x5
+ .byte 0xaa,0x2
+ .4byte .LASF297
+ .byte 0x5
+ .byte 0xab,0x2
+ .4byte .LASF298
+ .byte 0x5
+ .byte 0xac,0x2
+ .4byte .LASF299
+ .byte 0x5
+ .byte 0xad,0x2
+ .4byte .LASF300
+ .byte 0x5
+ .byte 0xae,0x2
+ .4byte .LASF301
+ .byte 0x5
+ .byte 0xaf,0x2
+ .4byte .LASF302
+ .byte 0x5
+ .byte 0xb0,0x2
+ .4byte .LASF303
+ .byte 0x5
+ .byte 0xb1,0x2
+ .4byte .LASF304
+ .byte 0x5
+ .byte 0xb2,0x2
+ .4byte .LASF305
+ .byte 0x5
+ .byte 0xb3,0x2
+ .4byte .LASF306
+ .byte 0x5
+ .byte 0xb4,0x2
+ .4byte .LASF307
+ .byte 0x5
+ .byte 0xb5,0x2
+ .4byte .LASF308
+ .byte 0x5
+ .byte 0xb6,0x2
+ .4byte .LASF309
+ .byte 0x5
+ .byte 0xb7,0x2
+ .4byte .LASF310
+ .byte 0x5
+ .byte 0xb8,0x2
+ .4byte .LASF311
+ .byte 0x5
+ .byte 0xb9,0x2
+ .4byte .LASF312
+ .byte 0x5
+ .byte 0xba,0x2
+ .4byte .LASF313
+ .byte 0x5
+ .byte 0xbb,0x2
+ .4byte .LASF314
+ .byte 0x5
+ .byte 0xbc,0x2
+ .4byte .LASF315
+ .byte 0x5
+ .byte 0xbd,0x2
+ .4byte .LASF316
+ .byte 0x5
+ .byte 0xbe,0x2
+ .4byte .LASF317
+ .byte 0x5
+ .byte 0xbf,0x2
+ .4byte .LASF318
+ .byte 0x5
+ .byte 0xc0,0x2
+ .4byte .LASF319
+ .byte 0x5
+ .byte 0x1
+ .4byte .LASF320
+ .byte 0x5
+ .byte 0x2
+ .4byte .LASF321
+ .byte 0x5
+ .byte 0x3
+ .4byte .LASF322
+ .byte 0x5
+ .byte 0x4
+ .4byte .LASF323
+ .byte 0x5
+ .byte 0x5
+ .4byte .LASF324
+ .byte 0x5
+ .byte 0x6
+ .4byte .LASF325
+ .byte 0x5
+ .byte 0x7
+ .4byte .LASF326
+ .byte 0x5
+ .byte 0x8
+ .4byte .LASF327
+ .byte 0x5
+ .byte 0x9
+ .4byte .LASF328
+ .byte 0x4
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF132:
+ .string "__UINT_FAST8_MAX__ 0xffffffffU"
+.LASF233:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF129:
+ .string "__INT_FAST32_WIDTH__ 32"
+.LASF202:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF231:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF207:
+ .string "__FLT32_DIG__ 6"
+.LASF23:
+ .string "__SIZEOF_SIZE_T__ 4"
+.LASF44:
+ .string "__INT64_TYPE__ long long int"
+.LASF246:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF155:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF114:
+ .string "__INT64_C(c) c ## LL"
+.LASF31:
+ .string "__SIZEOF_POINTER__ 4"
+.LASF55:
+ .string "__UINT_LEAST32_TYPE__ long unsigned int"
+.LASF308:
+ .string "__riscv_muldiv 1"
+.LASF84:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF73:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF91:
+ .string "__UINTMAX_C(c) c ## ULL"
+.LASF124:
+ .string "__INT_FAST8_MAX__ 0x7fffffff"
+.LASF48:
+ .string "__UINT64_TYPE__ long long unsigned int"
+.LASF230:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF314:
+ .string "__riscv_m 2000000"
+.LASF255:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF180:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF192:
+ .string "__FLT16_DIG__ 3"
+.LASF10:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF313:
+ .string "__riscv_i 2000000"
+.LASF228:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF301:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF204:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF185:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF112:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF39:
+ .string "__CHAR32_TYPE__ long unsigned int"
+.LASF175:
+ .string "__LDBL_MANT_DIG__ 113"
+.LASF274:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF24:
+ .string "__CHAR_BIT__ 8"
+.LASF173:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1:
+ .string "__STDC_VERSION__ 201710L"
+.LASF259:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF254:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF261:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF278:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF305:
+ .string "__riscv_atomic 1"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF142:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF226:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF170:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)"
+.LASF269:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF332:
+ .string "D:\\\\rt-thread\\\\bsp\\\\gd32\\\\risc-v\\\\gd32vf103v-eval"
+.LASF272:
+ .string "__FLT64X_DECIMAL_DIG__ 36"
+.LASF75:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF32:
+ .string "__SIZE_TYPE__ unsigned int"
+.LASF235:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF218:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF79:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF160:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF56:
+ .string "__UINT_LEAST64_TYPE__ long long unsigned int"
+.LASF169:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)"
+.LASF65:
+ .string "__INTPTR_TYPE__ int"
+.LASF113:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF80:
+ .string "__SHRT_WIDTH__ 16"
+.LASF194:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF45:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF40:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF214:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF162:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF299:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF109:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF183:
+ .string "__LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF326:
+ .string "RT_USING_NEWLIB 1"
+.LASF189:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF157:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF238:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF133:
+ .string "__UINT_FAST16_MAX__ 0xffffffffU"
+.LASF136:
+ .string "__INTPTR_MAX__ 0x7fffffff"
+.LASF101:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF291:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF41:
+ .string "__INT8_TYPE__ signed char"
+.LASF29:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF82:
+ .string "__LONG_WIDTH__ 32"
+.LASF168:
+ .string "__DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF30:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF118:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF43:
+ .string "__INT32_TYPE__ long int"
+.LASF50:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF58:
+ .string "__INT_FAST16_TYPE__ int"
+.LASF88:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffLL"
+.LASF156:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF187:
+ .string "__LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L"
+.LASF21:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF315:
+ .string "__riscv_a 2000000"
+.LASF319:
+ .string "__ELF__ 1"
+.LASF100:
+ .string "__UINT8_MAX__ 0xff"
+.LASF78:
+ .string "__SIZE_MAX__ 0xffffffffU"
+.LASF298:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF210:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF111:
+ .string "__INT32_C(c) c ## L"
+.LASF225:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF137:
+ .string "__INTPTR_WIDTH__ 32"
+.LASF87:
+ .string "__SIZE_WIDTH__ 32"
+.LASF216:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF290:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF37:
+ .string "__UINTMAX_TYPE__ long long unsigned int"
+.LASF95:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF135:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffULL"
+.LASF177:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF18:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF146:
+ .string "__FLT_DIG__ 6"
+.LASF171:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)"
+.LASF12:
+ .string "__ATOMIC_RELEASE 3"
+.LASF150:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF284:
+ .string "__NO_INLINE__ 1"
+.LASF322:
+ .string "NO_INIT 1"
+.LASF76:
+ .string "__WINT_MIN__ 0U"
+.LASF22:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF105:
+ .string "__INT8_C(c) c"
+.LASF215:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF6:
+ .string "__GNUC_MINOR__ 2"
+.LASF219:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF275:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF143:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF72:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF5:
+ .string "__GNUC__ 10"
+.LASF205:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF159:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF127:
+ .string "__INT_FAST16_WIDTH__ 32"
+.LASF206:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF125:
+ .string "__INT_FAST8_WIDTH__ 32"
+.LASF99:
+ .string "__INT64_MAX__ 0x7fffffffffffffffLL"
+.LASF147:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF260:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF312:
+ .string "__riscv_arch_test 1"
+.LASF181:
+ .string "__DECIMAL_DIG__ 36"
+.LASF310:
+ .string "__riscv_float_abi_soft 1"
+.LASF27:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF38:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF178:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF297:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF36:
+ .string "__INTMAX_TYPE__ long long int"
+.LASF249:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF19:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF154:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF234:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF295:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 1"
+.LASF108:
+ .string "__INT16_C(c) c"
+.LASF279:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF149:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF331:
+ .string "D:\\rt-thread\\bsp\\gd32\\risc-v\\libraries\\GD32VF103_Firmware_Library\\RISCV\\env_Eclipse\\your_printf.c"
+.LASF318:
+ .string "__riscv_zifencei 2000000"
+.LASF172:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF277:
+ .string "__FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x"
+.LASF239:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF70:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF248:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF68:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 0"
+.LASF209:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF316:
+ .string "__riscv_c 2000000"
+.LASF166:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF161:
+ .string "__DBL_DIG__ 15"
+.LASF151:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF60:
+ .string "__INT_FAST64_TYPE__ long long int"
+.LASF25:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF16:
+ .string "__SIZEOF_INT__ 4"
+.LASF116:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF256:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF304:
+ .string "__riscv_compressed 1"
+.LASF97:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF286:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF201:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF240:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF323:
+ .string "HAVE_CCONFIG_H 1"
+.LASF273:
+ .string "__FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x"
+.LASF81:
+ .string "__INT_WIDTH__ 32"
+.LASF197:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF145:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF92:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF285:
+ .string "__CHAR_UNSIGNED__ 1"
+.LASF57:
+ .string "__INT_FAST8_TYPE__ int"
+.LASF211:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF292:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 1"
+.LASF102:
+ .string "__UINT32_MAX__ 0xffffffffUL"
+.LASF130:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffLL"
+.LASF251:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF106:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF54:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF164:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF138:
+ .string "__UINTPTR_MAX__ 0xffffffffU"
+.LASF191:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF140:
+ .string "__GCC_IEC_559_COMPLEX 0"
+.LASF258:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF11:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF212:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF320:
+ .string "USE_PLIC 1"
+.LASF90:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffULL"
+.LASF293:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF152:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF300:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF257:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF288:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 1"
+.LASF63:
+ .string "__UINT_FAST32_TYPE__ unsigned int"
+.LASF307:
+ .string "__riscv_div 1"
+.LASF224:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF324:
+ .string "GD32VF103V_EVAL 1"
+.LASF144:
+ .string "__FLT_RADIX__ 2"
+.LASF47:
+ .string "__UINT32_TYPE__ long unsigned int"
+.LASF121:
+ .string "__UINT32_C(c) c ## UL"
+.LASF203:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF120:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffUL"
+.LASF107:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF250:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF85:
+ .string "__WINT_WIDTH__ 32"
+.LASF242:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF74:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF289:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 1"
+.LASF311:
+ .string "__riscv_cmodel_medany 1"
+.LASF179:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF252:
+ .string "__FLT32X_DIG__ 15"
+.LASF263:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF89:
+ .string "__INTMAX_C(c) c ## LL"
+.LASF153:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF77:
+ .string "__PTRDIFF_MAX__ 0x7fffffff"
+.LASF317:
+ .string "__riscv_zicsr 2000000"
+.LASF141:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF49:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF119:
+ .string "__UINT16_C(c) c"
+.LASF69:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF20:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF165:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF247:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF28:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF229:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF26:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF35:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF333:
+ .string "__wrap_printf"
+.LASF52:
+ .string "__INT_LEAST64_TYPE__ long long int"
+.LASF9:
+ .string "__ATOMIC_RELAXED 0"
+.LASF328:
+ .string "_POSIX_C_SOURCE 1"
+.LASF196:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF193:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF110:
+ .string "__INT_LEAST32_MAX__ 0x7fffffffL"
+.LASF139:
+ .string "__GCC_IEC_559 0"
+.LASF51:
+ .string "__INT_LEAST32_TYPE__ long int"
+.LASF262:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF266:
+ .string "__FLT64X_MANT_DIG__ 113"
+.LASF306:
+ .string "__riscv_mul 1"
+.LASF200:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF321:
+ .string "USE_M_TIME 1"
+.LASF280:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF190:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF93:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF199:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF329:
+ .string "char"
+.LASF264:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF236:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF66:
+ .string "__UINTPTR_TYPE__ unsigned int"
+.LASF184:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L"
+.LASF123:
+ .string "__UINT64_C(c) c ## ULL"
+.LASF221:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF158:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF325:
+ .string "__RTTHREAD__ 1"
+.LASF227:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF327:
+ .string "RT_USING_LIBC 1"
+.LASF83:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF232:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF42:
+ .string "__INT16_TYPE__ short int"
+.LASF17:
+ .string "__SIZEOF_LONG__ 4"
+.LASF134:
+ .string "__UINT_FAST32_MAX__ 0xffffffffU"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF186:
+ .string "__LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L"
+.LASF61:
+ .string "__UINT_FAST8_TYPE__ unsigned int"
+.LASF33:
+ .string "__PTRDIFF_TYPE__ int"
+.LASF188:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF265:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF276:
+ .string "__FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x"
+.LASF128:
+ .string "__INT_FAST32_MAX__ 0x7fffffff"
+.LASF281:
+ .string "__REGISTER_PREFIX__ "
+.LASF14:
+ .string "__ATOMIC_CONSUME 1"
+.LASF182:
+ .string "__LDBL_DECIMAL_DIG__ 36"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF46:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF271:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF176:
+ .string "__LDBL_DIG__ 33"
+.LASF268:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF220:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF195:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF302:
+ .string "__SIZEOF_PTRDIFF_T__ 4"
+.LASF243:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF67:
+ .string "__GXX_ABI_VERSION 1014"
+.LASF126:
+ .string "__INT_FAST16_MAX__ 0x7fffffff"
+.LASF94:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF131:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF245:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF59:
+ .string "__INT_FAST32_TYPE__ int"
+.LASF217:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF62:
+ .string "__UINT_FAST16_TYPE__ unsigned int"
+.LASF222:
+ .string "__FLT64_DIG__ 15"
+.LASF303:
+ .string "__riscv 1"
+.LASF241:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF294:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF167:
+ .string "__DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)"
+.LASF267:
+ .string "__FLT64X_DIG__ 33"
+.LASF96:
+ .string "__INT8_MAX__ 0x7f"
+.LASF174:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF148:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF296:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF198:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF13:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF34:
+ .string "__WCHAR_TYPE__ int"
+.LASF244:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF309:
+ .string "__riscv_xlen 32"
+.LASF15:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF71:
+ .string "__LONG_MAX__ 0x7fffffffL"
+.LASF103:
+ .string "__UINT64_MAX__ 0xffffffffffffffffULL"
+.LASF86:
+ .string "__PTRDIFF_WIDTH__ 32"
+.LASF282:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF270:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF208:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF213:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF64:
+ .string "__UINT_FAST64_TYPE__ long long unsigned int"
+.LASF117:
+ .string "__UINT8_C(c) c"
+.LASF237:
+ .string "__FLT128_DIG__ 33"
+.LASF53:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF115:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF98:
+ .string "__INT32_MAX__ 0x7fffffffL"
+.LASF253:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF104:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF287:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 1"
+.LASF122:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffULL"
+.LASF163:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF8:
+ .string "__VERSION__ \"10.2.0\""
+.LASF283:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF330:
+ .string "GNU C17 10.2.0 -march=rv32imac -mabi=ilp32 -mcmodel=medany -msmall-data-limit= 8 -march=rv32imac -g3 -O0"
+.LASF223:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+ .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 10.2.0"
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_IAR/compiler.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_IAR/compiler.h
new file mode 100644
index 0000000000..d476bd391b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_IAR/compiler.h
@@ -0,0 +1,20 @@
+#ifndef __COMPILER_H__
+#define __COMPILER_H__
+
+#ifdef __ICCRISCV__
+#include
+
+#define read_csr __read_csr
+#define set_csr __write_csr
+#define write_csr __write_csr
+#define clear_csr __clear_bits_csr
+
+#define mstatus _CSR_MSTATUS
+#define mcycle _CSR_MCYCLE
+#define mcycleh _CSR_MCYCLEH
+#define mtvec _CSR_MTVEC
+#define minstret _CSR_MINSTRET
+#define minstreth _CSR_MINSTRETH
+#endif
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_IAR/low_level_init.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_IAR/low_level_init.c
new file mode 100644
index 0000000000..dfab980436
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/env_IAR/low_level_init.c
@@ -0,0 +1,238 @@
+#include "GigaDevice/ioGD32VF103.h"
+#include "intrinsics.h"
+#include "csr.h"
+#include "stdlib.h"
+#include "stdint.h"
+
+#pragma language=extended
+
+
+extern __weak void eclic_msip_handler(void);
+extern __weak void eclic_mtip_handler(void);
+extern __weak void eclic_bwei_handler(void);
+extern __weak void eclic_pmovi_handler(void);
+extern __weak void WWDGT_IRQHandler(void);
+extern __weak void LVD_IRQHandler(void);
+extern __weak void TAMPER_IRQHandler(void);
+extern __weak void RTC_IRQHandler(void);
+extern __weak void FMC_IRQHandler(void);
+extern __weak void RCU_IRQHandler(void);
+extern __weak void EXTI0_IRQHandler(void);
+extern __weak void EXTI1_IRQHandler(void);
+extern __weak void EXTI2_IRQHandler(void);
+extern __weak void EXTI3_IRQHandler(void);
+extern __weak void EXTI4_IRQHandler(void);
+extern __weak void DMA0_Channel0_IRQHandler(void);
+extern __weak void DMA0_Channel1_IRQHandler(void);
+extern __weak void DMA0_Channel2_IRQHandler(void);
+extern __weak void DMA0_Channel3_IRQHandler(void);
+extern __weak void DMA0_Channel4_IRQHandler(void);
+extern __weak void DMA0_Channel5_IRQHandler(void);
+extern __weak void DMA0_Channel6_IRQHandler(void);
+extern __weak void ADC0_1_IRQHandler(void);
+extern __weak void CAN0_TX_IRQHandler(void);
+extern __weak void CAN0_RX0_IRQHandler(void);
+extern __weak void CAN0_RX1_IRQHandler(void);
+extern __weak void CAN0_EWMC_IRQHandler(void);
+extern __weak void EXTI5_9_IRQHandler(void);
+extern __weak void TIMER0_BRK_IRQHandler(void);
+extern __weak void TIMER0_UP_IRQHandler(void);
+extern __weak void TIMER0_TRG_CMT_IRQHandler(void);
+extern __weak void TIMER0_Channel_IRQHandler(void);
+extern __weak void TIMER1_IRQHandler(void);
+extern __weak void TIMER2_IRQHandler(void);
+extern __weak void TIMER3_IRQHandler(void);
+extern __weak void I2C0_EV_IRQHandler(void);
+extern __weak void I2C0_ER_IRQHandler(void);
+extern __weak void I2C1_EV_IRQHandler(void);
+extern __weak void I2C1_ER_IRQHandler(void);
+extern __weak void SPI0_IRQHandler(void);
+extern __weak void SPI1_IRQHandler(void);
+extern __weak void USART0_IRQHandler(void);
+extern __weak void USART1_IRQHandler(void);
+extern __weak void USART2_IRQHandler(void);
+extern __weak void EXTI10_15_IRQHandler(void);
+extern __weak void RTC_Alarm_IRQHandler(void);
+extern __weak void USBFS_WKUP_IRQHandler(void);
+extern __weak void EXMC_IRQHandler(void);
+extern __weak void TIMER4_IRQHandler(void);
+extern __weak void SPI2_IRQHandler(void);
+extern __weak void UART3_IRQHandler(void);
+extern __weak void UART4_IRQHandler(void);
+extern __weak void TIMER5_IRQHandler(void);
+extern __weak void TIMER6_IRQHandler(void);
+extern __weak void DMA1_Channel0_IRQHandler(void);
+extern __weak void DMA1_Channel1_IRQHandler(void);
+extern __weak void DMA1_Channel2_IRQHandler(void);
+extern __weak void DMA1_Channel3_IRQHandler(void);
+extern __weak void DMA1_Channel4_IRQHandler(void);
+extern __weak void CAN1_TX_IRQHandler(void);
+extern __weak void CAN1_RX0_IRQHandler(void);
+extern __weak void CAN1_RX1_IRQHandler(void);
+extern __weak void CAN1_EWMC_IRQHandler(void);
+extern __weak void USBFS_IRQHandler(void);
+
+typedef void(*__fp)(void);
+const __fp gd_vector_base[96] =
+{
+ 0,
+ 0,
+ 0,
+ eclic_msip_handler,
+ 0,
+ 0,
+ 0,
+ eclic_mtip_handler,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ eclic_bwei_handler,
+ eclic_pmovi_handler,
+ WWDGT_IRQHandler,
+ LVD_IRQHandler,
+ TAMPER_IRQHandler,
+ RTC_IRQHandler,
+ FMC_IRQHandler,
+ RCU_IRQHandler,
+ EXTI0_IRQHandler,
+ EXTI1_IRQHandler,
+ EXTI2_IRQHandler,
+ EXTI3_IRQHandler,
+ EXTI4_IRQHandler,
+ DMA0_Channel0_IRQHandler,
+ DMA0_Channel1_IRQHandler,
+ DMA0_Channel2_IRQHandler,
+ DMA0_Channel3_IRQHandler,
+ DMA0_Channel4_IRQHandler,
+ DMA0_Channel5_IRQHandler,
+ DMA0_Channel6_IRQHandler,
+ ADC0_1_IRQHandler,
+ CAN0_TX_IRQHandler,
+ CAN0_RX0_IRQHandler,
+ CAN0_RX1_IRQHandler,
+ CAN0_EWMC_IRQHandler,
+ EXTI5_9_IRQHandler,
+ TIMER0_BRK_IRQHandler,
+ TIMER0_UP_IRQHandler,
+ TIMER0_TRG_CMT_IRQHandler,
+ TIMER0_Channel_IRQHandler,
+ TIMER1_IRQHandler,
+ TIMER2_IRQHandler,
+ TIMER3_IRQHandler,
+ I2C0_EV_IRQHandler,
+ I2C0_ER_IRQHandler,
+ I2C1_EV_IRQHandler,
+ I2C1_ER_IRQHandler,
+ SPI0_IRQHandler,
+ SPI1_IRQHandler,
+ USART0_IRQHandler,
+ USART1_IRQHandler,
+ USART2_IRQHandler,
+ EXTI10_15_IRQHandler,
+ RTC_Alarm_IRQHandler,
+ USBFS_WKUP_IRQHandler,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ EXMC_IRQHandler,
+ 0,
+ TIMER4_IRQHandler,
+ SPI2_IRQHandler,
+ UART3_IRQHandler,
+ UART4_IRQHandler,
+ TIMER5_IRQHandler,
+ TIMER6_IRQHandler,
+ DMA1_Channel0_IRQHandler,
+ DMA1_Channel1_IRQHandler,
+ DMA1_Channel2_IRQHandler,
+ DMA1_Channel3_IRQHandler,
+ DMA1_Channel4_IRQHandler,
+ 0,
+ 0,
+ CAN1_TX_IRQHandler,
+ CAN1_RX0_IRQHandler,
+ CAN1_RX1_IRQHandler,
+ CAN1_EWMC_IRQHandler,
+ USBFS_IRQHandler
+
+};
+
+extern unsigned int __minterrupt_clic_base;
+extern __interrupt __machine void __minterrupt_single(void);
+
+__interrupt __machine void __default_minterrupt_handler(void);
+
+__interrupt __machine void __default_minterrupt_handler(void)
+{
+ abort();
+}
+
+extern uintptr_t handle_trap(uintptr_t mcause, uintptr_t sp);
+
+uintptr_t handle_trap(uintptr_t mcause, uintptr_t sp)
+{
+ __fp fp;
+ mcause &= 0xFFF;
+ fp = gd_vector_base[mcause];
+ if (fp)
+ fp();
+ return 0;
+}
+
+__interrupt void trap_entry()
+{
+ uintptr_t mcause = __read_csr(_CSR_MCAUSE);
+ handle_trap(mcause, 0);
+}
+
+__interrupt void irq_entry()
+{
+ uintptr_t mcause = __read_csr(_CSR_MCAUSE);
+ uintptr_t mepc = __read_csr(_CSR_MEPC);
+ uintptr_t msubm = __read_csr(0x7C4);
+ __enable_interrupt();
+ handle_trap(mcause, 0);
+ //asm("csrrw ra,0x7ED, ra");
+ __disable_interrupt();
+ __write_csr(_CSR_MCAUSE, mcause);
+ __write_csr(_CSR_MEPC, mepc);
+ __write_csr(0x7C4, msubm);
+}
+
+int __low_level_init()
+{
+ __disable_interrupt();
+ /* Set the the NMI base to share with mtvec by setting CSR_MMISC_CTL */
+ /* li t0, 0x200 */
+ /* csrs CSR_MMISC_CTL, t0 */
+ __set_bits_csr(/*CSR_MMISC_CTL*/ 0x7D0, 0x200);
+
+ /* Initialize the mtvt */
+ /* la t0, vector_base */
+ /* csrw CSR_MTVT, t0 */
+ __write_csr(_CSR_MTVT, ((unsigned int)&gd_vector_base));
+ /* Initialize the mtvt2 and enable it */
+ /* la t0, irq_entry
+ csrw CSR_MTVT2, t0
+ csrs CSR_MTVT2, 0x1
+ */
+ __write_csr(/*_CSR_MTVT2*/ 0x7EC, 0x1 | ((unsigned int)&irq_entry));
+
+ /* Initialize the CSR MTVEC for the Trap ane NMI base addr*/
+ /* la t0, trap_entry
+ csrw CSR_MTVEC, t0
+ */
+ __write_csr(_CSR_MTVEC, 0x03 | ((unsigned int)&trap_entry));
+
+ /* Enable mycycle_minstret */
+ __clear_bits_csr(/*CSR_MCOUNTINHIBIT*/ 0x320, 0x5);
+ return 1;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/_exit.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/_exit.c
new file mode 100644
index 0000000000..33467d08bd
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/_exit.c
@@ -0,0 +1,17 @@
+/* See LICENSE of license details. */
+
+#include
+
+#include "stub.h"
+
+
+void _exit(int code)
+{
+ const char message[] = "\nProgram has exited with code:";
+
+ write(STDERR_FILENO, message, sizeof(message) - 1);
+ write_hex(STDERR_FILENO, code);
+ write(STDERR_FILENO, "\n", 1);
+
+ for (;;);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/close.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/close.c
new file mode 100644
index 0000000000..e50362e77b
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/close.c
@@ -0,0 +1,9 @@
+/* See LICENSE of license details. */
+
+#include
+#include "stub.h"
+
+int _close(int fd)
+{
+ return _stub(EBADF);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/fstat.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/fstat.c
new file mode 100644
index 0000000000..c30d27cba6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/fstat.c
@@ -0,0 +1,16 @@
+/* See LICENSE of license details. */
+
+#include
+#include
+#include
+#include "stub.h"
+
+int _fstat(int fd, struct stat* st)
+{
+ if (isatty(fd)) {
+ st->st_mode = S_IFCHR;
+ return 0;
+ }
+
+ return _stub(EBADF);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/isatty.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/isatty.c
new file mode 100644
index 0000000000..a590ebae51
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/isatty.c
@@ -0,0 +1,11 @@
+/* See LICENSE of license details. */
+
+#include
+
+int _isatty(int fd)
+{
+ if (fd == STDOUT_FILENO || fd == STDERR_FILENO)
+ return 1;
+
+ return 0;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/lseek.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/lseek.c
new file mode 100644
index 0000000000..f519b51816
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/lseek.c
@@ -0,0 +1,14 @@
+/* See LICENSE of license details. */
+
+#include
+#include
+#include
+#include "stub.h"
+
+off_t _lseek(int fd, off_t ptr, int dir)
+{
+ if (isatty(fd))
+ return 0;
+
+ return _stub(EBADF);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/read.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/read.c
new file mode 100644
index 0000000000..c874f678dc
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/read.c
@@ -0,0 +1,13 @@
+/* See LICENSE of license details. */
+
+#include
+#include
+#include
+#include
+
+#include "stub.h"
+
+ssize_t _read(int fd, void* ptr, size_t len)
+{
+ return _stub(EBADF);
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/sbrk.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/sbrk.c
new file mode 100644
index 0000000000..f04511920f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/sbrk.c
@@ -0,0 +1,16 @@
+/* See LICENSE of license details. */
+
+#include
+
+void *_sbrk(ptrdiff_t incr)
+{
+ extern char _end[];
+ extern char _heap_end[];
+ static char *curbrk = _end;
+
+ if ((curbrk + incr < _end) || (curbrk + incr > _heap_end))
+ return NULL - 1;
+
+ curbrk += incr;
+ return curbrk - incr;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/stub.h b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/stub.h
new file mode 100644
index 0000000000..4381156846
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/stub.h
@@ -0,0 +1,18 @@
+/* See LICENSE of license details. */
+#ifndef _NUCLEI_SYS_STUB_H
+#define _NUCLEI_SYS_STUB_H
+
+#include
+#if defined (__GNUC__)
+#include
+#endif
+
+void write_hex(int fd, unsigned long int hex);
+
+static inline int _stub(int err)
+{
+ return -1;
+}
+
+
+#endif /* _NUCLEI_SYS_STUB_H */
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write.c
new file mode 100644
index 0000000000..d1916f0427
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write.c
@@ -0,0 +1,72 @@
+/* See LICENSE of license details. */
+
+#include
+#include
+#include
+#include
+
+#if defined (__GNUC__)
+#include
+#include
+#endif
+
+#include "stub.h"
+#include "gd32vf103.h"
+
+//typedef unsigned int size_t;
+extern int _put_char(int ch) __attribute__((weak));
+
+#if defined (__ICCRISCV__)
+size_t __write(int handle, const unsigned char *buf, size_t bufSize)
+{
+ size_t nChars = 0;
+
+ if (handle == -1)
+ {
+ return 0;
+ }
+
+ for (; bufSize > 0; --bufSize)
+ {
+ _put_char((uint8_t) *buf);
+ ++buf;
+ ++nChars;
+ }
+
+ return nChars;
+ }
+
+int puts(const char* string) {
+ return __write(0, (const void *) string, strlen(string));
+}
+
+#elif defined ( __GNUC__ )
+ssize_t _write(int fd, const void* ptr, size_t len) {
+ const uint8_t * current = (const uint8_t *) ptr;
+ {
+ for (size_t jj = 0; jj < len; jj++) {
+ _put_char(current[jj]);
+
+ if (current[jj] == '\n') {
+ _put_char('\r');
+ }
+ }
+ return len;
+ }
+
+ return _stub(EBADF);
+}
+
+int puts(const char* string) {
+ return _write(0, (const void *) string, strlen(string));
+}
+#endif
+
+int _put_char(int ch)
+{
+ usart_data_transmit(USART0, (uint8_t) ch );
+ while (usart_flag_get(USART0, USART_FLAG_TBE)== RESET){
+ }
+
+ return ch;
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write_hex.c b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write_hex.c
new file mode 100644
index 0000000000..f7aa9a4b2d
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/stubs/write_hex.c
@@ -0,0 +1,18 @@
+/* See LICENSE of license details. */
+
+#include
+#include
+
+void write_hex(int fd, unsigned long int hex)
+{
+ uint8_t ii;
+ uint8_t jj;
+ char towrite;
+ write(fd , "0x", 2);
+ for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {
+ jj = ii - 1;
+ uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4));
+ towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
+ write(fd, &towrite, 1);
+ }
+}
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/tools/openocd_upload.sh b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/tools/openocd_upload.sh
new file mode 100644
index 0000000000..3e987a7bf9
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/tools/openocd_upload.sh
@@ -0,0 +1,5 @@
+#! /bin/bash -x
+
+work/build/openocd/prefix/bin/openocd -f ${2} \
+ -c "flash protect 0 0 last off; program ${1} verify; resume 0x20000000; exit" \
+ 2>&1 | tee openocd_upload.log
diff --git a/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/SConscript b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/SConscript
new file mode 100644
index 0000000000..3739964aba
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/SConscript
@@ -0,0 +1,61 @@
+import rtconfig
+from building import *
+
+# get current directory
+cwd = GetCurrentDir()
+
+# The set of source files associated with this SConscript file.
+cwd = GetCurrentDir()
+
+src = Split('''
+RISCV/env_Eclipse/handlers.c
+RISCV/env_Eclipse/init.c
+RISCV/env_Eclipse/your_printf.c
+RISCV/drivers/n200_func.c
+GD32VF103_standard_peripheral/system_gd32vf103.c
+GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c
+GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c
+GD32VF103_standard_peripheral/Source/gd32vf103_exti.c
+GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c
+''')
+
+if GetDepend(['RT_USING_SERIAL']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_usart.c']
+
+if GetDepend(['RT_USING_I2C']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c']
+
+if GetDepend(['RT_USING_SPI']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_spi.c']
+
+if GetDepend(['RT_USING_CAN']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_can.c']
+
+if GetDepend(['BSP_USING_ETH']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_enet.c']
+
+if GetDepend(['RT_USING_ADC']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_adc.c']
+
+if GetDepend(['RT_USING_DAC']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_dac.c']
+
+if GetDepend(['RT_USING_HWTIMER']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_timer.c']
+
+if GetDepend(['RT_USING_RTC']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c']
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c']
+
+if GetDepend(['RT_USING_WDT']):
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c']
+ src += ['GD32VF103_standard_peripheral/Source/gd32vf103fwdgt.c']
+
+path = [
+ cwd + '/RISCV/drivers',
+ cwd + '/GD32VF103_standard_peripheral',
+ cwd + '/GD32VF103_standard_peripheral/Include',]
+
+group = DefineGroup('Libraries', src, depend = [''], CPPPATH = path)
+
+Return('group')
diff --git a/bsp/gd32/risc-v/libraries/Kconfig b/bsp/gd32/risc-v/libraries/Kconfig
new file mode 100644
index 0000000000..5145a8f332
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/Kconfig
@@ -0,0 +1,8 @@
+config SOC_FAMILY_GD32
+ bool
+
+config SOC_GD32VF103V
+ bool
+ select SOC_SERIES_GD32VF103V
+ select SOC_FAMILY_GD32
+
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/Kconfig b/bsp/gd32/risc-v/libraries/gd32_drivers/Kconfig
new file mode 100644
index 0000000000..705f7be4b5
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/Kconfig
@@ -0,0 +1,6 @@
+if BSP_USING_USBD
+ config BSP_USBD_TYPE_FS
+ bool
+ # "USB Full Speed (FS) Core"
+endif
+
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript b/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript
new file mode 100644
index 0000000000..df963f3b78
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/SConscript
@@ -0,0 +1,52 @@
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+
+cwd = GetCurrentDir()
+
+# add the general drivers.
+src = Split("""
+""")
+
+# add pin drivers.
+if GetDepend('RT_USING_PIN'):
+ src += ['drv_gpio.c']
+
+# add usart drivers.
+if GetDepend(['RT_USING_SERIAL']):
+ src += ['drv_usart.c']
+
+# add i2c drivers.
+if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
+ if GetDepend('BSP_USING_I2C0') or GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3'):
+ src += ['drv_soft_i2c.c']
+
+# add spi drivers.
+if GetDepend('RT_USING_SPI'):
+ src += ['drv_spi.c']
+
+# add spi flash drivers.
+if GetDepend('RT_USING_SFUD'):
+ src += ['drv_spi_flash.c', 'drv_spi.c']
+
+# add wdt drivers.
+if GetDepend('RT_USING_WDT'):
+ src += ['drv_wdt.c']
+
+# add rtc drivers.
+if GetDepend('RT_USING_RTC'):
+ src += ['drv_rtc.c']
+
+# add timer drivers.
+if GetDepend('RT_USING_HWTIMER'):
+ src += ['drv_hwtimer.c']
+
+# add adc drivers.
+if GetDepend('RT_USING_ADC'):
+ src += ['drv_adc.c']
+
+path = [cwd]
+
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
+
+Return('group')
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_adc.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_adc.c
new file mode 100644
index 0000000000..070dc5f14f
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_adc.c
@@ -0,0 +1,192 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-05-03 BruceOu optimization adc
+ */
+
+#include "drv_adc.h"
+
+#define DBG_TAG "drv.adc"
+#define DBG_LVL DBG_INFO
+
+#include
+
+#ifdef RT_USING_ADC
+
+#if defined(BSP_USING_ADC0)
+struct rt_adc_device adc0;
+#endif
+
+#if defined(BSP_USING_ADC1)
+struct rt_adc_device adc1;
+#endif
+
+#if defined(BSP_USING_ADC2)
+struct rt_adc_device adc2;
+#endif
+
+#define MAX_EXTERN_ADC_CHANNEL 16
+
+static const struct gd32_adc adc_obj[] = {
+#ifdef BSP_USING_ADC0
+ {
+ ADC0,
+ RCU_ADC0,
+ {
+ GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
+ GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
+ GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
+ GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
+ },
+ &adc0,
+ "adc0",
+ },
+#endif
+
+#ifdef BSP_USING_ADC1
+ {
+ ADC1,
+ RCU_ADC1,
+ {
+ GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
+ GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
+ GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
+ GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
+ },
+ &adc1,
+ "adc1",
+ },
+#endif
+#ifdef BSP_USING_ADC2
+ {
+ ADC2,
+ RCU_ADC2,
+ {
+ GET_PIN(A, 0), GET_PIN(A, 1), GET_PIN(A, 2), GET_PIN(A, 3),
+ GET_PIN(A, 4), GET_PIN(A, 5), GET_PIN(A, 6), GET_PIN(A, 7),
+ GET_PIN(B, 0), GET_PIN(B, 1), GET_PIN(C, 0), GET_PIN(C, 1),
+ GET_PIN(C, 2), GET_PIN(C, 3), GET_PIN(C, 4), GET_PIN(C, 5),
+ },
+ &adc2,
+ "adc2",
+ },
+#endif
+};
+
+/**
+* @brief ADC MSP Initialization
+* This function configures the hardware resources.
+* @param adc_clk, pin
+* @retval None
+*/
+static void gd32_adc_gpio_init(rcu_periph_enum adc_clk, rt_base_t pin)
+{
+ /* enable ADC clock */
+ rcu_periph_clock_enable(adc_clk);
+
+ /* configure adc pin */
+ gpio_init(PIN_GDPORT(pin), GPIO_MODE_AIN, GPIO_OSPEED_50MHZ, PIN_GDPIN(pin));
+
+}
+
+/**
+* @brief ADC enable
+* This function enable adc.
+* @param device, channel, enabled
+* @retval None
+*/
+static rt_err_t gd32_adc_enabled(struct rt_adc_device *device, rt_uint32_t channel, rt_bool_t enabled)
+{
+ uint32_t adc_periph;
+ struct gd32_adc * adc = (struct gd32_adc *)device->parent.user_data;
+
+ if (channel >= MAX_EXTERN_ADC_CHANNEL)
+ {
+ LOG_E("invalid channel");
+ return -RT_EINVAL;
+ }
+
+ adc_periph = (uint32_t )(adc->adc_periph);
+
+ if (enabled == ENABLE)
+ {
+ gd32_adc_gpio_init(adc->adc_clk, adc->adc_pins[channel]);
+
+ adc_channel_length_config(adc_periph, ADC_REGULAR_CHANNEL, 1);
+ adc_data_alignment_config(adc_periph, ADC_DATAALIGN_RIGHT);
+
+ adc_external_trigger_source_config(adc_periph, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE);
+ adc_external_trigger_config(adc_periph, ADC_REGULAR_CHANNEL, ENABLE);
+
+ adc_regular_channel_config(adc_periph, 0, channel, ADC_SAMPLETIME_13POINT5);
+
+ adc_enable(adc_periph);
+
+ /* ADC calibration and reset calibration */
+ adc_calibration_enable(adc_periph);
+ }
+ else
+ {
+ adc_disable(adc_periph);
+ }
+ return 0;
+}
+
+/**
+* @brief convert adc.
+* This function get adc value.
+* @param device, channel, value
+* @retval None
+*/
+static rt_err_t gd32_adc_convert(struct rt_adc_device *device, rt_uint32_t channel, rt_uint32_t *value)
+{
+ uint32_t adc_periph;
+ struct gd32_adc * adc = (struct gd32_adc *)(device->parent.user_data);
+
+ if (!value)
+ {
+ LOG_E("invalid param");
+ return -RT_EINVAL;
+ }
+
+ adc_periph = (uint32_t )(adc->adc_periph);
+ adc_software_trigger_enable(adc_periph, ADC_REGULAR_CHANNEL);
+
+ while(!adc_flag_get(adc_periph, ADC_FLAG_EOC)){};
+ // clear flag
+ adc_flag_clear(adc_periph, ADC_FLAG_EOC);
+
+ *value = adc_regular_data_read(adc_periph);
+
+ return 0;
+}
+
+static struct rt_adc_ops gd32_adc_ops = {
+ .enabled = gd32_adc_enabled,
+ .convert = gd32_adc_convert,
+};
+
+static int rt_hw_adc_init(void)
+{
+ int ret, i = 0;
+
+ for (; i < sizeof(adc_obj) / sizeof(adc_obj[0]); i++)
+ {
+ ret = rt_hw_adc_register(adc_obj[i].adc, \
+ (const char *)adc_obj[i].device_name, \
+ &gd32_adc_ops, &adc_obj[i]);
+ if (ret != RT_EOK)
+ {
+ /* TODO err handler */
+ LOG_E("failed register %s, err=%d", adc_obj[i].device_name, ret);
+ }
+ }
+
+ return ret;
+}
+INIT_BOARD_EXPORT(rt_hw_adc_init);
+#endif
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_adc.h b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_adc.h
new file mode 100644
index 0000000000..05d0724da6
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_adc.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-03 BruceOu first implementation
+ */
+
+#ifndef __DRV_ADC_H__
+#define __DRV_ADC_H__
+
+#include
+#include
+#include
+#include "drv_gpio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* gd32 adc dirver class */
+struct gd32_adc
+{
+ uint32_t adc_periph;
+ rcu_periph_enum adc_clk;
+ rt_base_t adc_pins[16];
+ struct rt_adc_device *adc;
+ char *device_name;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DRV_ADC_H__ */
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c
new file mode 100644
index 0000000000..586509be65
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c
@@ -0,0 +1,574 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-08-20 BruceOu the first version
+ */
+
+#include
+#include
+#include
+
+#ifdef RT_USING_PIN
+
+#include "drv_gpio.h"
+
+static const struct pin_index pins[] =
+{
+#ifdef GPIOA
+ GD32_PIN(0, A, 0),
+ GD32_PIN(1, A, 1),
+ GD32_PIN(2, A, 2),
+ GD32_PIN(3, A, 3),
+ GD32_PIN(4, A, 4),
+ GD32_PIN(5, A, 5),
+ GD32_PIN(6, A, 6),
+ GD32_PIN(7, A, 7),
+ GD32_PIN(8, A, 8),
+ GD32_PIN(9, A, 9),
+ GD32_PIN(10, A, 10),
+ GD32_PIN(11, A, 11),
+ GD32_PIN(12, A, 12),
+ GD32_PIN(13, A, 13),
+ GD32_PIN(14, A, 14),
+ GD32_PIN(15, A, 15),
+#endif
+#ifdef GPIOB
+ GD32_PIN(16, B, 0),
+ GD32_PIN(17, B, 1),
+ GD32_PIN(18, B, 2),
+ GD32_PIN(19, B, 3),
+ GD32_PIN(20, B, 4),
+ GD32_PIN(21, B, 5),
+ GD32_PIN(22, B, 6),
+ GD32_PIN(23, B, 7),
+ GD32_PIN(24, B, 8),
+ GD32_PIN(25, B, 9),
+ GD32_PIN(26, B, 10),
+ GD32_PIN(27, B, 11),
+ GD32_PIN(28, B, 12),
+ GD32_PIN(39, B, 13),
+ GD32_PIN(30, B, 14),
+ GD32_PIN(31, B, 15),
+#endif
+#ifdef GPIOC
+ GD32_PIN(32, C, 0),
+ GD32_PIN(33, C, 1),
+ GD32_PIN(34, C, 2),
+ GD32_PIN(35, C, 3),
+ GD32_PIN(36, C, 4),
+ GD32_PIN(37, C, 5),
+ GD32_PIN(38, C, 6),
+ GD32_PIN(39, C, 7),
+ GD32_PIN(40, C, 8),
+ GD32_PIN(41, C, 9),
+ GD32_PIN(42, C, 10),
+ GD32_PIN(43, C, 11),
+ GD32_PIN(44, C, 12),
+ GD32_PIN(45, C, 13),
+ GD32_PIN(46, C, 14),
+ GD32_PIN(47, C, 15),
+#endif
+#ifdef GPIOD
+ GD32_PIN(48, D, 0),
+ GD32_PIN(49, D, 1),
+ GD32_PIN(50, D, 2),
+ GD32_PIN(51, D, 3),
+ GD32_PIN(52, D, 4),
+ GD32_PIN(53, D, 5),
+ GD32_PIN(54, D, 6),
+ GD32_PIN(55, D, 7),
+ GD32_PIN(56, D, 8),
+ GD32_PIN(57, D, 9),
+ GD32_PIN(58, D, 10),
+ GD32_PIN(59, D, 11),
+ GD32_PIN(60, D, 12),
+ GD32_PIN(61, D, 13),
+ GD32_PIN(62, D, 14),
+ GD32_PIN(63, D, 15),
+#endif
+#ifdef GPIOE
+ GD32_PIN(64, E, 0),
+ GD32_PIN(65, E, 1),
+ GD32_PIN(66, E, 2),
+ GD32_PIN(67, E, 3),
+ GD32_PIN(68, E, 4),
+ GD32_PIN(69, E, 5),
+ GD32_PIN(70, E, 6),
+ GD32_PIN(71, E, 7),
+ GD32_PIN(72, E, 8),
+ GD32_PIN(73, E, 9),
+ GD32_PIN(74, E, 10),
+ GD32_PIN(75, E, 11),
+ GD32_PIN(76, E, 12),
+ GD32_PIN(77, E, 13),
+ GD32_PIN(78, E, 14),
+ GD32_PIN(79, E, 15),
+#endif
+};
+
+static const struct pin_irq_map pin_irq_map[] =
+{
+ {GPIO_PIN_0, EXTI0_IRQn},
+ {GPIO_PIN_1, EXTI1_IRQn},
+ {GPIO_PIN_2, EXTI2_IRQn},
+ {GPIO_PIN_3, EXTI3_IRQn},
+ {GPIO_PIN_4, EXTI4_IRQn},
+ {GPIO_PIN_5, EXTI5_9_IRQn},
+ {GPIO_PIN_6, EXTI5_9_IRQn},
+ {GPIO_PIN_7, EXTI5_9_IRQn},
+ {GPIO_PIN_8, EXTI5_9_IRQn},
+ {GPIO_PIN_9, EXTI5_9_IRQn},
+ {GPIO_PIN_10, EXTI10_15_IRQn},
+ {GPIO_PIN_11, EXTI10_15_IRQn},
+ {GPIO_PIN_12, EXTI10_15_IRQn},
+ {GPIO_PIN_13, EXTI10_15_IRQn},
+ {GPIO_PIN_14, EXTI10_15_IRQn},
+ {GPIO_PIN_15, EXTI10_15_IRQn},
+};
+
+struct rt_pin_irq_hdr pin_irq_hdr_tab[] =
+{
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+ {-1, 0, RT_NULL, RT_NULL},
+};
+
+#define ITEM_NUM(items) sizeof(items) / sizeof(items[0])
+
+/**
+ * @brief get pin
+ * @param pin
+ * @retval None
+ */
+const struct pin_index *get_pin(rt_uint8_t pin)
+{
+ const struct pin_index *index;
+
+ if (pin < ITEM_NUM(pins))
+ {
+ index = &pins[pin];
+ if (index->index == -1)
+ index = RT_NULL;
+ }
+ else
+ {
+ index = RT_NULL;
+ }
+
+ return index;
+}
+
+/**
+ * @brief set pin mode
+ * @param dev, pin, mode
+ * @retval None
+ */
+static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
+{
+ const struct pin_index *index = RT_NULL;
+ rt_uint32_t pin_mode = 0;
+
+ index = get_pin(pin);
+ if (index == RT_NULL)
+ {
+ return;
+ }
+
+ /* GPIO Periph clock enable */
+ rcu_periph_clock_enable(index->clk);
+
+ pin_mode = GPIO_MODE_OUT_PP;
+
+ switch(mode)
+ {
+ case PIN_MODE_OUTPUT:
+ /* output setting */
+ pin_mode = GPIO_MODE_OUT_PP;
+ break;
+ case PIN_MODE_OUTPUT_OD:
+ /* output setting: od. */
+ pin_mode = GPIO_MODE_OUT_OD;
+ break;
+ case PIN_MODE_INPUT:
+ /* input setting: not pull. */
+ pin_mode = GPIO_MODE_IN_FLOATING;
+ break;
+ case PIN_MODE_INPUT_PULLUP:
+ /* input setting: pull up. */
+ pin_mode = GPIO_MODE_IPU;
+ break;
+ case PIN_MODE_INPUT_PULLDOWN:
+ /* input setting: pull down. */
+ pin_mode = GPIO_MODE_IPD;
+ break;
+ default:
+ break;
+ }
+
+ gpio_init(index->gpio_periph, pin_mode, GPIO_OSPEED_50MHZ, index->pin);
+}
+
+/**
+ * @brief pin write
+ * @param dev, pin, valuie
+ * @retval None
+ */
+static void gd32_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
+{
+ const struct pin_index *index = RT_NULL;
+
+ index = get_pin(pin);
+ if (index == RT_NULL)
+ {
+ return;
+ }
+
+ gpio_bit_write(index->gpio_periph, index->pin, (bit_status)value);
+}
+
+/**
+ * @brief pin read
+ * @param dev, pin
+ * @retval None
+ */
+static int gd32_pin_read(rt_device_t dev, rt_base_t pin)
+{
+ int value = PIN_LOW;
+ const struct pin_index *index = RT_NULL;
+
+ index = get_pin(pin);
+ if (index == RT_NULL)
+ {
+ return value;
+ }
+
+ value = gpio_input_bit_get(index->gpio_periph, index->pin);
+ return value;
+}
+
+/**
+ * @brief bit2bitno
+ * @param bit
+ * @retval None
+ */
+rt_inline rt_int32_t bit2bitno(rt_uint32_t bit)
+{
+ rt_uint8_t i;
+ for (i = 0; i < 32; i++)
+ {
+ if ((0x01 << i) == bit)
+ {
+ return i;
+ }
+ }
+ return -1;
+}
+
+/**
+ * @brief pin write
+ * @param pinbit
+ * @retval None
+ */
+rt_inline const struct pin_irq_map *get_pin_irq_map(rt_uint32_t pinbit)
+{
+ rt_int32_t map_index = bit2bitno(pinbit);
+ if (map_index < 0 || map_index >= ITEM_NUM(pin_irq_map))
+ {
+ return RT_NULL;
+ }
+ return &pin_irq_map[map_index];
+}
+
+/**
+ * @brief pin irq attach
+ * @param device, pin, mode
+ * @retval None
+ */
+static rt_err_t gd32_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
+ rt_uint32_t mode, void (*hdr)(void *args), void *args)
+{
+ const struct pin_index *index = RT_NULL;
+ rt_base_t level;
+ rt_int32_t hdr_index = -1;
+
+ index = get_pin(pin);
+ if (index == RT_NULL)
+ {
+ return -RT_EINVAL;
+ }
+
+ hdr_index = bit2bitno(index->pin);
+ if (hdr_index < 0 || hdr_index >= ITEM_NUM(pin_irq_map))
+ {
+ return -RT_EINVAL;
+ }
+
+ level = rt_hw_interrupt_disable();
+ if (pin_irq_hdr_tab[hdr_index].pin == pin &&
+ pin_irq_hdr_tab[hdr_index].hdr == hdr &&
+ pin_irq_hdr_tab[hdr_index].mode == mode &&
+ pin_irq_hdr_tab[hdr_index].args == args)
+ {
+ rt_hw_interrupt_enable(level);
+ return RT_EOK;
+ }
+ if (pin_irq_hdr_tab[hdr_index].pin != -1)
+ {
+ rt_hw_interrupt_enable(level);
+ return -RT_EFULL;
+ }
+ pin_irq_hdr_tab[hdr_index].pin = pin;
+ pin_irq_hdr_tab[hdr_index].hdr = hdr;
+ pin_irq_hdr_tab[hdr_index].mode = mode;
+ pin_irq_hdr_tab[hdr_index].args = args;
+ rt_hw_interrupt_enable(level);
+
+ return RT_EOK;
+}
+
+/**
+ * @brief pin irq detach
+ * @param device, pin
+ * @retval None
+ */
+static rt_err_t gd32_pin_detach_irq(struct rt_device *device, rt_int32_t pin)
+{
+ const struct pin_index *index = RT_NULL;
+ rt_base_t level;
+ rt_int32_t hdr_index = -1;
+
+ index = get_pin(pin);
+ if (index == RT_NULL)
+ {
+ return -RT_EINVAL;
+ }
+
+ hdr_index = bit2bitno(index->pin);
+ if (hdr_index < 0 || hdr_index >= ITEM_NUM(pin_irq_map))
+ {
+ return -RT_EINVAL;
+ }
+
+ level = rt_hw_interrupt_disable();
+ if (pin_irq_hdr_tab[hdr_index].pin == -1)
+ {
+ rt_hw_interrupt_enable(level);
+ return RT_EOK;
+ }
+ pin_irq_hdr_tab[hdr_index].pin = -1;
+ pin_irq_hdr_tab[hdr_index].hdr = RT_NULL;
+ pin_irq_hdr_tab[hdr_index].mode = 0;
+ pin_irq_hdr_tab[hdr_index].args = RT_NULL;
+ rt_hw_interrupt_enable(level);
+
+ return RT_EOK;
+}
+
+/**
+ * @brief pin irq enable
+ * @param device, pin, enabled
+ * @retval None
+ */
+static rt_err_t gd32_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_uint32_t enabled)
+{
+ const struct pin_index *index;
+ const struct pin_irq_map *irqmap;
+ rt_base_t level;
+ rt_int32_t hdr_index = -1;
+ exti_trig_type_enum trigger_mode;
+
+ index = get_pin(pin);
+ if (index == RT_NULL)
+ {
+ return -RT_EINVAL;
+ }
+
+ if (enabled == PIN_IRQ_ENABLE)
+ {
+ hdr_index = bit2bitno(index->pin);
+ if (hdr_index < 0 || hdr_index >= ITEM_NUM(pin_irq_map))
+ {
+ return -RT_EINVAL;
+ }
+
+ level = rt_hw_interrupt_disable();
+ if (pin_irq_hdr_tab[hdr_index].pin == -1)
+ {
+ rt_hw_interrupt_enable(level);
+ return -RT_EINVAL;
+ }
+
+ irqmap = &pin_irq_map[hdr_index];
+
+ switch (pin_irq_hdr_tab[hdr_index].mode)
+ {
+ case PIN_IRQ_MODE_RISING:
+ trigger_mode = EXTI_TRIG_RISING;
+ break;
+ case PIN_IRQ_MODE_FALLING:
+ trigger_mode = EXTI_TRIG_FALLING;
+ break;
+ case PIN_IRQ_MODE_RISING_FALLING:
+ trigger_mode = EXTI_TRIG_BOTH;
+ break;
+ default:
+ rt_hw_interrupt_enable(level);
+ return -RT_EINVAL;
+ }
+
+ rcu_periph_clock_enable(RCU_AF);
+
+ /* enable and set interrupt priority */
+ eclic_irq_enable(irqmap->irqno, 5U, 0U);
+
+ /* connect EXTI line to GPIO pin */
+ gpio_exti_source_select(index->port_src, index->pin_src);
+
+ /* configure EXTI line */
+ exti_init((exti_line_enum)(index->pin), EXTI_INTERRUPT, trigger_mode);
+ exti_interrupt_flag_clear((exti_line_enum)(index->pin));
+
+ rt_hw_interrupt_enable(level);
+ }
+ else if (enabled == PIN_IRQ_DISABLE)
+ {
+ irqmap = get_pin_irq_map(index->pin);
+ if (irqmap == RT_NULL)
+ {
+ return -RT_EINVAL;
+ }
+ eclic_irq_disable(irqmap->irqno);
+ }
+ else
+ {
+ return -RT_EINVAL;
+ }
+
+ return RT_EOK;
+}
+
+const static struct rt_pin_ops gd32_pin_ops =
+{
+ .pin_mode = gd32_pin_mode,
+ .pin_write = gd32_pin_write,
+ .pin_read = gd32_pin_read,
+ .pin_attach_irq = gd32_pin_attach_irq,
+ .pin_detach_irq= gd32_pin_detach_irq,
+ .pin_irq_enable = gd32_pin_irq_enable,
+ RT_NULL,
+};
+
+/**
+ * @brief pin write
+ * @param irqno
+ * @retval None
+ */
+rt_inline void pin_irq_hdr(int irqno)
+{
+ if (pin_irq_hdr_tab[irqno].hdr)
+ {
+ pin_irq_hdr_tab[irqno].hdr(pin_irq_hdr_tab[irqno].args);
+ }
+}
+
+/**
+ * @brief gd32 exit interrupt
+ * @param exti_line
+ * @retval None
+ */
+void GD32_GPIO_EXTI_IRQHandler(rt_int8_t exti_line)
+{
+ if(RESET != exti_interrupt_flag_get((exti_line_enum)(1 << exti_line)))
+ {
+ pin_irq_hdr(exti_line);
+ exti_interrupt_flag_clear((exti_line_enum)(1 << exti_line));
+ }
+}
+
+void EXTI0_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(0);
+ rt_interrupt_leave();
+}
+
+void EXTI1_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(1);
+ rt_interrupt_leave();
+}
+
+void EXTI2_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(2);
+ rt_interrupt_leave();
+}
+
+void EXTI3_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(3);
+ rt_interrupt_leave();
+}
+
+void EXTI4_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(4);
+ rt_interrupt_leave();
+}
+
+void EXTI5_9_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(5);
+ GD32_GPIO_EXTI_IRQHandler(6);
+ GD32_GPIO_EXTI_IRQHandler(7);
+ GD32_GPIO_EXTI_IRQHandler(8);
+ GD32_GPIO_EXTI_IRQHandler(9);
+ rt_interrupt_leave();
+}
+
+void EXTI10_15_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ GD32_GPIO_EXTI_IRQHandler(10);
+ GD32_GPIO_EXTI_IRQHandler(11);
+ GD32_GPIO_EXTI_IRQHandler(12);
+ GD32_GPIO_EXTI_IRQHandler(13);
+ GD32_GPIO_EXTI_IRQHandler(14);
+ GD32_GPIO_EXTI_IRQHandler(15);
+ rt_interrupt_leave();
+}
+
+int rt_hw_pin_init(void)
+{
+ int result;
+
+ result = rt_device_pin_register("pin", &gd32_pin_ops, RT_NULL);
+
+ return result;
+}
+
+INIT_BOARD_EXPORT(rt_hw_pin_init);
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.h b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.h
new file mode 100644
index 0000000000..3bfc37b363
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-08-20 BruceOu the first version
+ */
+
+#ifndef __DRV_GPIO_H__
+#define __DRV_GPIO_H__
+
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined SOC_SERIES_GD32VF103V
+#include "gd32vf103_gpio.h"
+#endif
+
+#define __GD32_PORT(port) GPIO##port
+
+
+#define GD32_PIN(index, port, pin) {index, RCU_GPIO##port, \
+ GPIO##port, GPIO_PIN_##pin, \
+ GPIO_PORT_SOURCE_GPIO##port, \
+ GPIO_PIN_SOURCE_##pin}
+
+#define GD32_PIN_DEFAULT {-1, (rcu_periph_enum)0, 0, 0, 0, 0}
+
+#define GET_PIN(PORTx,PIN) (rt_base_t)((16 * ( ((rt_base_t)__GD32_PORT(PORTx) - (rt_base_t)GPIO_BASE)/(0x0400UL) )) + PIN)
+
+#define PIN_PORT(pin) ((uint8_t)(((pin) >> 4) & 0xFu))
+#define PIN_NO(pin) ((uint8_t)((pin) & 0xFu))
+
+#define PIN_GDPORT(pin) (GPIO_BASE + (0x400u * PIN_PORT(pin)))
+#define PIN_GDPIN(pin) ((uint16_t)(1u << PIN_NO(pin)))
+
+struct pin_index
+{
+ rt_int16_t index;
+ rcu_periph_enum clk;
+ rt_uint32_t gpio_periph;
+ rt_uint32_t pin;
+ rt_uint8_t port_src;
+ rt_uint8_t pin_src;
+};
+
+struct pin_irq_map
+{
+ rt_uint16_t pinbit;
+ IRQn_Type irqno;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DRV_GPIO_H__ */
+
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c
new file mode 100644
index 0000000000..a8282e16ff
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.c
@@ -0,0 +1,201 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu the first version
+ */
+#include "drv_soft_i2c.h"
+
+#ifdef RT_USING_I2C
+
+#define LOG_TAG "drv.i2c"
+#include
+
+#if !defined(BSP_USING_I2C0) && !defined(BSP_USING_I2C1) && !defined(BSP_USING_I2C2) && !defined(BSP_USING_I2C3)
+#error "Please define at least one BSP_USING_I2Cx"
+/* this driver can be disabled at menuconfig → RT-Thread Components → Device Drivers */
+#endif
+
+static const struct gd32_soft_i2c_config soft_i2c_config[] =
+{
+#ifdef BSP_USING_I2C0
+ I2C0_BUS_CONFIG,
+#endif
+#ifdef BSP_USING_I2C1
+ I2C1_BUS_CONFIG,
+#endif
+#ifdef BSP_USING_I2C2
+ I2C2_BUS_CONFIG,
+#endif
+#ifdef BSP_USING_I2C3
+ I2C3_BUS_CONFIG,
+#endif
+};
+
+static struct gd32_i2c i2c_obj[sizeof(soft_i2c_config) / sizeof(soft_i2c_config[0])];
+
+/**
+ * @brief This function initializes the i2c pin.
+ * @param i2c
+ * @retval None
+ */
+static void gd32_i2c_gpio_init(struct gd32_i2c *i2c)
+{
+ struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)i2c->ops.data;
+
+ rt_pin_mode(cfg->scl, PIN_MODE_OUTPUT_OD);
+ rt_pin_mode(cfg->sda, PIN_MODE_OUTPUT_OD);
+
+ rt_pin_write(cfg->scl, PIN_HIGH);
+ rt_pin_write(cfg->sda, PIN_HIGH);
+}
+
+/**
+ * @brief This function sets the sda pin.
+ * @param data, state
+ * @retval None
+ */
+static void gd32_set_sda(void *data, rt_int32_t state)
+{
+ struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data;
+ if (state)
+ {
+ rt_pin_write(cfg->sda, PIN_HIGH);
+ }
+ else
+ {
+ rt_pin_write(cfg->sda, PIN_LOW);
+ }
+}
+
+/**
+ * @brief This function sets the scl pin.
+ * @param data, state
+ * @retval None
+ */
+static void gd32_set_scl(void *data, rt_int32_t state)
+{
+ struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data;
+ if (state)
+ {
+ rt_pin_write(cfg->scl, PIN_HIGH);
+ }
+ else
+ {
+ rt_pin_write(cfg->scl, PIN_LOW);
+ }
+}
+
+/**
+ * @brief This function gets the sda pin state.
+ * @param data
+ * @retval None
+ */
+static rt_int32_t gd32_get_sda(void *data)
+{
+ struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data;
+ return rt_pin_read(cfg->sda);
+}
+
+
+/**
+ * @brief This function gets the scl pin state.
+ * @param data
+ * @retval None
+ */
+static rt_int32_t gd32_get_scl(void *data)
+{
+ struct gd32_soft_i2c_config* cfg = (struct gd32_soft_i2c_config*)data;
+ return rt_pin_read(cfg->scl);
+}
+
+/**
+ * @brief The time delay function.
+ * @param us
+ * @retval None
+ */
+static void gd32_udelay(rt_uint32_t us)
+{
+ int i = ( rcu_clock_freq_get(CK_SYS) / 4000000 * us);
+ while(i)
+ {
+ i--;
+ }
+}
+
+static const struct rt_i2c_bit_ops gd32_bit_ops_default =
+{
+ .data = RT_NULL,
+ .set_sda = gd32_set_sda,
+ .set_scl = gd32_set_scl,
+ .get_sda = gd32_get_sda,
+ .get_scl = gd32_get_scl,
+ .udelay = gd32_udelay,
+ .delay_us = 1,
+ .timeout = 100
+};
+
+/**
+ * @brief if i2c is locked, this function will unlock it
+ * @param cfg
+ * @retval RT_EOK indicates successful unlock.
+ */
+static rt_err_t gd32_i2c_bus_unlock(const struct gd32_soft_i2c_config *cfg)
+{
+ rt_int32_t i = 0;
+
+ if (PIN_LOW == rt_pin_read(cfg->sda))
+ {
+ while (i++ < 9)
+ {
+ rt_pin_write(cfg->scl, PIN_HIGH);
+ gd32_udelay(100);
+ rt_pin_write(cfg->scl, PIN_LOW);
+ gd32_udelay(100);
+ }
+ }
+ if (PIN_LOW == rt_pin_read(cfg->sda))
+ {
+ return -RT_ERROR;
+ }
+
+ return RT_EOK;
+}
+
+/**
+ * @brief I2C initialization function
+ * @param None
+ * @retval RT_EOK indicates successful initialization.
+ */
+int rt_hw_i2c_init(void)
+{
+ rt_size_t obj_num = sizeof(i2c_obj) / sizeof(struct gd32_i2c);
+ rt_err_t result;
+
+ for (int i = 0; i < obj_num; i++)
+ {
+ i2c_obj[i].ops = gd32_bit_ops_default;
+ i2c_obj[i].ops.data = (void*)&soft_i2c_config[i];
+ i2c_obj[i].i2c2_bus.priv = &i2c_obj[i].ops;
+ gd32_i2c_gpio_init(&i2c_obj[i]);
+
+ result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c2_bus, soft_i2c_config[i].bus_name);
+
+ RT_ASSERT(result == RT_EOK);
+
+ gd32_i2c_bus_unlock(&soft_i2c_config[i]);
+
+ LOG_D("software simulation %s init done, pin scl: %d, pin sda %d",
+ soft_i2c_config[i].bus_name,
+ soft_i2c_config[i].scl,
+ soft_i2c_config[i].sda);
+ }
+
+ return RT_EOK;
+}
+INIT_BOARD_EXPORT(rt_hw_i2c_init);
+
+#endif /* RT_USING_I2C */
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h
new file mode 100644
index 0000000000..1c8e21dcc0
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_soft_i2c.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu the first version
+ */
+
+#ifndef __DRV_I2C__
+#define __DRV_I2C__
+
+#include
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* gd32 config class */
+struct gd32_soft_i2c_config
+{
+ rt_uint8_t scl;
+ rt_uint8_t sda;
+ const char *bus_name;
+};
+
+/* gd32 i2c dirver class */
+struct gd32_i2c
+{
+ struct rt_i2c_bit_ops ops;
+ struct rt_i2c_bus_device i2c2_bus;
+};
+
+#ifdef BSP_USING_I2C0
+#define I2C4_BUS_CONFIG \
+ { \
+ .scl = BSP_I2C0_SCL_PIN, \
+ .sda = BSP_I2C0_SDA_PIN, \
+ .bus_name = "i2c0", \
+ }
+#endif
+
+#ifdef BSP_USING_I2C1
+#define I2C1_BUS_CONFIG \
+ { \
+ .scl = BSP_I2C1_SCL_PIN, \
+ .sda = BSP_I2C1_SDA_PIN, \
+ .bus_name = "i2c1", \
+ }
+#endif
+
+#ifdef BSP_USING_I2C2
+#define I2C2_BUS_CONFIG \
+ { \
+ .scl = BSP_I2C2_SCL_PIN, \
+ .sda = BSP_I2C2_SDA_PIN, \
+ .bus_name = "i2c2", \
+ }
+#endif
+
+#ifdef BSP_USING_I2C3
+#define I2C3_BUS_CONFIG \
+ { \
+ .scl = BSP_I2C3_SCL_PIN, \
+ .sda = BSP_I2C3_SDA_PIN, \
+ .bus_name = "i2c3", \
+ }
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DRV_I2C__ */
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_spi.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_spi.c
new file mode 100644
index 0000000000..cbd0fd4b28
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_spi.c
@@ -0,0 +1,347 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+#include "drv_spi.h"
+
+#ifdef RT_USING_SPI
+
+#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2)
+#define LOG_TAG "drv.spi"
+
+#include
+
+#ifdef BSP_USING_SPI0
+static struct rt_spi_bus spi_bus0;
+#endif
+#ifdef BSP_USING_SPI1
+static struct rt_spi_bus spi_bus1;
+#endif
+#ifdef BSP_USING_SPI2
+static struct rt_spi_bus spi_bus2;
+#endif
+
+static const struct gd32_spi spi_bus_obj[] = {
+
+#ifdef BSP_USING_SPI0
+ {
+ SPI0,
+ "spi0",
+ RCU_SPI0,
+ RCU_GPIOA,
+ &spi_bus0,
+ GPIOA,
+ GPIO_PIN_5,
+ GPIO_PIN_6,
+ GPIO_PIN_7,
+ }
+#endif /* BSP_USING_SPI0 */
+
+#ifdef BSP_USING_SPI1
+ {
+ SPI1,
+ "spi1",
+ RCU_SPI1,
+ RCU_GPIOB,
+ &spi_bus1,
+ GPIOB,
+ GPIO_PIN_12,
+ GPIO_PIN_14,
+ GPIO_PIN_15,
+ }
+#endif /* BSP_USING_SPI1 */
+
+#ifdef BSP_USING_SPI2
+ {
+ SPI2,
+ "spi2",
+ RCU_SPI2,
+ RCU_GPIOB,
+ &spi_bus2,
+ GPIOB,
+ GPIO_PIN_3,
+ GPIO_PIN_4,
+ GPIO_PIN_5,
+ }
+#endif /* BSP_USING_SPI2 */
+};
+
+/* private rt-thread spi ops function */
+static rt_err_t spi_configure(struct rt_spi_device* device, struct rt_spi_configuration* configuration);
+static rt_uint32_t spixfer(struct rt_spi_device* device, struct rt_spi_message* message);
+
+static struct rt_spi_ops gd32_spi_ops =
+{
+ .configure = spi_configure,
+ .xfer = spixfer,
+};
+
+/**
+* @brief SPI Initialization
+* @param gd32_spi: SPI BUS
+* @retval None
+*/
+static void gd32_spi_init(struct gd32_spi *gd32_spi)
+{
+ /* enable SPI clock */
+ rcu_periph_clock_enable(gd32_spi->spi_clk);
+ rcu_periph_clock_enable(gd32_spi->gpio_clk);
+
+ /* Init SPI SCK MOSI */
+ gpio_init(gd32_spi->spi_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, gd32_spi->sck_pin | gd32_spi->mosi_pin);
+
+ /* Init SPI MISO */
+ gpio_init(gd32_spi->spi_port, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, gd32_spi->miso_pin);
+
+}
+
+static rt_err_t spi_configure(struct rt_spi_device* device,
+ struct rt_spi_configuration* configuration)
+{
+ struct rt_spi_bus * spi_bus = (struct rt_spi_bus *)device->bus;
+ struct gd32_spi *spi_device = (struct gd32_spi *)spi_bus->parent.user_data;
+ spi_parameter_struct spi_init_struct;
+ uint32_t spi_periph = spi_device->spi_periph;
+
+ RT_ASSERT(device != RT_NULL);
+ RT_ASSERT(configuration != RT_NULL);
+
+ //Init SPI
+ gd32_spi_init(spi_device);
+
+ /* data_width */
+ if(configuration->data_width <= 8)
+ {
+ spi_init_struct.frame_size = SPI_FRAMESIZE_8BIT;
+ }
+ else if(configuration->data_width <= 16)
+ {
+ spi_init_struct.frame_size = SPI_FRAMESIZE_16BIT;
+ }
+ else
+ {
+ return RT_EIO;
+ }
+
+ /* baudrate */
+ {
+ rcu_clock_freq_enum spi_src;
+ uint32_t spi_apb_clock;
+ uint32_t max_hz;
+
+ max_hz = configuration->max_hz;
+
+ LOG_D("sys freq: %d\n", rcu_clock_freq_get(CK_SYS));
+ LOG_D("CK_APB2 freq: %d\n", rcu_clock_freq_get(CK_APB2));
+ LOG_D("max freq: %d\n", max_hz);
+
+ if (spi_periph == SPI1 || spi_periph == SPI2)
+ {
+ spi_src = CK_APB1;
+ }
+ else
+ {
+ spi_src = CK_APB2;
+ }
+ spi_apb_clock = rcu_clock_freq_get(spi_src);
+
+ if(max_hz >= spi_apb_clock/2)
+ {
+ spi_init_struct.prescale = SPI_PSC_2;
+ }
+ else if (max_hz >= spi_apb_clock/4)
+ {
+ spi_init_struct.prescale = SPI_PSC_4;
+ }
+ else if (max_hz >= spi_apb_clock/8)
+ {
+ spi_init_struct.prescale = SPI_PSC_8;
+ }
+ else if (max_hz >= spi_apb_clock/16)
+ {
+ spi_init_struct.prescale = SPI_PSC_16;
+ }
+ else if (max_hz >= spi_apb_clock/32)
+ {
+ spi_init_struct.prescale = SPI_PSC_32;
+ }
+ else if (max_hz >= spi_apb_clock/64)
+ {
+ spi_init_struct.prescale = SPI_PSC_64;
+ }
+ else if (max_hz >= spi_apb_clock/128)
+ {
+ spi_init_struct.prescale = SPI_PSC_128;
+ }
+ else
+ {
+ /* min prescaler 256 */
+ spi_init_struct.prescale = SPI_PSC_256;
+ }
+ } /* baudrate */
+
+ switch(configuration->mode & RT_SPI_MODE_3)
+ {
+ case RT_SPI_MODE_0:
+ spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
+ break;
+ case RT_SPI_MODE_1:
+ spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_2EDGE;
+ break;
+ case RT_SPI_MODE_2:
+ spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_1EDGE;
+ break;
+ case RT_SPI_MODE_3:
+ spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;
+ break;
+ }
+
+ /* MSB or LSB */
+ if(configuration->mode & RT_SPI_MSB)
+ {
+ spi_init_struct.endian = SPI_ENDIAN_MSB;
+ }
+ else
+ {
+ spi_init_struct.endian = SPI_ENDIAN_LSB;
+ }
+
+ spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
+ spi_init_struct.device_mode = SPI_MASTER;
+ spi_init_struct.nss = SPI_NSS_SOFT;
+
+ spi_crc_off(spi_periph);
+
+ /* init SPI */
+ spi_init(spi_periph, &spi_init_struct);
+ /* Enable SPI_MASTER */
+ spi_enable(spi_periph);
+
+ return RT_EOK;
+};
+
+static rt_uint32_t spixfer(struct rt_spi_device* device, struct rt_spi_message* message)
+{
+ struct rt_spi_bus * gd32_spi_bus = (struct rt_spi_bus *)device->bus;
+ struct gd32_spi *spi_device = (struct gd32_spi *)gd32_spi_bus->parent.user_data;
+ struct rt_spi_configuration * config = &device->config;
+ struct gd32_spi_cs * gd32_spi_cs = device->parent.user_data;
+ uint32_t spi_periph = spi_device->spi_periph;
+
+ RT_ASSERT(device != NULL);
+ RT_ASSERT(message != NULL);
+
+ /* take CS */
+ if(message->cs_take)
+ {
+ gpio_bit_reset(gd32_spi_cs->GPIOx, gd32_spi_cs->GPIO_Pin);
+ LOG_D("spi take cs\n");
+ }
+
+ {
+ if(config->data_width <= 8)
+ {
+ const rt_uint8_t * send_ptr = message->send_buf;
+ rt_uint8_t * recv_ptr = message->recv_buf;
+ rt_uint32_t size = message->length;
+
+ LOG_D("spi poll transfer start: %d\n", size);
+
+ while(size--)
+ {
+ rt_uint8_t data = 0xFF;
+
+ if(send_ptr != RT_NULL)
+ {
+ data = *send_ptr++;
+ }
+
+ // Todo: replace register read/write by gd32f4 lib
+ //Wait until the transmit buffer is empty
+ while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_TBE));
+ // Send the byte
+ spi_i2s_data_transmit(spi_periph, data);
+
+ //Wait until a data is received
+ while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_RBNE));
+ // Get the received data
+ data = spi_i2s_data_receive(spi_periph);
+
+ if(recv_ptr != RT_NULL)
+ {
+ *recv_ptr++ = data;
+ }
+ }
+ LOG_D("spi poll transfer finsh\n");
+ }
+ else if(config->data_width <= 16)
+ {
+ const rt_uint16_t * send_ptr = message->send_buf;
+ rt_uint16_t * recv_ptr = message->recv_buf;
+ rt_uint32_t size = message->length;
+
+ while(size--)
+ {
+ rt_uint16_t data = 0xFF;
+
+ if(send_ptr != RT_NULL)
+ {
+ data = *send_ptr++;
+ }
+
+ //Wait until the transmit buffer is empty
+ while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_TBE));
+ // Send the byte
+ spi_i2s_data_transmit(spi_periph, data);
+
+ //Wait until a data is received
+ while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_RBNE));
+ // Get the received data
+ data = spi_i2s_data_receive(spi_periph);
+
+ if(recv_ptr != RT_NULL)
+ {
+ *recv_ptr++ = data;
+ }
+ }
+ }
+ }
+
+ /* release CS */
+ if(message->cs_release)
+ {
+ gpio_bit_set(gd32_spi_cs->GPIOx, gd32_spi_cs->GPIO_Pin);
+ LOG_D("spi release cs\n");
+ }
+
+ return message->length;
+};
+
+int rt_hw_spi_init(void)
+{
+ int result = 0;
+ int i;
+
+ for (i = 0; i < sizeof(spi_bus_obj) / sizeof(spi_bus_obj[0]); i++)
+ {
+ spi_bus_obj[i].spi_bus->parent.user_data = (void *)&spi_bus_obj[i];
+
+ result = rt_spi_bus_register(spi_bus_obj[i].spi_bus, spi_bus_obj[i].bus_name, &gd32_spi_ops);
+
+ RT_ASSERT(result == RT_EOK);
+
+ LOG_D("%s bus init done", spi_bus_obj[i].bus_name);
+ }
+
+ return result;
+}
+
+INIT_BOARD_EXPORT(rt_hw_spi_init);
+
+#endif /* BSP_USING_SPI0 || BSP_USING_SPI1 || BSP_USING_SPI2 */
+#endif /* RT_USING_SPI */
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_spi.h b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_spi.h
new file mode 100644
index 0000000000..e39c1830dc
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_spi.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#ifndef __DRV_SPI_H__
+#define __DRV_SPI_H__
+
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct gd32_spi_cs
+{
+ uint32_t GPIOx;
+ uint32_t GPIO_Pin;
+};
+
+/* gd32 spi dirver class */
+struct gd32_spi
+{
+ uint32_t spi_periph;
+ char *bus_name;
+ rcu_periph_enum spi_clk;
+ rcu_periph_enum gpio_clk;
+ struct rt_spi_bus *spi_bus;
+ uint32_t spi_port;
+ uint16_t sck_pin;
+ uint16_t miso_pin;
+ uint16_t mosi_pin;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DRV_SPI_H__ */
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c
new file mode 100644
index 0000000000..328770af41
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c
@@ -0,0 +1,448 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-08-20 BruceOu first implementation
+ */
+
+#include "drv_usart.h"
+
+#define RT_USING_SERIAL
+
+#ifdef RT_USING_SERIAL
+
+#if !defined(BSP_USING_UART0) && !defined(BSP_USING_UART1) && \
+ !defined(BSP_USING_UART2) && !defined(BSP_USING_UART3) && \
+ !defined(BSP_USING_UART4)
+#error "Please define at least one UARTx"
+
+#endif
+
+#include
+
+static void GD32_UART_IRQHandler(struct rt_serial_device *serial);
+
+#if defined(BSP_USING_UART0)
+struct rt_serial_device serial0;
+
+void USART0_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial0);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART0 */
+
+#if defined(BSP_USING_UART1)
+struct rt_serial_device serial1;
+
+void USART1_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial1);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART1 */
+
+#if defined(BSP_USING_UART2)
+struct rt_serial_device serial2;
+
+void USART2_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial2);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART2 */
+
+#if defined(BSP_USING_UART3)
+struct rt_serial_device serial3;
+
+void UART3_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial3);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART3 */
+
+#if defined(BSP_USING_UART4)
+struct rt_serial_device serial4;
+
+void UART4_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial4);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif /* BSP_USING_UART4 */
+
+#if defined(BSP_USING_UART5)
+struct rt_serial_device serial5;
+
+void USART5_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial5);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART5 */
+
+#if defined(BSP_USING_UART6)
+struct rt_serial_device serial6;
+
+void UART6_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial6);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART6 */
+
+#if defined(BSP_USING_UART7)
+struct rt_serial_device serial7;
+
+void UART7_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ GD32_UART_IRQHandler(&serial7);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+#endif /* BSP_USING_UART7 */
+
+static const struct gd32_uart uart_obj[] = {
+ #ifdef BSP_USING_UART0
+ {
+ USART0, // uart peripheral index
+ USART0_IRQn, // uart iqrn
+ RCU_USART0, RCU_GPIOA, RCU_GPIOA, // periph clock, tx gpio clock, rt gpio clock
+ GPIOA, GPIO_PIN_9, // tx port, tx pin
+ GPIOA, GPIO_PIN_10, // rx port, rx pin
+ &serial0,
+ "uart0",
+ },
+ #endif
+
+ #ifdef BSP_USING_UART1
+ {
+ USART1, // uart peripheral index
+ USART1_IRQn, // uart iqrn
+ RCU_USART1, RCU_GPIOA, RCU_GPIOA, // periph clock, tx gpio clock, rt gpio clock
+ GPIOA, GPIO_PIN_2, // tx port, tx pin
+ GPIOA, GPIO_PIN_3, // rx port, rx pin
+ &serial1,
+ "uart1",
+ },
+ #endif
+
+ #ifdef BSP_USING_UART2
+ {
+ USART2, // uart peripheral index
+ USART2_IRQn, // uart iqrn
+ RCU_USART2, RCU_GPIOB, RCU_GPIOB, // periph clock, tx gpio clock, rt gpio clock
+ GPIOB, GPIO_PIN_10, // tx port, tx pin
+ GPIOB, GPIO_PIN_11, // rx port, rx pin
+ &serial2,
+ "uart2",
+ },
+ #endif
+
+ #ifdef BSP_USING_UART3
+ {
+ UART3, // uart peripheral index
+ UART3_IRQn, // uart iqrn
+ RCU_UART3, RCU_GPIOC, RCU_GPIOC, // periph clock, tx gpio clock, rt gpio clock
+ GPIOC, GPIO_PIN_10, // tx port, tx pin
+ GPIOC, GPIO_PIN_11, // rx port, rx pin
+ &serial3,
+ "uart3",
+ },
+ #endif
+
+ #ifdef BSP_USING_UART4
+ {
+ UART4, // uart peripheral index
+ UART4_IRQn, // uart iqrn
+ RCU_UART4, RCU_GPIOC, RCU_GPIOD, // periph clock, tx gpio clock, rt gpio clock
+ GPIOC, GPIO_PIN_12, // tx port, tx pin
+ GPIOD, GPIO_PIN_2, // rx port, rx pin
+ &serial4,
+ "uart4",
+ },
+ #endif
+};
+
+
+/**
+* @brief UART MSP Initialization
+* This function configures the hardware resources used in this example:
+* - Peripheral's clock enable
+* - Peripheral's GPIO Configuration
+* - NVIC configuration for UART interrupt request enable
+* @param huart: UART handle pointer
+* @retval None
+*/
+void gd32_uart_gpio_init(struct gd32_uart *uart)
+{
+ /* enable USART clock */
+ rcu_periph_clock_enable(uart->tx_gpio_clk);
+ rcu_periph_clock_enable(uart->rx_gpio_clk);
+ rcu_periph_clock_enable(uart->per_clk);
+
+ /* connect port to USARTx_Tx */
+ gpio_init(uart->tx_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, uart->tx_pin);
+
+ /* connect port to USARTx_Rx */
+ gpio_init(uart->rx_port, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, uart->rx_pin);
+}
+
+/**
+ * @brief uart configure
+ * @param serial, cfg
+ * @retval None
+ */
+static rt_err_t gd32_uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
+{
+ struct gd32_uart *uart;
+
+ RT_ASSERT(serial != RT_NULL);
+ RT_ASSERT(cfg != RT_NULL);
+
+ uart = (struct gd32_uart *)serial->parent.user_data;
+
+ gd32_uart_gpio_init(uart);
+
+ usart_baudrate_set(uart->uart_periph, cfg->baud_rate);
+
+ switch (cfg->data_bits)
+ {
+ case DATA_BITS_9:
+ usart_word_length_set(uart->uart_periph, USART_WL_9BIT);
+ break;
+
+ default:
+ usart_word_length_set(uart->uart_periph, USART_WL_8BIT);
+ break;
+ }
+
+ switch (cfg->stop_bits)
+ {
+ case STOP_BITS_2:
+ usart_stop_bit_set(uart->uart_periph, USART_STB_2BIT);
+ break;
+ default:
+ usart_stop_bit_set(uart->uart_periph, USART_STB_1BIT);
+ break;
+ }
+
+ switch (cfg->parity)
+ {
+ case PARITY_ODD:
+ usart_parity_config(uart->uart_periph, USART_PM_ODD);
+ break;
+ case PARITY_EVEN:
+ usart_parity_config(uart->uart_periph, USART_PM_EVEN);
+ break;
+ default:
+ usart_parity_config(uart->uart_periph, USART_PM_NONE);
+ break;
+ }
+
+ usart_receive_config(uart->uart_periph, USART_RECEIVE_ENABLE);
+ usart_transmit_config(uart->uart_periph, USART_TRANSMIT_ENABLE);
+ usart_enable(uart->uart_periph);
+
+ return RT_EOK;
+}
+
+/**
+ * @brief uart control
+ * @param serial, arg
+ * @retval None
+ */
+static rt_err_t gd32_uart_control(struct rt_serial_device *serial, int cmd, void *arg)
+{
+ struct gd32_uart *uart;
+
+ RT_ASSERT(serial != RT_NULL);
+ uart = (struct gd32_uart *)serial->parent.user_data;
+
+ switch (cmd)
+ {
+ case RT_DEVICE_CTRL_CLR_INT:
+ /* disable rx irq */
+ eclic_irq_disable(uart->uart_periph);
+ /* disable interrupt */
+ usart_interrupt_disable(uart->uart_periph, USART_INT_RBNE);
+
+ break;
+ case RT_DEVICE_CTRL_SET_INT:
+ eclic_set_nlbits(ECLIC_GROUP_LEVEL3_PRIO1);
+ /* enable rx irq */
+ eclic_irq_enable(uart->irqn, 1, 0);
+ /* enable interrupt */
+ usart_interrupt_enable(uart->uart_periph, USART_INT_RBNE);
+ break;
+ }
+
+ return RT_EOK;
+}
+
+/**
+ * @brief uart put char
+ * @param serial, ch
+ * @retval None
+ */
+static int gd32_uart_putc(struct rt_serial_device *serial, char ch)
+{
+ struct gd32_uart *uart;
+
+ RT_ASSERT(serial != RT_NULL);
+ uart = (struct gd32_uart *)serial->parent.user_data;
+
+ usart_data_transmit(uart->uart_periph, ch);
+ while((usart_flag_get(uart->uart_periph, USART_FLAG_TBE) == RESET));
+
+ return RT_EOK;
+}
+
+/**
+ * @brief uart get char
+ * @param serial
+ * @retval None
+ */
+static int gd32_uart_getc(struct rt_serial_device *serial)
+{
+ int ch;
+ struct gd32_uart *uart;
+
+ RT_ASSERT(serial != RT_NULL);
+ uart = (struct gd32_uart *)serial->parent.user_data;
+
+ ch = -1;
+ if (usart_flag_get(uart->uart_periph, USART_FLAG_RBNE) != RESET)
+ ch = usart_data_receive(uart->uart_periph);
+ return ch;
+}
+
+/**
+ * Uart common interrupt process. This need add to uart ISR.
+ *
+ * @param serial serial device
+ */
+static void GD32_UART_IRQHandler(struct rt_serial_device *serial)
+{
+ struct gd32_uart *uart = (struct gd32_uart *) serial->parent.user_data;
+
+ RT_ASSERT(uart != RT_NULL);
+
+ /* UART in mode Receiver -------------------------------------------------*/
+ if ((usart_interrupt_flag_get(uart->uart_periph, USART_INT_FLAG_RBNE) != RESET) &&
+ (usart_flag_get(uart->uart_periph, USART_FLAG_RBNE) != RESET))
+ {
+ rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
+ usart_interrupt_flag_clear(uart->uart_periph, USART_INT_FLAG_RBNE);
+ /* Clear RXNE interrupt flag */
+ usart_flag_clear(uart->uart_periph, USART_FLAG_RBNE);
+ }
+ else
+ {
+ if (usart_flag_get(uart->uart_periph, USART_FLAG_CTS) != RESET)
+ {
+ usart_flag_clear(uart->uart_periph, USART_FLAG_CTS);
+ }
+
+ if (usart_flag_get(uart->uart_periph, USART_FLAG_LBD) != RESET)
+ {
+ usart_flag_clear(uart->uart_periph, USART_FLAG_LBD);
+ }
+
+ if (usart_flag_get(uart->uart_periph, USART_FLAG_TC) != RESET)
+ {
+ usart_flag_clear(uart->uart_periph, USART_FLAG_TC);
+ }
+ }
+}
+
+static const struct rt_uart_ops gd32_uart_ops =
+{
+ .configure = gd32_uart_configure,
+ .control = gd32_uart_control,
+ .putc = gd32_uart_putc,
+ .getc = gd32_uart_getc,
+ RT_NULL,
+};
+
+/**
+ * @brief uart init
+ * @param None
+ * @retval None
+ */
+int rt_hw_usart_init(void)
+{
+ struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
+ int i;
+
+ int result;
+
+ for (i = 0; i < sizeof(uart_obj) / sizeof(uart_obj[0]); i++)
+ {
+ uart_obj[i].serial->ops = &gd32_uart_ops;
+ uart_obj[i].serial->config = config;
+
+ /* register UART1 device */
+ result = rt_hw_serial_register(uart_obj[i].serial,
+ uart_obj[i].device_name,
+ RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
+ (void *)&uart_obj[i]);
+ RT_ASSERT(result == RT_EOK);
+ }
+
+ return result;
+}
+
+//INIT_BOARD_EXPORT(rt_hw_usart_init);
+
+#endif
diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.h b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.h
new file mode 100644
index 0000000000..5c5c1af2ad
--- /dev/null
+++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2006-2022, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2022-06-04 BruceOu first implementation
+ */
+
+#ifndef __DRV_USART_H__
+#define __DRV_USART_H__
+
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GD32 uart driver */
+// Todo: compress uart info
+struct gd32_uart
+{
+ uint32_t uart_periph; //Todo: 3bits
+ IRQn_Type irqn; //Todo: 7bits
+ rcu_periph_enum per_clk; //Todo: 5bits
+ rcu_periph_enum tx_gpio_clk; //Todo: 5bits
+ rcu_periph_enum rx_gpio_clk; //Todo: 5bits
+ uint32_t tx_port; //Todo: 4bits
+ uint16_t tx_pin; //Todo: 4bits
+ uint32_t rx_port; //Todo: 4bits
+ uint16_t rx_pin; //Todo: 4bits
+ struct rt_serial_device * serial;
+ char *device_name;
+};
+
+int rt_hw_usart_init(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DRV_USART_H__ */
diff --git a/bsp/gd32/risc-v/tools/interface/openocd_gdlink_riscv.cfg b/bsp/gd32/risc-v/tools/interface/openocd_gdlink_riscv.cfg
new file mode 100644
index 0000000000..b02242d6c5
--- /dev/null
+++ b/bsp/gd32/risc-v/tools/interface/openocd_gdlink_riscv.cfg
@@ -0,0 +1,43 @@
+adapter speed 1000
+reset_config srst_only
+adapter srst pulse_width 100
+
+
+
+adapter driver cmsis-dap
+
+transport select jtag
+
+set _CHIPNAME riscv
+jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x1000563d
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME riscv -chain-position $_TARGETNAME
+$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 20480 -work-area-backup 0
+
+
+# Work-area is a space in RAM used for flash programming
+if { [info exists WORKAREASIZE] } {
+ set _WORKAREASIZE $WORKAREASIZE
+} else {
+ set _WORKAREASIZE 0x5000
+}
+
+# Allow overriding the Flash bank size
+if { [info exists FLASH_SIZE] } {
+ set _FLASH_SIZE $FLASH_SIZE
+} else {
+ # autodetect size
+ set _FLASH_SIZE 0
+}
+
+# flash size will be probed
+set _FLASHNAME $_CHIPNAME.flash
+
+flash bank $_FLASHNAME gd32vf103 0x08000000 0 0 0 $_TARGETNAME
+riscv set_reset_timeout_sec 1
+init
+
+halt
+
+
diff --git a/bsp/gd32/risc-v/tools/sdk_dist.py b/bsp/gd32/risc-v/tools/sdk_dist.py
new file mode 100644
index 0000000000..d6f97a3835
--- /dev/null
+++ b/bsp/gd32/risc-v/tools/sdk_dist.py
@@ -0,0 +1,37 @@
+import os
+import sys
+import shutil
+
+cwd_path = os.getcwd()
+sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools'))
+
+def bsp_update_board_kconfig(dist_dir):
+ # change board/kconfig path
+ if not os.path.isfile(os.path.join(dist_dir, 'board/Kconfig')):
+ return
+
+ with open(os.path.join(dist_dir, 'board/Kconfig'), 'r') as f:
+ data = f.readlines()
+ with open(os.path.join(dist_dir, 'board/Kconfig'), 'w') as f:
+ for line in data:
+ if line.find('../libraries/gd32_drivers/Kconfig') != -1:
+ position = line.find('../libraries/gd32_drivers/Kconfig')
+ line = line[0:position] + 'libraries/gd32_drivers/Kconfig"\n'
+ f.write(line)
+
+# BSP dist function
+def dist_do_building(BSP_ROOT, dist_dir):
+ from mkdist import bsp_copy_files
+ import rtconfig
+
+ print("=> copy gd32 bsp library")
+ library_dir = os.path.join(dist_dir, 'libraries')
+ library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries')
+ bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE),
+ os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE))
+
+ print("=> copy bsp drivers")
+ bsp_copy_files(os.path.join(library_path, 'gd32_drivers'), os.path.join(library_dir, 'gd32_drivers'))
+ shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
+
+ bsp_update_board_kconfig(dist_dir)