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 框架结构如下图所示: ![BSP 框架图](./figures/frame.png) -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修改后的内容如下: ![FMC](./figures/FMC.png) -**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配置** 关闭套接字抽象层。 ![Disable socket](./figures/disable_socket.png) @@ -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 ![scons](./figures/scons.png) @@ -779,7 +701,7 @@ int main(void) ![scons_success](./figures/scons_success.png) -**10.使用env生成MDK工程** +**9.使用env生成MDK工程** 在env中执行:scons --target=mdk5 ![scons_mdk5](./figures/scons_mdk5.png) @@ -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选项。 ![CMSIS-DAP Debugger](./figures/CMSIS-DAP_Debugger.png) @@ -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 配置界面。 ![打开 menuconfig](figures/menuconfig_gd32407v-start.png) @@ -54,7 +54,7 @@ ### 6)生成 MDK5 工程 -输入命令 `scons --target=mdk5 -s` 重新生成 MDK5 的工程。 +输入命令 `scons --target=mdk5` 重新生成 MDK5 的工程。 ![1543477194829](figures/scons_mdk5.png) 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的芯片性能。 +开发板外观如下图所示: + +![board](figures/board.jpg) + 该开发板常用 **板载资源** 如下: - 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 的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.jpg) + +该开发板常用 **板载资源** 如下: + +- 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的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.jpg) + +该开发板常用 **板载资源** 如下: + +- 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 的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.jpg) + +该开发板常用 **板载资源** 如下: + +- 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 框架结构如下图所示: + +![BSP 框架图](./figures/frame.png) + +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/) + +![GCC](./figures/gcc.png) + +根据自己的主机选择相应的版本,下载完成解压即可。 + + + +### 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语言入口。 + +![start](./figures/start.png) + + +(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 = .; +``` + +![GD32VF103xB](./figures/GD32VF103xB.png) + +**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 + +![scons ](./figures/scons.png) + +编译成功打印信息如下: + +![scons_success](./figures/scons_success.png) + +**8.使用VS Code开发GD32** +在env中执行:scons --target=vsc + +![vsc](./figures/vsc.png) + +这样就可方便使用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,用于在线下载固件。 +选择“终端->运行任务…” + +![svc_run_task](./figures/svc_run_task.png) + +选择task中配置的命令download。 + +![svc_download](./figures/svc_download.png) + +稍等片刻,即可下载成功。 + +![svc_download_success](./figures/svc_download_success.png) + + +固件下载成后,接上串口0,打印信息如下: + +![run](./figures/run.png) + +同时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 配置界面。 + +![打开 menuconfig](figures/menuconfig_gd32vf103v-eval.png) + +打开的配置工具界面如下所示: + +![RT-Thread 配置菜单](figures/config1.png) + +通过键盘上的上下键移动光标,选中 `Hardware Drivers Config`然后按回车键进入硬件驱动配置菜单。 + +### 2)进入硬件驱动配置菜单 + +在硬件配置菜单里有三个选项,分别是 **板载外设配置菜单**、**片上外设配置菜单**和**扩展模块配置菜单**,按回车键进入板载外设配置菜单。 + +![硬件驱动 配置菜单](figures/config2.png) + +### 3)在板载外设配置菜单里开启 UART1 选项 + +![板载外设 配置菜单](figures/UART1.png) + +### 4)保存退出 + +然后右移光标选中 Save 按回车键保存,然后按 Esc 键退出配置工具。 + +![保存退出](figures/save.png) + +### 5)更新软件包 + +输入命令 `pkgs --update` 使软件包配置生效。 + +![1543477036034](figures/update.png) + +### 6)编译 + +直接使用gcc编译程序。 + +![1543478492157](figures/scons.png) + +值得注意的是,使用gcc编译程序,需要先配置好RISC-V系列MCU的交叉编译工具链。 + +### 7)下载 + +下载工具可以使用J-Link/GD-Link,可使用GD官方的DFU,也可使用OpenOCD下载。 + +### 8)查看运行结果 + +程序运行后,输入命令 `list_device` 可以看到名为 uart1的设备,此时 `UART1` 设备已经可以使用了。 + +![1543478742034](figures/run_flash.png) + + + +## 总结 + +当开发者需要使用未开启的外设时,只要在 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,可以高效地完成和底层硬件外设的交互。设备管理框架的结构如下图所示: + +![rt_device](figures/rt_device.png) + +使用 I/O 设备管理框架开发应用程序,有如下优点: + +- 使用同一套标准的 API 开发应用程序,使应用程序具有更好的移植性 +- 底层驱动的升级和修改不会影响到上层代码 +- 驱动和应用程序相互独立,方便多个开发者协同开发 + +## 1. 驱动分类介绍 + +本小节介绍 BSP 提供的不同类别驱动的概念,对一个 BSP 而言,有如下三类驱动: + +- **板载外设驱动**:指 MCU 之外,开发板上外设,例如 TF 卡、以太网和 LCD 等 +- **片上外设驱动**:指 MCU 芯片上的外设,例如硬件定时器、ADC 和看门狗等 +- **扩展模块驱动**:指可以通过扩展接口或者杜邦线连接的开发板的模块,例如 ESP8266 模块 + +这三种外设的示意图如下所示: + +![Peripheral](figures/Peripheral.png) + +## 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 的芯片性能。 + +开发板外观如下图所示: + +![board](figures/board.jpg) + +该开发板常用 **板载资源** 如下: + +- 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)