
GD32VF103V.elf:     file format elf32-littleriscv
GD32VF103V.elf
architecture: riscv:rv32, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0800015c

Program Header:
    LOAD off    0x00001000 vaddr 0x08000000 paddr 0x08000000 align 2**12
         filesz 0x0000308c memsz 0x0000308c flags rwx
    LOAD off    0x00005000 vaddr 0x20000000 paddr 0x0800308c align 2**12
         filesz 0x00000068 memsz 0x00000068 flags rw-
    LOAD off    0x00005068 vaddr 0x20000068 paddr 0x20000068 align 2**12
         filesz 0x00000000 memsz 0x0000041c flags rw-
    LOAD off    0x00005800 vaddr 0x20007800 paddr 0x20000484 align 2**12
         filesz 0x00000000 memsz 0x00000800 flags rw-

Sections:
Idx Name                       Size      VMA       LMA       File off  Algn  Flags
  0 .init                      00000236  08000000  08000000  00001000  2**2  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .ilalign                   00000002  08000236  08000236  00001236  2**0  ALLOC
  2 .text                      00002e18  08000240  08000240  00001240  2**6  CONTENTS, ALLOC, LOAD, READONLY, CODE
  3 .sdata2.CSWTCH.11          00000003  08003058  08003058  00004058  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .sdata2.CSWTCH.12          00000003  0800305c  0800305c  0000405c  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
  5 .sdata2.COM_CLK            00000008  08003060  08003060  00004060  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
  6 .sdata2.COM_GPIO_CLK       00000008  08003068  08003068  00004068  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
  7 .sdata2.COM_GPIO_PORT      00000008  08003070  08003070  00004070  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
  8 .sdata2.COM_RX_PIN         00000008  08003078  08003078  00004078  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
  9 .sdata2.COM_TX_PIN         00000008  08003080  08003080  00004080  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
 10 .sdata2._global_impure_ptr 00000004  08003088  08003088  00004088  2**2  CONTENTS, ALLOC, LOAD, READONLY, DATA
 11 .lalign                    00000000  0800308c  0800308c  00005068  2**0  CONTENTS
 12 .dalign                    00000000  20000000  20000000  00005068  2**0  CONTENTS
 13 .data                      00000068  20000000  0800308c  00005000  2**2  CONTENTS, ALLOC, LOAD, DATA
 14 .bss                       0000041c  20000068  20000068  00005068  2**2  ALLOC
 15 .stack                     00000800  20007800  20000484  00005800  2**0  ALLOC
 16 .debug_info                0000c9eb  00000000  00000000  00005068  2**0  CONTENTS, READONLY, DEBUGGING
 17 .debug_abbrev              000029df  00000000  00000000  00011a53  2**0  CONTENTS, READONLY, DEBUGGING
 18 .debug_loc                 00004a25  00000000  00000000  00014432  2**0  CONTENTS, READONLY, DEBUGGING
 19 .debug_aranges             00000818  00000000  00000000  00018e58  2**3  CONTENTS, READONLY, DEBUGGING
 20 .debug_ranges              000010e0  00000000  00000000  00019670  2**3  CONTENTS, READONLY, DEBUGGING
 21 .debug_line                00009edf  00000000  00000000  0001a750  2**0  CONTENTS, READONLY, DEBUGGING
 22 .debug_str                 00002ddd  00000000  00000000  0002462f  2**0  CONTENTS, READONLY, DEBUGGING
 23 .comment                   00000039  00000000  00000000  0002740c  2**0  CONTENTS, READONLY
 24 .debug_frame               00001624  00000000  00000000  00027448  2**2  CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l    d  .init	00000000 .init
08000236 l    d  .ilalign	00000000 .ilalign
08000240 l    d  .text	00000000 .text
08003058 l    d  .sdata2.CSWTCH.11	00000000 .sdata2.CSWTCH.11
0800305c l    d  .sdata2.CSWTCH.12	00000000 .sdata2.CSWTCH.12
08003060 l    d  .sdata2.COM_CLK	00000000 .sdata2.COM_CLK
08003068 l    d  .sdata2.COM_GPIO_CLK	00000000 .sdata2.COM_GPIO_CLK
08003070 l    d  .sdata2.COM_GPIO_PORT	00000000 .sdata2.COM_GPIO_PORT
08003078 l    d  .sdata2.COM_RX_PIN	00000000 .sdata2.COM_RX_PIN
08003080 l    d  .sdata2.COM_TX_PIN	00000000 .sdata2.COM_TX_PIN
08003088 l    d  .sdata2._global_impure_ptr	00000000 .sdata2._global_impure_ptr
0800308c l    d  .lalign	00000000 .lalign
20000000 l    d  .dalign	00000000 .dalign
20000000 l    d  .data	00000000 .data
20000068 l    d  .bss	00000000 .bss
20007800 l    d  .stack	00000000 .stack
00000000 l    d  .debug_info	00000000 .debug_info
00000000 l    d  .debug_abbrev	00000000 .debug_abbrev
00000000 l    d  .debug_loc	00000000 .debug_loc
00000000 l    d  .debug_aranges	00000000 .debug_aranges
00000000 l    d  .debug_ranges	00000000 .debug_ranges
00000000 l    d  .debug_line	00000000 .debug_line
00000000 l    d  .debug_str	00000000 .debug_str
00000000 l    d  .comment	00000000 .comment
00000000 l    d  .debug_frame	00000000 .debug_frame
00000000 l    df *ABS*	00000000 ./RISCV/env_Eclipse/start.o
08000000 l       .init	00000000 vector_base
08000182 l       .init	00000000 _start0800
00000000 l    df *ABS*	00000000 shell.c
08000746 l     F .text	00000008 shellAnsiStart
0800074e l     F .text	0000004a shellDisplay.part.1
08000798 l     F .text	00000120 shellBackspace
080008b8 l     F .text	00000080 shellClearLine
08000938 l     F .text	000000a0 shellDisplayItem
08000b1c l     F .text	00000240 shellTab
08000d5c l     F .text	0000024e shellEnter
08000fe0 l     F .text	00000090 shellHistory.part.2
2000006c l     O .bss	00000014 shellList
00000000 l    df *ABS*	00000000 shell_ext.c
080013e6 l     F .text	00000048 shellExtParseChar.part.0
08003058 l     O .sdata2.CSWTCH.11	00000003 CSWTCH.11
0800305c l     O .sdata2.CSWTCH.12	00000003 CSWTCH.12
00000000 l    df *ABS*	00000000 gd32vf103v_eval.c
080004f8 l     O .text	00000010 GPIO_CLK
08000508 l     O .text	00000010 GPIO_PIN
08000518 l     O .text	00000010 GPIO_PORT
08003060 l     O .sdata2.COM_CLK	00000008 COM_CLK
08003068 l     O .sdata2.COM_GPIO_CLK	00000008 COM_GPIO_CLK
08003070 l     O .sdata2.COM_GPIO_PORT	00000008 COM_GPIO_PORT
08003078 l     O .sdata2.COM_RX_PIN	00000008 COM_RX_PIN
08003080 l     O .sdata2.COM_TX_PIN	00000008 COM_TX_PIN
00000000 l    df *ABS*	00000000 _exit.c
00000000 l    df *ABS*	00000000 write_hex.c
00000000 l    df *ABS*	00000000 handlers.c
00000000 l    df *ABS*	00000000 main.c
00000000 l    df *ABS*	00000000 divsf3.c
00000000 l    df *ABS*	00000000 mulsf3.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 write.c
00000000 l    df *ABS*	00000000 ./RISCV/env_Eclipse/entry.o
08001c2c l       .text	00000000 service_loop
00000000 l    df *ABS*	00000000 init.c
00000000 l    df *ABS*	00000000 n200_func.c
00000000 l    df *ABS*	00000000 gd32vf103_eclic.c
00000000 l    df *ABS*	00000000 gd32vf103_gpio.c
00000000 l    df *ABS*	00000000 gd32vf103_rcu.c
00000000 l    df *ABS*	00000000 gd32vf103_usart.c
00000000 l    df *ABS*	00000000 system_gd32vf103.c
00000000 l    df *ABS*	00000000 gd32vf103_it.c
00000000 l    df *ABS*	00000000 message.c
00000000 l    df *ABS*	00000000 queue.c
200001fc l     O .bss	000001f8 QUEUE
00000000 l    df *ABS*	00000000 floatsisf.c
00000000 l    df *ABS*	00000000 floatunsisf.c
00000000 l    df *ABS*	00000000 libgcc2.c
00000000 l    df *ABS*	00000000 atexit.c
00000000 l    df *ABS*	00000000 exit.c
00000000 l    df *ABS*	00000000 fini.c
00000000 l    df *ABS*	00000000 init.c
00000000 l    df *ABS*	00000000 strlen.c
00000000 l    df *ABS*	00000000 syswrite.c
00000000 l    df *ABS*	00000000 writer.c
00000000 l    df *ABS*	00000000 __atexit.c
200003f4 l     O .bss	0000008c _global_atexit0
00000000 l    df *ABS*	00000000 __call_atexit.c
00000000 l    df *ABS*	00000000 impure.c
20000000 l     O .data	00000060 impure_data
00000000 l    df *ABS*	00000000 reent.c
00000000 l    df *ABS*	00000000 
0800308c l       .sdata2._global_impure_ptr	00000000 __fini_array_end
0800308c l       .sdata2._global_impure_ptr	00000000 __fini_array_start
0800308c l       .sdata2._global_impure_ptr	00000000 __init_array_end
0800308c l       .sdata2._global_impure_ptr	00000000 __preinit_array_end
0800308c l       .sdata2._global_impure_ptr	00000000 __init_array_start
0800308c l       .sdata2._global_impure_ptr	00000000 __preinit_array_start
08002150 g     F .text	0000000a usart_transmit_config
08000faa g     F .text	00000036 shellClear
080018b2 g     F .text	000000e8 gd_eval_com_init
20000860 g       .data	00000000 __global_pointer$
080023e0 g     F .text	00000028 MSG_Init
080024ce g     F .text	000002ae .hidden __divsf3
08001dbe g     F .text	00000006 eclic_priority_group_set
08002122 g     F .text	00000012 usart_word_length_set
20000480 g     O .bss	00000004 errno
08001ee0 g     F .text	0000013c rcu_clock_freq_get
00000800 g       *ABS*	00000000 __stack_size
20000080 g     O .bss	0000017c shell
08002146 g     F .text	0000000a usart_enable
08001aca g     F .text	0000001a puts
0800233e g     F .text	00000052 xInitSystem
080021a0 g     F .text	00000018 usart_interrupt_enable
08001ec4 g     F .text	0000001c rcu_periph_reset_disable
08001c86  w    F .text	00000028 handle_trap
0800199a g     F .text	0000004c gd_eval_com_send
08001bfc  w      .text	00000000 irq_entry
0800142e g     F .text	00000226 shellExtParsePara
08002112 g     F .text	00000010 usart_parity_config
20007800 g       .stack	00000000 _heap_end
08002470 g     F .text	00000030 QUEUE_READ
08003088 g     O .sdata2._global_impure_ptr	00000004 _global_impure_ptr
08002c86 g     F .text	0000006e __libc_init_array
0800216c g     F .text	00000008 usart_data_receive
08001cae g     F .text	00000016 _init
08001070 g     F .text	0000008a shellInit
08002c4c g     F .text	0000003a __libc_fini_array
08001c6e  w    F .text	00000018 handle_nmi
08002ecc g     F .text	00000012 write
08000280 g     O .text	00000030 shellDefaultKeyFunctionList
0800182e g     F .text	00000048 gd_eval_led_init
0800215a g     F .text	0000000a usart_receive_config
08002308 g     F .text	00000036 USART0_IRQHandler
08001d14 g     F .text	00000048 eclic_set_irq_lvl_abs
08001cea g     F .text	00000012 eclic_enable_interrupt
08001ae4 g     F .text	00000092 write_hex
08002ba0 g     F .text	00000076 .hidden __clzsi2
080023a0 g     F .text	00000040 LED_TurnOnOFF
20000068 g     O .bss	00000004 _global_atexit
08002f90 g     F .text	000000c8 __call_exitprocs
20008000 g       .stack	00000000 _sp
08002134 g     F .text	00000012 usart_stop_bit_set
0800015c g     F .init	00000000 _start
08001e94 g     F .text	00000018 rcu_periph_clock_enable
080021b8 g     F .text	00000032 usart_interrupt_flag_get
08002a0c g     F .text	000000c6 .hidden __floatsisf
0800022e g       .init	00000000 enable_mcycle_minstret
08002f0c g     F .text	00000084 __register_exitproc
080009d8 g     F .text	00000144 shellHelp
08001876 g     F .text	0000001e gd_eval_led_on
080020aa g     F .text	00000068 usart_baudrate_set
08002180 g     F .text	0000000c usart_hardware_flow_cts_config
08001d5c g     F .text	0000004a eclic_set_irq_priority
20000068 g       .bss	00000000 __bss_start
080010fa g     F .text	000000ec shellAnsi
08002cf4 g     F .text	000000a8 memset
08002164 g     F .text	00000008 usart_data_transmit
08000738 g     F .text	0000000e main
08001b80  w      .text	00000000 trap_entry
08000228 g       .init	00000000 disable_mcycle_minstret
08001da6 g     F .text	00000012 eclic_mode_enable
0800277c g     F .text	00000290 .hidden __mulsf3
08001cfc g     F .text	00000018 eclic_set_nlbits
08002d9c g     F .text	0000011e strcmp
080021ea g     F .text	0000011e SystemInit
08001cc4 g     F .text	00000002 _fini
08000638 g     O .text	00000100 .hidden __clz_tab
0800201c g     F .text	0000008e usart_deinit
08001894 g     F .text	0000001e gd_eval_led_off
08002c16 g     F .text	0000000a atexit
08002ede g     F .text	0000002e _write_r
20000060 g     O .data	00000004 _impure_ptr
08001eac g     F .text	00000018 rcu_periph_reset_enable
20000000 g       .dalign	00000000 _data
080011e6 g     F .text	00000200 shellHandler
08001dc4 g     F .text	00000028 eclic_irq_enable
08002174 g     F .text	0000000c usart_hardware_flow_rts_config
08002430 g     F .text	00000020 QUEUE_INIT
08001a84 g     F .text	00000046 _write
20000068 g       .bss	00000000 _edata
20000488 g       .bss	00000000 _end
08001a50  w    F .text	00000034 _put_char
08001db8 g     F .text	00000006 eclic_global_interrupt_enable
0800308c g       .lalign	00000000 _data_lma
08002450 g     F .text	00000020 QUEUE_EMPTY
08002c20 g     F .text	0000002c exit
08002ad2 g     F .text	000000ce .hidden __floatunsisf
080024a0 g     F .text	0000002e QUEUE_WRITE
08001cc6 g     F .text	00000024 eclic_init
080019e6 g     F .text	0000006a _exit
08000250 g     O .text	00000030 shellDefaultCommandList
0800218c g     F .text	00000014 usart_flag_get
08002eba g     F .text	00000012 strlen
08002408 g     F .text	00000028 MSG_Handler
08001dec g     F .text	000000a8 gpio_init
08002390 g     F .text	00000010 SerialPutByte
08001654 g     F .text	000001da shellExtRun



Disassembly of section .init:

08000000 <vector_base>:
vector_base():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:73
    .weak  CAN1_RX1_IRQHandler
    .weak  CAN1_EWMC_IRQHandler
    .weak  USBFS_IRQHandler

vector_base:
    j _start
 8000000:	aab1                	j	800015c <_start>
 8000002:	0001                	nop
	...
 80000e0:	2308                	fld	fa0,0(a4)
 80000e2:	0800                	addi	s0,sp,16
	...

0800015c <_start>:
_start():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:167
	.globl _start
	.type _start,@function

_start:

	csrc CSR_MSTATUS, MSTATUS_MIE
 800015c:	30047073          	csrci	mstatus,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:169
	/* Jump to logical address first to ensure correct operation of RAM region  */
    la		a0,	_start
 8000160:	00000517          	auipc	a0,0x0
 8000164:	ffc50513          	addi	a0,a0,-4 # 800015c <_start>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:170
    li		a1,	1
 8000168:	4585                	li	a1,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:171
	slli	a1,	a1, 29
 800016a:	05f6                	slli	a1,a1,0x1d
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:172
    bleu	a1, a0, _start0800
 800016c:	00b57b63          	bgeu	a0,a1,8000182 <_start0800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:173
    srli	a1,	a1, 2
 8000170:	8189                	srli	a1,a1,0x2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:174
    bleu	a1, a0, _start0800
 8000172:	00b57863          	bgeu	a0,a1,8000182 <_start0800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:175
    la		a0,	_start0800
 8000176:	00000517          	auipc	a0,0x0
 800017a:	00c50513          	addi	a0,a0,12 # 8000182 <_start0800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:176
    add		a0, a0, a1
 800017e:	952e                	add	a0,a0,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:177
	jr      a0
 8000180:	8502                	jr	a0

08000182 <_start0800>:
_start0800():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:182

_start0800:

    /* Set the the NMI base to share with mtvec by setting CSR_MMISC_CTL */
    li t0, 0x200
 8000182:	20000293          	li	t0,512
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:183
    csrs CSR_MMISC_CTL, t0
 8000186:	7d02a073          	csrs	0x7d0,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:186

	/* Intial the mtvt*/
    la t0, vector_base
 800018a:	00000297          	auipc	t0,0x0
 800018e:	e7628293          	addi	t0,t0,-394 # 8000000 <vector_base>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:187
    csrw CSR_MTVT, t0
 8000192:	30729073          	csrw	mtvt,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:190

	/* Intial the mtvt2 and enable it*/
    la t0, irq_entry
 8000196:	00002297          	auipc	t0,0x2
 800019a:	a6628293          	addi	t0,t0,-1434 # 8001bfc <irq_entry>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:191
    csrw CSR_MTVT2, t0
 800019e:	7ec29073          	csrw	0x7ec,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:192
    csrs CSR_MTVT2, 0x1
 80001a2:	7ec0e073          	csrsi	0x7ec,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:195

    /* Intial the CSR MTVEC for the Trap ane NMI base addr*/
    la t0, trap_entry
 80001a6:	00002297          	auipc	t0,0x2
 80001aa:	9da28293          	addi	t0,t0,-1574 # 8001b80 <trap_entry>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:196
    csrw CSR_MTVEC, t0
 80001ae:	30529073          	csrw	mtvec,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:207
	csrw fcsr, x0
#endif

.option push
.option norelax
	la gp, __global_pointer$
 80001b2:	18000197          	auipc	gp,0x18000
 80001b6:	6ae18193          	addi	gp,gp,1710 # 20000860 <__global_pointer$>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:209
.option pop
	la sp, _sp
 80001ba:	18008117          	auipc	sp,0x18008
 80001be:	e4610113          	addi	sp,sp,-442 # 20008000 <_sp>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:212

	/* Load data section */
	la a0, _data_lma
 80001c2:	00003517          	auipc	a0,0x3
 80001c6:	eca50513          	addi	a0,a0,-310 # 800308c <__fini_array_end>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:213
	la a1, _data
 80001ca:	18000597          	auipc	a1,0x18000
 80001ce:	e3658593          	addi	a1,a1,-458 # 20000000 <_data>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:214
	la a2, _edata
 80001d2:	18000617          	auipc	a2,0x18000
 80001d6:	e9660613          	addi	a2,a2,-362 # 20000068 <_global_atexit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:215
	bgeu a1, a2, 2f
 80001da:	00c5fa63          	bgeu	a1,a2,80001ee <_start0800+0x6c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:217
1:
	lw t0, (a0)
 80001de:	00052283          	lw	t0,0(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:218
	sw t0, (a1)
 80001e2:	0055a023          	sw	t0,0(a1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:219
	addi a0, a0, 4
 80001e6:	0511                	addi	a0,a0,4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:220
	addi a1, a1, 4
 80001e8:	0591                	addi	a1,a1,4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:221
	bltu a1, a2, 1b
 80001ea:	fec5eae3          	bltu	a1,a2,80001de <_start0800+0x5c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:224
2:
	/* Clear bss section */
	la a0, __bss_start
 80001ee:	18000517          	auipc	a0,0x18000
 80001f2:	e7a50513          	addi	a0,a0,-390 # 20000068 <_global_atexit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:225
	la a1, _end
 80001f6:	c2818593          	addi	a1,gp,-984 # 20000488 <_end>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:226
	bgeu a0, a1, 2f
 80001fa:	00b57763          	bgeu	a0,a1,8000208 <_start0800+0x86>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:228
1:
	sw zero, (a0)
 80001fe:	00052023          	sw	zero,0(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:229
	addi a0, a0, 4
 8000202:	0511                	addi	a0,a0,4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:230
	bltu a0, a1, 1b
 8000204:	feb56de3          	bltu	a0,a1,80001fe <_start0800+0x7c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:233
2:
	/*enable mcycle_minstret*/
    csrci CSR_MCOUNTINHIBIT, 0x5
 8000208:	3202f073          	csrci	mucounteren,5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:235
	/* Call global constructors */
	la a0, __libc_fini_array
 800020c:	00003517          	auipc	a0,0x3
 8000210:	a4050513          	addi	a0,a0,-1472 # 8002c4c <__libc_fini_array>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:236
	call atexit
 8000214:	203020ef          	jal	ra,8002c16 <atexit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:237
	call __libc_init_array
 8000218:	26f020ef          	jal	ra,8002c86 <__libc_init_array>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:241


	/* argc = argv = 0 */
	li a0, 0
 800021c:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:242
	li a1, 0
 800021e:	4581                	li	a1,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:243
	call main
 8000220:	2b21                	jal	8000738 <main>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:244
	tail exit
 8000222:	1ff0206f          	j	8002c20 <exit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:247

1:
	j 1b
 8000226:	a001                	j	8000226 <_start0800+0xa4>

08000228 <disable_mcycle_minstret>:
disable_mcycle_minstret():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:251
	
	.global disable_mcycle_minstret
disable_mcycle_minstret:
        csrsi CSR_MCOUNTINHIBIT, 0x5
 8000228:	3202e073          	csrsi	mucounteren,5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:252
	ret
 800022c:	8082                	ret

0800022e <enable_mcycle_minstret>:
enable_mcycle_minstret():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:256

	.global enable_mcycle_minstret
enable_mcycle_minstret:
        csrci CSR_MCOUNTINHIBIT, 0x5
 800022e:	3202f073          	csrci	mucounteren,5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/start.S:257
	ret
 8000232:	8082                	ret
	...

Disassembly of section .text:

08000240 <shellDefaultCommandList-0x10>:
 8000240:	2008                	fld	fa0,0(s0)
 8000242:	0008                	0x8
 8000244:	4a325b1b          	0x4a325b1b
 8000248:	48315b1b          	0x48315b1b
 800024c:	0000                	unimp
	...

08000250 <shellDefaultCommandList>:
 8000250:	0470 0800 09d8 0800 0468 0800 0478 0800     p.......h...x...
 8000260:	04a4 0800 0faa 0800 04a8 0800 0000 0000     ................
 8000270:	04bc 0800 23a0 0800 04c0 0800 0000 0000     .....#..........

08000280 <shellDefaultKeyFunctionList>:
 8000280:	000a 0000 0d5c 0800 000d 0000 0d5c 0800     ....\.......\...
 8000290:	0009 0000 0b1c 0800 0008 0000 0798 0800     ................
 80002a0:	007f 0000 0798 0800 001b 0000 0746 0800     ............F...
 80002b0:	0020 0000 2d2d 0000 0a0d 0000 0a0d 6157      ...--........Wa
 80002c0:	6e72 6769 203a 6f43 6d6d 6e61 2064 7369     rnig: Command is
 80002d0:	7420 6f6f 6c20 6e6f 0d67 000a 0a0d 4f43      too long.....CO
 80002e0:	4d4d 4e41 2044 494c 5453 0d3a 0d0a 000a     MMAND LIST:.....
 80002f0:	6f63 6d6d 6e61 2064 6568 706c 2d20 002d     command help --.
 8000300:	0d3a 000a 6f43 6d6d 6e61 2064 6f6e 2074     :...Command not 
 8000310:	6f66 6e75 0d64 000a 0a0d 424d 2042 2026     found.....MBB & 
 8000320:	4447 3233 5220 5349 2d43 2056 3e3e 0000     GD32 RISC-V >>..
 8000330:	0a0d 0a0d 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a     ....************
 8000340:	2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a     ****************
 8000350:	2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a     ****************
 8000360:	2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 0d2a     ***************.
 8000370:	2a0a 2020 2020 2020 2020 2020 2020 2020     .*              
 8000380:	2020 2020 2820 2943 4320 504f 5259 4749          (C) COPYRIG
 8000390:	5448 3220 3130 2039 2020 2020 2020 2020     HT 2019         
 80003a0:	2020 2020 2020 2020 2020 2a20 0a0d 202a                *..* 
 80003b0:	2020 2020 2020 2020 2020 2020 2020 4d20                    M
 80003c0:	4242 2620 4720 3344 2032 4952 4353 562d     BB & GD32 RISC-V
 80003d0:	2020 3276 302e 372e 2020 2020 2020 2020       v2.0.7        
 80003e0:	2020 2020 2020 2020 0d2a 2a0a 2020 2020             *..*    
 80003f0:	2020 2020 2020 2020 2020 4220 6975 646c                Build
 8000400:	203a 6544 2063 3532 3220 3130 2039 3031     : Dec 25 2019 10
 8000410:	303a 3a39 3134 2020 2020 2020 2020 2020     :09:41          
 8000420:	2020 2020 2a20 0a0d 2a2a 2a2a 2a2a 2a2a          *..********
 8000430:	2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a     ****************
 8000440:	2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a     ****************
 8000450:	2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a     ****************
 8000460:	2a2a 0d2a 000a 0000 6f63 6d6d 6e61 2064     ***.....command 
 8000470:	6568 706c 0000 0000 6568 706c 5b20 6f63     help....help [co
 8000480:	6d6d 6e61 5d64 2d20 732d 6f68 2077 6568     mmand] --show he
 8000490:	706c 6920 666e 206f 666f 6320 6d6f 616d     lp info of comma
 80004a0:	646e 0000 6c63 0073 6c63 6165 2072 6f63     nd..cls.clear co
 80004b0:	6d6d 6e61 2064 696c 656e 0000 656c 0064     mmand line..led.
 80004c0:	7574 6e72 4c20 4445 206e 6e6f 6f20 2072     turn LEDn on or 
 80004d0:	666f 0066 1812 0800 16d0 0800 16e8 0800     off.............
 80004e0:	1704 0800 172a 0800 1758 0800 178e 0800     ....*...X.......
 80004f0:	17cc 0800 1682 0800                         ........

080004f8 <GPIO_CLK>:
 80004f8:	0604 0000 0604 0000 0606 0000 0606 0000     ................

08000508 <GPIO_PIN>:
 8000508:	0001 0000 0004 0000 0001 0000 0002 0000     ................

08000518 <GPIO_PORT>:
 8000518:	1000 4001 1000 4001 1800 4001 1800 4001     ...@...@...@...@
 8000528:	500a 6f72 7267 6d61 6820 7361 6520 6978     .Program has exi
 8000538:	6574 2064 6977 6874 6320 646f 3a65 0000     ted with code:..
 8000548:	7830 0000 6d6e 0a69 0000 0000 7274 7061     0x..nmi.....trap
 8000558:	000a 0000 4447 3233 4656 3031 5633 452d     ....GD32VF103V-E
 8000568:	4156 284c 4952 4353 562d 0d29 0000 0000     VAL(RISC-V).....
 8000578:	210c 0000 2036 0000 2106 0000 203e 0000     .!..6 ...!..> ..
 8000588:	2106 0000 2004 0000 2106 0000 203e 0000     .!... ...!..> ..
 8000598:	2036 0000 2036 0000 2004 0000 203e 0000     6 ..6 ... ..> ..
 80005a8:	2044 0000 2044 0000 2044 0000 2004 0000     D ..D ..D ... ..
 80005b8:	1ff6 0000 1ff6 0000 20c6 0000 21a2 0000     ......... ...!..
 80005c8:	20c6 0000 1fc4 0000 20c6 0000 21a2 0000     . ....... ...!..
 80005d8:	1ff6 0000 1ff6 0000 1fc4 0000 21a2 0000     .............!..
 80005e8:	2004 0000 2004 0000 2004 0000 1fc4 0000     . ... ... ......
 80005f8:	2304 0000 2256 0000 2256 0000 2254 0000     .#..V"..V"..T"..
 8000608:	225a 0000 225a 0000 222a 0000 2254 0000     Z"..Z"..*"..T"..
 8000618:	225a 0000 222a 0000 225a 0000 2254 0000     Z"..*"..Z"..T"..
 8000628:	22f2 0000 22f2 0000 22f2 0000 222a 0000     ."..."..."..*"..

08000638 <__clz_tab>:
 8000638:	0100 0202 0303 0303 0404 0404 0404 0404     ................
 8000648:	0505 0505 0505 0505 0505 0505 0505 0505     ................
 8000658:	0606 0606 0606 0606 0606 0606 0606 0606     ................
 8000668:	0606 0606 0606 0606 0606 0606 0606 0606     ................
 8000678:	0707 0707 0707 0707 0707 0707 0707 0707     ................
 8000688:	0707 0707 0707 0707 0707 0707 0707 0707     ................
 8000698:	0707 0707 0707 0707 0707 0707 0707 0707     ................
 80006a8:	0707 0707 0707 0707 0707 0707 0707 0707     ................
 80006b8:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 80006c8:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 80006d8:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 80006e8:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 80006f8:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 8000708:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 8000718:	0808 0808 0808 0808 0808 0808 0808 0808     ................
 8000728:	0808 0808 0808 0808 0808 0808 0808 0808     ................

08000738 <main>:
main():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:62
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
 8000738:	1141                	addi	sp,sp,-16
 800073a:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:63
	xInitSystem();
 800073c:	403010ef          	jal	ra,800233e <xInitSystem>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:68 (discriminator 1)

	uint32_t tt = 0;

    while(1){
    	MSG_Handler();
 8000740:	4c9010ef          	jal	ra,8002408 <MSG_Handler>
 8000744:	bff5                	j	8000740 <main+0x8>

08000746 <shellAnsiStart>:
shellAnsiStart():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:750
}


static void shellAnsiStart(SHELL_TypeDef *shell)
{
    shell->status.inputMode = SHELL_ANSI_ESC;
 8000746:	4785                	li	a5,1
 8000748:	16f50523          	sb	a5,362(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:751
}
 800074c:	8082                	ret

0800074e <shellDisplay.part.1>:
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:261
    while(*string)
 800074e:	00058783          	lb	a5,0(a1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:254
unsigned short shellDisplay(SHELL_TypeDef *shell, const char *string)
 8000752:	1141                	addi	sp,sp,-16
 8000754:	c606                	sw	ra,12(sp)
 8000756:	c422                	sw	s0,8(sp)
 8000758:	c226                	sw	s1,4(sp)
 800075a:	c04a                	sw	s2,0(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:261
    while(*string)
 800075c:	c795                	beqz	a5,8000788 <shellDisplay.part.1+0x3a>
 800075e:	84ae                	mv	s1,a1
 8000760:	892a                	mv	s2,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:256
    unsigned short count = 0;
 8000762:	4401                	li	s0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:263
        shell->write(*string++);
 8000764:	17492703          	lw	a4,372(s2)
 8000768:	853e                	mv	a0,a5
 800076a:	0485                	addi	s1,s1,1
 800076c:	9702                	jalr	a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:261
    while(*string)
 800076e:	00048783          	lb	a5,0(s1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:264
        count ++;
 8000772:	0405                	addi	s0,s0,1
 8000774:	0442                	slli	s0,s0,0x10
 8000776:	8041                	srli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:261
    while(*string)
 8000778:	f7f5                	bnez	a5,8000764 <shellDisplay.part.1+0x16>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:267
}
 800077a:	8522                	mv	a0,s0
 800077c:	40b2                	lw	ra,12(sp)
 800077e:	4422                	lw	s0,8(sp)
 8000780:	4492                	lw	s1,4(sp)
 8000782:	4902                	lw	s2,0(sp)
 8000784:	0141                	addi	sp,sp,16
 8000786:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:256
    unsigned short count = 0;
 8000788:	4401                	li	s0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:267
}
 800078a:	8522                	mv	a0,s0
 800078c:	40b2                	lw	ra,12(sp)
 800078e:	4422                	lw	s0,8(sp)
 8000790:	4492                	lw	s1,4(sp)
 8000792:	4902                	lw	s2,0(sp)
 8000794:	0141                	addi	sp,sp,16
 8000796:	8082                	ret

08000798 <shellBackspace>:
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:578
    if (shell->length == 0)
 8000798:	03655683          	lhu	a3,54(a0)
 800079c:	10068d63          	beqz	a3,80008b6 <shellBackspace+0x11e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:577
{
 80007a0:	1141                	addi	sp,sp,-16
 80007a2:	c422                	sw	s0,8(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:582
    if (shell->cursor == shell->length)
 80007a4:	03855403          	lhu	s0,56(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:577
{
 80007a8:	c226                	sw	s1,4(sp)
 80007aa:	c606                	sw	ra,12(sp)
 80007ac:	84aa                	mv	s1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:582
    if (shell->cursor == shell->length)
 80007ae:	00868863          	beq	a3,s0,80007be <shellBackspace+0x26>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:589
    else if (shell->cursor > 0)
 80007b2:	ec0d                	bnez	s0,80007ec <shellBackspace+0x54>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:609
}
 80007b4:	40b2                	lw	ra,12(sp)
 80007b6:	4422                	lw	s0,8(sp)
 80007b8:	4492                	lw	s1,4(sp)
 80007ba:	0141                	addi	sp,sp,16
 80007bc:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:584
        shell->length--;
 80007be:	16fd                	addi	a3,a3,-1
 80007c0:	01069793          	slli	a5,a3,0x10
 80007c4:	83c1                	srli	a5,a5,0x10
 80007c6:	02f51b23          	sh	a5,54(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:585
        shell->cursor--;
 80007ca:	02d51c23          	sh	a3,56(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:586
        shell->buffer[shell->length] = 0;
 80007ce:	97aa                	add	a5,a5,a0
 80007d0:	00078223          	sb	zero,4(a5)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 80007d4:	17452783          	lw	a5,372(a0)
 80007d8:	dff1                	beqz	a5,80007b4 <shellBackspace+0x1c>
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:609
}
 80007da:	4422                	lw	s0,8(sp)
 80007dc:	40b2                	lw	ra,12(sp)
 80007de:	4492                	lw	s1,4(sp)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:609
 80007e0:	080005b7          	lui	a1,0x8000
 80007e4:	24058593          	addi	a1,a1,576 # 8000240 <enable_mcycle_minstret+0x12>
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:609
 80007e8:	0141                	addi	sp,sp,16
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:609
 80007ea:	b795                	j	800074e <shellDisplay.part.1>
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:591
        for (short i = 0; i < shell->length - shell->cursor; i++)
 80007ec:	408685b3          	sub	a1,a3,s0
 80007f0:	4701                	li	a4,0
 80007f2:	4781                	li	a5,0
 80007f4:	00b05e63          	blez	a1,8000810 <shellBackspace+0x78>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:593 (discriminator 3)
            shell->buffer[shell->cursor + i - 1] = shell->buffer[shell->cursor + i];
 80007f8:	97a2                	add	a5,a5,s0
 80007fa:	97a6                	add	a5,a5,s1
 80007fc:	00478603          	lb	a2,4(a5)
 8000800:	0705                	addi	a4,a4,1
 8000802:	0742                	slli	a4,a4,0x10
 8000804:	8741                	srai	a4,a4,0x10
 8000806:	00c781a3          	sb	a2,3(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:591 (discriminator 3)
        for (short i = 0; i < shell->length - shell->cursor; i++)
 800080a:	87ba                	mv	a5,a4
 800080c:	feb746e3          	blt	a4,a1,80007f8 <shellBackspace+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:595
        shell->length--;
 8000810:	16fd                	addi	a3,a3,-1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:596
        shell->cursor--;
 8000812:	147d                	addi	s0,s0,-1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:595
        shell->length--;
 8000814:	06c2                	slli	a3,a3,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:596
        shell->cursor--;
 8000816:	0442                	slli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:595
        shell->length--;
 8000818:	82c1                	srli	a3,a3,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:596
        shell->cursor--;
 800081a:	8041                	srli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:597
        shell->buffer[shell->length] = 0;
 800081c:	00d487b3          	add	a5,s1,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:595
        shell->length--;
 8000820:	02d49b23          	sh	a3,54(s1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:596
        shell->cursor--;
 8000824:	02849c23          	sh	s0,56(s1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:597
        shell->buffer[shell->length] = 0;
 8000828:	00078223          	sb	zero,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:598
        shellDisplayByte(shell, '\b');
 800082c:	1744a783          	lw	a5,372(s1)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 8000830:	cfb5                	beqz	a5,80008ac <shellBackspace+0x114>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 8000832:	4521                	li	a0,8
 8000834:	9782                	jalr	a5
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:599
        for (short i = shell->cursor; i < shell->length; i++)
 8000836:	0364d703          	lhu	a4,54(s1)
 800083a:	03849403          	lh	s0,56(s1)
 800083e:	1744a783          	lw	a5,372(s1)
 8000842:	02e45163          	bge	s0,a4,8000864 <shellBackspace+0xcc>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:601 (discriminator 3)
            shellDisplayByte(shell, shell->buffer[i]);
 8000846:	00848733          	add	a4,s1,s0
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272 (discriminator 3)
    if (shell->write == NULL)
 800084a:	cba9                	beqz	a5,800089c <shellBackspace+0x104>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 800084c:	00470503          	lb	a0,4(a4)
 8000850:	9782                	jalr	a5
 8000852:	0364d703          	lhu	a4,54(s1)
 8000856:	1744a783          	lw	a5,372(s1)
 800085a:	0405                	addi	s0,s0,1
 800085c:	0442                	slli	s0,s0,0x10
 800085e:	8441                	srai	s0,s0,0x10
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:599 (discriminator 3)
        for (short i = shell->cursor; i < shell->length; i++)
 8000860:	fee443e3          	blt	s0,a4,8000846 <shellBackspace+0xae>
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 8000864:	c781                	beqz	a5,800086c <shellBackspace+0xd4>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 8000866:	02000513          	li	a0,32
 800086a:	9782                	jalr	a5
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:604
        for (short i = shell->length - shell->cursor + 1; i > 0; i--)
 800086c:	0364d403          	lhu	s0,54(s1)
 8000870:	0384d783          	lhu	a5,56(s1)
 8000874:	0405                	addi	s0,s0,1
 8000876:	8c1d                	sub	s0,s0,a5
 8000878:	0442                	slli	s0,s0,0x10
 800087a:	8441                	srai	s0,s0,0x10
 800087c:	f2805ce3          	blez	s0,80007b4 <shellBackspace+0x1c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:606 (discriminator 3)
            shellDisplayByte(shell, '\b');
 8000880:	1744a783          	lw	a5,372(s1)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276 (discriminator 3)
    shell->write(data);
 8000884:	4521                	li	a0,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272 (discriminator 3)
    if (shell->write == NULL)
 8000886:	c391                	beqz	a5,800088a <shellBackspace+0xf2>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 8000888:	9782                	jalr	a5
 800088a:	147d                	addi	s0,s0,-1
 800088c:	01041793          	slli	a5,s0,0x10
 8000890:	83c1                	srli	a5,a5,0x10
 8000892:	01079413          	slli	s0,a5,0x10
 8000896:	8441                	srai	s0,s0,0x10
shellBackspace():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:604 (discriminator 3)
        for (short i = shell->length - shell->cursor + 1; i > 0; i--)
 8000898:	f7e5                	bnez	a5,8000880 <shellBackspace+0xe8>
 800089a:	bf29                	j	80007b4 <shellBackspace+0x1c>
 800089c:	0405                	addi	s0,s0,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:599
        for (short i = shell->cursor; i < shell->length; i++)
 800089e:	0364d703          	lhu	a4,54(s1)
 80008a2:	0442                	slli	s0,s0,0x10
 80008a4:	8441                	srai	s0,s0,0x10
 80008a6:	fae44ae3          	blt	s0,a4,800085a <shellBackspace+0xc2>
 80008aa:	b7c9                	j	800086c <shellBackspace+0xd4>
 80008ac:	0442                	slli	s0,s0,0x10
 80008ae:	8441                	srai	s0,s0,0x10
 80008b0:	f8d44be3          	blt	s0,a3,8000846 <shellBackspace+0xae>
 80008b4:	bf65                	j	800086c <shellBackspace+0xd4>
 80008b6:	8082                	ret

080008b8 <shellClearLine>:
shellClearLine():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:369
{
 80008b8:	1101                	addi	sp,sp,-32
 80008ba:	cc22                	sw	s0,24(sp)
 80008bc:	ca26                	sw	s1,20(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:370
    for (short i = shell->length - shell->cursor; i > 0; i--)
 80008be:	03655403          	lhu	s0,54(a0)
 80008c2:	03855483          	lhu	s1,56(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:369
{
 80008c6:	c84a                	sw	s2,16(sp)
 80008c8:	ce06                	sw	ra,28(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:370
    for (short i = shell->length - shell->cursor; i > 0; i--)
 80008ca:	409404b3          	sub	s1,s0,s1
 80008ce:	04c2                	slli	s1,s1,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:369
{
 80008d0:	c64e                	sw	s3,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:370
    for (short i = shell->length - shell->cursor; i > 0; i--)
 80008d2:	84c1                	srai	s1,s1,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:369
{
 80008d4:	892a                	mv	s2,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:370
    for (short i = shell->length - shell->cursor; i > 0; i--)
 80008d6:	02905263          	blez	s1,80008fa <shellClearLine+0x42>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:372 (discriminator 3)
        shellDisplayByte(shell, ' ');
 80008da:	17492783          	lw	a5,372(s2)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276 (discriminator 3)
    shell->write(data);
 80008de:	02000513          	li	a0,32
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272 (discriminator 3)
    if (shell->write == NULL)
 80008e2:	c391                	beqz	a5,80008e6 <shellClearLine+0x2e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 80008e4:	9782                	jalr	a5
 80008e6:	14fd                	addi	s1,s1,-1
 80008e8:	01049793          	slli	a5,s1,0x10
 80008ec:	83c1                	srli	a5,a5,0x10
 80008ee:	01079493          	slli	s1,a5,0x10
 80008f2:	84c1                	srai	s1,s1,0x10
shellClearLine():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:370 (discriminator 3)
    for (short i = shell->length - shell->cursor; i > 0; i--)
 80008f4:	f3fd                	bnez	a5,80008da <shellClearLine+0x22>
 80008f6:	03695403          	lhu	s0,54(s2)
shellDelete():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
    while (length--)
 80008fa:	64c1                	lui	s1,0x10
 80008fc:	14fd                	addi	s1,s1,-1
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 80008fe:	080009b7          	lui	s3,0x8000
shellDelete():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 8000902:	147d                	addi	s0,s0,-1
 8000904:	0442                	slli	s0,s0,0x10
 8000906:	8041                	srli	s0,s0,0x10
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 8000908:	24098593          	addi	a1,s3,576 # 8000240 <enable_mcycle_minstret+0x12>
 800090c:	854a                	mv	a0,s2
shellDelete():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 800090e:	00940e63          	beq	s0,s1,800092a <shellClearLine+0x72>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000912:	17492783          	lw	a5,372(s2)
 8000916:	d7f5                	beqz	a5,8000902 <shellClearLine+0x4a>
shellDelete():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
    while (length--)
 8000918:	147d                	addi	s0,s0,-1
 800091a:	0442                	slli	s0,s0,0x10
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 800091c:	3d0d                	jal	800074e <shellDisplay.part.1>
shellDelete():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 800091e:	8041                	srli	s0,s0,0x10
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 8000920:	24098593          	addi	a1,s3,576
 8000924:	854a                	mv	a0,s2
shellDelete():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:361
 8000926:	fe9416e3          	bne	s0,s1,8000912 <shellClearLine+0x5a>
shellClearLine():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:375
}
 800092a:	40f2                	lw	ra,28(sp)
 800092c:	4462                	lw	s0,24(sp)
 800092e:	44d2                	lw	s1,20(sp)
 8000930:	4942                	lw	s2,16(sp)
 8000932:	49b2                	lw	s3,12(sp)
 8000934:	6105                	addi	sp,sp,32
 8000936:	8082                	ret

08000938 <shellDisplayItem>:
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1024
SHELL_EXPORT_CMD(vars, shellListVariables, show vars);
#endif /** SHELL_USING_VAR == 1 */


static void shellDisplayItem(SHELL_TypeDef *shell, unsigned short index)
{
 8000938:	1101                	addi	sp,sp,-32
 800093a:	c64e                	sw	s3,12(sp)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 800093c:	17452783          	lw	a5,372(a0)
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
    unsigned short spaceLength;
    SHELL_CommandTypeDef *base = shell->commandBase;
    
    spaceLength = 22 - shellDisplay(shell, (base + index)->name);
 8000940:	15c52983          	lw	s3,348(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1024
{
 8000944:	ca26                	sw	s1,20(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
    spaceLength = 22 - shellDisplay(shell, (base + index)->name);
 8000946:	0592                	slli	a1,a1,0x4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1024
{
 8000948:	ce06                	sw	ra,28(sp)
 800094a:	cc22                	sw	s0,24(sp)
 800094c:	c84a                	sw	s2,16(sp)
 800094e:	84aa                	mv	s1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
    spaceLength = 22 - shellDisplay(shell, (base + index)->name);
 8000950:	99ae                	add	s3,s3,a1
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000952:	c3c9                	beqz	a5,80009d4 <shellDisplayItem+0x9c>
 8000954:	0009a583          	lw	a1,0(s3)
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
    spaceLength = 22 - shellDisplay(shell, (base + index)->name);
 8000958:	4459                	li	s0,22
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
 800095a:	3bd5                	jal	800074e <shellDisplay.part.1>
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
 800095c:	8c09                	sub	s0,s0,a0
 800095e:	0442                	slli	s0,s0,0x10
 8000960:	8041                	srli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1029
    spaceLength = (spaceLength > 0) ? spaceLength : 4;
 8000962:	1744a783          	lw	a5,372(s1) # 10174 <__stack_size+0xf974>
 8000966:	e011                	bnez	s0,800096a <shellDisplayItem+0x32>
 8000968:	4411                	li	s0,4
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1029
 800096a:	08000937          	lui	s2,0x8000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257 (discriminator 1)
    if (shell->write == NULL)
 800096e:	2b090593          	addi	a1,s2,688 # 80002b0 <shellDefaultKeyFunctionList+0x30>
 8000972:	8526                	mv	a0,s1
 8000974:	c7a9                	beqz	a5,80009be <shellDisplayItem+0x86>
 8000976:	3be1                	jal	800074e <shellDisplay.part.1>
 8000978:	1744a783          	lw	a5,372(s1)
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1032
    do {
        shellDisplay(shell, " ");
    } while (--spaceLength);
 800097c:	147d                	addi	s0,s0,-1
 800097e:	0442                	slli	s0,s0,0x10
 8000980:	8041                	srli	s0,s0,0x10
 8000982:	f475                	bnez	s0,800096e <shellDisplayItem+0x36>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000984:	c3a9                	beqz	a5,80009c6 <shellDisplayItem+0x8e>
 8000986:	080005b7          	lui	a1,0x8000
 800098a:	2b458593          	addi	a1,a1,692 # 80002b4 <shellDefaultKeyFunctionList+0x34>
 800098e:	8526                	mv	a0,s1
 8000990:	3b7d                	jal	800074e <shellDisplay.part.1>
 8000992:	1744a783          	lw	a5,372(s1)
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1034
    shellDisplay(shell, "--");
    shellDisplay(shell, (base + index)->desc);
 8000996:	0089a583          	lw	a1,8(s3)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 800099a:	c795                	beqz	a5,80009c6 <shellDisplayItem+0x8e>
 800099c:	8526                	mv	a0,s1
 800099e:	3b45                	jal	800074e <shellDisplay.part.1>
 80009a0:	1744a783          	lw	a5,372(s1)
 80009a4:	c38d                	beqz	a5,80009c6 <shellDisplayItem+0x8e>
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
    shellDisplay(shell, "\r\n");

}
 80009a6:	4462                	lw	s0,24(sp)
 80009a8:	40f2                	lw	ra,28(sp)
 80009aa:	4942                	lw	s2,16(sp)
 80009ac:	49b2                	lw	s3,12(sp)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
 80009ae:	8526                	mv	a0,s1
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
 80009b0:	44d2                	lw	s1,20(sp)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
 80009b2:	080005b7          	lui	a1,0x8000
 80009b6:	2b858593          	addi	a1,a1,696 # 80002b8 <shellDefaultKeyFunctionList+0x38>
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
 80009ba:	6105                	addi	sp,sp,32
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
 80009bc:	bb49                	j	800074e <shellDisplay.part.1>
shellDisplayItem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1032
    } while (--spaceLength);
 80009be:	147d                	addi	s0,s0,-1
 80009c0:	0442                	slli	s0,s0,0x10
 80009c2:	8041                	srli	s0,s0,0x10
 80009c4:	fc45                	bnez	s0,800097c <shellDisplayItem+0x44>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1037
}
 80009c6:	40f2                	lw	ra,28(sp)
 80009c8:	4462                	lw	s0,24(sp)
 80009ca:	44d2                	lw	s1,20(sp)
 80009cc:	4942                	lw	s2,16(sp)
 80009ce:	49b2                	lw	s3,12(sp)
 80009d0:	6105                	addi	sp,sp,32
 80009d2:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1028
    spaceLength = 22 - shellDisplay(shell, (base + index)->name);
 80009d4:	4459                	li	s0,22
 80009d6:	bf51                	j	800096a <shellDisplayItem+0x32>

080009d8 <shellHelp>:
shellGetCurrent():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:223
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 80009d8:	200007b7          	lui	a5,0x20000
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1041


void shellHelp(int argc, char *argv[])
{
 80009dc:	1101                	addi	sp,sp,-32
 80009de:	06c78793          	addi	a5,a5,108 # 2000006c <shellList>
 80009e2:	ce06                	sw	ra,28(sp)
 80009e4:	cc22                	sw	s0,24(sp)
 80009e6:	ca26                	sw	s1,20(sp)
 80009e8:	c84a                	sw	s2,16(sp)
 80009ea:	c64e                	sw	s3,12(sp)
 80009ec:	c452                	sw	s4,8(sp)
 80009ee:	c256                	sw	s5,4(sp)
 80009f0:	01478693          	addi	a3,a5,20
shellGetCurrent():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:225
        if (shellList[i] != NULL && shellList[i]->isActive == 1)
 80009f4:	4605                	li	a2,1
 80009f6:	4380                	lw	s0,0(a5)
 80009f8:	0791                	addi	a5,a5,4
 80009fa:	c409                	beqz	s0,8000a04 <shellHelp+0x2c>
 80009fc:	16d44703          	lbu	a4,365(s0)
 8000a00:	00c70d63          	beq	a4,a2,8000a1a <shellHelp+0x42>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:223
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 8000a04:	fed799e3          	bne	a5,a3,80009f6 <shellHelp+0x1e>
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1081
            }
        }
        shellDisplay(shell, shellText[TEXT_CMD_NONE]);
    }
#endif /** SHELL_LONG_HELP == 1 */
}
 8000a08:	40f2                	lw	ra,28(sp)
 8000a0a:	4462                	lw	s0,24(sp)
 8000a0c:	44d2                	lw	s1,20(sp)
 8000a0e:	4942                	lw	s2,16(sp)
 8000a10:	49b2                	lw	s3,12(sp)
 8000a12:	4a22                	lw	s4,8(sp)
 8000a14:	4a92                	lw	s5,4(sp)
 8000a16:	6105                	addi	sp,sp,32
 8000a18:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1048
    if (argc == 1)
 8000a1a:	0ac50f63          	beq	a0,a2,8000ad8 <shellHelp+0x100>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1058
    else if (argc == 2) {
 8000a1e:	4789                	li	a5,2
 8000a20:	fef514e3          	bne	a0,a5,8000a08 <shellHelp+0x30>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1060
        for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000a24:	16045983          	lhu	s3,352(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1059
        SHELL_CommandTypeDef *base = shell->commandBase;
 8000a28:	15c42a03          	lw	s4,348(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1060
        for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000a2c:	0c098f63          	beqz	s3,8000b0a <shellHelp+0x132>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1062
            if (strcmp((const char *)argv[1], (base + i)->name) == 0)
 8000a30:	0045aa83          	lw	s5,4(a1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1060
        for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000a34:	4481                	li	s1,0
 8000a36:	a019                	j	8000a3c <shellHelp+0x64>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1060 (discriminator 2)
 8000a38:	0d34f963          	bgeu	s1,s3,8000b0a <shellHelp+0x132>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1062
            if (strcmp((const char *)argv[1], (base + i)->name) == 0)
 8000a3c:	00449913          	slli	s2,s1,0x4
 8000a40:	9952                	add	s2,s2,s4
 8000a42:	00092583          	lw	a1,0(s2)
 8000a46:	8556                	mv	a0,s5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1060
        for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000a48:	0485                	addi	s1,s1,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1062
            if (strcmp((const char *)argv[1], (base + i)->name) == 0)
 8000a4a:	352020ef          	jal	ra,8002d9c <strcmp>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1060
        for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000a4e:	0ff4f493          	andi	s1,s1,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1062
            if (strcmp((const char *)argv[1], (base + i)->name) == 0)
 8000a52:	f17d                	bnez	a0,8000a38 <shellHelp+0x60>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000a54:	17442783          	lw	a5,372(s0)
 8000a58:	c7b9                	beqz	a5,8000aa6 <shellHelp+0xce>
 8000a5a:	080005b7          	lui	a1,0x8000
 8000a5e:	2f058593          	addi	a1,a1,752 # 80002f0 <shellDefaultKeyFunctionList+0x70>
 8000a62:	8522                	mv	a0,s0
 8000a64:	31ed                	jal	800074e <shellDisplay.part.1>
 8000a66:	17442783          	lw	a5,372(s0)
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1066
                shellDisplay(shell, (base + i)->name);
 8000a6a:	00092583          	lw	a1,0(s2)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000a6e:	cf85                	beqz	a5,8000aa6 <shellHelp+0xce>
 8000a70:	8522                	mv	a0,s0
 8000a72:	39f1                	jal	800074e <shellDisplay.part.1>
 8000a74:	17442783          	lw	a5,372(s0)
 8000a78:	c79d                	beqz	a5,8000aa6 <shellHelp+0xce>
 8000a7a:	080005b7          	lui	a1,0x8000
 8000a7e:	30058593          	addi	a1,a1,768 # 8000300 <shellDefaultKeyFunctionList+0x80>
 8000a82:	8522                	mv	a0,s0
 8000a84:	31e9                	jal	800074e <shellDisplay.part.1>
 8000a86:	17442783          	lw	a5,372(s0)
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1068
                shellDisplay(shell, (base + i)->desc);
 8000a8a:	00892583          	lw	a1,8(s2)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000a8e:	cf81                	beqz	a5,8000aa6 <shellHelp+0xce>
 8000a90:	8522                	mv	a0,s0
 8000a92:	3975                	jal	800074e <shellDisplay.part.1>
 8000a94:	17442783          	lw	a5,372(s0)
 8000a98:	c799                	beqz	a5,8000aa6 <shellHelp+0xce>
 8000a9a:	080005b7          	lui	a1,0x8000
 8000a9e:	2b858593          	addi	a1,a1,696 # 80002b8 <shellDefaultKeyFunctionList+0x38>
 8000aa2:	8522                	mv	a0,s0
 8000aa4:	316d                	jal	800074e <shellDisplay.part.1>
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1070
                if ((base + i)->help)
 8000aa6:	00c92583          	lw	a1,12(s2)
 8000aaa:	ddb9                	beqz	a1,8000a08 <shellHelp+0x30>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000aac:	17442783          	lw	a5,372(s0)
 8000ab0:	dfa1                	beqz	a5,8000a08 <shellHelp+0x30>
 8000ab2:	8522                	mv	a0,s0
 8000ab4:	3969                	jal	800074e <shellDisplay.part.1>
 8000ab6:	17442783          	lw	a5,372(s0)
 8000aba:	d7b9                	beqz	a5,8000a08 <shellHelp+0x30>
 8000abc:	080005b7          	lui	a1,0x8000
 8000ac0:	2b858593          	addi	a1,a1,696 # 80002b8 <shellDefaultKeyFunctionList+0x38>
 8000ac4:	8522                	mv	a0,s0
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1081
}
 8000ac6:	4462                	lw	s0,24(sp)
 8000ac8:	40f2                	lw	ra,28(sp)
 8000aca:	44d2                	lw	s1,20(sp)
 8000acc:	4942                	lw	s2,16(sp)
 8000ace:	49b2                	lw	s3,12(sp)
 8000ad0:	4a22                	lw	s4,8(sp)
 8000ad2:	4a92                	lw	s5,4(sp)
 8000ad4:	6105                	addi	sp,sp,32
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1081
 8000ad6:	b9a5                	j	800074e <shellDisplay.part.1>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000ad8:	17442783          	lw	a5,372(s0)
 8000adc:	c799                	beqz	a5,8000aea <shellHelp+0x112>
 8000ade:	080005b7          	lui	a1,0x8000
 8000ae2:	2dc58593          	addi	a1,a1,732 # 80002dc <shellDefaultKeyFunctionList+0x5c>
 8000ae6:	8522                	mv	a0,s0
 8000ae8:	319d                	jal	800074e <shellDisplay.part.1>
shellHelp():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1052 (discriminator 1)
        for(unsigned short i = 0; i < shell->commandNumber; i++)
 8000aea:	16045783          	lhu	a5,352(s0)
 8000aee:	f0078de3          	beqz	a5,8000a08 <shellHelp+0x30>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1052
 8000af2:	4481                	li	s1,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1054 (discriminator 3)
            shellDisplayItem(shell, i);
 8000af4:	85a6                	mv	a1,s1
 8000af6:	8522                	mv	a0,s0
 8000af8:	3581                	jal	8000938 <shellDisplayItem>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1052 (discriminator 3)
        for(unsigned short i = 0; i < shell->commandNumber; i++)
 8000afa:	0485                	addi	s1,s1,1
 8000afc:	16045783          	lhu	a5,352(s0)
 8000b00:	04c2                	slli	s1,s1,0x10
 8000b02:	80c1                	srli	s1,s1,0x10
 8000b04:	fef4e8e3          	bltu	s1,a5,8000af4 <shellHelp+0x11c>
 8000b08:	b701                	j	8000a08 <shellHelp+0x30>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000b0a:	17442783          	lw	a5,372(s0)
 8000b0e:	ee078de3          	beqz	a5,8000a08 <shellHelp+0x30>
 8000b12:	080005b7          	lui	a1,0x8000
 8000b16:	30458593          	addi	a1,a1,772 # 8000304 <shellDefaultKeyFunctionList+0x84>
 8000b1a:	b76d                	j	8000ac4 <shellHelp+0xec>

08000b1c <shellTab>:
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:613
{
 8000b1c:	7179                	addi	sp,sp,-48
 8000b1e:	ca56                	sw	s5,20(sp)
 8000b20:	8aaa                	mv	s5,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:627
    if (shell->length != 0)
 8000b22:	03655503          	lhu	a0,54(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:613
{
 8000b26:	d606                	sw	ra,44(sp)
 8000b28:	d422                	sw	s0,40(sp)
 8000b2a:	d226                	sw	s1,36(sp)
 8000b2c:	d04a                	sw	s2,32(sp)
 8000b2e:	ce4e                	sw	s3,28(sp)
 8000b30:	cc52                	sw	s4,24(sp)
 8000b32:	c85a                	sw	s6,16(sp)
 8000b34:	c65e                	sw	s7,12(sp)
 8000b36:	c462                	sw	s8,8(sp)
 8000b38:	c266                	sw	s9,4(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:627
    if (shell->length != 0)
 8000b3a:	1a050d63          	beqz	a0,8000cf4 <shellTab+0x1d8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:629
        shell->buffer[shell->length] = 0;
 8000b3e:	00aa87b3          	add	a5,s5,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:618
    SHELL_CommandTypeDef *base = shell->commandBase;
 8000b42:	15caac83          	lw	s9,348(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:629
        shell->buffer[shell->length] = 0;
 8000b46:	00078223          	sb	zero,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:630
        for (short i = 0; i < shell->commandNumber; i++)
 8000b4a:	160ad803          	lhu	a6,352(s5)
 8000b4e:	12080763          	beqz	a6,8000c7c <shellTab+0x160>
 8000b52:	4581                	li	a1,0
shellStringCompare():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000b54:	004a8783          	lb	a5,4(s5)
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:633
                (char *)(base + i)->name)
 8000b58:	00459a13          	slli	s4,a1,0x4
 8000b5c:	9a66                	add	s4,s4,s9
 8000b5e:	004a8413          	addi	s0,s5,4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:616
    unsigned short matchNum = 0;
 8000b62:	4b01                	li	s6,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:615
    unsigned short lastMatchIndex = 0;
 8000b64:	4c01                	li	s8,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:614
    unsigned short maxMatch = SHELL_COMMAND_MAX_LENGTH;
 8000b66:	03200b93          	li	s7,50
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:638
                    if (matchNum == 1)
 8000b6a:	4905                	li	s2,1
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:638
 8000b6c:	080009b7          	lui	s3,0x8000
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:633
                (char *)(base + i)->name)
 8000b70:	000a2603          	lw	a2,0(s4)
shellStringCompare():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000b74:	cfa1                	beqz	a5,8000bcc <shellTab+0xb0>
 8000b76:	00060703          	lb	a4,0(a2)
 8000b7a:	cb29                	beqz	a4,8000bcc <shellTab+0xb0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:348
        if (*(dest + i) != *(src +i))
 8000b7c:	04e79863          	bne	a5,a4,8000bcc <shellTab+0xb0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:343
    unsigned short match = 0;
 8000b80:	4781                	li	a5,0
 8000b82:	a031                	j	8000b8e <shellTab+0x72>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000b84:	00068683          	lb	a3,0(a3)
 8000b88:	ce89                	beqz	a3,8000ba2 <shellTab+0x86>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:348
        if (*(dest + i) != *(src +i))
 8000b8a:	00e69c63          	bne	a3,a4,8000ba2 <shellTab+0x86>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:352
        match ++;
 8000b8e:	0785                	addi	a5,a5,1
 8000b90:	07c2                	slli	a5,a5,0x10
 8000b92:	83c1                	srli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000b94:	00f40733          	add	a4,s0,a5
 8000b98:	00070703          	lb	a4,0(a4)
 8000b9c:	00f606b3          	add	a3,a2,a5
 8000ba0:	f375                	bnez	a4,8000b84 <shellTab+0x68>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:355
    return match;
 8000ba2:	01059493          	slli	s1,a1,0x10
 8000ba6:	80c1                	srli	s1,s1,0x10
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:632
            if (shellStringCompare(shell->buffer, 
 8000ba8:	02f50863          	beq	a0,a5,8000bd8 <shellTab+0xbc>
 8000bac:	00148593          	addi	a1,s1,1
 8000bb0:	05c2                	slli	a1,a1,0x10
 8000bb2:	85c1                	srai	a1,a1,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:630 (discriminator 2)
        for (short i = 0; i < shell->commandNumber; i++)
 8000bb4:	0305df63          	bge	a1,a6,8000bf2 <shellTab+0xd6>
shellStringCompare():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000bb8:	004a8783          	lb	a5,4(s5)
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:633
                (char *)(base + i)->name)
 8000bbc:	00459a13          	slli	s4,a1,0x4
 8000bc0:	9a66                	add	s4,s4,s9
 8000bc2:	036ad503          	lhu	a0,54(s5)
 8000bc6:	000a2603          	lw	a2,0(s4)
shellStringCompare():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000bca:	f7d5                	bnez	a5,8000b76 <shellTab+0x5a>
 8000bcc:	01059493          	slli	s1,a1,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:343
    unsigned short match = 0;
 8000bd0:	4781                	li	a5,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:355
    return match;
 8000bd2:	80c1                	srli	s1,s1,0x10
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:632
            if (shellStringCompare(shell->buffer, 
 8000bd4:	fcf51ce3          	bne	a0,a5,8000bac <shellTab+0x90>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:636
                if (matchNum != 0)
 8000bd8:	0a0b1f63          	bnez	s6,8000c96 <shellTab+0x17a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:648
                matchNum ++;
 8000bdc:	00148593          	addi	a1,s1,1
 8000be0:	0b05                	addi	s6,s6,1
 8000be2:	05c2                	slli	a1,a1,0x10
 8000be4:	0b42                	slli	s6,s6,0x10
 8000be6:	85c1                	srai	a1,a1,0x10
 8000be8:	010b5b13          	srli	s6,s6,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:647
                lastMatchIndex = i;
 8000bec:	8c26                	mv	s8,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:630
        for (short i = 0; i < shell->commandNumber; i++)
 8000bee:	fd05c5e3          	blt	a1,a6,8000bb8 <shellTab+0x9c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:652
        if (matchNum == 0)
 8000bf2:	080b0563          	beqz	s6,8000c7c <shellTab+0x160>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:656
        if (matchNum == 1)
 8000bf6:	4785                	li	a5,1
 8000bf8:	14fb0463          	beq	s6,a5,8000d40 <shellTab+0x224>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:663
                                            (char *)(base + lastMatchIndex)->name);
 8000bfc:	004c1793          	slli	a5,s8,0x4
 8000c00:	9cbe                	add	s9,s9,a5
 8000c02:	000ca603          	lw	a2,0(s9)
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000c06:	00060683          	lb	a3,0(a2)
 8000c0a:	12068e63          	beqz	a3,8000d46 <shellTab+0x22a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:330
    unsigned short count = 0;
 8000c0e:	4781                	li	a5,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000c10:	4701                	li	a4,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:334
        count++;
 8000c12:	0785                	addi	a5,a5,1
 8000c14:	07c2                	slli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:333
        *(dest + count) = *(src + count);
 8000c16:	9722                	add	a4,a4,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:334
        count++;
 8000c18:	83c1                	srli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:333
        *(dest + count) = *(src + count);
 8000c1a:	00d70023          	sb	a3,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000c1e:	00f60733          	add	a4,a2,a5
 8000c22:	00070683          	lb	a3,0(a4)
 8000c26:	873e                	mv	a4,a5
 8000c28:	f6ed                	bnez	a3,8000c12 <shellTab+0xf6>
 8000c2a:	00f40733          	add	a4,s0,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:336
    *(dest + count) = 0;
 8000c2e:	00070023          	sb	zero,0(a4)
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:662
            shell->length = shellStringCopy(shell->buffer,
 8000c32:	02fa9b23          	sh	a5,54(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:665
        if (matchNum > 1)
 8000c36:	4705                	li	a4,1
 8000c38:	0d676c63          	bltu	a4,s6,8000d10 <shellTab+0x1f4>
 8000c3c:	174aa683          	lw	a3,372(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:671
        shell->buffer[shell->length] = 0;
 8000c40:	00fa8733          	add	a4,s5,a5
 8000c44:	00070223          	sb	zero,4(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:672
        shell->cursor = shell->length;
 8000c48:	02fa9c23          	sh	a5,56(s5)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000c4c:	ca85                	beqz	a3,8000c7c <shellTab+0x160>
 8000c4e:	85a2                	mv	a1,s0
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:703
}
 8000c50:	5422                	lw	s0,40(sp)
 8000c52:	50b2                	lw	ra,44(sp)
 8000c54:	5492                	lw	s1,36(sp)
 8000c56:	5902                	lw	s2,32(sp)
 8000c58:	49f2                	lw	s3,28(sp)
 8000c5a:	4a62                	lw	s4,24(sp)
 8000c5c:	4b42                	lw	s6,16(sp)
 8000c5e:	4bb2                	lw	s7,12(sp)
 8000c60:	4c22                	lw	s8,8(sp)
 8000c62:	4c92                	lw	s9,4(sp)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:703
 8000c64:	8556                	mv	a0,s5
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:703
 8000c66:	4ad2                	lw	s5,20(sp)
 8000c68:	6145                	addi	sp,sp,48
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:703
 8000c6a:	b4d5                	j	800074e <shellDisplay.part.1>
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:669
            shell->length = maxMatch;
 8000c6c:	037a9b23          	sh	s7,54(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:671
        shell->buffer[shell->length] = 0;
 8000c70:	017a87b3          	add	a5,s5,s7
 8000c74:	00078223          	sb	zero,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:672
        shell->cursor = shell->length;
 8000c78:	037a9c23          	sh	s7,56(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:703
}
 8000c7c:	50b2                	lw	ra,44(sp)
 8000c7e:	5422                	lw	s0,40(sp)
 8000c80:	5492                	lw	s1,36(sp)
 8000c82:	5902                	lw	s2,32(sp)
 8000c84:	49f2                	lw	s3,28(sp)
 8000c86:	4a62                	lw	s4,24(sp)
 8000c88:	4ad2                	lw	s5,20(sp)
 8000c8a:	4b42                	lw	s6,16(sp)
 8000c8c:	4bb2                	lw	s7,12(sp)
 8000c8e:	4c22                	lw	s8,8(sp)
 8000c90:	4c92                	lw	s9,4(sp)
 8000c92:	6145                	addi	sp,sp,48
 8000c94:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:638
                    if (matchNum == 1)
 8000c96:	092b0d63          	beq	s6,s2,8000d30 <shellTab+0x214>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:642
                    shellDisplayItem(shell, lastMatchIndex);
 8000c9a:	85e2                	mv	a1,s8
 8000c9c:	8556                	mv	a0,s5
 8000c9e:	3969                	jal	8000938 <shellDisplayItem>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:643
                    length = shellStringCompare((char *)(base + lastMatchIndex)->name,
 8000ca0:	004c1793          	slli	a5,s8,0x4
 8000ca4:	97e6                	add	a5,a5,s9
 8000ca6:	4390                	lw	a2,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:644
                                                (char *)(base +i)->name);
 8000ca8:	000a2583          	lw	a1,0(s4)
shellStringCompare():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000cac:	00060783          	lb	a5,0(a2)
 8000cb0:	cfd1                	beqz	a5,8000d4c <shellTab+0x230>
 8000cb2:	00058703          	lb	a4,0(a1)
 8000cb6:	cb59                	beqz	a4,8000d4c <shellTab+0x230>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:348
        if (*(dest + i) != *(src +i))
 8000cb8:	08f71e63          	bne	a4,a5,8000d54 <shellTab+0x238>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:343
    unsigned short match = 0;
 8000cbc:	4781                	li	a5,0
 8000cbe:	a031                	j	8000cca <shellTab+0x1ae>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000cc0:	00068683          	lb	a3,0(a3)
 8000cc4:	ce89                	beqz	a3,8000cde <shellTab+0x1c2>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:348
        if (*(dest + i) != *(src +i))
 8000cc6:	00d71c63          	bne	a4,a3,8000cde <shellTab+0x1c2>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:352
        match ++;
 8000cca:	0785                	addi	a5,a5,1
 8000ccc:	07c2                	slli	a5,a5,0x10
 8000cce:	83c1                	srli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000cd0:	00f60733          	add	a4,a2,a5
 8000cd4:	00070703          	lb	a4,0(a4)
 8000cd8:	00f586b3          	add	a3,a1,a5
 8000cdc:	f375                	bnez	a4,8000cc0 <shellTab+0x1a4>
 8000cde:	873e                	mv	a4,a5
 8000ce0:	00fbf363          	bgeu	s7,a5,8000ce6 <shellTab+0x1ca>
 8000ce4:	875e                	mv	a4,s7
 8000ce6:	01071b93          	slli	s7,a4,0x10
 8000cea:	010bdb93          	srli	s7,s7,0x10
 8000cee:	160ad803          	lhu	a6,352(s5)
 8000cf2:	b5ed                	j	8000bdc <shellTab+0xc0>
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:677
        shell->isActive = 1;
 8000cf4:	4785                	li	a5,1
 8000cf6:	16fa86a3          	sb	a5,365(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:678
        shellHelp(1, (void *)0);
 8000cfa:	4581                	li	a1,0
 8000cfc:	4505                	li	a0,1
 8000cfe:	39e9                	jal	80009d8 <shellHelp>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000d00:	174aa783          	lw	a5,372(s5)
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:679
        shell->isActive = 0;
 8000d04:	160a86a3          	sb	zero,365(s5)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000d08:	dbb5                	beqz	a5,8000c7c <shellTab+0x160>
 8000d0a:	000aa583          	lw	a1,0(s5)
 8000d0e:	b789                	j	8000c50 <shellTab+0x134>
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:667
            shellDisplayItem(shell, lastMatchIndex);
 8000d10:	85e2                	mv	a1,s8
 8000d12:	8556                	mv	a0,s5
 8000d14:	3115                	jal	8000938 <shellDisplayItem>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000d16:	174aa783          	lw	a5,372(s5)
 8000d1a:	dba9                	beqz	a5,8000c6c <shellTab+0x150>
 8000d1c:	000aa583          	lw	a1,0(s5)
 8000d20:	8556                	mv	a0,s5
 8000d22:	3435                	jal	800074e <shellDisplay.part.1>
 8000d24:	174aa683          	lw	a3,372(s5)
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:669
            shell->length = maxMatch;
 8000d28:	037a9b23          	sh	s7,54(s5)
 8000d2c:	87de                	mv	a5,s7
 8000d2e:	bf09                	j	8000c40 <shellTab+0x124>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000d30:	174aa783          	lw	a5,372(s5)
 8000d34:	d3bd                	beqz	a5,8000c9a <shellTab+0x17e>
 8000d36:	2b898593          	addi	a1,s3,696 # 80002b8 <shellDefaultKeyFunctionList+0x38>
 8000d3a:	8556                	mv	a0,s5
 8000d3c:	3c09                	jal	800074e <shellDisplay.part.1>
 8000d3e:	bfb1                	j	8000c9a <shellTab+0x17e>
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:658
            shellClearLine(shell);
 8000d40:	8556                	mv	a0,s5
 8000d42:	3e9d                	jal	80008b8 <shellClearLine>
 8000d44:	bd65                	j	8000bfc <shellTab+0xe0>
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000d46:	8722                	mv	a4,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:330
    unsigned short count = 0;
 8000d48:	4781                	li	a5,0
 8000d4a:	b5d5                	j	8000c2e <shellTab+0x112>
shellStringCompare():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:346
    while (*(dest +i) && *(src + i))
 8000d4c:	4b81                	li	s7,0
 8000d4e:	160ad803          	lhu	a6,352(s5)
 8000d52:	b569                	j	8000bdc <shellTab+0xc0>
 8000d54:	160ad803          	lhu	a6,352(s5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:348
        if (*(dest + i) != *(src +i))
 8000d58:	4b81                	li	s7,0
shellTab():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:645
                    maxMatch = (maxMatch > length) ? length : maxMatch;
 8000d5a:	b549                	j	8000bdc <shellTab+0xc0>

08000d5c <shellEnter>:
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:482
    if (shell->length == 0)
 8000d5c:	03655783          	lhu	a5,54(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:450
{
 8000d60:	1101                	addi	sp,sp,-32
 8000d62:	cc22                	sw	s0,24(sp)
 8000d64:	ce06                	sw	ra,28(sp)
 8000d66:	ca26                	sw	s1,20(sp)
 8000d68:	c84a                	sw	s2,16(sp)
 8000d6a:	c64e                	sw	s3,12(sp)
 8000d6c:	c452                	sw	s4,8(sp)
 8000d6e:	c256                	sw	s5,4(sp)
 8000d70:	c05a                	sw	s6,0(sp)
 8000d72:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:482
    if (shell->length == 0)
 8000d74:	e385                	bnez	a5,8000d94 <shellEnter+0x38>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000d76:	17452783          	lw	a5,372(a0)
 8000d7a:	1e078863          	beqz	a5,8000f6a <shellEnter+0x20e>
 8000d7e:	410c                	lw	a1,0(a0)
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:573
}
 8000d80:	4462                	lw	s0,24(sp)
 8000d82:	40f2                	lw	ra,28(sp)
 8000d84:	44d2                	lw	s1,20(sp)
 8000d86:	4942                	lw	s2,16(sp)
 8000d88:	49b2                	lw	s3,12(sp)
 8000d8a:	4a22                	lw	s4,8(sp)
 8000d8c:	4a92                	lw	s5,4(sp)
 8000d8e:	4b02                	lw	s6,0(sp)
 8000d90:	6105                	addi	sp,sp,32
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:573
 8000d92:	ba75                	j	800074e <shellDisplay.part.1>
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:488
    *(shell->buffer + shell->length++) = 0;
 8000d94:	00450493          	addi	s1,a0,4
 8000d98:	00178713          	addi	a4,a5,1
 8000d9c:	02e51b23          	sh	a4,54(a0)
 8000da0:	97a6                	add	a5,a5,s1
 8000da2:	00078023          	sb	zero,0(a5)
shellHistoryAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:381
    if (strcmp(shell->history[shell->historyFlag - 1], shell->buffer) == 0)
 8000da6:	15851903          	lh	s2,344(a0)
 8000daa:	03200613          	li	a2,50
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:380
    shell->historyOffset = 0;
 8000dae:	14051d23          	sh	zero,346(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:381
    if (strcmp(shell->history[shell->historyFlag - 1], shell->buffer) == 0)
 8000db2:	197d                	addi	s2,s2,-1
 8000db4:	02c90933          	mul	s2,s2,a2
 8000db8:	85a6                	mv	a1,s1
 8000dba:	05c90513          	addi	a0,s2,92
 8000dbe:	9522                	add	a0,a0,s0
 8000dc0:	7dd010ef          	jal	ra,8002d9c <strcmp>
 8000dc4:	c12d                	beqz	a0,8000e26 <shellEnter+0xca>
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000dc6:	00440683          	lb	a3,4(s0)
shellHistoryAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:385
    if (shellStringCopy(shell->history[shell->historyFlag], shell->buffer) != 0)
 8000dca:	08e90613          	addi	a2,s2,142
 8000dce:	9622                	add	a2,a2,s0
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000dd0:	1c068863          	beqz	a3,8000fa0 <shellEnter+0x244>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:330
    unsigned short count = 0;
 8000dd4:	4781                	li	a5,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000dd6:	4701                	li	a4,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:334
        count++;
 8000dd8:	0785                	addi	a5,a5,1
 8000dda:	07c2                	slli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:333
        *(dest + count) = *(src + count);
 8000ddc:	9732                	add	a4,a4,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:334
        count++;
 8000dde:	83c1                	srli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:333
        *(dest + count) = *(src + count);
 8000de0:	00d70023          	sb	a3,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8000de4:	00f48733          	add	a4,s1,a5
 8000de8:	00070683          	lb	a3,0(a4)
 8000dec:	873e                	mv	a4,a5
 8000dee:	f6ed                	bnez	a3,8000dd8 <shellEnter+0x7c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:336
    *(dest + count) = 0;
 8000df0:	963e                	add	a2,a2,a5
 8000df2:	00060023          	sb	zero,0(a2)
shellHistoryAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:385
    if (shellStringCopy(shell->history[shell->historyFlag], shell->buffer) != 0)
 8000df6:	14078d63          	beqz	a5,8000f50 <shellEnter+0x1f4>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:387
        shell->historyFlag++;
 8000dfa:	15845703          	lhu	a4,344(s0)
 8000dfe:	0705                	addi	a4,a4,1
 8000e00:	0742                	slli	a4,a4,0x10
 8000e02:	8741                	srai	a4,a4,0x10
 8000e04:	14e41c23          	sh	a4,344(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:389
    if (++shell->historyCount > SHELL_HISTORY_MAX_NUMBER)
 8000e08:	15645783          	lhu	a5,342(s0)
 8000e0c:	4695                	li	a3,5
 8000e0e:	0785                	addi	a5,a5,1
 8000e10:	07c2                	slli	a5,a5,0x10
 8000e12:	83c1                	srli	a5,a5,0x10
 8000e14:	14f6e863          	bltu	a3,a5,8000f64 <shellEnter+0x208>
 8000e18:	14f41b23          	sh	a5,342(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:393
    if (shell->historyFlag >= SHELL_HISTORY_MAX_NUMBER)
 8000e1c:	4791                	li	a5,4
 8000e1e:	00e7d463          	bge	a5,a4,8000e26 <shellEnter+0xca>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:395
        shell->historyFlag = 0;
 8000e22:	14041c23          	sh	zero,344(s0)
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:491 (discriminator 1)
    for (unsigned short i = 0; i < shell->length; i++)
 8000e26:	03645583          	lhu	a1,54(s0)
 8000e2a:	16058563          	beqz	a1,8000f94 <shellEnter+0x238>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:491
 8000e2e:	4701                	li	a4,0
 8000e30:	4505                	li	a0,1
 8000e32:	4801                	li	a6,0
 8000e34:	4981                	li	s3,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:521
            record = 1;
 8000e36:	4e85                	li	t4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:499
            if (*(shell->buffer + i) == '\"')
 8000e38:	02200e13          	li	t3,34
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:512
            if (*(shell->buffer + i) == '\\' &&
 8000e3c:	05c00f13          	li	t5,92
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:493
        if ((quotes != 0 ||
 8000e40:	02000893          	li	a7,32
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:494
            (*(shell->buffer + i) != ' ' &&
 8000e44:	4325                	li	t1,9
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:495
            *(shell->buffer + i) != '\t' &&
 8000e46:	02c00f93          	li	t6,44
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:493
        if ((quotes != 0 ||
 8000e4a:	00170793          	addi	a5,a4,1
 8000e4e:	00e48633          	add	a2,s1,a4
 8000e52:	07c2                	slli	a5,a5,0x10
 8000e54:	00060683          	lb	a3,0(a2)
 8000e58:	83c1                	srli	a5,a5,0x10
 8000e5a:	00081863          	bnez	a6,8000e6a <shellEnter+0x10e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:493 (discriminator 1)
 8000e5e:	0b168563          	beq	a3,a7,8000f08 <shellEnter+0x1ac>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:494
            (*(shell->buffer + i) != ' ' &&
 8000e62:	0a668363          	beq	a3,t1,8000f08 <shellEnter+0x1ac>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:495
            *(shell->buffer + i) != '\t' &&
 8000e66:	0bf68163          	beq	a3,t6,8000f08 <shellEnter+0x1ac>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:496
            *(shell->buffer + i) != ',')) &&
 8000e6a:	ced9                	beqz	a3,8000f08 <shellEnter+0x1ac>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:499
            if (*(shell->buffer + i) == '\"')
 8000e6c:	0bc68463          	beq	a3,t3,8000f14 <shellEnter+0x1b8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:507
            if (record == 1)
 8000e70:	0bd50663          	beq	a0,t4,8000f1c <shellEnter+0x1c0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:512
            if (*(shell->buffer + i) == '\\' &&
 8000e74:	4501                	li	a0,0
 8000e76:	01e69663          	bne	a3,t5,8000e82 <shellEnter+0x126>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:515
                i++;
 8000e7a:	00270793          	addi	a5,a4,2
 8000e7e:	07c2                	slli	a5,a5,0x10
 8000e80:	83c1                	srli	a5,a5,0x10
 8000e82:	873e                	mv	a4,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:491 (discriminator 2)
    for (unsigned short i = 0; i < shell->length; i++)
 8000e84:	fcb7e3e3          	bltu	a5,a1,8000e4a <shellEnter+0xee>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:524
    shell->length = 0;
 8000e88:	02041b23          	sh	zero,54(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:525
    shell->cursor = 0;
 8000e8c:	02041c23          	sh	zero,56(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:526
    if (paramCount == 0)
 8000e90:	17442783          	lw	a5,372(s0)
 8000e94:	0a098a63          	beqz	s3,8000f48 <shellEnter+0x1ec>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000e98:	c799                	beqz	a5,8000ea6 <shellEnter+0x14a>
 8000e9a:	080005b7          	lui	a1,0x8000
 8000e9e:	2b858593          	addi	a1,a1,696 # 80002b8 <shellDefaultKeyFunctionList+0x38>
 8000ea2:	8522                	mv	a0,s0
 8000ea4:	306d                	jal	800074e <shellDisplay.part.1>
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:534
    if (strcmp((const char *)shell->param[0], "help") == 0)
 8000ea6:	03c42a03          	lw	s4,60(s0)
 8000eaa:	080005b7          	lui	a1,0x8000
 8000eae:	47058593          	addi	a1,a1,1136 # 8000470 <shellDefaultKeyFunctionList+0x1f0>
 8000eb2:	8552                	mv	a0,s4
 8000eb4:	6e9010ef          	jal	ra,8002d9c <strcmp>
 8000eb8:	cd2d                	beqz	a0,8000f32 <shellEnter+0x1d6>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:550
    for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000eba:	16045a83          	lhu	s5,352(s0)
 8000ebe:	0c0a8063          	beqz	s5,8000f7e <shellEnter+0x222>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:533
    base = shell->commandBase;
 8000ec2:	15c42b03          	lw	s6,348(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:550
    for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000ec6:	4481                	li	s1,0
 8000ec8:	a019                	j	8000ece <shellEnter+0x172>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:550 (discriminator 2)
 8000eca:	0b54fa63          	bgeu	s1,s5,8000f7e <shellEnter+0x222>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:552
        if (strcmp((const char *)shell->param[0], (base + i)->name) == 0)
 8000ece:	00449913          	slli	s2,s1,0x4
 8000ed2:	995a                	add	s2,s2,s6
 8000ed4:	00092583          	lw	a1,0(s2)
 8000ed8:	8552                	mv	a0,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:550
    for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000eda:	0485                	addi	s1,s1,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:552
        if (strcmp((const char *)shell->param[0], (base + i)->name) == 0)
 8000edc:	6c1010ef          	jal	ra,8002d9c <strcmp>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:550
    for (unsigned char i = 0; i < shell->commandNumber; i++)
 8000ee0:	0ff4f493          	andi	s1,s1,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:552
        if (strcmp((const char *)shell->param[0], (base + i)->name) == 0)
 8000ee4:	f17d                	bnez	a0,8000eca <shellEnter+0x16e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:555
            shell->isActive = 1;
 8000ee6:	4785                	li	a5,1
 8000ee8:	16f406a3          	sb	a5,365(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:559
            returnValue = shellExtRun((base + i)->function, paramCount, shell->param);
 8000eec:	00492503          	lw	a0,4(s2)
 8000ef0:	03c40613          	addi	a2,s0,60
 8000ef4:	85ce                	mv	a1,s3
 8000ef6:	2fb9                	jal	8001654 <shellExtRun>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:561
            shell->isActive = 0;
 8000ef8:	160406a3          	sb	zero,365(s0)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000efc:	17442783          	lw	a5,372(s0)
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:572
    shellDisplay(shell, shell->command);
 8000f00:	400c                	lw	a1,0(s0)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000f02:	c7a5                	beqz	a5,8000f6a <shellEnter+0x20e>
 8000f04:	8522                	mv	a0,s0
 8000f06:	bdad                	j	8000d80 <shellEnter+0x24>
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:520
            *(shell->buffer + i) = 0;
 8000f08:	00060023          	sb	zero,0(a2)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:521
            record = 1;
 8000f0c:	03645583          	lhu	a1,54(s0)
 8000f10:	4505                	li	a0,1
 8000f12:	bf85                	j	8000e82 <shellEnter+0x126>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:501
                quotes = quotes ? 0 : 1;
 8000f14:	00184813          	xori	a6,a6,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:507
            if (record == 1)
 8000f18:	f7d515e3          	bne	a0,t4,8000e82 <shellEnter+0x126>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:509
                shell->param[paramCount++] = shell->buffer + i;
 8000f1c:	00c98693          	addi	a3,s3,12
 8000f20:	068a                	slli	a3,a3,0x2
 8000f22:	96a2                	add	a3,a3,s0
 8000f24:	c6d0                	sw	a2,12(a3)
 8000f26:	0985                	addi	s3,s3,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:510
                record = 0;
 8000f28:	00060683          	lb	a3,0(a2)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:509
                shell->param[paramCount++] = shell->buffer + i;
 8000f2c:	0ff9f993          	andi	s3,s3,255
 8000f30:	b791                	j	8000e74 <shellEnter+0x118>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:536
        shell->isActive = 1;
 8000f32:	4785                	li	a5,1
 8000f34:	16f406a3          	sb	a5,365(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:537
        shellHelp(paramCount, shell->param);
 8000f38:	03c40593          	addi	a1,s0,60
 8000f3c:	854e                	mv	a0,s3
 8000f3e:	3c69                	jal	80009d8 <shellHelp>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000f40:	17442783          	lw	a5,372(s0)
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:538
        shell->isActive = 0;
 8000f44:	160406a3          	sb	zero,365(s0)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000f48:	c38d                	beqz	a5,8000f6a <shellEnter+0x20e>
 8000f4a:	400c                	lw	a1,0(s0)
 8000f4c:	8522                	mv	a0,s0
 8000f4e:	bd0d                	j	8000d80 <shellEnter+0x24>
shellHistoryAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:389
    if (++shell->historyCount > SHELL_HISTORY_MAX_NUMBER)
 8000f50:	15645783          	lhu	a5,342(s0)
 8000f54:	4695                	li	a3,5
 8000f56:	15841703          	lh	a4,344(s0)
 8000f5a:	0785                	addi	a5,a5,1
 8000f5c:	07c2                	slli	a5,a5,0x10
 8000f5e:	83c1                	srli	a5,a5,0x10
 8000f60:	eaf6fce3          	bgeu	a3,a5,8000e18 <shellEnter+0xbc>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:391
        shell->historyCount = SHELL_HISTORY_MAX_NUMBER;
 8000f64:	14d41b23          	sh	a3,342(s0)
 8000f68:	bd55                	j	8000e1c <shellEnter+0xc0>
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:573
}
 8000f6a:	40f2                	lw	ra,28(sp)
 8000f6c:	4462                	lw	s0,24(sp)
 8000f6e:	44d2                	lw	s1,20(sp)
 8000f70:	4942                	lw	s2,16(sp)
 8000f72:	49b2                	lw	s3,12(sp)
 8000f74:	4a22                	lw	s4,8(sp)
 8000f76:	4a92                	lw	s5,4(sp)
 8000f78:	4b02                	lw	s6,0(sp)
 8000f7a:	6105                	addi	sp,sp,32
 8000f7c:	8082                	ret
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000f7e:	17442783          	lw	a5,372(s0)
 8000f82:	d7e5                	beqz	a5,8000f6a <shellEnter+0x20e>
 8000f84:	080005b7          	lui	a1,0x8000
 8000f88:	30458593          	addi	a1,a1,772 # 8000304 <shellDefaultKeyFunctionList+0x84>
 8000f8c:	8522                	mv	a0,s0
 8000f8e:	fc0ff0ef          	jal	ra,800074e <shellDisplay.part.1>
 8000f92:	b7ad                	j	8000efc <shellEnter+0x1a0>
shellEnter():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:525
    shell->cursor = 0;
 8000f94:	17442783          	lw	a5,372(s0)
 8000f98:	02041c23          	sh	zero,56(s0)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000f9c:	f7dd                	bnez	a5,8000f4a <shellEnter+0x1ee>
 8000f9e:	b7f1                	j	8000f6a <shellEnter+0x20e>
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:336
    *(dest + count) = 0;
 8000fa0:	00060023          	sb	zero,0(a2)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:337
    return count;
 8000fa4:	15841703          	lh	a4,344(s0)
 8000fa8:	b585                	j	8000e08 <shellEnter+0xac>

08000faa <shellClear>:
shellGetCurrent():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:223
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 8000faa:	200007b7          	lui	a5,0x20000
 8000fae:	06c78793          	addi	a5,a5,108 # 2000006c <shellList>
 8000fb2:	01478693          	addi	a3,a5,20
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:225
        if (shellList[i] != NULL && shellList[i]->isActive == 1)
 8000fb6:	4605                	li	a2,1
 8000fb8:	4388                	lw	a0,0(a5)
 8000fba:	0791                	addi	a5,a5,4
 8000fbc:	c509                	beqz	a0,8000fc6 <shellClear+0x1c>
 8000fbe:	16d54703          	lbu	a4,365(a0)
 8000fc2:	00c70563          	beq	a4,a2,8000fcc <shellClear+0x22>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:223
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 8000fc6:	fed799e3          	bne	a5,a3,8000fb8 <shellClear+0xe>
 8000fca:	8082                	ret
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8000fcc:	17452783          	lw	a5,372(a0)
 8000fd0:	c799                	beqz	a5,8000fde <shellClear+0x34>
 8000fd2:	080005b7          	lui	a1,0x8000
 8000fd6:	24458593          	addi	a1,a1,580 # 8000244 <enable_mcycle_minstret+0x16>
 8000fda:	f74ff06f          	j	800074e <shellDisplay.part.1>
shellClear():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:1093
    if (!shell)
    {
        return;
    }
    shellDisplay(shell, "\033[2J\033[1H");
}
 8000fde:	8082                	ret

08000fe0 <shellHistory.part.2>:
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:400
static void shellHistory(SHELL_TypeDef *shell, unsigned char dir)
 8000fe0:	1141                	addi	sp,sp,-16
 8000fe2:	c422                	sw	s0,8(sp)
 8000fe4:	c606                	sw	ra,12(sp)
 8000fe6:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:430
    shellClearLine(shell);
 8000fe8:	38c1                	jal	80008b8 <shellClearLine>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:431
    if (shell->historyOffset == 0)
 8000fea:	15a41783          	lh	a5,346(s0)
 8000fee:	eb89                	bnez	a5,8001000 <shellHistory.part.2+0x20>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:433
        shell->cursor = shell->length = 0;
 8000ff0:	02041b23          	sh	zero,54(s0)
 8000ff4:	02041c23          	sh	zero,56(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:446
}
 8000ff8:	40b2                	lw	ra,12(sp)
 8000ffa:	4422                	lw	s0,8(sp)
 8000ffc:	0141                	addi	sp,sp,16
 8000ffe:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:438
                shell->history[(shell->historyFlag + SHELL_HISTORY_MAX_NUMBER
 8001000:	15841603          	lh	a2,344(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:437
        if ((shell->length = shellStringCopy(shell->buffer,
 8001004:	00440593          	addi	a1,s0,4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:438
                shell->history[(shell->historyFlag + SHELL_HISTORY_MAX_NUMBER
 8001008:	0615                	addi	a2,a2,5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:439
                + shell->historyOffset) % SHELL_HISTORY_MAX_NUMBER])) == 0)
 800100a:	963e                	add	a2,a2,a5
 800100c:	4795                	li	a5,5
 800100e:	02f66633          	rem	a2,a2,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:438
                shell->history[(shell->historyFlag + SHELL_HISTORY_MAX_NUMBER
 8001012:	03200793          	li	a5,50
 8001016:	02f60633          	mul	a2,a2,a5
 800101a:	05c60613          	addi	a2,a2,92
 800101e:	9622                	add	a2,a2,s0
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8001020:	00060683          	lb	a3,0(a2)
 8001024:	c2a9                	beqz	a3,8001066 <shellHistory.part.2+0x86>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:330
    unsigned short count = 0;
 8001026:	4781                	li	a5,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8001028:	4701                	li	a4,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:334
        count++;
 800102a:	0785                	addi	a5,a5,1
 800102c:	07c2                	slli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:333
        *(dest + count) = *(src + count);
 800102e:	972e                	add	a4,a4,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:334
        count++;
 8001030:	83c1                	srli	a5,a5,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:333
        *(dest + count) = *(src + count);
 8001032:	00d70023          	sb	a3,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:331
    while (*(src + count))
 8001036:	00f60733          	add	a4,a2,a5
 800103a:	00070683          	lb	a3,0(a4)
 800103e:	873e                	mv	a4,a5
 8001040:	f6ed                	bnez	a3,800102a <shellHistory.part.2+0x4a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:336
    *(dest + count) = 0;
 8001042:	00f58733          	add	a4,a1,a5
 8001046:	00070023          	sb	zero,0(a4)
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:437
        if ((shell->length = shellStringCopy(shell->buffer,
 800104a:	02f41b23          	sh	a5,54(s0)
 800104e:	d7cd                	beqz	a5,8000ff8 <shellHistory.part.2+0x18>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8001050:	17442703          	lw	a4,372(s0)
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:443
        shell->cursor = shell->length;
 8001054:	02f41c23          	sh	a5,56(s0)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8001058:	d345                	beqz	a4,8000ff8 <shellHistory.part.2+0x18>
 800105a:	8522                	mv	a0,s0
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:446
}
 800105c:	4422                	lw	s0,8(sp)
 800105e:	40b2                	lw	ra,12(sp)
 8001060:	0141                	addi	sp,sp,16
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:446
 8001062:	eecff06f          	j	800074e <shellDisplay.part.1>
shellStringCopy():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:336
    *(dest + count) = 0;
 8001066:	00040223          	sb	zero,4(s0)
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:437
        if ((shell->length = shellStringCopy(shell->buffer,
 800106a:	02041b23          	sh	zero,54(s0)
 800106e:	b769                	j	8000ff8 <shellHistory.part.2+0x18>

08001070 <shellInit>:
shellInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:104
{
 8001070:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:112
    shell->command          = SHELL_DEFAULT_COMMAND;
 8001072:	08000737          	lui	a4,0x8000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:104
{
 8001076:	c422                	sw	s0,8(sp)
 8001078:	c606                	sw	ra,12(sp)
 800107a:	200007b7          	lui	a5,0x20000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:112
    shell->command          = SHELL_DEFAULT_COMMAND;
 800107e:	31870713          	addi	a4,a4,792 # 8000318 <shellDefaultKeyFunctionList+0x98>
 8001082:	c118                	sw	a4,0(a0)
 8001084:	06c78593          	addi	a1,a5,108 # 2000006c <shellList>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:104
{
 8001088:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:105
    shell->length           = 0;
 800108a:	02051b23          	sh	zero,54(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:106
    shell->cursor           = 0;
 800108e:	02051c23          	sh	zero,56(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:107
    shell->historyCount     = 0;
 8001092:	14051b23          	sh	zero,342(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:108
    shell->historyFlag      = 0;
 8001096:	14052c23          	sw	zero,344(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:110
    shell->status.inputMode = SHELL_IN_NORMAL;
 800109a:	16051523          	sh	zero,362(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:113
    shell->isActive         = 0;
 800109e:	160506a3          	sb	zero,365(a0)
shellAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:210
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 80010a2:	06c78793          	addi	a5,a5,108
shellInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:113
    shell->isActive         = 0;
 80010a6:	4701                	li	a4,0
shellAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:210
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 80010a8:	4615                	li	a2,5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:212
        if (shellList[i] == NULL)
 80010aa:	4394                	lw	a3,0(a5)
 80010ac:	0791                	addi	a5,a5,4
 80010ae:	c2b1                	beqz	a3,80010f2 <shellInit+0x82>
 80010b0:	0705                	addi	a4,a4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:210
    for (short i = 0; i < SHELL_MAX_NUMBER; i++)
 80010b2:	fec71ce3          	bne	a4,a2,80010aa <shellInit+0x3a>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 80010b6:	17442783          	lw	a5,372(s0)
 80010ba:	cf99                	beqz	a5,80010d8 <shellInit+0x68>
 80010bc:	080005b7          	lui	a1,0x8000
 80010c0:	33058593          	addi	a1,a1,816 # 8000330 <shellDefaultKeyFunctionList+0xb0>
 80010c4:	8522                	mv	a0,s0
 80010c6:	e88ff0ef          	jal	ra,800074e <shellDisplay.part.1>
 80010ca:	17442783          	lw	a5,372(s0)
shellInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:121
    shellDisplay(shell, shell->command);
 80010ce:	400c                	lw	a1,0(s0)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 80010d0:	c781                	beqz	a5,80010d8 <shellInit+0x68>
 80010d2:	8522                	mv	a0,s0
 80010d4:	e7aff0ef          	jal	ra,800074e <shellDisplay.part.1>
shellInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:173
    shell->commandBase   = (SHELL_CommandTypeDef *)shellDefaultCommandList;
 80010d8:	080007b7          	lui	a5,0x8000
 80010dc:	25078793          	addi	a5,a5,592 # 8000250 <shellDefaultCommandList>
 80010e0:	14f42e23          	sw	a5,348(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:174
    shell->commandNumber = sizeof(shellDefaultCommandList) / sizeof(SHELL_CommandTypeDef);
 80010e4:	478d                	li	a5,3
 80010e6:	16f41023          	sh	a5,352(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:180
}
 80010ea:	40b2                	lw	ra,12(sp)
 80010ec:	4422                	lw	s0,8(sp)
 80010ee:	0141                	addi	sp,sp,16
 80010f0:	8082                	ret
shellAdd():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:214
            shellList[i] = shell;
 80010f2:	070a                	slli	a4,a4,0x2
 80010f4:	972e                	add	a4,a4,a1
 80010f6:	c300                	sw	s0,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:215
            return;
 80010f8:	bf7d                	j	80010b6 <shellInit+0x46>

080010fa <shellAnsi>:
shellAnsi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:756
    switch((unsigned char)(shell->status.inputMode))
 80010fa:	16a50783          	lb	a5,362(a0)
 80010fe:	4705                	li	a4,1
 8001100:	08e78963          	beq	a5,a4,8001192 <shellAnsi+0x98>
 8001104:	4709                	li	a4,2
 8001106:	04e79763          	bne	a5,a4,8001154 <shellAnsi+0x5a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:755
{
 800110a:	1141                	addi	sp,sp,-16
 800110c:	c422                	sw	s0,8(sp)
 800110e:	c606                	sw	ra,12(sp)
 8001110:	04200793          	li	a5,66
 8001114:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:759
        switch (data)
 8001116:	0af58863          	beq	a1,a5,80011c6 <shellAnsi+0xcc>
 800111a:	02b7de63          	bge	a5,a1,8001156 <shellAnsi+0x5c>
 800111e:	04300793          	li	a5,67
 8001122:	06f58f63          	beq	a1,a5,80011a0 <shellAnsi+0xa6>
 8001126:	04400793          	li	a5,68
 800112a:	00f59f63          	bne	a1,a5,8001148 <shellAnsi+0x4e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:778
            if (shell->cursor > 0)
 800112e:	03855783          	lhu	a5,56(a0)
 8001132:	cb99                	beqz	a5,8001148 <shellAnsi+0x4e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:780
                shellDisplayByte(shell, '\b');
 8001134:	17452703          	lw	a4,372(a0)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 8001138:	c709                	beqz	a4,8001142 <shellAnsi+0x48>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 800113a:	4521                	li	a0,8
 800113c:	9702                	jalr	a4
 800113e:	03845783          	lhu	a5,56(s0)
shellAnsi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:781
                shell->cursor--;
 8001142:	17fd                	addi	a5,a5,-1
 8001144:	02f41c23          	sh	a5,56(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:788
        shell->status.inputMode = SHELL_IN_NORMAL;
 8001148:	16040523          	sb	zero,362(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:805
}
 800114c:	40b2                	lw	ra,12(sp)
 800114e:	4422                	lw	s0,8(sp)
 8001150:	0141                	addi	sp,sp,16
 8001152:	8082                	ret
 8001154:	8082                	ret
 8001156:	04100793          	li	a5,65
 800115a:	fef597e3          	bne	a1,a5,8001148 <shellAnsi+0x4e>
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:410
        if (shell->historyOffset--
 800115e:	15a51703          	lh	a4,346(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:411
            <= -((shell->historyCount > shell->historyFlag)
 8001162:	15655683          	lhu	a3,342(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:412
            ? shell->historyCount : shell->historyFlag))
 8001166:	15851783          	lh	a5,344(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:410
        if (shell->historyOffset--
 800116a:	fff70613          	addi	a2,a4,-1
 800116e:	14c51d23          	sh	a2,346(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:412
            ? shell->historyCount : shell->historyFlag))
 8001172:	06d7c863          	blt	a5,a3,80011e2 <shellAnsi+0xe8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:411
            <= -((shell->historyCount > shell->historyFlag)
 8001176:	40f007b3          	neg	a5,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:410
        if (shell->historyOffset--
 800117a:	00e7c463          	blt	a5,a4,8001182 <shellAnsi+0x88>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:414
            shell->historyOffset = -((shell->historyCount > shell->historyFlag)
 800117e:	14f41d23          	sh	a5,346(s0)
 8001182:	8522                	mv	a0,s0
 8001184:	3db1                	jal	8000fe0 <shellHistory.part.2>
shellAnsi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:788
        shell->status.inputMode = SHELL_IN_NORMAL;
 8001186:	16040523          	sb	zero,362(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:805
}
 800118a:	40b2                	lw	ra,12(sp)
 800118c:	4422                	lw	s0,8(sp)
 800118e:	0141                	addi	sp,sp,16
 8001190:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:792
        if (data == 0x5B)
 8001192:	05b00793          	li	a5,91
 8001196:	04f58263          	beq	a1,a5,80011da <shellAnsi+0xe0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:798
            shell->status.inputMode = SHELL_IN_NORMAL;
 800119a:	16050523          	sb	zero,362(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:805
}
 800119e:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:770
            if (shell->cursor < shell->length)
 80011a0:	03855783          	lhu	a5,56(a0)
 80011a4:	03655703          	lhu	a4,54(a0)
 80011a8:	fae7f0e3          	bgeu	a5,a4,8001148 <shellAnsi+0x4e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:772
                shellDisplayByte(shell, shell->buffer[shell->cursor]);
 80011ac:	17452703          	lw	a4,372(a0)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 80011b0:	c719                	beqz	a4,80011be <shellAnsi+0xc4>
shellAnsi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:772
                shellDisplayByte(shell, shell->buffer[shell->cursor]);
 80011b2:	97aa                	add	a5,a5,a0
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 80011b4:	00478503          	lb	a0,4(a5)
 80011b8:	9702                	jalr	a4
 80011ba:	03845783          	lhu	a5,56(s0)
shellAnsi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:773
                shell->cursor++;
 80011be:	0785                	addi	a5,a5,1
 80011c0:	02f41c23          	sh	a5,56(s0)
 80011c4:	b751                	j	8001148 <shellAnsi+0x4e>
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:420
        if (++shell->historyOffset > 0)
 80011c6:	15a55783          	lhu	a5,346(a0)
 80011ca:	0785                	addi	a5,a5,1
 80011cc:	07c2                	slli	a5,a5,0x10
 80011ce:	87c1                	srai	a5,a5,0x10
 80011d0:	faf057e3          	blez	a5,800117e <shellAnsi+0x84>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:422
            shell->historyOffset = 0;
 80011d4:	14051d23          	sh	zero,346(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:423
            return;
 80011d8:	bf85                	j	8001148 <shellAnsi+0x4e>
shellAnsi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:794
            shell->status.inputMode = SHELL_ANSI_CSI;
 80011da:	4789                	li	a5,2
 80011dc:	16f50523          	sb	a5,362(a0)
 80011e0:	8082                	ret
shellHistory():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:412
            ? shell->historyCount : shell->historyFlag))
 80011e2:	87b6                	mv	a5,a3
 80011e4:	bf49                	j	8001176 <shellAnsi+0x7c>

080011e6 <shellHandler>:
shellHandler():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:809
{
 80011e6:	1101                	addi	sp,sp,-32
 80011e8:	ca26                	sw	s1,20(sp)
 80011ea:	c452                	sw	s4,8(sp)
 80011ec:	ce06                	sw	ra,28(sp)
 80011ee:	cc22                	sw	s0,24(sp)
 80011f0:	c84a                	sw	s2,16(sp)
 80011f2:	c64e                	sw	s3,12(sp)
 80011f4:	c256                	sw	s5,4(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:819
    if (shell->status.inputMode == SHELL_IN_NORMAL)
 80011f6:	16a50983          	lb	s3,362(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:809
{
 80011fa:	8a2a                	mv	s4,a0
 80011fc:	84ae                	mv	s1,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:819
    if (shell->status.inputMode == SHELL_IN_NORMAL)
 80011fe:	16099463          	bnez	s3,8001366 <shellHandler+0x180>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:829
            for (short i = 0; i < shell->keyFuncNumber; i++)
 8001202:	16855683          	lhu	a3,360(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:823
        SHELL_KeyFunctionDef *base = (SHELL_KeyFunctionDef *)shell->keyFuncBase;
 8001206:	16452903          	lw	s2,356(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:821
        char keyDefFind = 0;
 800120a:	4a81                	li	s5,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:829
            for (short i = 0; i < shell->keyFuncNumber; i++)
 800120c:	4401                	li	s0,0
 800120e:	e699                	bnez	a3,800121c <shellHandler+0x36>
 8001210:	a889                	j	8001262 <shellHandler+0x7c>
 8001212:	0405                	addi	s0,s0,1
 8001214:	0442                	slli	s0,s0,0x10
 8001216:	8441                	srai	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:829 (discriminator 2)
 8001218:	02d45563          	bge	s0,a3,8001242 <shellHandler+0x5c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:831
                if (base[i].keyCode == data) {
 800121c:	00341793          	slli	a5,s0,0x3
 8001220:	97ca                	add	a5,a5,s2
 8001222:	0007c703          	lbu	a4,0(a5)
 8001226:	fe9716e3          	bne	a4,s1,8001212 <shellHandler+0x2c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:832
                    if (base[i].keyFunction) {
 800122a:	43dc                	lw	a5,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:833
                        base[i].keyFunction(shell);
 800122c:	8552                	mv	a0,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:835
                    keyDefFind = 1;
 800122e:	4a85                	li	s5,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:832
                    if (base[i].keyFunction) {
 8001230:	d3ed                	beqz	a5,8001212 <shellHandler+0x2c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:833
                        base[i].keyFunction(shell);
 8001232:	9782                	jalr	a5
 8001234:	0405                	addi	s0,s0,1
 8001236:	168a5683          	lhu	a3,360(s4)
 800123a:	0442                	slli	s0,s0,0x10
 800123c:	8441                	srai	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:829
            for (short i = 0; i < shell->keyFuncNumber; i++)
 800123e:	fcd44fe3          	blt	s0,a3,800121c <shellHandler+0x36>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:841
        if (keyDefFind == 0)
 8001242:	020a8063          	beqz	s5,8001262 <shellHandler+0x7c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:871
    shell->status.tabFlag = data == '\t' ? 1 : 0;
 8001246:	14dd                	addi	s1,s1,-9
 8001248:	0014b493          	seqz	s1,s1
 800124c:	169a05a3          	sb	s1,363(s4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:873
}
 8001250:	40f2                	lw	ra,28(sp)
 8001252:	4462                	lw	s0,24(sp)
 8001254:	44d2                	lw	s1,20(sp)
 8001256:	4942                	lw	s2,16(sp)
 8001258:	49b2                	lw	s3,12(sp)
 800125a:	4a22                	lw	s4,8(sp)
 800125c:	4a92                	lw	s5,4(sp)
 800125e:	6105                	addi	sp,sp,32
 8001260:	8082                	ret
 8001262:	08000437          	lui	s0,0x8000
 8001266:	28040413          	addi	s0,s0,640 # 8000280 <shellDefaultKeyFunctionList>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:835
                    keyDefFind = 1;
 800126a:	47a9                	li	a5,10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:847
                if (shellDefaultKeyFunctionList[i].keyCode == data) {
 800126c:	03040913          	addi	s2,s0,48
 8001270:	00978963          	beq	a5,s1,8001282 <shellHandler+0x9c>
 8001274:	0421                	addi	s0,s0,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:843
            for (short i = 0; 
 8001276:	00890e63          	beq	s2,s0,8001292 <shellHandler+0xac>
 800127a:	00044783          	lbu	a5,0(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:847
                if (shellDefaultKeyFunctionList[i].keyCode == data) {
 800127e:	fe979be3          	bne	a5,s1,8001274 <shellHandler+0x8e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:848
                    if (shellDefaultKeyFunctionList[i].keyFunction) {
 8001282:	405c                	lw	a5,4(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:849
                        shellDefaultKeyFunctionList[i].keyFunction(shell);
 8001284:	8552                	mv	a0,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:851
                    keyDefFind = 1;
 8001286:	4985                	li	s3,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:848
                    if (shellDefaultKeyFunctionList[i].keyFunction) {
 8001288:	d7f5                	beqz	a5,8001274 <shellHandler+0x8e>
 800128a:	0421                	addi	s0,s0,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:849
                        shellDefaultKeyFunctionList[i].keyFunction(shell);
 800128c:	9782                	jalr	a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:843
            for (short i = 0; 
 800128e:	fe8916e3          	bne	s2,s0,800127a <shellHandler+0x94>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:855
        if (keyDefFind == 0)
 8001292:	fa099ae3          	bnez	s3,8001246 <shellHandler+0x60>
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:708
    if (data == 0)
 8001296:	d8c5                	beqz	s1,8001246 <shellHandler+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:712
    if (shell->length < SHELL_COMMAND_MAX_LENGTH - 1)
 8001298:	036a5783          	lhu	a5,54(s4)
 800129c:	03000713          	li	a4,48
 80012a0:	0cf76563          	bltu	a4,a5,800136a <shellHandler+0x184>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:714
        if (shell->length == shell->cursor)
 80012a4:	038a5403          	lhu	s0,56(s4)
 80012a8:	00178613          	addi	a2,a5,1
 80012ac:	0642                	slli	a2,a2,0x10
 80012ae:	00140593          	addi	a1,s0,1
 80012b2:	05c2                	slli	a1,a1,0x10
 80012b4:	8241                	srli	a2,a2,0x10
 80012b6:	81c1                	srli	a1,a1,0x10
 80012b8:	0e878863          	beq	a5,s0,80013a8 <shellHandler+0x1c2>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:722
            for (short i = shell->length - shell->cursor; i > 0; i--)
 80012bc:	8f81                	sub	a5,a5,s0
 80012be:	01079713          	slli	a4,a5,0x10
 80012c2:	8341                	srli	a4,a4,0x10
 80012c4:	01071913          	slli	s2,a4,0x10
 80012c8:	41095913          	srai	s2,s2,0x10
 80012cc:	0f205c63          	blez	s2,80013c4 <shellHandler+0x1de>
 80012d0:	002a0693          	addi	a3,s4,2
 80012d4:	177d                	addi	a4,a4,-1
 80012d6:	00340793          	addi	a5,s0,3
 80012da:	96a2                	add	a3,a3,s0
 80012dc:	0742                	slli	a4,a4,0x10
 80012de:	97ca                	add	a5,a5,s2
 80012e0:	96ca                	add	a3,a3,s2
 80012e2:	8341                	srli	a4,a4,0x10
 80012e4:	97d2                	add	a5,a5,s4
 80012e6:	8e99                	sub	a3,a3,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:724
                shell->buffer[shell->cursor + i] = shell->buffer[shell->cursor + i - 1];
 80012e8:	0007c703          	lbu	a4,0(a5)
 80012ec:	17fd                	addi	a5,a5,-1
 80012ee:	00e78123          	sb	a4,2(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:722
            for (short i = shell->length - shell->cursor; i > 0; i--)
 80012f2:	fef69be3          	bne	a3,a5,80012e8 <shellHandler+0x102>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:726
            shell->buffer[shell->cursor++] = data;
 80012f6:	008a07b3          	add	a5,s4,s0
 80012fa:	02ba1c23          	sh	a1,56(s4)
 80012fe:	00978223          	sb	s1,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:727
            shell->buffer[++shell->length] = 0;
 8001302:	02ca1b23          	sh	a2,54(s4)
 8001306:	00ca07b3          	add	a5,s4,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:728
            for (short i = shell->cursor - 1; i < shell->length; i++)
 800130a:	0442                	slli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:727
            shell->buffer[++shell->length] = 0;
 800130c:	00078223          	sb	zero,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:728
            for (short i = shell->cursor - 1; i < shell->length; i++)
 8001310:	8441                	srai	s0,s0,0x10
 8001312:	02c45b63          	bge	s0,a2,8001348 <shellHandler+0x162>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:730
                shellDisplayByte(shell, shell->buffer[i]);
 8001316:	174a2783          	lw	a5,372(s4)
 800131a:	008a0733          	add	a4,s4,s0
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 800131e:	c781                	beqz	a5,8001326 <shellHandler+0x140>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 8001320:	00470503          	lb	a0,4(a4)
 8001324:	9782                	jalr	a5
 8001326:	0405                	addi	s0,s0,1
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:728
            for (short i = shell->cursor - 1; i < shell->length; i++)
 8001328:	036a5783          	lhu	a5,54(s4)
 800132c:	0442                	slli	s0,s0,0x10
 800132e:	8441                	srai	s0,s0,0x10
 8001330:	fef443e3          	blt	s0,a5,8001316 <shellHandler+0x130>
 8001334:	038a5903          	lhu	s2,56(s4)
 8001338:	412787b3          	sub	a5,a5,s2
 800133c:	01079913          	slli	s2,a5,0x10
 8001340:	41095913          	srai	s2,s2,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:732
            for (short i = shell->length - shell->cursor; i > 0; i--)
 8001344:	f12051e3          	blez	s2,8001246 <shellHandler+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:734
                shellDisplayByte(shell, '\b');
 8001348:	174a2783          	lw	a5,372(s4)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 800134c:	4521                	li	a0,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 800134e:	c391                	beqz	a5,8001352 <shellHandler+0x16c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 8001350:	9782                	jalr	a5
 8001352:	197d                	addi	s2,s2,-1
 8001354:	01091793          	slli	a5,s2,0x10
 8001358:	83c1                	srli	a5,a5,0x10
 800135a:	01079913          	slli	s2,a5,0x10
 800135e:	41095913          	srai	s2,s2,0x10
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:732
            for (short i = shell->length - shell->cursor; i > 0; i--)
 8001362:	f3fd                	bnez	a5,8001348 <shellHandler+0x162>
 8001364:	b5cd                	j	8001246 <shellHandler+0x60>
shellHandler():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:862
        shellAnsi(shell, data);
 8001366:	3b51                	jal	80010fa <shellAnsi>
 8001368:	bdf9                	j	8001246 <shellHandler+0x60>
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 800136a:	174a2703          	lw	a4,372(s4)
 800136e:	cb15                	beqz	a4,80013a2 <shellHandler+0x1bc>
 8001370:	080005b7          	lui	a1,0x8000
 8001374:	2bc58593          	addi	a1,a1,700 # 80002bc <shellDefaultKeyFunctionList+0x3c>
 8001378:	8552                	mv	a0,s4
 800137a:	bd4ff0ef          	jal	ra,800074e <shellDisplay.part.1>
 800137e:	174a2783          	lw	a5,372(s4)
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:741
        shellDisplay(shell, shell->command);
 8001382:	000a2583          	lw	a1,0(s4)
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8001386:	cf81                	beqz	a5,800139e <shellHandler+0x1b8>
 8001388:	8552                	mv	a0,s4
 800138a:	bc4ff0ef          	jal	ra,800074e <shellDisplay.part.1>
 800138e:	174a2783          	lw	a5,372(s4)
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:742
        shellDisplay(shell, shell->buffer);
 8001392:	004a0593          	addi	a1,s4,4
shellDisplay():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:257
    if (shell->write == NULL)
 8001396:	c781                	beqz	a5,800139e <shellHandler+0x1b8>
 8001398:	8552                	mv	a0,s4
 800139a:	bb4ff0ef          	jal	ra,800074e <shellDisplay.part.1>
 800139e:	036a5783          	lhu	a5,54(s4)
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:743
        shell->cursor = shell->length;
 80013a2:	02fa1c23          	sh	a5,56(s4)
 80013a6:	b545                	j	8001246 <shellHandler+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:716
            shell->buffer[shell->length++] = data;
 80013a8:	97d2                	add	a5,a5,s4
 80013aa:	02ca1b23          	sh	a2,54(s4)
 80013ae:	00978223          	sb	s1,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:718
            shellDisplayByte(shell, data);
 80013b2:	174a2783          	lw	a5,372(s4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:717
            shell->cursor++;
 80013b6:	02ba1c23          	sh	a1,56(s4)
shellDisplayByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:272
    if (shell->write == NULL)
 80013ba:	e80786e3          	beqz	a5,8001246 <shellHandler+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:276
    shell->write(data);
 80013be:	8526                	mv	a0,s1
 80013c0:	9782                	jalr	a5
 80013c2:	b551                	j	8001246 <shellHandler+0x60>
shellNormal():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:726
            shell->buffer[shell->cursor++] = data;
 80013c4:	008a07b3          	add	a5,s4,s0
 80013c8:	02ba1c23          	sh	a1,56(s4)
 80013cc:	00978223          	sb	s1,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:727
            shell->buffer[++shell->length] = 0;
 80013d0:	02ca1b23          	sh	a2,54(s4)
 80013d4:	00ca07b3          	add	a5,s4,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:728
            for (short i = shell->cursor - 1; i < shell->length; i++)
 80013d8:	0442                	slli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:727
            shell->buffer[++shell->length] = 0;
 80013da:	00078223          	sb	zero,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell.c:728
            for (short i = shell->cursor - 1; i < shell->length; i++)
 80013de:	8441                	srai	s0,s0,0x10
 80013e0:	f2c44be3          	blt	s0,a2,8001316 <shellHandler+0x130>
 80013e4:	b58d                	j	8001246 <shellHandler+0x60>

080013e6 <shellExtParseChar.part.0>:
shellExtParseChar():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:76
    char *p = string + 1;
    char value = 0;

    if (*p == '\\')
    {
        switch (*(p + 1))
 80013e6:	00250503          	lb	a0,2(a0)
 80013ea:	06e00793          	li	a5,110
 80013ee:	02f50e63          	beq	a0,a5,800142a <shellExtParseChar.part.0+0x44>
 80013f2:	00a7dc63          	bge	a5,a0,800140a <shellExtParseChar.part.0+0x24>
 80013f6:	07200793          	li	a5,114
 80013fa:	02f50263          	beq	a0,a5,800141e <shellExtParseChar.part.0+0x38>
 80013fe:	07400793          	li	a5,116
 8001402:	02f51263          	bne	a0,a5,8001426 <shellExtParseChar.part.0+0x40>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:88
            break;
        case 'n':
            value = '\n';
            break;
        case 't':
            value = '\t';
 8001406:	4525                	li	a0,9
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:103
    else
    {
        value = *p;
    }
    return value;
}
 8001408:	8082                	ret
 800140a:	03000793          	li	a5,48
 800140e:	00f50a63          	beq	a0,a5,8001422 <shellExtParseChar.part.0+0x3c>
 8001412:	06200793          	li	a5,98
 8001416:	00f51963          	bne	a0,a5,8001428 <shellExtParseChar.part.0+0x42>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:79
            value = '\b';
 800141a:	4521                	li	a0,8
 800141c:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:82
            value = '\r';
 800141e:	4535                	li	a0,13
 8001420:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:91
            value = 0;
 8001422:	4501                	li	a0,0
 8001424:	8082                	ret
 8001426:	8082                	ret
 8001428:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:85
            value = '\n';
 800142a:	4529                	li	a0,10
 800142c:	8082                	ret

0800142e <shellExtParsePara>:
shellExtParsePara():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:205
    }
}


unsigned int shellExtParsePara(char *string)
{
 800142e:	1101                	addi	sp,sp,-32
 8001430:	ca26                	sw	s1,20(sp)
 8001432:	ce06                	sw	ra,28(sp)
 8001434:	cc22                	sw	s0,24(sp)
 8001436:	c84a                	sw	s2,16(sp)
 8001438:	c64e                	sw	s3,12(sp)
 800143a:	c452                	sw	s4,8(sp)
 800143c:	c256                	sw	s5,4(sp)
 800143e:	c05a                	sw	s6,0(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:206
    if (*string == '\'' && *(string + 1))
 8001440:	00050783          	lb	a5,0(a0)
 8001444:	02700713          	li	a4,39
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:205
{
 8001448:	84aa                	mv	s1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:206
    if (*string == '\'' && *(string + 1))
 800144a:	06e78263          	beq	a5,a4,80014ae <shellExtParsePara+0x80>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:210
    {
        return (unsigned int)shellExtParseChar(string);
    }
    else if (*string == '-' || (*string >= '0' && *string <= '9'))
 800144e:	02d00713          	li	a4,45
 8001452:	1ce78563          	beq	a5,a4,800161c <shellExtParsePara+0x1ee>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:210 (discriminator 1)
 8001456:	fd078713          	addi	a4,a5,-48
 800145a:	0ff77713          	andi	a4,a4,255
 800145e:	46a5                	li	a3,9
 8001460:	00e6ff63          	bgeu	a3,a4,800147e <shellExtParsePara+0x50>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:224
#endif /** SHELL_USING_VAR == 1 */
    else if (*string)
    {
        return (unsigned int)shellExtParseString(string);
    }
    return 0;
 8001464:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:220
    else if (*string)
 8001466:	1c079b63          	bnez	a5,800163c <shellExtParsePara+0x20e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:225
}
 800146a:	40f2                	lw	ra,28(sp)
 800146c:	4462                	lw	s0,24(sp)
 800146e:	44d2                	lw	s1,20(sp)
 8001470:	4942                	lw	s2,16(sp)
 8001472:	49b2                	lw	s3,12(sp)
 8001474:	4a22                	lw	s4,8(sp)
 8001476:	4a92                	lw	s5,4(sp)
 8001478:	4b02                	lw	s6,0(sp)
 800147a:	6105                	addi	sp,sp,32
 800147c:	8082                	ret
 800147e:	872a                	mv	a4,a0
 8001480:	4681                	li	a3,0
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:145
    signed char sign = 1;
 8001482:	4905                	li	s2,1
shellExtNumType():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:22
    if ((*p == '0') && ((*(p + 1) == 'x') || (*(p + 1) == 'X')))
 8001484:	03000613          	li	a2,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:20
    NUM_Type type = NUM_TYPE_INT;
 8001488:	4881                	li	a7,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:22
    if ((*p == '0') && ((*(p + 1) == 'x') || (*(p + 1) == 'X')))
 800148a:	12c78f63          	beq	a5,a2,80015c8 <shellExtParsePara+0x19a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:37
        if (*p == '.' && *(p + 1) != 0)
 800148e:	02e00613          	li	a2,46
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:35
    while (*p++)
 8001492:	0705                	addi	a4,a4,1
 8001494:	c3bd                	beqz	a5,80014fa <shellExtParsePara+0xcc>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:37
        if (*p == '.' && *(p + 1) != 0)
 8001496:	00070783          	lb	a5,0(a4)
 800149a:	fec79ce3          	bne	a5,a2,8001492 <shellExtParsePara+0x64>
 800149e:	00170783          	lb	a5,1(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:35
    while (*p++)
 80014a2:	0705                	addi	a4,a4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:37
        if (*p == '.' && *(p + 1) != 0)
 80014a4:	dbed                	beqz	a5,8001496 <shellExtParsePara+0x68>
 80014a6:	4701                	li	a4,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:39
            type = NUM_TYPE_FLOAT;
 80014a8:	4891                	li	a7,4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:37
        if (*p == '.' && *(p + 1) != 0)
 80014aa:	4ea9                	li	t4,10
 80014ac:	a8a5                	j	8001524 <shellExtParsePara+0xf6>
shellExtParsePara():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:206 (discriminator 1)
    if (*string == '\'' && *(string + 1))
 80014ae:	00150703          	lb	a4,1(a0)
 80014b2:	14071f63          	bnez	a4,8001610 <shellExtParsePara+0x1e2>
shellExtParseString():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:113
        p = ++string;
 80014b6:	89a6                	mv	s3,s1
 80014b8:	4401                	li	s0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:118
        if (*p == '\\')
 80014ba:	05c00a93          	li	s5,92
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:123
        else if (*p == '\"')
 80014be:	02200b13          	li	s6,34
 80014c2:	a831                	j	80014de <shellExtParsePara+0xb0>
 80014c4:	15678163          	beq	a5,s6,8001606 <shellExtParsePara+0x1d8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:129
            *(string + index) = *p;
 80014c8:	894e                	mv	s2,s3
 80014ca:	00fa0023          	sb	a5,0(s4)
 80014ce:	89ba                	mv	s3,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:116
    while (*p)
 80014d0:	00190783          	lb	a5,1(s2)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:132
        index ++;
 80014d4:	0405                	addi	s0,s0,1
 80014d6:	0442                	slli	s0,s0,0x10
 80014d8:	8041                	srli	s0,s0,0x10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:116
    while (*p)
 80014da:	14078863          	beqz	a5,800162a <shellExtParsePara+0x1fc>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:129
            *(string + index) = *p;
 80014de:	00198913          	addi	s2,s3,1
 80014e2:	874a                	mv	a4,s2
 80014e4:	00848a33          	add	s4,s1,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:118
        if (*p == '\\')
 80014e8:	fd579ee3          	bne	a5,s5,80014c4 <shellExtParsePara+0x96>
shellExtParseChar():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:74
    if (*p == '\\')
 80014ec:	fff98513          	addi	a0,s3,-1
 80014f0:	3ddd                	jal	80013e6 <shellExtParseChar.part.0>
shellExtParseString():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:120
            *(string + index) = shellExtParseChar(p - 1);
 80014f2:	00aa0023          	sb	a0,0(s4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:121
            p++;
 80014f6:	0989                	addi	s3,s3,2
 80014f8:	bfe1                	j	80014d0 <shellExtParsePara+0xa2>
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:157
    switch ((char)type)
 80014fa:	fff88793          	addi	a5,a7,-1
 80014fe:	0ff7f793          	andi	a5,a5,255
 8001502:	4709                	li	a4,2
 8001504:	0ef76163          	bltu	a4,a5,80015e6 <shellExtParsePara+0x1b8>
 8001508:	08003637          	lui	a2,0x8003
 800150c:	08003737          	lui	a4,0x8003
 8001510:	05c70713          	addi	a4,a4,92 # 800305c <CSWTCH.12>
 8001514:	05860613          	addi	a2,a2,88 # 8003058 <CSWTCH.11>
 8001518:	963e                	add	a2,a2,a5
 800151a:	97ba                	add	a5,a5,a4
 800151c:	00060e83          	lb	t4,0(a2)
 8001520:	00078703          	lb	a4,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:178
    p = string + offset + ((sign == -1) ? 1 : 0);
 8001524:	9736                	add	a4,a4,a3
 8001526:	9726                	add	a4,a4,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:148
    unsigned int devide = 0;
 8001528:	4401                	li	s0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:146
    unsigned int valueInt = 0;
 800152a:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:182
        if (*p == '.')
 800152c:	02e00e13          	li	t3,46
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:50
    if ((code >= '0') && (code <= '9'))
 8001530:	4325                	li	t1,9
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 8001532:	4815                	li	a6,5
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:180
    while (*p)
 8001534:	00070603          	lb	a2,0(a4)
 8001538:	0705                	addi	a4,a4,1
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:50
    if ((code >= '0') && (code <= '9'))
 800153a:	0ff67793          	andi	a5,a2,255
 800153e:	fd078693          	addi	a3,a5,-48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 8001542:	f9f78593          	addi	a1,a5,-97
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:50
    if ((code >= '0') && (code <= '9'))
 8001546:	0ff6f693          	andi	a3,a3,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 800154a:	0ff5f593          	andi	a1,a1,255
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:180
    while (*p)
 800154e:	c631                	beqz	a2,800159a <shellExtParsePara+0x16c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:182
        if (*p == '.')
 8001550:	0bc60063          	beq	a2,t3,80015f0 <shellExtParsePara+0x1c2>
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:58
    else if ((code >= 'A') && (code <= 'F'))
 8001554:	fbf78613          	addi	a2,a5,-65
 8001558:	0ff67613          	andi	a2,a2,255
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:188
        valueInt = valueInt * radix + shellExtToNum(*p);
 800155c:	03d50533          	mul	a0,a0,t4
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:50
    if ((code >= '0') && (code <= '9'))
 8001560:	08d37663          	bgeu	t1,a3,80015ec <shellExtParsePara+0x1be>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 8001564:	08b87863          	bgeu	a6,a1,80015f4 <shellExtParsePara+0x1c6>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:60
        return code - 'A' + 10;
 8001568:	fc978793          	addi	a5,a5,-55
 800156c:	0ff7f793          	andi	a5,a5,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:58
    else if ((code >= 'A') && (code <= 'F'))
 8001570:	00c86363          	bltu	a6,a2,8001576 <shellExtParsePara+0x148>
 8001574:	953e                	add	a0,a0,a5
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:180
    while (*p)
 8001576:	00070603          	lb	a2,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:189
        devide *= 10;
 800157a:	00241793          	slli	a5,s0,0x2
 800157e:	943e                	add	s0,s0,a5
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:50
    if ((code >= '0') && (code <= '9'))
 8001580:	0ff67793          	andi	a5,a2,255
 8001584:	fd078693          	addi	a3,a5,-48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 8001588:	f9f78593          	addi	a1,a5,-97
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:189
        devide *= 10;
 800158c:	0406                	slli	s0,s0,0x1
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 800158e:	0705                	addi	a4,a4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:50
    if ((code >= '0') && (code <= '9'))
 8001590:	0ff6f693          	andi	a3,a3,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:54
    else if ((code >= 'a') && (code <= 'f'))
 8001594:	0ff5f593          	andi	a1,a1,255
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:180
    while (*p)
 8001598:	fe45                	bnez	a2,8001550 <shellExtParsePara+0x122>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:192
    if (type == NUM_TYPE_FLOAT && devide != 0)
 800159a:	4791                	li	a5,4
 800159c:	06f89263          	bne	a7,a5,8001600 <shellExtParsePara+0x1d2>
 80015a0:	c025                	beqz	s0,8001600 <shellExtParsePara+0x1d2>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:194
        valueFloat = (float)valueInt / devide * sign;
 80015a2:	530010ef          	jal	ra,8002ad2 <__floatunsisf>
 80015a6:	84aa                	mv	s1,a0
 80015a8:	8522                	mv	a0,s0
 80015aa:	528010ef          	jal	ra,8002ad2 <__floatunsisf>
 80015ae:	85aa                	mv	a1,a0
 80015b0:	8526                	mv	a0,s1
 80015b2:	71d000ef          	jal	ra,80024ce <__divsf3>
 80015b6:	842a                	mv	s0,a0
 80015b8:	854a                	mv	a0,s2
 80015ba:	452010ef          	jal	ra,8002a0c <__floatsisf>
 80015be:	85aa                	mv	a1,a0
 80015c0:	8522                	mv	a0,s0
 80015c2:	1ba010ef          	jal	ra,800277c <__mulsf3>
 80015c6:	b555                	j	800146a <shellExtParsePara+0x3c>
shellExtNumType():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:22
    if ((*p == '0') && ((*(p + 1) == 'x') || (*(p + 1) == 'X')))
 80015c8:	00170603          	lb	a2,1(a4)
 80015cc:	05800593          	li	a1,88
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:24
        type = NUM_TYPE_HEX;
 80015d0:	488d                	li	a7,3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:22
    if ((*p == '0') && ((*(p + 1) == 'x') || (*(p + 1) == 'X')))
 80015d2:	fdf67613          	andi	a2,a2,-33
 80015d6:	eab60ce3          	beq	a2,a1,800148e <shellExtParsePara+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:32
        type = NUM_TYPE_OCT;
 80015da:	fbe60893          	addi	a7,a2,-66
 80015de:	011038b3          	snez	a7,a7
 80015e2:	0885                	addi	a7,a7,1
 80015e4:	b56d                	j	800148e <shellExtParsePara+0x60>
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:157
    switch ((char)type)
 80015e6:	4701                	li	a4,0
 80015e8:	4ea9                	li	t4,10
 80015ea:	bf2d                	j	8001524 <shellExtParsePara+0xf6>
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:52
        return code -'0';
 80015ec:	9536                	add	a0,a0,a3
 80015ee:	b761                	j	8001576 <shellExtParsePara+0x148>
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:184
            devide = 1;
 80015f0:	4405                	li	s0,1
 80015f2:	b789                	j	8001534 <shellExtParsePara+0x106>
shellExtToNum():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:56
        return code - 'a' + 10;
 80015f4:	fa978793          	addi	a5,a5,-87
 80015f8:	0ff7f793          	andi	a5,a5,255
 80015fc:	953e                	add	a0,a0,a5
 80015fe:	bfa5                	j	8001576 <shellExtParsePara+0x148>
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:199
        return valueInt * sign;
 8001600:	02a90533          	mul	a0,s2,a0
 8001604:	b59d                	j	800146a <shellExtParsePara+0x3c>
shellExtParseString():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:125
            *(string + index) = 0;
 8001606:	894e                	mv	s2,s3
 8001608:	000a0023          	sb	zero,0(s4)
 800160c:	89ba                	mv	s3,a4
 800160e:	b5c9                	j	80014d0 <shellExtParsePara+0xa2>
shellExtParseChar():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:74
    if (*p == '\\')
 8001610:	05c00793          	li	a5,92
 8001614:	02f70063          	beq	a4,a5,8001634 <shellExtParsePara+0x206>
shellExtParsePara():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:208
        return (unsigned int)shellExtParseChar(string);
 8001618:	853a                	mv	a0,a4
 800161a:	bd81                	j	800146a <shellExtParsePara+0x3c>
 800161c:	00150713          	addi	a4,a0,1
 8001620:	00150783          	lb	a5,1(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:210
    else if (*string == '-' || (*string >= '0' && *string <= '9'))
 8001624:	4685                	li	a3,1
shellExtParseNumber():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:152
        sign = -1;
 8001626:	597d                	li	s2,-1
 8001628:	bdb1                	j	8001484 <shellExtParsePara+0x56>
 800162a:	9426                	add	s0,s0,s1
shellExtParseString():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:134
    *(string + index) = 0;
 800162c:	00040023          	sb	zero,0(s0)
shellExtParsePara():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:222
        return (unsigned int)shellExtParseString(string);
 8001630:	8526                	mv	a0,s1
 8001632:	bd25                	j	800146a <shellExtParsePara+0x3c>
shellExtParseChar():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:222
 8001634:	3b4d                	jal	80013e6 <shellExtParseChar.part.0>
 8001636:	872a                	mv	a4,a0
shellExtParsePara():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:208
        return (unsigned int)shellExtParseChar(string);
 8001638:	853a                	mv	a0,a4
 800163a:	bd05                	j	800146a <shellExtParsePara+0x3c>
shellExtParseString():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:111
    if (*string == '\"')
 800163c:	02200713          	li	a4,34
 8001640:	00148413          	addi	s0,s1,1
 8001644:	e6e799e3          	bne	a5,a4,80014b6 <shellExtParsePara+0x88>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:116
    while (*p)
 8001648:	00148783          	lb	a5,1(s1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:113
        p = ++string;
 800164c:	84a2                	mv	s1,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:116
    while (*p)
 800164e:	e60794e3          	bnez	a5,80014b6 <shellExtParsePara+0x88>
 8001652:	bfe9                	j	800162c <shellExtParsePara+0x1fe>

08001654 <shellExtRun>:
shellExtRun():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:230


int shellExtRun(shellFunction function, int argc, char *argv[])
{
    switch (argc)
 8001654:	47a1                	li	a5,8
 8001656:	1cb7ea63          	bltu	a5,a1,800182a <shellExtRun+0x1d6>
 800165a:	080007b7          	lui	a5,0x8000
 800165e:	4d478793          	addi	a5,a5,1236 # 80004d4 <shellDefaultKeyFunctionList+0x254>
 8001662:	058a                	slli	a1,a1,0x2
 8001664:	95be                	add	a1,a1,a5
 8001666:	419c                	lw	a5,0(a1)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:229
{
 8001668:	7179                	addi	sp,sp,-48
 800166a:	d422                	sw	s0,40(sp)
 800166c:	d226                	sw	s1,36(sp)
 800166e:	d606                	sw	ra,44(sp)
 8001670:	d04a                	sw	s2,32(sp)
 8001672:	ce4e                	sw	s3,28(sp)
 8001674:	cc52                	sw	s4,24(sp)
 8001676:	ca56                	sw	s5,20(sp)
 8001678:	c85a                	sw	s6,16(sp)
 800167a:	c65e                	sw	s7,12(sp)
 800167c:	8432                	mv	s0,a2
 800167e:	84aa                	mv	s1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:230
    switch (argc)
 8001680:	8782                	jr	a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:260
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
                        shellExtParsePara(argv[3]), shellExtParsePara(argv[4]),
                        shellExtParsePara(argv[5]), shellExtParsePara(argv[6]));
        // break;
    case 8:
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001682:	4248                	lw	a0,4(a2)
 8001684:	336d                	jal	800142e <shellExtParsePara>
 8001686:	892a                	mv	s2,a0
 8001688:	4408                	lw	a0,8(s0)
 800168a:	3355                	jal	800142e <shellExtParsePara>
 800168c:	89aa                	mv	s3,a0
 800168e:	4448                	lw	a0,12(s0)
 8001690:	3b79                	jal	800142e <shellExtParsePara>
 8001692:	8a2a                	mv	s4,a0
 8001694:	4808                	lw	a0,16(s0)
 8001696:	3b61                	jal	800142e <shellExtParsePara>
 8001698:	8aaa                	mv	s5,a0
 800169a:	4848                	lw	a0,20(s0)
 800169c:	3b49                	jal	800142e <shellExtParsePara>
 800169e:	8b2a                	mv	s6,a0
 80016a0:	4c08                	lw	a0,24(s0)
 80016a2:	3371                	jal	800142e <shellExtParsePara>
 80016a4:	8baa                	mv	s7,a0
 80016a6:	4c48                	lw	a0,28(s0)
 80016a8:	3359                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
        // break;
    default:
        return -1;
        // break;
    }
}
 80016aa:	5422                	lw	s0,40(sp)
 80016ac:	50b2                	lw	ra,44(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:260
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80016ae:	882a                	mv	a6,a0
 80016b0:	87de                	mv	a5,s7
 80016b2:	875a                	mv	a4,s6
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016b4:	4bb2                	lw	s7,12(sp)
 80016b6:	4b42                	lw	s6,16(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:260
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80016b8:	86d6                	mv	a3,s5
 80016ba:	8652                	mv	a2,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016bc:	4ad2                	lw	s5,20(sp)
 80016be:	4a62                	lw	s4,24(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:260
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80016c0:	85ce                	mv	a1,s3
 80016c2:	854a                	mv	a0,s2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016c4:	49f2                	lw	s3,28(sp)
 80016c6:	5902                	lw	s2,32(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:260
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80016c8:	8326                	mv	t1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016ca:	5492                	lw	s1,36(sp)
 80016cc:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:260
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80016ce:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016d0:	5422                	lw	s0,40(sp)
 80016d2:	50b2                	lw	ra,44(sp)
 80016d4:	5492                	lw	s1,36(sp)
 80016d6:	5902                	lw	s2,32(sp)
 80016d8:	49f2                	lw	s3,28(sp)
 80016da:	4a62                	lw	s4,24(sp)
 80016dc:	4ad2                	lw	s5,20(sp)
 80016de:	4b42                	lw	s6,16(sp)
 80016e0:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:233
        return function();
 80016e2:	832a                	mv	t1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016e4:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:233
        return function();
 80016e6:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:236
        return function(shellExtParsePara(argv[1]));
 80016e8:	4248                	lw	a0,4(a2)
 80016ea:	3391                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016ec:	5422                	lw	s0,40(sp)
 80016ee:	50b2                	lw	ra,44(sp)
 80016f0:	5902                	lw	s2,32(sp)
 80016f2:	49f2                	lw	s3,28(sp)
 80016f4:	4a62                	lw	s4,24(sp)
 80016f6:	4ad2                	lw	s5,20(sp)
 80016f8:	4b42                	lw	s6,16(sp)
 80016fa:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:236
        return function(shellExtParsePara(argv[1]));
 80016fc:	8326                	mv	t1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80016fe:	5492                	lw	s1,36(sp)
 8001700:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:236
        return function(shellExtParsePara(argv[1]));
 8001702:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:239
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]));
 8001704:	4248                	lw	a0,4(a2)
 8001706:	3325                	jal	800142e <shellExtParsePara>
 8001708:	892a                	mv	s2,a0
 800170a:	4408                	lw	a0,8(s0)
 800170c:	330d                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 800170e:	5422                	lw	s0,40(sp)
 8001710:	50b2                	lw	ra,44(sp)
 8001712:	49f2                	lw	s3,28(sp)
 8001714:	4a62                	lw	s4,24(sp)
 8001716:	4ad2                	lw	s5,20(sp)
 8001718:	4b42                	lw	s6,16(sp)
 800171a:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:239
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]));
 800171c:	85aa                	mv	a1,a0
 800171e:	8326                	mv	t1,s1
 8001720:	854a                	mv	a0,s2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 8001722:	5492                	lw	s1,36(sp)
 8001724:	5902                	lw	s2,32(sp)
 8001726:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:239
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]));
 8001728:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:242
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 800172a:	4248                	lw	a0,4(a2)
 800172c:	3309                	jal	800142e <shellExtParsePara>
 800172e:	892a                	mv	s2,a0
 8001730:	4408                	lw	a0,8(s0)
 8001732:	39f5                	jal	800142e <shellExtParsePara>
 8001734:	89aa                	mv	s3,a0
 8001736:	4448                	lw	a0,12(s0)
 8001738:	39dd                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 800173a:	5422                	lw	s0,40(sp)
 800173c:	50b2                	lw	ra,44(sp)
 800173e:	4a62                	lw	s4,24(sp)
 8001740:	4ad2                	lw	s5,20(sp)
 8001742:	4b42                	lw	s6,16(sp)
 8001744:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:242
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001746:	862a                	mv	a2,a0
 8001748:	85ce                	mv	a1,s3
 800174a:	854a                	mv	a0,s2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 800174c:	49f2                	lw	s3,28(sp)
 800174e:	5902                	lw	s2,32(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:242
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001750:	8326                	mv	t1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 8001752:	5492                	lw	s1,36(sp)
 8001754:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:242
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001756:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:246
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001758:	4248                	lw	a0,4(a2)
 800175a:	39d1                	jal	800142e <shellExtParsePara>
 800175c:	892a                	mv	s2,a0
 800175e:	4408                	lw	a0,8(s0)
 8001760:	31f9                	jal	800142e <shellExtParsePara>
 8001762:	89aa                	mv	s3,a0
 8001764:	4448                	lw	a0,12(s0)
 8001766:	31e1                	jal	800142e <shellExtParsePara>
 8001768:	8a2a                	mv	s4,a0
 800176a:	4808                	lw	a0,16(s0)
 800176c:	31c9                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 800176e:	5422                	lw	s0,40(sp)
 8001770:	50b2                	lw	ra,44(sp)
 8001772:	4ad2                	lw	s5,20(sp)
 8001774:	4b42                	lw	s6,16(sp)
 8001776:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:246
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001778:	86aa                	mv	a3,a0
 800177a:	8652                	mv	a2,s4
 800177c:	85ce                	mv	a1,s3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 800177e:	4a62                	lw	s4,24(sp)
 8001780:	49f2                	lw	s3,28(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:246
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001782:	854a                	mv	a0,s2
 8001784:	8326                	mv	t1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 8001786:	5902                	lw	s2,32(sp)
 8001788:	5492                	lw	s1,36(sp)
 800178a:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:246
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 800178c:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:250
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 800178e:	4248                	lw	a0,4(a2)
 8001790:	3979                	jal	800142e <shellExtParsePara>
 8001792:	892a                	mv	s2,a0
 8001794:	4408                	lw	a0,8(s0)
 8001796:	3961                	jal	800142e <shellExtParsePara>
 8001798:	89aa                	mv	s3,a0
 800179a:	4448                	lw	a0,12(s0)
 800179c:	3949                	jal	800142e <shellExtParsePara>
 800179e:	8a2a                	mv	s4,a0
 80017a0:	4808                	lw	a0,16(s0)
 80017a2:	3171                	jal	800142e <shellExtParsePara>
 80017a4:	8aaa                	mv	s5,a0
 80017a6:	4848                	lw	a0,20(s0)
 80017a8:	3159                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80017aa:	5422                	lw	s0,40(sp)
 80017ac:	50b2                	lw	ra,44(sp)
 80017ae:	4b42                	lw	s6,16(sp)
 80017b0:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:250
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017b2:	872a                	mv	a4,a0
 80017b4:	86d6                	mv	a3,s5
 80017b6:	8652                	mv	a2,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80017b8:	4ad2                	lw	s5,20(sp)
 80017ba:	4a62                	lw	s4,24(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:250
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017bc:	85ce                	mv	a1,s3
 80017be:	854a                	mv	a0,s2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80017c0:	49f2                	lw	s3,28(sp)
 80017c2:	5902                	lw	s2,32(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:250
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017c4:	8326                	mv	t1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80017c6:	5492                	lw	s1,36(sp)
 80017c8:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:250
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017ca:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:255
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017cc:	4248                	lw	a0,4(a2)
 80017ce:	3185                	jal	800142e <shellExtParsePara>
 80017d0:	892a                	mv	s2,a0
 80017d2:	4408                	lw	a0,8(s0)
 80017d4:	39a9                	jal	800142e <shellExtParsePara>
 80017d6:	89aa                	mv	s3,a0
 80017d8:	4448                	lw	a0,12(s0)
 80017da:	3991                	jal	800142e <shellExtParsePara>
 80017dc:	8a2a                	mv	s4,a0
 80017de:	4808                	lw	a0,16(s0)
 80017e0:	31b9                	jal	800142e <shellExtParsePara>
 80017e2:	8aaa                	mv	s5,a0
 80017e4:	4848                	lw	a0,20(s0)
 80017e6:	31a1                	jal	800142e <shellExtParsePara>
 80017e8:	8b2a                	mv	s6,a0
 80017ea:	4c08                	lw	a0,24(s0)
 80017ec:	3189                	jal	800142e <shellExtParsePara>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80017ee:	5422                	lw	s0,40(sp)
 80017f0:	50b2                	lw	ra,44(sp)
 80017f2:	4bb2                	lw	s7,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:255
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017f4:	87aa                	mv	a5,a0
 80017f6:	875a                	mv	a4,s6
 80017f8:	86d6                	mv	a3,s5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 80017fa:	4b42                	lw	s6,16(sp)
 80017fc:	4ad2                	lw	s5,20(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:255
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 80017fe:	8652                	mv	a2,s4
 8001800:	85ce                	mv	a1,s3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 8001802:	4a62                	lw	s4,24(sp)
 8001804:	49f2                	lw	s3,28(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:255
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001806:	854a                	mv	a0,s2
 8001808:	8326                	mv	t1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 800180a:	5902                	lw	s2,32(sp)
 800180c:	5492                	lw	s1,36(sp)
 800180e:	6145                	addi	sp,sp,48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:255
        return function(shellExtParsePara(argv[1]), shellExtParsePara(argv[2]),
 8001810:	8302                	jr	t1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/letter-shell/shell_ext.c:269
}
 8001812:	50b2                	lw	ra,44(sp)
 8001814:	5422                	lw	s0,40(sp)
 8001816:	5492                	lw	s1,36(sp)
 8001818:	5902                	lw	s2,32(sp)
 800181a:	49f2                	lw	s3,28(sp)
 800181c:	4a62                	lw	s4,24(sp)
 800181e:	4ad2                	lw	s5,20(sp)
 8001820:	4b42                	lw	s6,16(sp)
 8001822:	4bb2                	lw	s7,12(sp)
 8001824:	557d                	li	a0,-1
 8001826:	6145                	addi	sp,sp,48
 8001828:	8082                	ret
 800182a:	557d                	li	a0,-1
 800182c:	8082                	ret

0800182e <gd_eval_led_init>:
gd_eval_led_init():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:98
      \arg        LED4
    \param[out] none
    \retval     none
*/
void gd_eval_led_init(led_typedef_enum lednum)
{
 800182e:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:100
    /* enable the led clock */
    rcu_periph_clock_enable(GPIO_CLK[lednum]);
 8001830:	080007b7          	lui	a5,0x8000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:98
{
 8001834:	c422                	sw	s0,8(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:100
    rcu_periph_clock_enable(GPIO_CLK[lednum]);
 8001836:	4f878793          	addi	a5,a5,1272 # 80004f8 <GPIO_CLK>
 800183a:	00251413          	slli	s0,a0,0x2
 800183e:	97a2                	add	a5,a5,s0
 8001840:	4388                	lw	a0,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:98
{
 8001842:	c606                	sw	ra,12(sp)
 8001844:	c226                	sw	s1,4(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:100
    rcu_periph_clock_enable(GPIO_CLK[lednum]);
 8001846:	25b9                	jal	8001e94 <rcu_periph_clock_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:102
    /* configure led GPIO port */ 
    gpio_init(GPIO_PORT[lednum], GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN[lednum]);
 8001848:	080007b7          	lui	a5,0x8000
 800184c:	08000537          	lui	a0,0x8000
 8001850:	51878793          	addi	a5,a5,1304 # 8000518 <GPIO_PORT>
 8001854:	50850513          	addi	a0,a0,1288 # 8000508 <GPIO_PIN>
 8001858:	9522                	add	a0,a0,s0
 800185a:	97a2                	add	a5,a5,s0
 800185c:	4104                	lw	s1,0(a0)
 800185e:	4380                	lw	s0,0(a5)
 8001860:	460d                	li	a2,3
 8001862:	86a6                	mv	a3,s1
 8001864:	8522                	mv	a0,s0
 8001866:	45c1                	li	a1,16
 8001868:	2351                	jal	8001dec <gpio_init>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:105

    GPIO_BC(GPIO_PORT[lednum]) = GPIO_PIN[lednum];
}
 800186a:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:104
    GPIO_BC(GPIO_PORT[lednum]) = GPIO_PIN[lednum];
 800186c:	c844                	sw	s1,20(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:105
}
 800186e:	4422                	lw	s0,8(sp)
 8001870:	4492                	lw	s1,4(sp)
 8001872:	0141                	addi	sp,sp,16
 8001874:	8082                	ret

08001876 <gd_eval_led_on>:
gd_eval_led_on():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:119
    \param[out] none
    \retval     none
*/
void gd_eval_led_on(led_typedef_enum lednum)
{
    GPIO_BOP(GPIO_PORT[lednum]) = GPIO_PIN[lednum];
 8001876:	08000737          	lui	a4,0x8000
 800187a:	080007b7          	lui	a5,0x8000
 800187e:	050a                	slli	a0,a0,0x2
 8001880:	51870713          	addi	a4,a4,1304 # 8000518 <GPIO_PORT>
 8001884:	50878793          	addi	a5,a5,1288 # 8000508 <GPIO_PIN>
 8001888:	972a                	add	a4,a4,a0
 800188a:	97aa                	add	a5,a5,a0
 800188c:	4318                	lw	a4,0(a4)
 800188e:	439c                	lw	a5,0(a5)
 8001890:	cb1c                	sw	a5,16(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:120
}
 8001892:	8082                	ret

08001894 <gd_eval_led_off>:
gd_eval_led_off():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:134
    \param[out] none
    \retval     none
*/
void gd_eval_led_off(led_typedef_enum lednum)
{
    GPIO_BC(GPIO_PORT[lednum]) = GPIO_PIN[lednum];
 8001894:	08000737          	lui	a4,0x8000
 8001898:	080007b7          	lui	a5,0x8000
 800189c:	050a                	slli	a0,a0,0x2
 800189e:	51870713          	addi	a4,a4,1304 # 8000518 <GPIO_PORT>
 80018a2:	50878793          	addi	a5,a5,1288 # 8000508 <GPIO_PIN>
 80018a6:	972a                	add	a4,a4,a0
 80018a8:	97aa                	add	a5,a5,a0
 80018aa:	4318                	lw	a4,0(a4)
 80018ac:	439c                	lw	a5,0(a5)
 80018ae:	cb5c                	sw	a5,20(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:135
}
 80018b0:	8082                	ret

080018b2 <gd_eval_com_init>:
gd_eval_com_init():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:216
      \arg        EVAL_COM1: COM1 on the board
    \param[out] none
    \retval     none
*/
void gd_eval_com_init(uint32_t com)
{
 80018b2:	1141                	addi	sp,sp,-16
 80018b4:	c422                	sw	s0,8(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:220
    uint32_t com_id = 0U;
    if(EVAL_COM0 == com){
        com_id = 0U;
    }else if(EVAL_COM1 == com){
 80018b6:	bfffc437          	lui	s0,0xbfffc
 80018ba:	c0040413          	addi	s0,s0,-1024 # bfffbc00 <_sp+0x9fff3c00>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:216
{
 80018be:	c606                	sw	ra,12(sp)
 80018c0:	c226                	sw	s1,4(sp)
 80018c2:	c04a                	sw	s2,0(sp)
 80018c4:	84aa                	mv	s1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:220
    }else if(EVAL_COM1 == com){
 80018c6:	942a                	add	s0,s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:225
        com_id = 1U;
    }
    
    /* USART interrupt configuration */
    eclic_global_interrupt_enable();
 80018c8:	29c5                	jal	8001db8 <eclic_global_interrupt_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:226
    eclic_priority_group_set(ECLIC_PRIGROUP_LEVEL3_PRIO1);
 80018ca:	450d                	li	a0,3
 80018cc:	29cd                	jal	8001dbe <eclic_priority_group_set>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:227
    eclic_irq_enable(USART0_IRQn, 1, 0);
 80018ce:	4601                	li	a2,0
 80018d0:	4585                	li	a1,1
 80018d2:	03800513          	li	a0,56
 80018d6:	21fd                	jal	8001dc4 <eclic_irq_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:220
    }else if(EVAL_COM1 == com){
 80018d8:	00143413          	seqz	s0,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:230

    /* enable GPIO clock */
    rcu_periph_clock_enable(COM_GPIO_CLK[com_id]);
 80018dc:	080037b7          	lui	a5,0x8003
 80018e0:	040a                	slli	s0,s0,0x2
 80018e2:	06878793          	addi	a5,a5,104 # 8003068 <COM_GPIO_CLK>
 80018e6:	97a2                	add	a5,a5,s0
 80018e8:	4388                	lw	a0,0(a5)
 80018ea:	236d                	jal	8001e94 <rcu_periph_clock_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:233

    /* enable USART clock */
    rcu_periph_clock_enable(COM_CLK[com_id]);
 80018ec:	080037b7          	lui	a5,0x8003
 80018f0:	06078793          	addi	a5,a5,96 # 8003060 <COM_CLK>
 80018f4:	97a2                	add	a5,a5,s0
 80018f6:	4388                	lw	a0,0(a5)
 80018f8:	2b71                	jal	8001e94 <rcu_periph_clock_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:236

    /* connect port to USARTx_Tx */
    gpio_init(COM_GPIO_PORT[com_id], GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, COM_TX_PIN[com_id]);
 80018fa:	080037b7          	lui	a5,0x8003
 80018fe:	07078793          	addi	a5,a5,112 # 8003070 <COM_GPIO_PORT>
 8001902:	97a2                	add	a5,a5,s0
 8001904:	0007a903          	lw	s2,0(a5)
 8001908:	080037b7          	lui	a5,0x8003
 800190c:	08078793          	addi	a5,a5,128 # 8003080 <COM_TX_PIN>
 8001910:	97a2                	add	a5,a5,s0
 8001912:	4394                	lw	a3,0(a5)
 8001914:	854a                	mv	a0,s2
 8001916:	460d                	li	a2,3
 8001918:	45e1                	li	a1,24
 800191a:	29c9                	jal	8001dec <gpio_init>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:239

    /* connect port to USARTx_Rx */
    gpio_init(COM_GPIO_PORT[com_id], GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, COM_RX_PIN[com_id]);
 800191c:	080037b7          	lui	a5,0x8003
 8001920:	07878793          	addi	a5,a5,120 # 8003078 <COM_RX_PIN>
 8001924:	943e                	add	s0,s0,a5
 8001926:	4014                	lw	a3,0(s0)
 8001928:	460d                	li	a2,3
 800192a:	4591                	li	a1,4
 800192c:	854a                	mv	a0,s2
 800192e:	297d                	jal	8001dec <gpio_init>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:242

    /* USART configure */
    usart_deinit(com);
 8001930:	8526                	mv	a0,s1
 8001932:	6ea000ef          	jal	ra,800201c <usart_deinit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:243
    usart_baudrate_set(com, 115200U);
 8001936:	65f1                	lui	a1,0x1c
 8001938:	8526                	mv	a0,s1
 800193a:	20058593          	addi	a1,a1,512 # 1c200 <__stack_size+0x1ba00>
 800193e:	76c000ef          	jal	ra,80020aa <usart_baudrate_set>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:244
    usart_word_length_set(com, USART_WL_8BIT);
 8001942:	8526                	mv	a0,s1
 8001944:	4581                	li	a1,0
 8001946:	7dc000ef          	jal	ra,8002122 <usart_word_length_set>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:245
    usart_stop_bit_set(com, USART_STB_1BIT);
 800194a:	8526                	mv	a0,s1
 800194c:	4581                	li	a1,0
 800194e:	7e6000ef          	jal	ra,8002134 <usart_stop_bit_set>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:246
    usart_parity_config(com, USART_PM_NONE);
 8001952:	8526                	mv	a0,s1
 8001954:	4581                	li	a1,0
 8001956:	7bc000ef          	jal	ra,8002112 <usart_parity_config>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:247
    usart_hardware_flow_rts_config(com, USART_RTS_DISABLE);
 800195a:	8526                	mv	a0,s1
 800195c:	4581                	li	a1,0
 800195e:	017000ef          	jal	ra,8002174 <usart_hardware_flow_rts_config>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:248
    usart_hardware_flow_cts_config(com, USART_CTS_DISABLE);
 8001962:	8526                	mv	a0,s1
 8001964:	4581                	li	a1,0
 8001966:	01b000ef          	jal	ra,8002180 <usart_hardware_flow_cts_config>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:249
    usart_receive_config(com, USART_RECEIVE_ENABLE);
 800196a:	8526                	mv	a0,s1
 800196c:	4591                	li	a1,4
 800196e:	7ec000ef          	jal	ra,800215a <usart_receive_config>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:250
    usart_transmit_config(com, USART_TRANSMIT_ENABLE);
 8001972:	45a1                	li	a1,8
 8001974:	8526                	mv	a0,s1
 8001976:	7da000ef          	jal	ra,8002150 <usart_transmit_config>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:251
    usart_enable(com);
 800197a:	8526                	mv	a0,s1
 800197c:	7ca000ef          	jal	ra,8002146 <usart_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:255

    /* enable USART RBNE interrupt */
    usart_interrupt_enable(USART0, USART_INT_RBNE);
}
 8001980:	4422                	lw	s0,8(sp)
 8001982:	40b2                	lw	ra,12(sp)
 8001984:	4492                	lw	s1,4(sp)
 8001986:	4902                	lw	s2,0(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:254
    usart_interrupt_enable(USART0, USART_INT_RBNE);
 8001988:	40014537          	lui	a0,0x40014
 800198c:	30500593          	li	a1,773
 8001990:	80050513          	addi	a0,a0,-2048 # 40013800 <_sp+0x2000b800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:255
}
 8001994:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:254
    usart_interrupt_enable(USART0, USART_INT_RBNE);
 8001996:	00b0006f          	j	80021a0 <usart_interrupt_enable>

0800199a <gd_eval_com_send>:
gd_eval_com_send():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:268
      \arg		data
    \param[out] none
    \retval     none
*/
void gd_eval_com_send(uint32_t com, uint8_t data)
{
 800199a:	1141                	addi	sp,sp,-16
 800199c:	400047b7          	lui	a5,0x40004
 80019a0:	c422                	sw	s0,8(sp)
 80019a2:	c606                	sw	ra,12(sp)
 80019a4:	40078793          	addi	a5,a5,1024 # 40004400 <_sp+0x1fffc400>
 80019a8:	842a                	mv	s0,a0
 80019aa:	02f50363          	beq	a0,a5,80019d0 <gd_eval_com_send+0x36>
 80019ae:	400147b7          	lui	a5,0x40014
 80019b2:	80078793          	addi	a5,a5,-2048 # 40013800 <_sp+0x2000b800>
 80019b6:	00f51963          	bne	a0,a5,80019c8 <gd_eval_com_send+0x2e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:272
	switch(com)
	{
	case EVAL_COM0:
	    usart_data_transmit(USART0, data);
 80019ba:	7aa000ef          	jal	ra,8002164 <usart_data_transmit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:273 (discriminator 1)
	    while(usart_flag_get(USART0, USART_FLAG_TBE) == RESET){
 80019be:	459d                	li	a1,7
 80019c0:	8522                	mv	a0,s0
 80019c2:	7ca000ef          	jal	ra,800218c <usart_flag_get>
 80019c6:	dd65                	beqz	a0,80019be <gd_eval_com_send+0x24>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:286
	    break;

	default:
		break;
	}
}
 80019c8:	40b2                	lw	ra,12(sp)
 80019ca:	4422                	lw	s0,8(sp)
 80019cc:	0141                	addi	sp,sp,16
 80019ce:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:278
	    usart_data_transmit(USART1, data);
 80019d0:	794000ef          	jal	ra,8002164 <usart_data_transmit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:279 (discriminator 1)
	    while(usart_flag_get(USART1, USART_FLAG_TBE) == RESET){
 80019d4:	459d                	li	a1,7
 80019d6:	8522                	mv	a0,s0
 80019d8:	7b4000ef          	jal	ra,800218c <usart_flag_get>
 80019dc:	dd65                	beqz	a0,80019d4 <gd_eval_com_send+0x3a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Utilities/gd32vf103v_eval.c:286
}
 80019de:	40b2                	lw	ra,12(sp)
 80019e0:	4422                	lw	s0,8(sp)
 80019e2:	0141                	addi	sp,sp,16
 80019e4:	8082                	ret

080019e6 <_exit>:
_exit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:10
#include "stub.h"


void _exit(int code)
{
  const char message[] = "\nProgram has exited with code:";
 80019e6:	08000737          	lui	a4,0x8000
 80019ea:	52870793          	addi	a5,a4,1320 # 8000528 <GPIO_PORT+0x10>
 80019ee:	52872f03          	lw	t5,1320(a4)
 80019f2:	0047ae83          	lw	t4,4(a5)
 80019f6:	0087ae03          	lw	t3,8(a5)
 80019fa:	00c7a303          	lw	t1,12(a5)
 80019fe:	0107a883          	lw	a7,16(a5)
 8001a02:	0147a803          	lw	a6,20(a5)
 8001a06:	4f94                	lw	a3,24(a5)
 8001a08:	01c7d703          	lhu	a4,28(a5)
 8001a0c:	01e7c783          	lbu	a5,30(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:9
{
 8001a10:	7179                	addi	sp,sp,-48
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:12

  write(STDERR_FILENO, message, sizeof(message) - 1);
 8001a12:	4679                	li	a2,30
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:9
{
 8001a14:	d422                	sw	s0,40(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:12
  write(STDERR_FILENO, message, sizeof(message) - 1);
 8001a16:	858a                	mv	a1,sp
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:9
{
 8001a18:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:12
  write(STDERR_FILENO, message, sizeof(message) - 1);
 8001a1a:	4509                	li	a0,2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:9
{
 8001a1c:	d606                	sw	ra,44(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:10
  const char message[] = "\nProgram has exited with code:";
 8001a1e:	c07a                	sw	t5,0(sp)
 8001a20:	c276                	sw	t4,4(sp)
 8001a22:	c472                	sw	t3,8(sp)
 8001a24:	c61a                	sw	t1,12(sp)
 8001a26:	c846                	sw	a7,16(sp)
 8001a28:	ca42                	sw	a6,20(sp)
 8001a2a:	cc36                	sw	a3,24(sp)
 8001a2c:	00e11e23          	sh	a4,28(sp)
 8001a30:	00f10f23          	sb	a5,30(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:12
  write(STDERR_FILENO, message, sizeof(message) - 1);
 8001a34:	498010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:13
  write_hex(STDERR_FILENO, code);
 8001a38:	85a2                	mv	a1,s0
 8001a3a:	4509                	li	a0,2
 8001a3c:	2065                	jal	8001ae4 <write_hex>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:14
  write(STDERR_FILENO, "\n", 1);
 8001a3e:	080005b7          	lui	a1,0x8000
 8001a42:	4605                	li	a2,1
 8001a44:	46458593          	addi	a1,a1,1124 # 8000464 <shellDefaultKeyFunctionList+0x1e4>
 8001a48:	4509                	li	a0,2
 8001a4a:	482010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/_exit.c:16 (discriminator 1)

  for (;;);
 8001a4e:	a001                	j	8001a4e <_exit+0x68>

08001a50 <_put_char>:
_put_char():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:42
	return _write(0, (const void *) string, strlen(string));
}


int _put_char(int ch)
{
 8001a50:	1141                	addi	sp,sp,-16
 8001a52:	c422                	sw	s0,8(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:43
    usart_data_transmit(USART0, (uint8_t)ch);
 8001a54:	40014437          	lui	s0,0x40014
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:42
{
 8001a58:	c226                	sw	s1,4(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:43
    usart_data_transmit(USART0, (uint8_t)ch);
 8001a5a:	0ff57593          	andi	a1,a0,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:42
{
 8001a5e:	84aa                	mv	s1,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:43
    usart_data_transmit(USART0, (uint8_t)ch);
 8001a60:	80040513          	addi	a0,s0,-2048 # 40013800 <_sp+0x2000b800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:42
{
 8001a64:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:44
    while (usart_flag_get(USART0, USART_FLAG_TBE)== RESET){
 8001a66:	80040413          	addi	s0,s0,-2048
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:43
    usart_data_transmit(USART0, (uint8_t)ch);
 8001a6a:	6fa000ef          	jal	ra,8002164 <usart_data_transmit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:44 (discriminator 1)
    while (usart_flag_get(USART0, USART_FLAG_TBE)== RESET){
 8001a6e:	459d                	li	a1,7
 8001a70:	8522                	mv	a0,s0
 8001a72:	71a000ef          	jal	ra,800218c <usart_flag_get>
 8001a76:	dd65                	beqz	a0,8001a6e <_put_char+0x1e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:48
    }

    return ch;
}
 8001a78:	40b2                	lw	ra,12(sp)
 8001a7a:	4422                	lw	s0,8(sp)
 8001a7c:	8526                	mv	a0,s1
 8001a7e:	4492                	lw	s1,4(sp)
 8001a80:	0141                	addi	sp,sp,16
 8001a82:	8082                	ret

08001a84 <_write>:
_write():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:17
ssize_t _write(int fd, const void* ptr, size_t len) {
 8001a84:	1101                	addi	sp,sp,-32
 8001a86:	c64e                	sw	s3,12(sp)
 8001a88:	ce06                	sw	ra,28(sp)
 8001a8a:	cc22                	sw	s0,24(sp)
 8001a8c:	ca26                	sw	s1,20(sp)
 8001a8e:	c84a                	sw	s2,16(sp)
 8001a90:	89b2                	mv	s3,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:22
		for (size_t jj = 0; jj < len; jj++) {
 8001a92:	ce19                	beqz	a2,8001ab0 <_write+0x2c>
 8001a94:	842e                	mv	s0,a1
 8001a96:	00c58933          	add	s2,a1,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:25
			if (current[jj] == '\n') {
 8001a9a:	44a9                	li	s1,10
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:23
			_put_char(current[jj]);
 8001a9c:	00044503          	lbu	a0,0(s0)
 8001aa0:	0405                	addi	s0,s0,1
 8001aa2:	377d                	jal	8001a50 <_put_char>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:25
			if (current[jj] == '\n') {
 8001aa4:	fff44783          	lbu	a5,-1(s0)
 8001aa8:	00978c63          	beq	a5,s1,8001ac0 <_write+0x3c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:22 (discriminator 2)
		for (size_t jj = 0; jj < len; jj++) {
 8001aac:	ff2418e3          	bne	s0,s2,8001a9c <_write+0x18>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:33
}
 8001ab0:	40f2                	lw	ra,28(sp)
 8001ab2:	4462                	lw	s0,24(sp)
 8001ab4:	854e                	mv	a0,s3
 8001ab6:	44d2                	lw	s1,20(sp)
 8001ab8:	4942                	lw	s2,16(sp)
 8001aba:	49b2                	lw	s3,12(sp)
 8001abc:	6105                	addi	sp,sp,32
 8001abe:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:26
				_put_char('\r');
 8001ac0:	4535                	li	a0,13
 8001ac2:	3779                	jal	8001a50 <_put_char>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:22
		for (size_t jj = 0; jj < len; jj++) {
 8001ac4:	fd241ce3          	bne	s0,s2,8001a9c <_write+0x18>
 8001ac8:	b7e5                	j	8001ab0 <_write+0x2c>

08001aca <puts>:
puts():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:36
{
 8001aca:	1141                	addi	sp,sp,-16
 8001acc:	c422                	sw	s0,8(sp)
 8001ace:	c606                	sw	ra,12(sp)
 8001ad0:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:37
	return _write(0, (const void *) string, strlen(string));
 8001ad2:	3e8010ef          	jal	ra,8002eba <strlen>
 8001ad6:	85a2                	mv	a1,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:38
}
 8001ad8:	4422                	lw	s0,8(sp)
 8001ada:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:37
	return _write(0, (const void *) string, strlen(string));
 8001adc:	862a                	mv	a2,a0
 8001ade:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:38
}
 8001ae0:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write.c:37
	return _write(0, (const void *) string, strlen(string));
 8001ae2:	b74d                	j	8001a84 <_write>

08001ae4 <write_hex>:
write_hex():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:7

#include <stdint.h>
#include <unistd.h>

void write_hex(int fd, unsigned long int hex)
{
 8001ae4:	7179                	addi	sp,sp,-48
 8001ae6:	ca56                	sw	s5,20(sp)
 8001ae8:	8aae                	mv	s5,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:11
  uint8_t ii;
  uint8_t jj;
  char towrite;
  write(fd , "0x", 2);
 8001aea:	080005b7          	lui	a1,0x8000
 8001aee:	4609                	li	a2,2
 8001af0:	54858593          	addi	a1,a1,1352 # 8000548 <GPIO_PORT+0x30>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:7
{
 8001af4:	d422                	sw	s0,40(sp)
 8001af6:	d226                	sw	s1,36(sp)
 8001af8:	d04a                	sw	s2,32(sp)
 8001afa:	ce4e                	sw	s3,28(sp)
 8001afc:	cc52                	sw	s4,24(sp)
 8001afe:	d606                	sw	ra,44(sp)
 8001b00:	8a2a                	mv	s4,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:11
  write(fd , "0x", 2);
 8001b02:	4471                	li	s0,28
 8001b04:	3c8010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:14
  for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {
    jj = ii - 1;
    uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4));
 8001b08:	49bd                	li	s3,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:15
    towrite = digit < 0xA ? ('0' + digit) : ('A' +  (digit - 0xA));
 8001b0a:	4925                	li	s2,9
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:12
  for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {
 8001b0c:	54f1                	li	s1,-4
 8001b0e:	a839                	j	8001b2c <write_hex+0x48>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:15 (discriminator 1)
    towrite = digit < 0xA ? ('0' + digit) : ('A' +  (digit - 0xA));
 8001b10:	01869793          	slli	a5,a3,0x18
 8001b14:	87e1                	srai	a5,a5,0x18
 8001b16:	1471                	addi	s0,s0,-4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:16 (discriminator 1)
    write(fd, &towrite, 1);
 8001b18:	4605                	li	a2,1
 8001b1a:	00f10593          	addi	a1,sp,15
 8001b1e:	8552                	mv	a0,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:15 (discriminator 1)
    towrite = digit < 0xA ? ('0' + digit) : ('A' +  (digit - 0xA));
 8001b20:	00f107a3          	sb	a5,15(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:16 (discriminator 1)
    write(fd, &towrite, 1);
 8001b24:	3a8010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:12 (discriminator 1)
  for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {
 8001b28:	02940e63          	beq	s0,s1,8001b64 <write_hex+0x80>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:14
    uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4));
 8001b2c:	008997b3          	sll	a5,s3,s0
 8001b30:	0157f7b3          	and	a5,a5,s5
 8001b34:	0087d7b3          	srl	a5,a5,s0
 8001b38:	0ff7f793          	andi	a5,a5,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:15
    towrite = digit < 0xA ? ('0' + digit) : ('A' +  (digit - 0xA));
 8001b3c:	03078693          	addi	a3,a5,48
 8001b40:	03778713          	addi	a4,a5,55
 8001b44:	fcf976e3          	bgeu	s2,a5,8001b10 <write_hex+0x2c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:15 (discriminator 2)
 8001b48:	01871793          	slli	a5,a4,0x18
 8001b4c:	87e1                	srai	a5,a5,0x18
 8001b4e:	1471                	addi	s0,s0,-4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:16 (discriminator 2)
    write(fd, &towrite, 1);
 8001b50:	4605                	li	a2,1
 8001b52:	00f10593          	addi	a1,sp,15
 8001b56:	8552                	mv	a0,s4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:15 (discriminator 2)
    towrite = digit < 0xA ? ('0' + digit) : ('A' +  (digit - 0xA));
 8001b58:	00f107a3          	sb	a5,15(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:16 (discriminator 2)
    write(fd, &towrite, 1);
 8001b5c:	370010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:12 (discriminator 2)
  for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {
 8001b60:	fc9416e3          	bne	s0,s1,8001b2c <write_hex+0x48>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/stubs/write_hex.c:18
  }
}
 8001b64:	50b2                	lw	ra,44(sp)
 8001b66:	5422                	lw	s0,40(sp)
 8001b68:	5492                	lw	s1,36(sp)
 8001b6a:	5902                	lw	s2,32(sp)
 8001b6c:	49f2                	lw	s3,28(sp)
 8001b6e:	4a62                	lw	s4,24(sp)
 8001b70:	4ad2                	lw	s5,20(sp)
 8001b72:	6145                	addi	sp,sp,48
 8001b74:	8082                	ret
	...

08001b80 <trap_entry>:
trap_entry():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:218
trap_entry:
  // Allocate the stack space
 // addi sp, sp, -19*REGBYTES

  // Save the caller saving registers (context)
  SAVE_CONTEXT
 8001b80:	715d                	addi	sp,sp,-80
 8001b82:	c006                	sw	ra,0(sp)
 8001b84:	c212                	sw	tp,4(sp)
 8001b86:	c416                	sw	t0,8(sp)
 8001b88:	c61a                	sw	t1,12(sp)
 8001b8a:	c81e                	sw	t2,16(sp)
 8001b8c:	ca2a                	sw	a0,20(sp)
 8001b8e:	cc2e                	sw	a1,24(sp)
 8001b90:	ce32                	sw	a2,28(sp)
 8001b92:	d036                	sw	a3,32(sp)
 8001b94:	d23a                	sw	a4,36(sp)
 8001b96:	d43e                	sw	a5,40(sp)
 8001b98:	d642                	sw	a6,44(sp)
 8001b9a:	d846                	sw	a7,48(sp)
 8001b9c:	da72                	sw	t3,52(sp)
 8001b9e:	dc76                	sw	t4,56(sp)
 8001ba0:	de7a                	sw	t5,60(sp)
 8001ba2:	c0fe                	sw	t6,64(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:220
  // Save the MEPC/Mstatus/Msubm reg
  SAVE_EPC_STATUS
 8001ba4:	341022f3          	csrr	t0,mepc
 8001ba8:	c096                	sw	t0,64(sp)
 8001baa:	300022f3          	csrr	t0,mstatus
 8001bae:	c296                	sw	t0,68(sp)
 8001bb0:	7c4022f3          	csrr	t0,0x7c4
 8001bb4:	c496                	sw	t0,72(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:223

     // Set the function argument
  csrr a0, mcause
 8001bb6:	34202573          	csrr	a0,mcause
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:224
  mv a1, sp
 8001bba:	858a                	mv	a1,sp
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:226
     // Call the function
  call handle_trap
 8001bbc:	20e9                	jal	8001c86 <handle_trap>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:229

  // Restore the MEPC/Mstatus/Msubm reg
  RESTORE_EPC_STATUS
 8001bbe:	4286                	lw	t0,64(sp)
 8001bc0:	34129073          	csrw	mepc,t0
 8001bc4:	4296                	lw	t0,68(sp)
 8001bc6:	30029073          	csrw	mstatus,t0
 8001bca:	42a6                	lw	t0,72(sp)
 8001bcc:	7c429073          	csrw	0x7c4,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:231
  // Restore the caller saving registers (context)
  RESTORE_CONTEXT
 8001bd0:	4082                	lw	ra,0(sp)
 8001bd2:	4212                	lw	tp,4(sp)
 8001bd4:	42a2                	lw	t0,8(sp)
 8001bd6:	4332                	lw	t1,12(sp)
 8001bd8:	43c2                	lw	t2,16(sp)
 8001bda:	4552                	lw	a0,20(sp)
 8001bdc:	45e2                	lw	a1,24(sp)
 8001bde:	4672                	lw	a2,28(sp)
 8001be0:	5682                	lw	a3,32(sp)
 8001be2:	5712                	lw	a4,36(sp)
 8001be4:	57a2                	lw	a5,40(sp)
 8001be6:	5832                	lw	a6,44(sp)
 8001be8:	58c2                	lw	a7,48(sp)
 8001bea:	5e52                	lw	t3,52(sp)
 8001bec:	5ee2                	lw	t4,56(sp)
 8001bee:	5f72                	lw	t5,60(sp)
 8001bf0:	4f86                	lw	t6,64(sp)
 8001bf2:	6161                	addi	sp,sp,80
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:236

  // De-allocate the stack space
 // addi sp, sp, 19*REGBYTES
  // Return to regular code
  mret
 8001bf4:	30200073          	mret
 8001bf8:	0000                	unimp
	...

08001bfc <irq_entry>:
irq_entry():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:251
.weak irq_entry
irq_entry: // -------------> This label will be set to MTVT2 register
  // Allocate the stack space
  

  SAVE_CONTEXT// Save 16 regs
 8001bfc:	715d                	addi	sp,sp,-80
 8001bfe:	c006                	sw	ra,0(sp)
 8001c00:	c212                	sw	tp,4(sp)
 8001c02:	c416                	sw	t0,8(sp)
 8001c04:	c61a                	sw	t1,12(sp)
 8001c06:	c81e                	sw	t2,16(sp)
 8001c08:	ca2a                	sw	a0,20(sp)
 8001c0a:	cc2e                	sw	a1,24(sp)
 8001c0c:	ce32                	sw	a2,28(sp)
 8001c0e:	d036                	sw	a3,32(sp)
 8001c10:	d23a                	sw	a4,36(sp)
 8001c12:	d43e                	sw	a5,40(sp)
 8001c14:	d642                	sw	a6,44(sp)
 8001c16:	d846                	sw	a7,48(sp)
 8001c18:	da72                	sw	t3,52(sp)
 8001c1a:	dc76                	sw	t4,56(sp)
 8001c1c:	de7a                	sw	t5,60(sp)
 8001c1e:	c0fe                	sw	t6,64(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:254

  //------This special CSR read operation, which is actually use mcause as operand to directly store it to memory
  csrrwi  x0, CSR_PUSHMCAUSE, 17
 8001c20:	7ee8d073          	csrwi	0x7ee,17
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:256
  //------This special CSR read operation, which is actually use mepc as operand to directly store it to memory
  csrrwi  x0, CSR_PUSHMEPC, 18
 8001c24:	7ef95073          	csrwi	0x7ef,18
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:258
  //------This special CSR read operation, which is actually use Msubm as operand to directly store it to memory
  csrrwi  x0, CSR_PUSHMSUBM, 19
 8001c28:	7eb9d073          	csrwi	0x7eb,19

08001c2c <service_loop>:
service_loop():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:264
 
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 
 8001c2c:	7ed090f3          	csrrw	ra,0x7ed,ra
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:269
  
  //RESTORE_CONTEXT_EXCPT_X5

  #---- Critical section with interrupts disabled -----------------------
  DISABLE_MIE # Disable interrupts 
 8001c30:	30047073          	csrci	mstatus,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:271

  LOAD x5,  19*REGBYTES(sp)
 8001c34:	42b6                	lw	t0,76(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:272
  csrw CSR_MSUBM, x5  
 8001c36:	7c429073          	csrw	0x7c4,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:273
  LOAD x5,  18*REGBYTES(sp)
 8001c3a:	42a6                	lw	t0,72(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:274
  csrw CSR_MEPC, x5  
 8001c3c:	34129073          	csrw	mepc,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:275
  LOAD x5,  17*REGBYTES(sp)
 8001c40:	4296                	lw	t0,68(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:276
  csrw CSR_MCAUSE, x5  
 8001c42:	34229073          	csrw	mcause,t0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:279


  RESTORE_CONTEXT
 8001c46:	4082                	lw	ra,0(sp)
 8001c48:	4212                	lw	tp,4(sp)
 8001c4a:	42a2                	lw	t0,8(sp)
 8001c4c:	4332                	lw	t1,12(sp)
 8001c4e:	43c2                	lw	t2,16(sp)
 8001c50:	4552                	lw	a0,20(sp)
 8001c52:	45e2                	lw	a1,24(sp)
 8001c54:	4672                	lw	a2,28(sp)
 8001c56:	5682                	lw	a3,32(sp)
 8001c58:	5712                	lw	a4,36(sp)
 8001c5a:	57a2                	lw	a5,40(sp)
 8001c5c:	5832                	lw	a6,44(sp)
 8001c5e:	58c2                	lw	a7,48(sp)
 8001c60:	5e52                	lw	t3,52(sp)
 8001c62:	5ee2                	lw	t4,56(sp)
 8001c64:	5f72                	lw	t5,60(sp)
 8001c66:	4f86                	lw	t6,64(sp)
 8001c68:	6161                	addi	sp,sp,80
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/entry.S:283

  
  // Return to regular code
  mret
 8001c6a:	30200073          	mret

08001c6e <handle_nmi>:
handle_nmi():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:10
#include "riscv_encoding.h"
#include "n200_func.h"

__attribute__((weak)) uintptr_t handle_nmi()
{
  write(1, "nmi\n", 5);
 8001c6e:	080005b7          	lui	a1,0x8000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:9
{
 8001c72:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:10
  write(1, "nmi\n", 5);
 8001c74:	4615                	li	a2,5
 8001c76:	54c58593          	addi	a1,a1,1356 # 800054c <GPIO_PORT+0x34>
 8001c7a:	4505                	li	a0,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:9
{
 8001c7c:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:10
  write(1, "nmi\n", 5);
 8001c7e:	24e010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:11
  _exit(1);
 8001c82:	4505                	li	a0,1
 8001c84:	338d                	jal	80019e6 <_exit>

08001c86 <handle_trap>:
handle_trap():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:17
  return 0;
}


__attribute__((weak)) uintptr_t handle_trap(uintptr_t mcause, uintptr_t sp)
{
 8001c86:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:18
  if(mcause == 0xFFF) {
 8001c88:	6785                	lui	a5,0x1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:17
{
 8001c8a:	c422                	sw	s0,8(sp)
 8001c8c:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:18
  if(mcause == 0xFFF) {
 8001c8e:	17fd                	addi	a5,a5,-1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:17
{
 8001c90:	842a                	mv	s0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:18
  if(mcause == 0xFFF) {
 8001c92:	00f50c63          	beq	a0,a5,8001caa <handle_trap+0x24>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:21
      handle_nmi();
  }
  write(1, "trap\n", 5);
 8001c96:	080005b7          	lui	a1,0x8000
 8001c9a:	4615                	li	a2,5
 8001c9c:	55458593          	addi	a1,a1,1364 # 8000554 <GPIO_PORT+0x3c>
 8001ca0:	4505                	li	a0,1
 8001ca2:	22a010ef          	jal	ra,8002ecc <write>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:25
  //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);
 8001ca6:	8522                	mv	a0,s0
 8001ca8:	3b3d                	jal	80019e6 <_exit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/handlers.c:19
      handle_nmi();
 8001caa:	37d1                	jal	8001c6e <handle_nmi>
 8001cac:	b7ed                	j	8001c96 <handle_trap+0x10>

08001cae <_init>:
_init():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:11
#include "riscv_encoding.h"
#include "n200_func.h"

extern uint32_t disable_mcycle_minstret();
void _init()
{
 8001cae:	1141                	addi	sp,sp,-16
 8001cb0:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:12
	SystemInit();
 8001cb2:	2b25                	jal	80021ea <SystemInit>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:15

	//ECLIC init
	eclic_init(ECLIC_NUM_INTERRUPTS);
 8001cb4:	05700513          	li	a0,87
 8001cb8:	2039                	jal	8001cc6 <eclic_init>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:16
	eclic_mode_enable();
 8001cba:	20f5                	jal	8001da6 <eclic_mode_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:30
	//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();
}
 8001cbc:	40b2                	lw	ra,12(sp)
 8001cbe:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:29
	disable_mcycle_minstret();
 8001cc0:	d68fe06f          	j	8000228 <disable_mcycle_minstret>

08001cc4 <_fini>:
_fini():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/env_Eclipse/init.c:34

void _fini()
{
}
 8001cc4:	8082                	ret

08001cc6 <eclic_init>:
eclic_init():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:126
{

  typedef volatile uint32_t vuint32_t;

  //clear cfg register 
  *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET)=0;
 8001cc6:	d2000737          	lui	a4,0xd2000
 8001cca:	00070023          	sb	zero,0(a4) # d2000000 <_sp+0xb1ff8000>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:135

  //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);
 8001cce:	0512                	slli	a0,a0,0x4
 8001cd0:	d20017b7          	lui	a5,0xd2001
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:129
  *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_MTH_OFFSET)=0;
 8001cd4:	000705a3          	sb	zero,11(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:135
  vuint32_t * upper = (vuint32_t*)(base + num_irq*4);
 8001cd8:	953e                	add	a0,a0,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:137

  for (ptr = base; ptr < upper; ptr=ptr+4){
 8001cda:	00a7f763          	bgeu	a5,a0,8001ce8 <eclic_init+0x22>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:138 (discriminator 3)
    *ptr = 0;
 8001cde:	0007a023          	sw	zero,0(a5) # d2001000 <_sp+0xb1ff9000>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:137 (discriminator 3)
  for (ptr = base; ptr < upper; ptr=ptr+4){
 8001ce2:	07c1                	addi	a5,a5,16
 8001ce4:	fea7ede3          	bltu	a5,a0,8001cde <eclic_init+0x18>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:140
  }
}
 8001ce8:	8082                	ret

08001cea <eclic_enable_interrupt>:
eclic_enable_interrupt():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:145



void eclic_enable_interrupt (uint32_t source) {
    *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_IE_OFFSET+source*4) = 1;
 8001cea:	d20017b7          	lui	a5,0xd2001
 8001cee:	0785                	addi	a5,a5,1
 8001cf0:	050a                	slli	a0,a0,0x2
 8001cf2:	953e                	add	a0,a0,a5
 8001cf4:	4785                	li	a5,1
 8001cf6:	00f50023          	sb	a5,0(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:146
}
 8001cfa:	8082                	ret

08001cfc <eclic_set_nlbits>:
eclic_get_cliccfg():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:181
void eclic_set_cliccfg (uint8_t cliccfg){
  *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET) = cliccfg;
}

uint8_t eclic_get_cliccfg  (){
  return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET);
 8001cfc:	d2000737          	lui	a4,0xd2000
 8001d00:	00074783          	lbu	a5,0(a4) # d2000000 <_sp+0xb1ff8000>
eclic_set_nlbits():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:195
}

//sets nlbits 
void eclic_set_nlbits(uint8_t nlbits) {
  //shift nlbits to correct position
  uint8_t nlbits_shifted = nlbits << ECLIC_CFG_NLBITS_LSB;
 8001d04:	0506                	slli	a0,a0,0x1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:199

  //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); 
 8001d06:	8979                	andi	a0,a0,30
 8001d08:	0e17f793          	andi	a5,a5,225
 8001d0c:	8d5d                	or	a0,a0,a5
eclic_set_cliccfg():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:177
  *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET) = cliccfg;
 8001d0e:	00a70023          	sb	a0,0(a4)
eclic_set_nlbits():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:202

  eclic_set_cliccfg(new_cliccfg);
}
 8001d12:	8082                	ret

08001d14 <eclic_set_irq_lvl_abs>:
eclic_get_cliccfg():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:181
  return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET);
 8001d14:	d20007b7          	lui	a5,0xd2000
 8001d18:	0007c703          	lbu	a4,0(a5) # d2000000 <_sp+0xb1ff8000>
eclic_set_irq_lvl_abs():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:261
  if (nlbits > ECLICINTCTLBITS) {
    nlbits = ECLICINTCTLBITS;
  }

  //shift lvl_abs into correct bit position
  uint8_t lvl = lvl_abs << (8-nlbits);
 8001d1c:	4791                	li	a5,4
eclic_get_nlbits():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:208
  nlbits = (nlbits & ECLIC_CFG_NLBITS_MASK) >> ECLIC_CFG_NLBITS_LSB;
 8001d1e:	8305                	srli	a4,a4,0x1
 8001d20:	8b3d                	andi	a4,a4,15
eclic_set_irq_lvl_abs():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:261
  uint8_t lvl = lvl_abs << (8-nlbits);
 8001d22:	86ba                	mv	a3,a4
 8001d24:	00e7f363          	bgeu	a5,a4,8001d2a <eclic_set_irq_lvl_abs+0x16>
 8001d28:	4691                	li	a3,4
eclic_get_intctrl():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:165
  return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_CTRL_OFFSET+source*4);
 8001d2a:	d20017b7          	lui	a5,0xd2001
 8001d2e:	078d                	addi	a5,a5,3
 8001d30:	050a                	slli	a0,a0,0x2
 8001d32:	953e                	add	a0,a0,a5
 8001d34:	00054783          	lbu	a5,0(a0)
eclic_set_irq_lvl_abs():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:261
  uint8_t lvl = lvl_abs << (8-nlbits);
 8001d38:	0ff6f613          	andi	a2,a3,255
 8001d3c:	4721                	li	a4,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:266
 
  //write to clicintctrl
  uint8_t current_intctrl = eclic_get_intctrl(source);
  //shift intctrl left to mask off unused bits
  current_intctrl = current_intctrl << nlbits;
 8001d3e:	00d797b3          	sll	a5,a5,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:268
  //shift intctrl into correct bit position
  current_intctrl = current_intctrl >> nlbits;
 8001d42:	0ff7f793          	andi	a5,a5,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:261
  uint8_t lvl = lvl_abs << (8-nlbits);
 8001d46:	8f11                	sub	a4,a4,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:268
  current_intctrl = current_intctrl >> nlbits;
 8001d48:	40d7d7b3          	sra	a5,a5,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:261
  uint8_t lvl = lvl_abs << (8-nlbits);
 8001d4c:	00e595b3          	sll	a1,a1,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:270

  eclic_set_intctrl(source, (current_intctrl | lvl));
 8001d50:	8fcd                	or	a5,a5,a1
 8001d52:	0ff7f793          	andi	a5,a5,255
eclic_set_intctrl():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:161
  *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_CTRL_OFFSET+source*4) = intctrl;
 8001d56:	00f50023          	sb	a5,0(a0)
eclic_set_irq_lvl_abs():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:271
}
 8001d5a:	8082                	ret

08001d5c <eclic_set_irq_priority>:
eclic_get_cliccfg():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:181
  return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_CFG_OFFSET);
 8001d5c:	d20007b7          	lui	a5,0xd2000
 8001d60:	0007c703          	lbu	a4,0(a5) # d2000000 <_sp+0xb1ff8000>
eclic_get_nlbits():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:208
  nlbits = (nlbits & ECLIC_CFG_NLBITS_MASK) >> ECLIC_CFG_NLBITS_LSB;
 8001d64:	8305                	srli	a4,a4,0x1
eclic_set_irq_priority():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:294

//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) {
 8001d66:	00c77793          	andi	a5,a4,12
 8001d6a:	ef85                	bnez	a5,8001da2 <eclic_set_irq_priority+0x46>
eclic_get_intctrl():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:165
  return *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_CTRL_OFFSET+source*4);
 8001d6c:	d20016b7          	lui	a3,0xd2001
 8001d70:	050a                	slli	a0,a0,0x2
 8001d72:	068d                	addi	a3,a3,3
 8001d74:	96aa                	add	a3,a3,a0
 8001d76:	0006c783          	lbu	a5,0(a3) # d2001000 <_sp+0xb1ff9000>
eclic_set_irq_priority():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:305
	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);
 8001d7a:	4621                	li	a2,8
 8001d7c:	8b3d                	andi	a4,a4,15
 8001d7e:	40e60733          	sub	a4,a2,a4
 8001d82:	40e7d7b3          	sra	a5,a5,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:300
	priority = priority << (8 - ECLICINTCTLBITS);
 8001d86:	00459513          	slli	a0,a1,0x4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:307
	//shift intctrl into correct bit position
	current_intctrl = current_intctrl << (8-nlbits);
 8001d8a:	0ff7f793          	andi	a5,a5,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:300
	priority = priority << (8 - ECLICINTCTLBITS);
 8001d8e:	0ff57513          	andi	a0,a0,255
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:307
	current_intctrl = current_intctrl << (8-nlbits);
 8001d92:	00e797b3          	sll	a5,a5,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:309

	eclic_set_intctrl(source, (current_intctrl | priority));
 8001d96:	8fc9                	or	a5,a5,a0
 8001d98:	0ff7f793          	andi	a5,a5,255
eclic_set_intctrl():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:161
  *(volatile uint8_t*)(ECLIC_ADDR_BASE+ECLIC_INT_CTRL_OFFSET+source*4) = intctrl;
 8001d9c:	00f68023          	sb	a5,0(a3)
eclic_set_irq_priority():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:311

	return priority;
 8001da0:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:296
		return 0;
 8001da2:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:312
}
 8001da4:	8082                	ret

08001da6 <eclic_mode_enable>:
eclic_mode_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:333

	return priority;
}

void eclic_mode_enable() {
  uint32_t mtvec_value = read_csr(mtvec);
 8001da6:	305027f3          	csrr	a5,mtvec
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:334
  mtvec_value = mtvec_value & 0xFFFFFFC0;
 8001daa:	fc07f793          	andi	a5,a5,-64
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:335
  mtvec_value = mtvec_value | 0x00000003;
 8001dae:	0037e793          	ori	a5,a5,3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:336
  write_csr(mtvec,mtvec_value);
 8001db2:	30579073          	csrw	mtvec,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../RISCV/drivers/n200_func.c:337
}
 8001db6:	8082                	ret

08001db8 <eclic_global_interrupt_enable>:
eclic_global_interrupt_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:49
    \param[out] none
    \retval     none
*/
void eclic_global_interrupt_enable(void){
    /* set machine interrupt enable bit */
    set_csr(mstatus, MSTATUS_MIE);
 8001db8:	300467f3          	csrrsi	a5,mstatus,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:50
}
 8001dbc:	8082                	ret

08001dbe <eclic_priority_group_set>:
eclic_priority_group_set():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:75
      \arg        ECLIC_PRIGROUP_LEVEL4_PRIO0
    \param[out] none
    \retval     none
*/
void eclic_priority_group_set(uint32_t prigroup) {
    eclic_set_nlbits(prigroup);
 8001dbe:	0ff57513          	andi	a0,a0,255
 8001dc2:	bf2d                	j	8001cfc <eclic_set_nlbits>

08001dc4 <eclic_irq_enable>:
eclic_irq_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:86
    \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 lvl_abs, uint8_t priority) {
 8001dc4:	1141                	addi	sp,sp,-16
 8001dc6:	c606                	sw	ra,12(sp)
 8001dc8:	c422                	sw	s0,8(sp)
 8001dca:	c226                	sw	s1,4(sp)
 8001dcc:	c04a                	sw	s2,0(sp)
 8001dce:	842a                	mv	s0,a0
 8001dd0:	84b2                	mv	s1,a2
 8001dd2:	892e                	mv	s2,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:87
    eclic_enable_interrupt(source);
 8001dd4:	3f19                	jal	8001cea <eclic_enable_interrupt>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:88
    eclic_set_irq_lvl_abs(source, lvl_abs);
 8001dd6:	85ca                	mv	a1,s2
 8001dd8:	8522                	mv	a0,s0
 8001dda:	3f2d                	jal	8001d14 <eclic_set_irq_lvl_abs>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:89
    eclic_set_irq_priority(source, priority);
 8001ddc:	8522                	mv	a0,s0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:90
}
 8001dde:	4422                	lw	s0,8(sp)
 8001de0:	40b2                	lw	ra,12(sp)
 8001de2:	4902                	lw	s2,0(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:89
    eclic_set_irq_priority(source, priority);
 8001de4:	85a6                	mv	a1,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:90
}
 8001de6:	4492                	lw	s1,4(sp)
 8001de8:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_eclic.c:89
    eclic_set_irq_priority(source, priority);
 8001dea:	bf8d                	j	8001d5c <eclic_set_irq_priority>

08001dec <gpio_init>:
gpio_init():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:134

    /* GPIO mode configuration */
    temp_mode = (uint32_t) (mode & ((uint32_t) 0x0FU));

    /* GPIO speed configuration */
    if (((uint32_t) 0x00U) != ((uint32_t) mode & ((uint32_t) 0x10U))) {
 8001dec:	0105f793          	andi	a5,a1,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:131
    temp_mode = (uint32_t) (mode & ((uint32_t) 0x0FU));
 8001df0:	00f5f893          	andi	a7,a1,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:134
    if (((uint32_t) 0x00U) != ((uint32_t) mode & ((uint32_t) 0x10U))) {
 8001df4:	c399                	beqz	a5,8001dfa <gpio_init+0xe>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:136
        /* output mode max speed:10MHz,2MHz,50MHz */
        temp_mode |= (uint32_t) speed;
 8001df6:	00c8e8b3          	or	a7,a7,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:125
{
 8001dfa:	4781                	li	a5,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:141
    }

    /* configure the eight low port pins with GPIO_CTL0 */
    for (i = 0U; i < 8U; i++) {
        if ((1U << i) & pin) {
 8001dfc:	4e85                	li	t4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:145
            reg = GPIO_CTL0(gpio_periph);

            /* clear the specified pin mode bits */
            reg &= ~GPIO_MODE_MASK(i);
 8001dfe:	4e3d                	li	t3,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:150
            /* set the specified pin mode bits */
            reg |= GPIO_MODE_SET(i, temp_mode);

            /* set IPD or IPU */
            if (GPIO_MODE_IPD == mode) {
 8001e00:	02800f93          	li	t6,40
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:155
                /* 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) {
 8001e04:	04800293          	li	t0,72
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:140
    for (i = 0U; i < 8U; i++) {
 8001e08:	4321                	li	t1,8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:142
            reg = GPIO_CTL0(gpio_periph);
 8001e0a:	00279613          	slli	a2,a5,0x2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:141
        if ((1U << i) & pin) {
 8001e0e:	00fe9733          	sll	a4,t4,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:145
            reg &= ~GPIO_MODE_MASK(i);
 8001e12:	00ce1833          	sll	a6,t3,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:141
        if ((1U << i) & pin) {
 8001e16:	8f75                	and	a4,a4,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:145
            reg &= ~GPIO_MODE_MASK(i);
 8001e18:	fff84813          	not	a6,a6
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:147
            reg |= GPIO_MODE_SET(i, temp_mode);
 8001e1c:	00c89633          	sll	a2,a7,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:141
        if ((1U << i) & pin) {
 8001e20:	cf01                	beqz	a4,8001e38 <gpio_init+0x4c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:142
            reg = GPIO_CTL0(gpio_periph);
 8001e22:	00052f03          	lw	t5,0(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:145
            reg &= ~GPIO_MODE_MASK(i);
 8001e26:	01e87833          	and	a6,a6,t5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:147
            reg |= GPIO_MODE_SET(i, temp_mode);
 8001e2a:	01066633          	or	a2,a2,a6
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:150
            if (GPIO_MODE_IPD == mode) {
 8001e2e:	05f58f63          	beq	a1,t6,8001e8c <gpio_init+0xa0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:155
                if (GPIO_MODE_IPU == mode) {
 8001e32:	04558963          	beq	a1,t0,8001e84 <gpio_init+0x98>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:160
                    GPIO_BOP(gpio_periph) = (uint32_t) ((1U << i) & pin);
                }
            }
            /* set GPIO_CTL0 register */
            GPIO_CTL0(gpio_periph) = reg;
 8001e36:	c110                	sw	a2,0(a0)
 8001e38:	0785                	addi	a5,a5,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:140 (discriminator 2)
    for (i = 0U; i < 8U; i++) {
 8001e3a:	fc6798e3          	bne	a5,t1,8001e0a <gpio_init+0x1e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:165
        }
    }
    /* configure the eight high port pins with GPIO_CTL1 */
    for (i = 8U; i < 16U; i++) {
        if ((1U << i) & pin) {
 8001e3e:	4e85                	li	t4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:169
            reg = GPIO_CTL1(gpio_periph);

            /* clear the specified pin mode bits */
            reg &= ~GPIO_MODE_MASK(i - 8U);
 8001e40:	4e3d                	li	t3,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:174
            /* set the specified pin mode bits */
            reg |= GPIO_MODE_SET(i - 8U, temp_mode);

            /* set IPD or IPU */
            if (GPIO_MODE_IPD == mode) {
 8001e42:	02800f93          	li	t6,40
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:179
                /* 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) {
 8001e46:	04800293          	li	t0,72
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:164
    for (i = 8U; i < 16U; i++) {
 8001e4a:	4341                	li	t1,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:169
            reg &= ~GPIO_MODE_MASK(i - 8U);
 8001e4c:	00279713          	slli	a4,a5,0x2
 8001e50:	1701                	addi	a4,a4,-32
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:165
        if ((1U << i) & pin) {
 8001e52:	00fe9633          	sll	a2,t4,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:169
            reg &= ~GPIO_MODE_MASK(i - 8U);
 8001e56:	00ee1833          	sll	a6,t3,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:165
        if ((1U << i) & pin) {
 8001e5a:	8e75                	and	a2,a2,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:169
            reg &= ~GPIO_MODE_MASK(i - 8U);
 8001e5c:	fff84813          	not	a6,a6
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:171
            reg |= GPIO_MODE_SET(i - 8U, temp_mode);
 8001e60:	00e89733          	sll	a4,a7,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:165
        if ((1U << i) & pin) {
 8001e64:	ce01                	beqz	a2,8001e7c <gpio_init+0x90>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:166
            reg = GPIO_CTL1(gpio_periph);
 8001e66:	00452f03          	lw	t5,4(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:169
            reg &= ~GPIO_MODE_MASK(i - 8U);
 8001e6a:	01e87833          	and	a6,a6,t5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:171
            reg |= GPIO_MODE_SET(i - 8U, temp_mode);
 8001e6e:	01076733          	or	a4,a4,a6
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:174
            if (GPIO_MODE_IPD == mode) {
 8001e72:	01f58f63          	beq	a1,t6,8001e90 <gpio_init+0xa4>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:179
                if (GPIO_MODE_IPU == mode) {
 8001e76:	00558963          	beq	a1,t0,8001e88 <gpio_init+0x9c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:184
                    GPIO_BOP(gpio_periph) = (uint32_t) ((1U << i) & pin);
                }
            }
            /* set GPIO_CTL1 register */
            GPIO_CTL1(gpio_periph) = reg;
 8001e7a:	c158                	sw	a4,4(a0)
 8001e7c:	0785                	addi	a5,a5,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:164 (discriminator 2)
    for (i = 8U; i < 16U; i++) {
 8001e7e:	fc6797e3          	bne	a5,t1,8001e4c <gpio_init+0x60>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:187
        }
    }
}
 8001e82:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:156
                    GPIO_BOP(gpio_periph) = (uint32_t) ((1U << i) & pin);
 8001e84:	c918                	sw	a4,16(a0)
 8001e86:	bf45                	j	8001e36 <gpio_init+0x4a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:180
                    GPIO_BOP(gpio_periph) = (uint32_t) ((1U << i) & pin);
 8001e88:	c910                	sw	a2,16(a0)
 8001e8a:	bfc5                	j	8001e7a <gpio_init+0x8e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:152
                GPIO_BC(gpio_periph) = (uint32_t) ((1U << i) & pin);
 8001e8c:	c958                	sw	a4,20(a0)
 8001e8e:	b765                	j	8001e36 <gpio_init+0x4a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_gpio.c:176
                GPIO_BC(gpio_periph) = (uint32_t) ((1U << i) & pin);
 8001e90:	c950                	sw	a2,20(a0)
 8001e92:	b7e5                	j	8001e7a <gpio_init+0x8e>

08001e94 <rcu_periph_clock_enable>:
rcu_periph_clock_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:99
    \param[out] none
    \retval     none
*/
void rcu_periph_clock_enable(rcu_periph_enum periph)
{
    RCU_REG_VAL(periph) |= BIT(RCU_BIT_POS(periph));
 8001e94:	400217b7          	lui	a5,0x40021
 8001e98:	00655713          	srli	a4,a0,0x6
 8001e9c:	973e                	add	a4,a4,a5
 8001e9e:	4314                	lw	a3,0(a4)
 8001ea0:	4785                	li	a5,1
 8001ea2:	00a797b3          	sll	a5,a5,a0
 8001ea6:	8fd5                	or	a5,a5,a3
 8001ea8:	c31c                	sw	a5,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:100
}
 8001eaa:	8082                	ret

08001eac <rcu_periph_reset_enable>:
rcu_periph_reset_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:183
    \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));
 8001eac:	400217b7          	lui	a5,0x40021
 8001eb0:	00655713          	srli	a4,a0,0x6
 8001eb4:	973e                	add	a4,a4,a5
 8001eb6:	4314                	lw	a3,0(a4)
 8001eb8:	4785                	li	a5,1
 8001eba:	00a797b3          	sll	a5,a5,a0
 8001ebe:	8fd5                	or	a5,a5,a3
 8001ec0:	c31c                	sw	a5,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:184
}
 8001ec2:	8082                	ret

08001ec4 <rcu_periph_reset_disable>:
rcu_periph_reset_disable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:209
    \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));
 8001ec4:	400217b7          	lui	a5,0x40021
 8001ec8:	00655713          	srli	a4,a0,0x6
 8001ecc:	973e                	add	a4,a4,a5
 8001ece:	4314                	lw	a3,0(a4)
 8001ed0:	4785                	li	a5,1
 8001ed2:	00a797b3          	sll	a5,a5,a0
 8001ed6:	fff7c793          	not	a5,a5
 8001eda:	8ff5                	and	a5,a5,a3
 8001edc:	c31c                	sw	a5,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:210
}
 8001ede:	8082                	ret

08001ee0 <rcu_clock_freq_get>:
rcu_clock_freq_get():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1013
    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};
 8001ee0:	040307b7          	lui	a5,0x4030
 8001ee4:	09080737          	lui	a4,0x9080
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1006
{
 8001ee8:	1101                	addi	sp,sp,-32
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1013
    uint8_t ahb_exp[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
 8001eea:	20178793          	addi	a5,a5,513 # 4030201 <__stack_size+0x402fa01>
 8001eee:	70670713          	addi	a4,a4,1798 # 9080706 <__fini_array_end+0x107d67a>
 8001ef2:	cc3e                	sw	a5,24(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1014
    uint8_t apb1_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4};
 8001ef4:	c23e                	sw	a5,4(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1015
    uint8_t apb2_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4};
 8001ef6:	c63e                	sw	a5,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1013
    uint8_t ahb_exp[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
 8001ef8:	c802                	sw	zero,16(sp)
 8001efa:	ca02                	sw	zero,20(sp)
 8001efc:	ce3a                	sw	a4,28(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1014
    uint8_t apb1_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4};
 8001efe:	c002                	sw	zero,0(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1015
    uint8_t apb2_exp[8] = {0, 0, 0, 0, 1, 2, 3, 4};
 8001f00:	c402                	sw	zero,8(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1017

    sws = GET_BITS(RCU_CFG0, 2, 3);
 8001f02:	400216b7          	lui	a3,0x40021
 8001f06:	42d8                	lw	a4,4(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1021
    switch(sws){
    /* IRC8M is selected as CK_SYS */
    case SEL_IRC8M:
        cksys_freq = IRC8M_VALUE;
 8001f08:	007a17b7          	lui	a5,0x7a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1018
    switch(sws){
 8001f0c:	4609                	li	a2,2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1017
    sws = GET_BITS(RCU_CFG0, 2, 3);
 8001f0e:	8309                	srli	a4,a4,0x2
 8001f10:	8b0d                	andi	a4,a4,3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1021
        cksys_freq = IRC8M_VALUE;
 8001f12:	20078793          	addi	a5,a5,512 # 7a1200 <__stack_size+0x7a0a00>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1018
    switch(sws){
 8001f16:	04c70d63          	beq	a4,a2,8001f70 <rcu_clock_freq_get+0x90>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1079
        cksys_freq = IRC8M_VALUE;
        break;
    }

    /* calculate AHB clock frequency */
    idx = GET_BITS(RCU_CFG0, 4, 7);
 8001f1a:	40021737          	lui	a4,0x40021
 8001f1e:	4350                	lw	a2,4(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1084
    clk_exp = ahb_exp[idx];
    ahb_freq = cksys_freq >> clk_exp;
    
    /* calculate APB1 clock frequency */
    idx = GET_BITS(RCU_CFG0, 8, 10);
 8001f20:	4354                	lw	a3,4(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1089
    clk_exp = apb1_exp[idx];
    apb1_freq = ahb_freq >> clk_exp;
    
    /* calculate APB2 clock frequency */
    idx = GET_BITS(RCU_CFG0, 11, 13);
 8001f22:	4358                	lw	a4,4(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1079
    idx = GET_BITS(RCU_CFG0, 4, 7);
 8001f24:	8211                	srli	a2,a2,0x4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1080
    clk_exp = ahb_exp[idx];
 8001f26:	100c                	addi	a1,sp,32
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1079
    idx = GET_BITS(RCU_CFG0, 4, 7);
 8001f28:	8a3d                	andi	a2,a2,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1080
    clk_exp = ahb_exp[idx];
 8001f2a:	962e                	add	a2,a2,a1
 8001f2c:	ff064603          	lbu	a2,-16(a2)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1084
    idx = GET_BITS(RCU_CFG0, 8, 10);
 8001f30:	82a1                	srli	a3,a3,0x8
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1089
    idx = GET_BITS(RCU_CFG0, 11, 13);
 8001f32:	832d                	srli	a4,a4,0xb
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1084
    idx = GET_BITS(RCU_CFG0, 8, 10);
 8001f34:	8a9d                	andi	a3,a3,7
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1089
    idx = GET_BITS(RCU_CFG0, 11, 13);
 8001f36:	8b1d                	andi	a4,a4,7
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1090
    clk_exp = apb2_exp[idx];
 8001f38:	972e                	add	a4,a4,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1085
    clk_exp = apb1_exp[idx];
 8001f3a:	96ae                	add	a3,a3,a1
 8001f3c:	4805                	li	a6,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1081
    ahb_freq = cksys_freq >> clk_exp;
 8001f3e:	00c7d633          	srl	a2,a5,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1085
    clk_exp = apb1_exp[idx];
 8001f42:	fe06c583          	lbu	a1,-32(a3) # 40020fe0 <_sp+0x20018fe0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1090
    clk_exp = apb2_exp[idx];
 8001f46:	fe874703          	lbu	a4,-24(a4) # 40020fe8 <_sp+0x20018fe8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1094
    apb2_freq = ahb_freq >> clk_exp;
    
    /* return the clocks frequency */
    switch(clock){
 8001f4a:	0b050163          	beq	a0,a6,8001fec <rcu_clock_freq_get+0x10c>
 8001f4e:	cd11                	beqz	a0,8001f6a <rcu_clock_freq_get+0x8a>
 8001f50:	4689                	li	a3,2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1086
    apb1_freq = ahb_freq >> clk_exp;
 8001f52:	00b657b3          	srl	a5,a2,a1
 8001f56:	00d50a63          	beq	a0,a3,8001f6a <rcu_clock_freq_get+0x8a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1007
    uint32_t sws, ck_freq = 0U;
 8001f5a:	1575                	addi	a0,a0,-3
 8001f5c:	00153513          	seqz	a0,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1091
    apb2_freq = ahb_freq >> clk_exp;
 8001f60:	00e657b3          	srl	a5,a2,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1007
    uint32_t sws, ck_freq = 0U;
 8001f64:	40a00533          	neg	a0,a0
 8001f68:	8fe9                	and	a5,a5,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1111
        break;
    default:
        break;
    }
    return ck_freq;
}
 8001f6a:	853e                	mv	a0,a5
 8001f6c:	6105                	addi	sp,sp,32
 8001f6e:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1030
        pllsel = (RCU_CFG0 & RCU_CFG0_PLLSEL);
 8001f70:	42d8                	lw	a4,4(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1032
        if(RCU_PLLSRC_HXTAL == pllsel) {
 8001f72:	00f71613          	slli	a2,a4,0xf
 8001f76:	06065f63          	bgez	a2,8001ff4 <rcu_clock_freq_get+0x114>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1036
            predv0sel = (RCU_CFG1 & RCU_CFG1_PREDV0SEL);
 8001f7a:	56d8                	lw	a4,44(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1038
            if(RCU_PREDV0SRC_CKPLL1 == predv0sel){
 8001f7c:	00f71613          	slli	a2,a4,0xf
 8001f80:	02065863          	bgez	a2,8001fb0 <rcu_clock_freq_get+0xd0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1039
                predv1 = (uint32_t)((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U;
 8001f84:	56d8                	lw	a4,44(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1040
                pll1mf = (uint32_t)((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U;
 8001f86:	56dc                	lw	a5,44(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1041
                if(17U == pll1mf){
 8001f88:	4645                	li	a2,17
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1039
                predv1 = (uint32_t)((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U;
 8001f8a:	00475693          	srli	a3,a4,0x4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1040
                pll1mf = (uint32_t)((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U;
 8001f8e:	83a1                	srli	a5,a5,0x8
 8001f90:	8bbd                	andi	a5,a5,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1039
                predv1 = (uint32_t)((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U;
 8001f92:	8abd                	andi	a3,a3,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1040
                pll1mf = (uint32_t)((RCU_CFG1 & RCU_CFG1_PLL1MF) >> 8) + 2U;
 8001f94:	00278713          	addi	a4,a5,2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1039
                predv1 = (uint32_t)((RCU_CFG1 & RCU_CFG1_PREDV1) >> 4) + 1U;
 8001f98:	0685                	addi	a3,a3,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1041
                if(17U == pll1mf){
 8001f9a:	00c71363          	bne	a4,a2,8001fa0 <rcu_clock_freq_get+0xc0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1042
                    pll1mf = 20U;
 8001f9e:	4751                	li	a4,20
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1044
                ck_src = (ck_src / predv1) * pll1mf;
 8001fa0:	007a17b7          	lui	a5,0x7a1
 8001fa4:	20078793          	addi	a5,a5,512 # 7a1200 <__stack_size+0x7a0a00>
 8001fa8:	02d7d7b3          	divu	a5,a5,a3
 8001fac:	02e787b3          	mul	a5,a5,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1046
            predv0 = (RCU_CFG1 & RCU_CFG1_PREDV0) + 1U;
 8001fb0:	40021737          	lui	a4,0x40021
 8001fb4:	5758                	lw	a4,44(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 8001fb6:	400216b7          	lui	a3,0x40021
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1046
            predv0 = (RCU_CFG1 & RCU_CFG1_PREDV0) + 1U;
 8001fba:	8b3d                	andi	a4,a4,15
 8001fbc:	0705                	addi	a4,a4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1047
            ck_src /= predv0;
 8001fbe:	02e7d7b3          	divu	a5,a5,a4
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 8001fc2:	42d8                	lw	a4,4(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1055
        if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
 8001fc4:	42d4                	lw	a3,4(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 8001fc6:	8349                	srli	a4,a4,0x12
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1055
        if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
 8001fc8:	00269613          	slli	a2,a3,0x2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 8001fcc:	8b3d                	andi	a4,a4,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1055
        if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
 8001fce:	04064163          	bltz	a2,8002010 <rcu_clock_freq_get+0x130>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1058
        if(pllmf < 15U){
 8001fd2:	46bd                	li	a3,15
 8001fd4:	04d70063          	beq	a4,a3,8002014 <rcu_clock_freq_get+0x134>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1059
            pllmf += 2U;
 8001fd8:	0709                	addi	a4,a4,2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1066
        if(15U == pllmf){
 8001fda:	02d71e63          	bne	a4,a3,8002016 <rcu_clock_freq_get+0x136>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1068
            cksys_freq = ck_src * 6U + ck_src / 2U;
 8001fde:	00179713          	slli	a4,a5,0x1
 8001fe2:	973e                	add	a4,a4,a5
 8001fe4:	0706                	slli	a4,a4,0x1
 8001fe6:	8385                	srli	a5,a5,0x1
 8001fe8:	97ba                	add	a5,a5,a4
 8001fea:	bf05                	j	8001f1a <rcu_clock_freq_get+0x3a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1099
        ck_freq = ahb_freq;
 8001fec:	87b2                	mv	a5,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1111
}
 8001fee:	853e                	mv	a0,a5
 8001ff0:	6105                	addi	sp,sp,32
 8001ff2:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 8001ff4:	400216b7          	lui	a3,0x40021
 8001ff8:	42d8                	lw	a4,4(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1055
        if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
 8001ffa:	42d4                	lw	a3,4(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1050
            ck_src = IRC8M_VALUE/2U;
 8001ffc:	003d17b7          	lui	a5,0x3d1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 8002000:	8349                	srli	a4,a4,0x12
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1055
        if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
 8002002:	00269613          	slli	a2,a3,0x2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1050
            ck_src = IRC8M_VALUE/2U;
 8002006:	90078793          	addi	a5,a5,-1792 # 3d0900 <__stack_size+0x3d0100>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1054
        pllmf = GET_BITS(RCU_CFG0, 18, 21);
 800200a:	8b3d                	andi	a4,a4,15
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1055
        if((RCU_CFG0 & RCU_CFG0_PLLMF_4)){
 800200c:	fc0653e3          	bgez	a2,8001fd2 <rcu_clock_freq_get+0xf2>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1056
            pllmf |= 0x10U;
 8002010:	01076713          	ori	a4,a4,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1061
            pllmf += 1U;
 8002014:	0705                	addi	a4,a4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1064
        cksys_freq = ck_src * pllmf;
 8002016:	02f707b3          	mul	a5,a4,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_rcu.c:1066
        if(15U == pllmf){
 800201a:	b701                	j	8001f1a <rcu_clock_freq_get+0x3a>

0800201c <usart_deinit>:
usart_deinit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:44
    \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)
{
 800201c:	1141                	addi	sp,sp,-16
 800201e:	400057b7          	lui	a5,0x40005
 8002022:	c606                	sw	ra,12(sp)
 8002024:	c0078713          	addi	a4,a5,-1024 # 40004c00 <_sp+0x1fffcc00>
 8002028:	04e50663          	beq	a0,a4,8002074 <usart_deinit+0x58>
 800202c:	02a77263          	bgeu	a4,a0,8002050 <usart_deinit+0x34>
 8002030:	04f50a63          	beq	a0,a5,8002084 <usart_deinit+0x68>
 8002034:	400147b7          	lui	a5,0x40014
 8002038:	80078793          	addi	a5,a5,-2048 # 40013800 <_sp+0x2000b800>
 800203c:	04f51c63          	bne	a0,a5,8002094 <usart_deinit+0x78>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:48
    switch(usart_periph){
    case USART0:
        /* reset USART0 */
        rcu_periph_reset_enable(RCU_USART0RST);
 8002040:	30e00513          	li	a0,782
 8002044:	35a5                	jal	8001eac <rcu_periph_reset_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
        rcu_periph_reset_disable(RCU_UART4RST);
        break;
    default:
        break;
    }
}
 8002046:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:49
        rcu_periph_reset_disable(RCU_USART0RST);
 8002048:	30e00513          	li	a0,782
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 800204c:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:49
        rcu_periph_reset_disable(RCU_USART0RST);
 800204e:	bd9d                	j	8001ec4 <rcu_periph_reset_disable>
 8002050:	40004737          	lui	a4,0x40004
 8002054:	40070713          	addi	a4,a4,1024 # 40004400 <_sp+0x1fffc400>
 8002058:	04e50163          	beq	a0,a4,800209a <usart_deinit+0x7e>
 800205c:	80078793          	addi	a5,a5,-2048
 8002060:	02f51a63          	bne	a0,a5,8002094 <usart_deinit+0x78>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:58
        rcu_periph_reset_enable(RCU_USART2RST);
 8002064:	41200513          	li	a0,1042
 8002068:	3591                	jal	8001eac <rcu_periph_reset_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 800206a:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:59
        rcu_periph_reset_disable(RCU_USART2RST);
 800206c:	41200513          	li	a0,1042
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 8002070:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:59
        rcu_periph_reset_disable(RCU_USART2RST);
 8002072:	bd89                	j	8001ec4 <rcu_periph_reset_disable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:63
        rcu_periph_reset_enable(RCU_UART3RST);
 8002074:	41300513          	li	a0,1043
 8002078:	3d15                	jal	8001eac <rcu_periph_reset_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 800207a:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:64
        rcu_periph_reset_disable(RCU_UART3RST);
 800207c:	41300513          	li	a0,1043
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 8002080:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:64
        rcu_periph_reset_disable(RCU_UART3RST);
 8002082:	b589                	j	8001ec4 <rcu_periph_reset_disable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:68
        rcu_periph_reset_enable(RCU_UART4RST);
 8002084:	41400513          	li	a0,1044
 8002088:	3515                	jal	8001eac <rcu_periph_reset_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 800208a:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:69
        rcu_periph_reset_disable(RCU_UART4RST);
 800208c:	41400513          	li	a0,1044
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 8002090:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:69
        rcu_periph_reset_disable(RCU_UART4RST);
 8002092:	bd0d                	j	8001ec4 <rcu_periph_reset_disable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 8002094:	40b2                	lw	ra,12(sp)
 8002096:	0141                	addi	sp,sp,16
 8002098:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:53
        rcu_periph_reset_enable(RCU_USART1RST);
 800209a:	41100513          	li	a0,1041
 800209e:	3539                	jal	8001eac <rcu_periph_reset_enable>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 80020a0:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:54
        rcu_periph_reset_disable(RCU_USART1RST);
 80020a2:	41100513          	li	a0,1041
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:74
}
 80020a6:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:54
        rcu_periph_reset_disable(RCU_USART1RST);
 80020a8:	bd31                	j	8001ec4 <rcu_periph_reset_disable>

080020aa <usart_baudrate_set>:
usart_baudrate_set():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:84
    \param[in]  baudval: baud rate value
    \param[out] none
    \retval     none
*/ 
void usart_baudrate_set(uint32_t usart_periph, uint32_t baudval)
{
 80020aa:	1141                	addi	sp,sp,-16
 80020ac:	40005737          	lui	a4,0x40005
 80020b0:	c422                	sw	s0,8(sp)
 80020b2:	c226                	sw	s1,4(sp)
 80020b4:	c606                	sw	ra,12(sp)
 80020b6:	c0070793          	addi	a5,a4,-1024 # 40004c00 <_sp+0x1fffcc00>
 80020ba:	842a                	mv	s0,a0
 80020bc:	84ae                	mv	s1,a1
 80020be:	04f50763          	beq	a0,a5,800210c <usart_baudrate_set+0x62>
 80020c2:	02a7fa63          	bgeu	a5,a0,80020f6 <usart_baudrate_set+0x4c>
 80020c6:	04e50363          	beq	a0,a4,800210c <usart_baudrate_set+0x62>
 80020ca:	40014737          	lui	a4,0x40014
 80020ce:	80070713          	addi	a4,a4,-2048 # 40013800 <_sp+0x2000b800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:85
    uint32_t uclk=0U, intdiv=0U, fradiv=0U, udiv=0U;
 80020d2:	4501                	li	a0,0
 80020d4:	00e41463          	bne	s0,a4,80020dc <usart_baudrate_set+0x32>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:90
    switch(usart_periph){
         /* get clock frequency */
    case USART0:
         /* get USART0 clock */
         uclk=rcu_clock_freq_get(CK_APB2);
 80020d8:	450d                	li	a0,3
 80020da:	3519                	jal	8001ee0 <rcu_clock_freq_get>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:112
         break;  
    default:
         break;
    }
    /* oversampling by 16, configure the value of USART_BAUD */
    udiv = (uclk+baudval/2U)/baudval;
 80020dc:	0014d793          	srli	a5,s1,0x1
 80020e0:	97aa                	add	a5,a5,a0
 80020e2:	0297d7b3          	divu	a5,a5,s1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:116
    intdiv = udiv & (0x0000fff0U);
    fradiv = udiv & (0x0000000fU);
    USART_BAUD(usart_periph) = ((USART_BAUD_FRADIV | USART_BAUD_INTDIV) & (intdiv | fradiv));
}
 80020e6:	40b2                	lw	ra,12(sp)
 80020e8:	4492                	lw	s1,4(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:115
    USART_BAUD(usart_periph) = ((USART_BAUD_FRADIV | USART_BAUD_INTDIV) & (intdiv | fradiv));
 80020ea:	07c2                	slli	a5,a5,0x10
 80020ec:	83c1                	srli	a5,a5,0x10
 80020ee:	c41c                	sw	a5,8(s0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:116
}
 80020f0:	4422                	lw	s0,8(sp)
 80020f2:	0141                	addi	sp,sp,16
 80020f4:	8082                	ret
 80020f6:	400046b7          	lui	a3,0x40004
 80020fa:	40068693          	addi	a3,a3,1024 # 40004400 <_sp+0x1fffc400>
 80020fe:	00d50763          	beq	a0,a3,800210c <usart_baudrate_set+0x62>
 8002102:	80070713          	addi	a4,a4,-2048
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:85
    uint32_t uclk=0U, intdiv=0U, fradiv=0U, udiv=0U;
 8002106:	4501                	li	a0,0
 8002108:	fce41ae3          	bne	s0,a4,80020dc <usart_baudrate_set+0x32>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:94
         uclk=rcu_clock_freq_get(CK_APB1);
 800210c:	4509                	li	a0,2
 800210e:	3bc9                	jal	8001ee0 <rcu_clock_freq_get>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:95
         break;
 8002110:	b7f1                	j	80020dc <usart_baudrate_set+0x32>

08002112 <usart_parity_config>:
usart_parity_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:132
    \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);
 8002112:	455c                	lw	a5,12(a0)
 8002114:	9ff7f793          	andi	a5,a5,-1537
 8002118:	c55c                	sw	a5,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:134
    /* configure USART parity mode */
    USART_CTL0(usart_periph) |= paritycfg ;
 800211a:	455c                	lw	a5,12(a0)
 800211c:	8ddd                	or	a1,a1,a5
 800211e:	c54c                	sw	a1,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:135
}
 8002120:	8082                	ret

08002122 <usart_word_length_set>:
usart_word_length_set():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:150
    \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;
 8002122:	455c                	lw	a5,12(a0)
 8002124:	777d                	lui	a4,0xfffff
 8002126:	177d                	addi	a4,a4,-1
 8002128:	8ff9                	and	a5,a5,a4
 800212a:	c55c                	sw	a5,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:152
    /* configure USART word length */
    USART_CTL0(usart_periph) |= wlen;
 800212c:	455c                	lw	a5,12(a0)
 800212e:	8ddd                	or	a1,a1,a5
 8002130:	c54c                	sw	a1,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:153
}
 8002132:	8082                	ret

08002134 <usart_stop_bit_set>:
usart_stop_bit_set():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:170
    \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; 
 8002134:	491c                	lw	a5,16(a0)
 8002136:	7775                	lui	a4,0xffffd
 8002138:	177d                	addi	a4,a4,-1
 800213a:	8ff9                	and	a5,a5,a4
 800213c:	c91c                	sw	a5,16(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:172
    /* configure USART stop bits */
    USART_CTL1(usart_periph) |= stblen;
 800213e:	491c                	lw	a5,16(a0)
 8002140:	8ddd                	or	a1,a1,a5
 8002142:	c90c                	sw	a1,16(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:173
}
 8002144:	8082                	ret

08002146 <usart_enable>:
usart_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:183
    \param[out] none
    \retval     none
*/
void usart_enable(uint32_t usart_periph)
{
    USART_CTL0(usart_periph) |= USART_CTL0_UEN;
 8002146:	455c                	lw	a5,12(a0)
 8002148:	6709                	lui	a4,0x2
 800214a:	8fd9                	or	a5,a5,a4
 800214c:	c55c                	sw	a5,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:184
}
 800214e:	8082                	ret

08002150 <usart_transmit_config>:
usart_transmit_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:211
*/
void usart_transmit_config(uint32_t usart_periph, uint32_t txconfig)
{
    uint32_t ctl = 0U;
    
    ctl = USART_CTL0(usart_periph);
 8002150:	455c                	lw	a5,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:212
    ctl &= ~USART_CTL0_TEN;
 8002152:	9bdd                	andi	a5,a5,-9
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:213
    ctl |= txconfig;
 8002154:	8ddd                	or	a1,a1,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:215
    /* configure transfer mode */
    USART_CTL0(usart_periph) = ctl;
 8002156:	c54c                	sw	a1,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:216
}
 8002158:	8082                	ret

0800215a <usart_receive_config>:
usart_receive_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:232
*/
void usart_receive_config(uint32_t usart_periph, uint32_t rxconfig)
{
    uint32_t ctl = 0U;
    
    ctl = USART_CTL0(usart_periph);
 800215a:	455c                	lw	a5,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:233
    ctl &= ~USART_CTL0_REN;
 800215c:	9bed                	andi	a5,a5,-5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:234
    ctl |= rxconfig;
 800215e:	8ddd                	or	a1,a1,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:236
    /* configure receiver mode */
    USART_CTL0(usart_periph) = ctl;
 8002160:	c54c                	sw	a1,12(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:237
}
 8002162:	8082                	ret

08002164 <usart_data_transmit>:
usart_data_transmit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:248
    \param[out] none
    \retval     none
*/
void usart_data_transmit(uint32_t usart_periph, uint32_t data)
{
    USART_DATA(usart_periph) = USART_DATA_DATA & data;
 8002164:	1ff5f593          	andi	a1,a1,511
 8002168:	c14c                	sw	a1,4(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:249
}
 800216a:	8082                	ret

0800216c <usart_data_receive>:
usart_data_receive():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:259
    \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));
 800216c:	4148                	lw	a0,4(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:260
}
 800216e:	1ff57513          	andi	a0,a0,511
 8002172:	8082                	ret

08002174 <usart_hardware_flow_rts_config>:
usart_hardware_flow_rts_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:559
*/
void usart_hardware_flow_rts_config(uint32_t usart_periph, uint32_t rtsconfig)
{
    uint32_t ctl = 0U;
    
    ctl = USART_CTL2(usart_periph);
 8002174:	495c                	lw	a5,20(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:560
    ctl &= ~USART_CTL2_RTSEN;
 8002176:	eff7f793          	andi	a5,a5,-257
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:561
    ctl |= rtsconfig;
 800217a:	8ddd                	or	a1,a1,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:563
    /* configure RTS */
    USART_CTL2(usart_periph) = ctl;
 800217c:	c94c                	sw	a1,20(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:564
}
 800217e:	8082                	ret

08002180 <usart_hardware_flow_cts_config>:
usart_hardware_flow_cts_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:580
*/
void usart_hardware_flow_cts_config(uint32_t usart_periph, uint32_t ctsconfig)
{
    uint32_t ctl = 0U;
    
    ctl = USART_CTL2(usart_periph);
 8002180:	495c                	lw	a5,20(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:581
    ctl &= ~USART_CTL2_CTSEN;
 8002182:	dff7f793          	andi	a5,a5,-513
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:582
    ctl |= ctsconfig;
 8002186:	8ddd                	or	a1,a1,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:584
    /* configure CTS */
    USART_CTL2(usart_periph) = ctl;
 8002188:	c94c                	sw	a1,20(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:585
}
 800218a:	8082                	ret

0800218c <usart_flag_get>:
usart_flag_get():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:649
    \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)))){
 800218c:	0065d793          	srli	a5,a1,0x6
 8002190:	3ff7f793          	andi	a5,a5,1023
 8002194:	953e                	add	a0,a0,a5
 8002196:	4108                	lw	a0,0(a0)
 8002198:	00b55533          	srl	a0,a0,a1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:654
        return SET;
    }else{
        return RESET;
    }
}
 800219c:	8905                	andi	a0,a0,1
 800219e:	8082                	ret

080021a0 <usart_interrupt_enable>:
usart_interrupt_enable():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:691
    \param[out] none
    \retval     none
*/
void usart_interrupt_enable(uint32_t usart_periph, uint32_t int_flag)
{
    USART_REG_VAL(usart_periph, int_flag) |= BIT(USART_BIT_POS(int_flag));
 80021a0:	0065d793          	srli	a5,a1,0x6
 80021a4:	3ff7f793          	andi	a5,a5,1023
 80021a8:	953e                	add	a0,a0,a5
 80021aa:	4118                	lw	a4,0(a0)
 80021ac:	4785                	li	a5,1
 80021ae:	00b797b3          	sll	a5,a5,a1
 80021b2:	8fd9                	or	a5,a5,a4
 80021b4:	c11c                	sw	a5,0(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:692
}
 80021b6:	8082                	ret

080021b8 <usart_interrupt_flag_get>:
usart_interrupt_flag_get():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:738
*/
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)));
 80021b8:	0065d713          	srli	a4,a1,0x6
 80021bc:	3ff77713          	andi	a4,a4,1023
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:740
    /* get the corresponding flag bit status */
    flagstatus = (USART_REG_VAL2(usart_periph, int_flag) & BIT(USART_BIT_POS2(int_flag)));
 80021c0:	0165d793          	srli	a5,a1,0x16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:738
    intenable = (USART_REG_VAL(usart_periph, int_flag) & BIT(USART_BIT_POS(int_flag)));
 80021c4:	972a                	add	a4,a4,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:740
    flagstatus = (USART_REG_VAL2(usart_periph, int_flag) & BIT(USART_BIT_POS2(int_flag)));
 80021c6:	97aa                	add	a5,a5,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:738
    intenable = (USART_REG_VAL(usart_periph, int_flag) & BIT(USART_BIT_POS(int_flag)));
 80021c8:	4310                	lw	a2,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:740
    flagstatus = (USART_REG_VAL2(usart_periph, int_flag) & BIT(USART_BIT_POS2(int_flag)));
 80021ca:	4394                	lw	a3,0(a5)
 80021cc:	0105d713          	srli	a4,a1,0x10
 80021d0:	4785                	li	a5,1
 80021d2:	00e79733          	sll	a4,a5,a4
 80021d6:	8f75                	and	a4,a4,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:742

    if(flagstatus && intenable){
 80021d8:	c719                	beqz	a4,80021e6 <usart_interrupt_flag_get+0x2e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:738 (discriminator 1)
    intenable = (USART_REG_VAL(usart_periph, int_flag) & BIT(USART_BIT_POS(int_flag)));
 80021da:	00b79533          	sll	a0,a5,a1
 80021de:	8d71                	and	a0,a0,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:742 (discriminator 1)
    if(flagstatus && intenable){
 80021e0:	00a03533          	snez	a0,a0
 80021e4:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:745
        return SET;
    }else{
        return RESET; 
 80021e6:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/Source/gd32vf103_usart.c:747
    }
}
 80021e8:	8082                	ret

080021ea <SystemInit>:
SystemInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:153
*/
void SystemInit(void)
{
    /* reset the RCC clock configuration to the default reset state */
    /* enable IRC8M */
    RCU_CTL |= RCU_CTL_IRC8MEN;
 80021ea:	400217b7          	lui	a5,0x40021
 80021ee:	4398                	lw	a4,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:156
    
    /* reset SCS, AHBPSC, APB1PSC, APB2PSC, ADCPSC, CKOUT0SEL bits */
    RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC |
 80021f0:	e0ff06b7          	lui	a3,0xe0ff0
 80021f4:	06b1                	addi	a3,a3,12
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:153
    RCU_CTL |= RCU_CTL_IRC8MEN;
 80021f6:	00176713          	ori	a4,a4,1
 80021fa:	c398                	sw	a4,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:156
    RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC |
 80021fc:	43d8                	lw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:172
    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);
 80021fe:	eaf70637          	lui	a2,0xeaf70
 8002202:	167d                	addi	a2,a2,-1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:156
    RCU_CFG0 &= ~(RCU_CFG0_SCS | RCU_CFG0_AHBPSC | RCU_CFG0_APB1PSC | RCU_CFG0_APB2PSC |
 8002204:	8f75                	and	a4,a4,a3
 8002206:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:160
    RCU_CTL &= ~(RCU_CTL_HXTALEN | RCU_CTL_CKMEN | RCU_CTL_PLLEN);
 8002208:	4398                	lw	a4,0(a5)
 800220a:	fef706b7          	lui	a3,0xfef70
 800220e:	16fd                	addi	a3,a3,-1
 8002210:	8f75                	and	a4,a4,a3
 8002212:	c398                	sw	a4,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:163
    RCU_CTL &= ~(RCU_CTL_HXTALBPS);
 8002214:	4398                	lw	a4,0(a5)
 8002216:	fffc06b7          	lui	a3,0xfffc0
 800221a:	16fd                	addi	a3,a3,-1
 800221c:	8f75                	and	a4,a4,a3
 800221e:	c398                	sw	a4,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:167
    RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0_LSB | RCU_CFG0_PLLMF |
 8002220:	43d8                	lw	a4,4(a5)
 8002222:	df0106b7          	lui	a3,0xdf010
 8002226:	16fd                	addi	a3,a3,-1
 8002228:	8f75                	and	a4,a4,a3
 800222a:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:169
    RCU_CFG1 = 0x00000000U;
 800222c:	0207a623          	sw	zero,44(a5) # 4002102c <_sp+0x2001902c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:172
    RCU_CTL &= ~(RCU_CTL_PLLEN | RCU_CTL_PLL1EN | RCU_CTL_PLL2EN | RCU_CTL_CKMEN | RCU_CTL_HXTALEN);
 8002230:	4394                	lw	a3,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:174
    /* disable all interrupts */
    RCU_INT = 0x00FF0000U;
 8002232:	00ff0737          	lui	a4,0xff0
system_clock_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:756
{
    uint32_t timeout   = 0U;
    uint32_t stab_flag = 0U;

    /* enable HXTAL */
    RCU_CTL |= RCU_CTL_HXTALEN;
 8002236:	65c1                	lui	a1,0x10
SystemInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:172
    RCU_CTL &= ~(RCU_CTL_PLLEN | RCU_CTL_PLL1EN | RCU_CTL_PLL2EN | RCU_CTL_CKMEN | RCU_CTL_HXTALEN);
 8002238:	8ef1                	and	a3,a3,a2
 800223a:	c394                	sw	a3,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:174
    RCU_INT = 0x00FF0000U;
 800223c:	c798                	sw	a4,8(a5)
system_clock_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:756
    RCU_CTL |= RCU_CTL_HXTALEN;
 800223e:	4398                	lw	a4,0(a5)
 8002240:	fff58693          	addi	a3,a1,-1 # ffff <__stack_size+0xf7ff>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:761

    /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
    do{
        timeout++;
        stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
 8002244:	40021637          	lui	a2,0x40021
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:756
    RCU_CTL |= RCU_CTL_HXTALEN;
 8002248:	8f4d                	or	a4,a4,a1
 800224a:	c398                	sw	a4,0(a5)
 800224c:	a011                	j	8002250 <SystemInit+0x66>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:762
    }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
 800224e:	c699                	beqz	a3,800225c <SystemInit+0x72>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:761
        stab_flag = (RCU_CTL & RCU_CTL_HXTALSTB);
 8002250:	421c                	lw	a5,0(a2)
 8002252:	16fd                	addi	a3,a3,-1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:762
    }while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
 8002254:	00e79713          	slli	a4,a5,0xe
 8002258:	fe075be3          	bgez	a4,800224e <SystemInit+0x64>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:765

    /* if fail */
    if(0U == (RCU_CTL & RCU_CTL_HXTALSTB)){
 800225c:	400217b7          	lui	a5,0x40021
 8002260:	4398                	lw	a4,0(a5)
 8002262:	00e71693          	slli	a3,a4,0xe
 8002266:	0a06d063          	bgez	a3,8002306 <SystemInit+0x11c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:772
        }
    }

    /* HXTAL is stable */
    /* AHB = SYSCLK */
    RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
 800226a:	43d8                	lw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:779
    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);
 800226c:	dfc40637          	lui	a2,0xdfc40
 8002270:	167d                	addi	a2,a2,-1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:772
    RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
 8002272:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:774
    RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
 8002274:	43d8                	lw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:805
		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)){
 8002276:	400216b7          	lui	a3,0x40021
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:774
    RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
 800227a:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:776
    RCU_CFG0 |= RCU_APB1_CKAHB_DIV2;
 800227c:	43d8                	lw	a4,4(a5)
 800227e:	40076713          	ori	a4,a4,1024
 8002282:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:779
    RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
 8002284:	43d8                	lw	a4,4(a5)
 8002286:	8f71                	and	a4,a4,a2
 8002288:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:780
    RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL27);
 800228a:	43d8                	lw	a4,4(a5)
 800228c:	20290637          	lui	a2,0x20290
 8002290:	8f51                	or	a4,a4,a2
 8002292:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:799
		RCU_CFG1 &= ~(RCU_CFG1_PREDV0SEL | RCU_CFG1_PREDV1 | RCU_CFG1_PLL1MF | RCU_CFG1_PREDV0);
 8002294:	57d8                	lw	a4,44(a5)
 8002296:	763d                	lui	a2,0xfffef
 8002298:	8f71                	and	a4,a4,a2
 800229a:	d7d8                	sw	a4,44(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:800
		RCU_CFG1 |= (RCU_PREDV0SRC_HXTAL | RCU_PREDV0_DIV2 | RCU_PREDV1_DIV2 | RCU_PLL1_MUL20 | RCU_PLL2_MUL20);
 800229c:	57d8                	lw	a4,44(a5)
 800229e:	6641                	lui	a2,0x10
 80022a0:	f1160613          	addi	a2,a2,-239 # ff11 <__stack_size+0xf711>
 80022a4:	8f51                	or	a4,a4,a2
 80022a6:	d7d8                	sw	a4,44(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:803
		RCU_CTL |= RCU_CTL_PLL1EN;
 80022a8:	4398                	lw	a4,0(a5)
 80022aa:	04000637          	lui	a2,0x4000
 80022ae:	8f51                	or	a4,a4,a2
 80022b0:	c398                	sw	a4,0(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:805
		while(0U == (RCU_CTL & RCU_CTL_PLL1STB)){
 80022b2:	429c                	lw	a5,0(a3)
 80022b4:	00479713          	slli	a4,a5,0x4
 80022b8:	fe075de3          	bgez	a4,80022b2 <SystemInit+0xc8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:809
		}

		/* enable PLL2 */
		RCU_CTL |= RCU_CTL_PLL2EN;
 80022bc:	429c                	lw	a5,0(a3)
 80022be:	10000637          	lui	a2,0x10000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:811
		/* wait till PLL1 is ready */
		while(0U == (RCU_CTL & RCU_CTL_PLL2STB)){
 80022c2:	40021737          	lui	a4,0x40021
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:809
		RCU_CTL |= RCU_CTL_PLL2EN;
 80022c6:	8fd1                	or	a5,a5,a2
 80022c8:	c29c                	sw	a5,0(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:811
		while(0U == (RCU_CTL & RCU_CTL_PLL2STB)){
 80022ca:	431c                	lw	a5,0(a4)
 80022cc:	00279693          	slli	a3,a5,0x2
 80022d0:	fe06dde3          	bgez	a3,80022ca <SystemInit+0xe0>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:816
		}

    }
    /* enable PLL */
    RCU_CTL |= RCU_CTL_PLLEN;
 80022d4:	4314                	lw	a3,0(a4)
 80022d6:	01000637          	lui	a2,0x1000
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:819

    /* wait until PLL is stable */
    while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
 80022da:	400217b7          	lui	a5,0x40021
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:816
    RCU_CTL |= RCU_CTL_PLLEN;
 80022de:	8ed1                	or	a3,a3,a2
 80022e0:	c314                	sw	a3,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:819
    while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
 80022e2:	4398                	lw	a4,0(a5)
 80022e4:	00671693          	slli	a3,a4,0x6
 80022e8:	fe06dde3          	bgez	a3,80022e2 <SystemInit+0xf8>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:823
    }

    /* select PLL as system clock */
    RCU_CFG0 &= ~RCU_CFG0_SCS;
 80022ec:	43d8                	lw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:827
    RCU_CFG0 |= RCU_CKSYSSRC_PLL;

    /* wait until PLL is selected as system clock */
    while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
 80022ee:	400216b7          	lui	a3,0x40021
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:823
    RCU_CFG0 &= ~RCU_CFG0_SCS;
 80022f2:	9b71                	andi	a4,a4,-4
 80022f4:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:824
    RCU_CFG0 |= RCU_CKSYSSRC_PLL;
 80022f6:	43d8                	lw	a4,4(a5)
 80022f8:	00276713          	ori	a4,a4,2
 80022fc:	c3d8                	sw	a4,4(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:827
    while(0U == (RCU_CFG0 & RCU_SCSS_PLL)){
 80022fe:	42dc                	lw	a5,4(a3)
 8002300:	8ba1                	andi	a5,a5,8
 8002302:	dff5                	beqz	a5,80022fe <SystemInit+0x114>
SystemInit():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:178
}
 8002304:	8082                	ret
system_clock_config():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Peripherals/system_gd32vf103.c:767
        }
 8002306:	a001                	j	8002306 <SystemInit+0x11c>

08002308 <USART0_IRQHandler>:
USART0_IRQHandler():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:46
    \param[in]  none
    \param[out] none
    \retval     none
*/
void USART0_IRQHandler(void)
{
 8002308:	1141                	addi	sp,sp,-16
 800230a:	c422                	sw	s0,8(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:47
    if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)){
 800230c:	000505b7          	lui	a1,0x50
 8002310:	40014437          	lui	s0,0x40014
 8002314:	30558593          	addi	a1,a1,773 # 50305 <__stack_size+0x4fb05>
 8002318:	80040513          	addi	a0,s0,-2048 # 40013800 <_sp+0x2000b800>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:46
{
 800231c:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:47
    if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)){
 800231e:	3d69                	jal	80021b8 <usart_interrupt_flag_get>
 8002320:	e509                	bnez	a0,800232a <USART0_IRQHandler+0x22>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:51
        /* receive data */
        QUEUE_WRITE(QUEUE_DBG_RX_IDX, usart_data_receive(USART0));
    }
}
 8002322:	40b2                	lw	ra,12(sp)
 8002324:	4422                	lw	s0,8(sp)
 8002326:	0141                	addi	sp,sp,16
 8002328:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:49
        QUEUE_WRITE(QUEUE_DBG_RX_IDX, usart_data_receive(USART0));
 800232a:	80040513          	addi	a0,s0,-2048
 800232e:	3d3d                	jal	800216c <usart_data_receive>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:51
}
 8002330:	4422                	lw	s0,8(sp)
 8002332:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:49
        QUEUE_WRITE(QUEUE_DBG_RX_IDX, usart_data_receive(USART0));
 8002334:	0ff57593          	andi	a1,a0,255
 8002338:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:51
}
 800233a:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/gd32vf103_it.c:49
        QUEUE_WRITE(QUEUE_DBG_RX_IDX, usart_data_receive(USART0));
 800233c:	a295                	j	80024a0 <QUEUE_WRITE>

0800233e <xInitSystem>:
xInitSystem():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:42
{
 800233e:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:43
    gd_eval_led_init(LED1); gd_eval_led_off(LED1);
 8002340:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:42
{
 8002342:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:43
    gd_eval_led_init(LED1); gd_eval_led_off(LED1);
 8002344:	ceaff0ef          	jal	ra,800182e <gd_eval_led_init>
 8002348:	4501                	li	a0,0
 800234a:	d4aff0ef          	jal	ra,8001894 <gd_eval_led_off>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:44
    gd_eval_led_init(LED2); gd_eval_led_off(LED2);
 800234e:	4505                	li	a0,1
 8002350:	cdeff0ef          	jal	ra,800182e <gd_eval_led_init>
 8002354:	4505                	li	a0,1
 8002356:	d3eff0ef          	jal	ra,8001894 <gd_eval_led_off>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:45
    gd_eval_led_init(LED3); gd_eval_led_off(LED3);
 800235a:	4509                	li	a0,2
 800235c:	cd2ff0ef          	jal	ra,800182e <gd_eval_led_init>
 8002360:	4509                	li	a0,2
 8002362:	d32ff0ef          	jal	ra,8001894 <gd_eval_led_off>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:46
    gd_eval_led_init(LED4); gd_eval_led_off(LED4);
 8002366:	450d                	li	a0,3
 8002368:	cc6ff0ef          	jal	ra,800182e <gd_eval_led_init>
 800236c:	450d                	li	a0,3
 800236e:	d26ff0ef          	jal	ra,8001894 <gd_eval_led_off>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:48
    gd_eval_com_init(EVAL_COM0);
 8002372:	40014537          	lui	a0,0x40014
 8002376:	80050513          	addi	a0,a0,-2048 # 40013800 <_sp+0x2000b800>
 800237a:	d38ff0ef          	jal	ra,80018b2 <gd_eval_com_init>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:50
    printf("GD32VF103V-EVAL(RISC-V)\r\n");
 800237e:	08000537          	lui	a0,0x8000
 8002382:	55c50513          	addi	a0,a0,1372 # 800055c <GPIO_PORT+0x44>
 8002386:	f44ff0ef          	jal	ra,8001aca <puts>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:53
}
 800238a:	40b2                	lw	ra,12(sp)
 800238c:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/main.c:52
    MSG_Init();
 800238e:	a889                	j	80023e0 <MSG_Init>

08002390 <SerialPutByte>:
SerialPutByte():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:49
  * @param  None
  * @retval None
  */
void SerialPutByte(const char ch)
{
	gd_eval_com_send(EVAL_COM0, ch);
 8002390:	0ff57593          	andi	a1,a0,255
 8002394:	40014537          	lui	a0,0x40014
 8002398:	80050513          	addi	a0,a0,-2048 # 40013800 <_sp+0x2000b800>
 800239c:	dfeff06f          	j	800199a <gd_eval_com_send>

080023a0 <LED_TurnOnOFF>:
LED_TurnOnOFF():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:60
  * @param  None
  * @retval None
  */
void LED_TurnOnOFF(int idx, int en)
{
	switch(idx)
 80023a0:	4789                	li	a5,2
 80023a2:	02f50b63          	beq	a0,a5,80023d8 <LED_TurnOnOFF+0x38>
 80023a6:	00a7dc63          	bge	a5,a0,80023be <LED_TurnOnOFF+0x1e>
 80023aa:	478d                	li	a5,3
 80023ac:	02f50263          	beq	a0,a5,80023d0 <LED_TurnOnOFF+0x30>
 80023b0:	4791                	li	a5,4
 80023b2:	00f51d63          	bne	a0,a5,80023cc <LED_TurnOnOFF+0x2c>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:78
		if(en) gd_eval_led_on(LED3);
		else   gd_eval_led_off(LED3);
		break;

	case 4:
		if(en) gd_eval_led_on(LED4);
 80023b6:	450d                	li	a0,3
 80023b8:	c981                	beqz	a1,80023c8 <LED_TurnOnOFF+0x28>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:78 (discriminator 1)
 80023ba:	cbcff06f          	j	8001876 <gd_eval_led_on>
 80023be:	4785                	li	a5,1
 80023c0:	00f51763          	bne	a0,a5,80023ce <LED_TurnOnOFF+0x2e>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:63
		if(en) gd_eval_led_on(LED1);
 80023c4:	4501                	li	a0,0
 80023c6:	f9f5                	bnez	a1,80023ba <LED_TurnOnOFF+0x1a>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:79
		else   gd_eval_led_off(LED4);
 80023c8:	cccff06f          	j	8001894 <gd_eval_led_off>
 80023cc:	8082                	ret
 80023ce:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:73
		if(en) gd_eval_led_on(LED3);
 80023d0:	4509                	li	a0,2
 80023d2:	d9fd                	beqz	a1,80023c8 <LED_TurnOnOFF+0x28>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:78
		if(en) gd_eval_led_on(LED4);
 80023d4:	ca2ff06f          	j	8001876 <gd_eval_led_on>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:68
		if(en) gd_eval_led_on(LED2);
 80023d8:	4505                	li	a0,1
 80023da:	d5fd                	beqz	a1,80023c8 <LED_TurnOnOFF+0x28>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:78
		if(en) gd_eval_led_on(LED4);
 80023dc:	c9aff06f          	j	8001876 <gd_eval_led_on>

080023e0 <MSG_Init>:
MSG_Init():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:94
  * @brief
  * @param  None
  * @retval None
  */
void MSG_Init(void)
{
 80023e0:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:95
    QUEUE_INIT(QUEUE_DBG_RX_IDX);
 80023e2:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:94
{
 80023e4:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:95
    QUEUE_INIT(QUEUE_DBG_RX_IDX);
 80023e6:	20a9                	jal	8002430 <QUEUE_INIT>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:97

    shell.write = SerialPutByte;
 80023e8:	20000537          	lui	a0,0x20000
 80023ec:	080027b7          	lui	a5,0x8002
 80023f0:	08050713          	addi	a4,a0,128 # 20000080 <shell>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:99
    shellInit(&shell);
}
 80023f4:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:97
    shell.write = SerialPutByte;
 80023f6:	39078793          	addi	a5,a5,912 # 8002390 <SerialPutByte>
 80023fa:	16f72a23          	sw	a5,372(a4) # 40021174 <_sp+0x20019174>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:98
    shellInit(&shell);
 80023fe:	08050513          	addi	a0,a0,128
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:99
}
 8002402:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:98
    shellInit(&shell);
 8002404:	c6dfe06f          	j	8001070 <shellInit>

08002408 <MSG_Handler>:
MSG_Handler():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:108
  * @brief  
  * @param  None
  * @retval None
  */
void MSG_Handler(void)
{
 8002408:	1141                	addi	sp,sp,-16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:109
    if(QUEUE_EMPTY(QUEUE_DBG_RX_IDX) == 0)
 800240a:	4501                	li	a0,0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:108
{
 800240c:	c606                	sw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:109
    if(QUEUE_EMPTY(QUEUE_DBG_RX_IDX) == 0)
 800240e:	2089                	jal	8002450 <QUEUE_EMPTY>
 8002410:	c501                	beqz	a0,8002418 <MSG_Handler+0x10>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:113
    {
    	shellHandler(&shell, QUEUE_READ(QUEUE_DBG_RX_IDX));
    }
}
 8002412:	40b2                	lw	ra,12(sp)
 8002414:	0141                	addi	sp,sp,16
 8002416:	8082                	ret
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:111
    	shellHandler(&shell, QUEUE_READ(QUEUE_DBG_RX_IDX));
 8002418:	28a1                	jal	8002470 <QUEUE_READ>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:113
}
 800241a:	40b2                	lw	ra,12(sp)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:111
    	shellHandler(&shell, QUEUE_READ(QUEUE_DBG_RX_IDX));
 800241c:	01851593          	slli	a1,a0,0x18
 8002420:	20000537          	lui	a0,0x20000
 8002424:	85e1                	srai	a1,a1,0x18
 8002426:	08050513          	addi	a0,a0,128 # 20000080 <shell>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:113
}
 800242a:	0141                	addi	sp,sp,16
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/message.c:111
    	shellHandler(&shell, QUEUE_READ(QUEUE_DBG_RX_IDX));
 800242c:	dbbfe06f          	j	80011e6 <shellHandler>

08002430 <QUEUE_INIT>:
QUEUE_INIT():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:45
  * @param  None
  * @retval None
  */
void QUEUE_INIT(uint8_t index)
{
    QUEUE[index].head = 0;
 8002430:	00651793          	slli	a5,a0,0x6
 8002434:	40a78533          	sub	a0,a5,a0
 8002438:	050e                	slli	a0,a0,0x3
 800243a:	99c18793          	addi	a5,gp,-1636 # 200001fc <QUEUE>
 800243e:	97aa                	add	a5,a5,a0
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:48
    QUEUE[index].tail = 0;

    memset(QUEUE[index].dat, 0, sizeof(QUEUE[index].dat));
 8002440:	1f400613          	li	a2,500
 8002444:	4581                	li	a1,0
 8002446:	853e                	mv	a0,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:45
    QUEUE[index].head = 0;
 8002448:	1e07aa23          	sw	zero,500(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:48
    memset(QUEUE[index].dat, 0, sizeof(QUEUE[index].dat));
 800244c:	0a90006f          	j	8002cf4 <memset>

08002450 <QUEUE_EMPTY>:
QUEUE_EMPTY():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:59
  * @param  None
  * @retval None
  */
uint8_t QUEUE_EMPTY(uint8_t index)
{
    if(QUEUE[index].head == QUEUE[index].tail)  return 1;
 8002450:	00651793          	slli	a5,a0,0x6
 8002454:	40a78533          	sub	a0,a5,a0
 8002458:	050e                	slli	a0,a0,0x3
 800245a:	99c18793          	addi	a5,gp,-1636 # 200001fc <QUEUE>
 800245e:	97aa                	add	a5,a5,a0
 8002460:	1f47d503          	lhu	a0,500(a5)
 8002464:	1f67d783          	lhu	a5,502(a5)
 8002468:	8d1d                	sub	a0,a0,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:61
    else                                        return 0;
}
 800246a:	00153513          	seqz	a0,a0
 800246e:	8082                	ret

08002470 <QUEUE_READ>:
QUEUE_READ():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:71
  * @param  None
  * @retval None
  */
uint8_t QUEUE_READ(uint8_t index)
{
    uint8_t dat = QUEUE[index].dat[QUEUE[index].head++];
 8002470:	00651793          	slli	a5,a0,0x6
 8002474:	40a78533          	sub	a0,a5,a0
 8002478:	050e                	slli	a0,a0,0x3
 800247a:	99c18793          	addi	a5,gp,-1636 # 200001fc <QUEUE>
 800247e:	97aa                	add	a5,a5,a0
 8002480:	1f47d683          	lhu	a3,500(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:73

    QUEUE[index].head %= QUEUE_SIZE;         return dat;
 8002484:	1f400613          	li	a2,500
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:71
    uint8_t dat = QUEUE[index].dat[QUEUE[index].head++];
 8002488:	00168713          	addi	a4,a3,1 # 40021001 <_sp+0x20019001>
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:73
    QUEUE[index].head %= QUEUE_SIZE;         return dat;
 800248c:	0742                	slli	a4,a4,0x10
 800248e:	8341                	srli	a4,a4,0x10
 8002490:	02c77733          	remu	a4,a4,a2
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:71
    uint8_t dat = QUEUE[index].dat[QUEUE[index].head++];
 8002494:	96be                	add	a3,a3,a5
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:74
}
 8002496:	0006c503          	lbu	a0,0(a3)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:73
    QUEUE[index].head %= QUEUE_SIZE;         return dat;
 800249a:	1ee79a23          	sh	a4,500(a5)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:74
}
 800249e:	8082                	ret

080024a0 <QUEUE_WRITE>:
QUEUE_WRITE():
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:84
  * @param  None
  * @retval None
  */
void QUEUE_WRITE(uint8_t index, uint8_t dat)
{
    QUEUE[index].dat[QUEUE[index].tail++] = dat;
 80024a0:	00651793          	slli	a5,a0,0x6
 80024a4:	8f89                	sub	a5,a5,a0
 80024a6:	078e                	slli	a5,a5,0x3
 80024a8:	99c18513          	addi	a0,gp,-1636 # 200001fc <QUEUE>
 80024ac:	953e                	add	a0,a0,a5
 80024ae:	1f655703          	lhu	a4,502(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:86

    QUEUE[index].tail %= QUEUE_SIZE;
 80024b2:	1f400693          	li	a3,500
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:84
    QUEUE[index].dat[QUEUE[index].tail++] = dat;
 80024b6:	00170793          	addi	a5,a4,1
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:86
    QUEUE[index].tail %= QUEUE_SIZE;
 80024ba:	07c2                	slli	a5,a5,0x10
 80024bc:	83c1                	srli	a5,a5,0x10
 80024be:	02d7f7b3          	remu	a5,a5,a3
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:84
    QUEUE[index].dat[QUEUE[index].tail++] = dat;
 80024c2:	972a                	add	a4,a4,a0
 80024c4:	00b70023          	sb	a1,0(a4)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:86
    QUEUE[index].tail %= QUEUE_SIZE;
 80024c8:	1ef51b23          	sh	a5,502(a0)
D:\GD32_RISC-V\GD32VF103V-EVAL\Debug/../Application/queue.c:87
}
 80024cc:	8082                	ret

080024ce <__divsf3>:
__divsf3():
 80024ce:	7139                	addi	sp,sp,-64
 80024d0:	01755793          	srli	a5,a0,0x17
 80024d4:	d84a                	sw	s2,48(sp)
 80024d6:	d256                	sw	s5,36(sp)
 80024d8:	ce5e                	sw	s7,28(sp)
 80024da:	00951a93          	slli	s5,a0,0x9
 80024de:	01f55913          	srli	s2,a0,0x1f
 80024e2:	de06                	sw	ra,60(sp)
 80024e4:	dc22                	sw	s0,56(sp)
 80024e6:	da26                	sw	s1,52(sp)
 80024e8:	d64e                	sw	s3,44(sp)
 80024ea:	d452                	sw	s4,40(sp)
 80024ec:	d05a                	sw	s6,32(sp)
 80024ee:	0ff7f793          	andi	a5,a5,255
 80024f2:	009ada93          	srli	s5,s5,0x9
 80024f6:	8bca                	mv	s7,s2
 80024f8:	12078263          	beqz	a5,800261c <__divsf3+0x14e>
 80024fc:	0ff00713          	li	a4,255
 8002500:	12e78463          	beq	a5,a4,8002628 <__divsf3+0x15a>
 8002504:	0a8e                	slli	s5,s5,0x3
 8002506:	04000737          	lui	a4,0x4000
 800250a:	00eaeab3          	or	s5,s5,a4
 800250e:	f8178a13          	addi	s4,a5,-127
 8002512:	4401                	li	s0,0
 8002514:	4b01                	li	s6,0
 8002516:	0175d793          	srli	a5,a1,0x17
 800251a:	00959493          	slli	s1,a1,0x9
 800251e:	0ff7f793          	andi	a5,a5,255
 8002522:	80a5                	srli	s1,s1,0x9
 8002524:	01f5d993          	srli	s3,a1,0x1f
 8002528:	c7fd                	beqz	a5,8002616 <__divsf3+0x148>
 800252a:	0ff00713          	li	a4,255
 800252e:	02e78763          	beq	a5,a4,800255c <__divsf3+0x8e>
 8002532:	048e                	slli	s1,s1,0x3
 8002534:	f8178793          	addi	a5,a5,-127
 8002538:	04000737          	lui	a4,0x4000
 800253c:	8cd9                	or	s1,s1,a4
 800253e:	40fa0a33          	sub	s4,s4,a5
 8002542:	4681                	li	a3,0
 8002544:	8c55                	or	s0,s0,a3
 8002546:	ffffe717          	auipc	a4,0xffffe
 800254a:	03270713          	addi	a4,a4,50 # 8000578 <GPIO_PORT+0x60>
 800254e:	040a                	slli	s0,s0,0x2
 8002550:	943a                	add	s0,s0,a4
 8002552:	401c                	lw	a5,0(s0)
 8002554:	01394933          	xor	s2,s2,s3
 8002558:	97ba                	add	a5,a5,a4
 800255a:	8782                	jr	a5
 800255c:	f01a0a13          	addi	s4,s4,-255
 8002560:	e8f9                	bnez	s1,8002636 <__divsf3+0x168>
 8002562:	4689                	li	a3,2
 8002564:	8c55                	or	s0,s0,a3
 8002566:	ffffe717          	auipc	a4,0xffffe
 800256a:	05270713          	addi	a4,a4,82 # 80005b8 <GPIO_PORT+0xa0>
 800256e:	040a                	slli	s0,s0,0x2
 8002570:	943a                	add	s0,s0,a4
 8002572:	401c                	lw	a5,0(s0)
 8002574:	01394933          	xor	s2,s2,s3
 8002578:	97ba                	add	a5,a5,a4
 800257a:	8782                	jr	a5
 800257c:	4901                	li	s2,0
 800257e:	0ff00713          	li	a4,255
 8002582:	004007b7          	lui	a5,0x400
 8002586:	00979513          	slli	a0,a5,0x9
 800258a:	50f2                	lw	ra,60(sp)
 800258c:	5462                	lw	s0,56(sp)
 800258e:	01771793          	slli	a5,a4,0x17
 8002592:	8125                	srli	a0,a0,0x9
 8002594:	097e                	slli	s2,s2,0x1f
 8002596:	8d5d                	or	a0,a0,a5
 8002598:	01256533          	or	a0,a0,s2
 800259c:	54d2                	lw	s1,52(sp)
 800259e:	5942                	lw	s2,48(sp)
 80025a0:	59b2                	lw	s3,44(sp)
 80025a2:	5a22                	lw	s4,40(sp)
 80025a4:	5a92                	lw	s5,36(sp)
 80025a6:	5b02                	lw	s6,32(sp)
 80025a8:	4bf2                	lw	s7,28(sp)
 80025aa:	6121                	addi	sp,sp,64
 80025ac:	8082                	ret
 80025ae:	0ff00713          	li	a4,255
 80025b2:	4781                	li	a5,0
 80025b4:	bfc9                	j	8002586 <__divsf3+0xb8>
 80025b6:	8aa6                	mv	s5,s1
 80025b8:	8bce                	mv	s7,s3
 80025ba:	8b36                	mv	s6,a3
 80025bc:	4789                	li	a5,2
 80025be:	1afb0963          	beq	s6,a5,8002770 <__divsf3+0x2a2>
 80025c2:	478d                	li	a5,3
 80025c4:	fafb0ce3          	beq	s6,a5,800257c <__divsf3+0xae>
 80025c8:	4785                	li	a5,1
 80025ca:	0afb0863          	beq	s6,a5,800267a <__divsf3+0x1ac>
 80025ce:	07fa0713          	addi	a4,s4,127
 80025d2:	001bf913          	andi	s2,s7,1
 80025d6:	12e05563          	blez	a4,8002700 <__divsf3+0x232>
 80025da:	007af793          	andi	a5,s5,7
 80025de:	c799                	beqz	a5,80025ec <__divsf3+0x11e>
 80025e0:	00faf793          	andi	a5,s5,15
 80025e4:	4691                	li	a3,4
 80025e6:	00d78363          	beq	a5,a3,80025ec <__divsf3+0x11e>
 80025ea:	0a91                	addi	s5,s5,4
 80025ec:	004a9793          	slli	a5,s5,0x4
 80025f0:	0007d963          	bgez	a5,8002602 <__divsf3+0x134>
 80025f4:	f80007b7          	lui	a5,0xf8000
 80025f8:	17fd                	addi	a5,a5,-1
 80025fa:	00fafab3          	and	s5,s5,a5
 80025fe:	080a0713          	addi	a4,s4,128
 8002602:	0fe00793          	li	a5,254
 8002606:	fae7c4e3          	blt	a5,a4,80025ae <__divsf3+0xe0>
 800260a:	006a9793          	slli	a5,s5,0x6
 800260e:	83a5                	srli	a5,a5,0x9
 8002610:	0ff77713          	andi	a4,a4,255
 8002614:	bf8d                	j	8002586 <__divsf3+0xb8>
 8002616:	e4b1                	bnez	s1,8002662 <__divsf3+0x194>
 8002618:	4685                	li	a3,1
 800261a:	b7a9                	j	8002564 <__divsf3+0x96>
 800261c:	020a9463          	bnez	s5,8002644 <__divsf3+0x176>
 8002620:	4411                	li	s0,4
 8002622:	4a01                	li	s4,0
 8002624:	4b05                	li	s6,1
 8002626:	bdc5                	j	8002516 <__divsf3+0x48>
 8002628:	000a9963          	bnez	s5,800263a <__divsf3+0x16c>
 800262c:	4421                	li	s0,8
 800262e:	0ff00a13          	li	s4,255
 8002632:	4b09                	li	s6,2
 8002634:	b5cd                	j	8002516 <__divsf3+0x48>
 8002636:	468d                	li	a3,3
 8002638:	b731                	j	8002544 <__divsf3+0x76>
 800263a:	4431                	li	s0,12
 800263c:	0ff00a13          	li	s4,255
 8002640:	4b0d                	li	s6,3
 8002642:	bdd1                	j	8002516 <__divsf3+0x48>
 8002644:	8556                	mv	a0,s5
 8002646:	c62e                	sw	a1,12(sp)
 8002648:	2ba1                	jal	8002ba0 <__clzsi2>
 800264a:	ffb50793          	addi	a5,a0,-5
 800264e:	00fa9ab3          	sll	s5,s5,a5
 8002652:	f8a00793          	li	a5,-118
 8002656:	40a78a33          	sub	s4,a5,a0
 800265a:	4401                	li	s0,0
 800265c:	4b01                	li	s6,0
 800265e:	45b2                	lw	a1,12(sp)
 8002660:	bd5d                	j	8002516 <__divsf3+0x48>
 8002662:	8526                	mv	a0,s1
 8002664:	2b35                	jal	8002ba0 <__clzsi2>
 8002666:	ffb50713          	addi	a4,a0,-5
 800266a:	00aa07b3          	add	a5,s4,a0
 800266e:	00e494b3          	sll	s1,s1,a4
 8002672:	07678a13          	addi	s4,a5,118 # f8000076 <_sp+0xd7ff8076>
 8002676:	4681                	li	a3,0
 8002678:	b5f1                	j	8002544 <__divsf3+0x76>
 800267a:	001bf913          	andi	s2,s7,1
 800267e:	4701                	li	a4,0
 8002680:	4781                	li	a5,0
 8002682:	b711                	j	8002586 <__divsf3+0xb8>
 8002684:	6641                	lui	a2,0x10
 8002686:	00549513          	slli	a0,s1,0x5
 800268a:	167d                	addi	a2,a2,-1
 800268c:	01055793          	srli	a5,a0,0x10
 8002690:	8e69                	and	a2,a2,a0
 8002692:	0a9afa63          	bgeu	s5,s1,8002746 <__divsf3+0x278>
 8002696:	02fad5b3          	divu	a1,s5,a5
 800269a:	1a7d                	addi	s4,s4,-1
 800269c:	86d6                	mv	a3,s5
 800269e:	4701                	li	a4,0
 80026a0:	02c58833          	mul	a6,a1,a2
 80026a4:	02f6f6b3          	remu	a3,a3,a5
 80026a8:	06c2                	slli	a3,a3,0x10
 80026aa:	8f55                	or	a4,a4,a3
 80026ac:	01077b63          	bgeu	a4,a6,80026c2 <__divsf3+0x1f4>
 80026b0:	972a                	add	a4,a4,a0
 80026b2:	fff58693          	addi	a3,a1,-1
 80026b6:	0aa76863          	bltu	a4,a0,8002766 <__divsf3+0x298>
 80026ba:	0b077663          	bgeu	a4,a6,8002766 <__divsf3+0x298>
 80026be:	15f9                	addi	a1,a1,-2
 80026c0:	972a                	add	a4,a4,a0
 80026c2:	41070733          	sub	a4,a4,a6
 80026c6:	02f756b3          	divu	a3,a4,a5
 80026ca:	02f77733          	remu	a4,a4,a5
 80026ce:	02c68ab3          	mul	s5,a3,a2
 80026d2:	01071793          	slli	a5,a4,0x10
 80026d6:	0157fb63          	bgeu	a5,s5,80026ec <__divsf3+0x21e>
 80026da:	97aa                	add	a5,a5,a0
 80026dc:	fff68713          	addi	a4,a3,-1
 80026e0:	08a7e163          	bltu	a5,a0,8002762 <__divsf3+0x294>
 80026e4:	0757ff63          	bgeu	a5,s5,8002762 <__divsf3+0x294>
 80026e8:	16f9                	addi	a3,a3,-2
 80026ea:	97aa                	add	a5,a5,a0
 80026ec:	05c2                	slli	a1,a1,0x10
 80026ee:	41578ab3          	sub	s5,a5,s5
 80026f2:	8dd5                	or	a1,a1,a3
 80026f4:	01503ab3          	snez	s5,s5
 80026f8:	0155eab3          	or	s5,a1,s5
 80026fc:	8bca                	mv	s7,s2
 80026fe:	bdc1                	j	80025ce <__divsf3+0x100>
 8002700:	4685                	li	a3,1
 8002702:	8e99                	sub	a3,a3,a4
 8002704:	c711                	beqz	a4,8002710 <__divsf3+0x242>
 8002706:	466d                	li	a2,27
 8002708:	4701                	li	a4,0
 800270a:	4781                	li	a5,0
 800270c:	e6d64de3          	blt	a2,a3,8002586 <__divsf3+0xb8>
 8002710:	09ea0a13          	addi	s4,s4,158
 8002714:	014a9a33          	sll	s4,s5,s4
 8002718:	00dad7b3          	srl	a5,s5,a3
 800271c:	01403ab3          	snez	s5,s4
 8002720:	0157e7b3          	or	a5,a5,s5
 8002724:	0077f713          	andi	a4,a5,7
 8002728:	c719                	beqz	a4,8002736 <__divsf3+0x268>
 800272a:	00f7f713          	andi	a4,a5,15
 800272e:	4691                	li	a3,4
 8002730:	00d70363          	beq	a4,a3,8002736 <__divsf3+0x268>
 8002734:	0791                	addi	a5,a5,4
 8002736:	00579713          	slli	a4,a5,0x5
 800273a:	02074863          	bltz	a4,800276a <__divsf3+0x29c>
 800273e:	079a                	slli	a5,a5,0x6
 8002740:	83a5                	srli	a5,a5,0x9
 8002742:	4701                	li	a4,0
 8002744:	b589                	j	8002586 <__divsf3+0xb8>
 8002746:	001ad693          	srli	a3,s5,0x1
 800274a:	02f6d5b3          	divu	a1,a3,a5
 800274e:	01fa9713          	slli	a4,s5,0x1f
 8002752:	8341                	srli	a4,a4,0x10
 8002754:	02c58833          	mul	a6,a1,a2
 8002758:	b7b1                	j	80026a4 <__divsf3+0x1d6>
 800275a:	8bce                	mv	s7,s3
 800275c:	8b36                	mv	s6,a3
 800275e:	4a81                	li	s5,0
 8002760:	bdb1                	j	80025bc <__divsf3+0xee>
 8002762:	86ba                	mv	a3,a4
 8002764:	b761                	j	80026ec <__divsf3+0x21e>
 8002766:	85b6                	mv	a1,a3
 8002768:	bfa9                	j	80026c2 <__divsf3+0x1f4>
 800276a:	4705                	li	a4,1
 800276c:	4781                	li	a5,0
 800276e:	bd21                	j	8002586 <__divsf3+0xb8>
 8002770:	001bf913          	andi	s2,s7,1
 8002774:	0ff00713          	li	a4,255
 8002778:	4781                	li	a5,0
 800277a:	b531                	j	8002586 <__divsf3+0xb8>

0800277c <__mulsf3>:
__mulsf3():
 800277c:	7179                	addi	sp,sp,-48
 800277e:	d422                	sw	s0,40(sp)
 8002780:	01755413          	srli	s0,a0,0x17
 8002784:	ce4e                	sw	s3,28(sp)
 8002786:	cc52                	sw	s4,24(sp)
 8002788:	00951993          	slli	s3,a0,0x9
 800278c:	d606                	sw	ra,44(sp)
 800278e:	d226                	sw	s1,36(sp)
 8002790:	d04a                	sw	s2,32(sp)
 8002792:	ca56                	sw	s5,20(sp)
 8002794:	c85a                	sw	s6,16(sp)
 8002796:	0ff47413          	andi	s0,s0,255
 800279a:	0099d993          	srli	s3,s3,0x9
 800279e:	01f55a13          	srli	s4,a0,0x1f
 80027a2:	c469                	beqz	s0,800286c <__mulsf3+0xf0>
 80027a4:	0ff00793          	li	a5,255
 80027a8:	0ef40863          	beq	s0,a5,8002898 <__mulsf3+0x11c>
 80027ac:	00399793          	slli	a5,s3,0x3
 80027b0:	04000737          	lui	a4,0x4000
 80027b4:	00e7e9b3          	or	s3,a5,a4
 80027b8:	f8140413          	addi	s0,s0,-127
 80027bc:	4481                	li	s1,0
 80027be:	4b01                	li	s6,0
 80027c0:	0175d713          	srli	a4,a1,0x17
 80027c4:	00959a93          	slli	s5,a1,0x9
 80027c8:	0ff77713          	andi	a4,a4,255
 80027cc:	009ada93          	srli	s5,s5,0x9
 80027d0:	01f5d913          	srli	s2,a1,0x1f
 80027d4:	cf45                	beqz	a4,800288c <__mulsf3+0x110>
 80027d6:	0ff00793          	li	a5,255
 80027da:	02f70c63          	beq	a4,a5,8002812 <__mulsf3+0x96>
 80027de:	0a8e                	slli	s5,s5,0x3
 80027e0:	f8170713          	addi	a4,a4,-127 # 3ffff81 <__stack_size+0x3fff781>
 80027e4:	040007b7          	lui	a5,0x4000
 80027e8:	00faeab3          	or	s5,s5,a5
 80027ec:	943a                	add	s0,s0,a4
 80027ee:	4601                	li	a2,0
 80027f0:	012a4533          	xor	a0,s4,s2
 80027f4:	47bd                	li	a5,15
 80027f6:	86aa                	mv	a3,a0
 80027f8:	00140593          	addi	a1,s0,1
 80027fc:	1097e063          	bltu	a5,s1,80028fc <__mulsf3+0x180>
 8002800:	ffffe717          	auipc	a4,0xffffe
 8002804:	df870713          	addi	a4,a4,-520 # 80005f8 <GPIO_PORT+0xe0>
 8002808:	048a                	slli	s1,s1,0x2
 800280a:	94ba                	add	s1,s1,a4
 800280c:	409c                	lw	a5,0(s1)
 800280e:	97ba                	add	a5,a5,a4
 8002810:	8782                	jr	a5
 8002812:	0ff40413          	addi	s0,s0,255
 8002816:	0c0a9663          	bnez	s5,80028e2 <__mulsf3+0x166>
 800281a:	0024e493          	ori	s1,s1,2
 800281e:	4609                	li	a2,2
 8002820:	bfc1                	j	80027f0 <__mulsf3+0x74>
 8002822:	4501                	li	a0,0
 8002824:	0ff00713          	li	a4,255
 8002828:	004007b7          	lui	a5,0x400
 800282c:	50b2                	lw	ra,44(sp)
 800282e:	5422                	lw	s0,40(sp)
 8002830:	07a6                	slli	a5,a5,0x9
 8002832:	075e                	slli	a4,a4,0x17
 8002834:	83a5                	srli	a5,a5,0x9
 8002836:	057e                	slli	a0,a0,0x1f
 8002838:	8fd9                	or	a5,a5,a4
 800283a:	5492                	lw	s1,36(sp)
 800283c:	5902                	lw	s2,32(sp)
 800283e:	49f2                	lw	s3,28(sp)
 8002840:	4a62                	lw	s4,24(sp)
 8002842:	4ad2                	lw	s5,20(sp)
 8002844:	4b42                	lw	s6,16(sp)
 8002846:	8d5d                	or	a0,a0,a5
 8002848:	6145                	addi	sp,sp,48
 800284a:	8082                	ret
 800284c:	86ca                	mv	a3,s2
 800284e:	89d6                	mv	s3,s5
 8002850:	8b32                	mv	s6,a2
 8002852:	4789                	li	a5,2
 8002854:	08fb0f63          	beq	s6,a5,80028f2 <__mulsf3+0x176>
 8002858:	478d                	li	a5,3
 800285a:	fcfb04e3          	beq	s6,a5,8002822 <__mulsf3+0xa6>
 800285e:	4785                	li	a5,1
 8002860:	8536                	mv	a0,a3
 8002862:	1afb1063          	bne	s6,a5,8002a02 <__mulsf3+0x286>
 8002866:	4701                	li	a4,0
 8002868:	4781                	li	a5,0
 800286a:	b7c9                	j	800282c <__mulsf3+0xb0>
 800286c:	04099d63          	bnez	s3,80028c6 <__mulsf3+0x14a>
 8002870:	0175d713          	srli	a4,a1,0x17
 8002874:	00959a93          	slli	s5,a1,0x9
 8002878:	0ff77713          	andi	a4,a4,255
 800287c:	4491                	li	s1,4
 800287e:	4401                	li	s0,0
 8002880:	4b05                	li	s6,1
 8002882:	009ada93          	srli	s5,s5,0x9
 8002886:	01f5d913          	srli	s2,a1,0x1f
 800288a:	f731                	bnez	a4,80027d6 <__mulsf3+0x5a>
 800288c:	000a9d63          	bnez	s5,80028a6 <__mulsf3+0x12a>
 8002890:	0014e493          	ori	s1,s1,1
 8002894:	4605                	li	a2,1
 8002896:	bfa9                	j	80027f0 <__mulsf3+0x74>
 8002898:	02099263          	bnez	s3,80028bc <__mulsf3+0x140>
 800289c:	44a1                	li	s1,8
 800289e:	0ff00413          	li	s0,255
 80028a2:	4b09                	li	s6,2
 80028a4:	bf31                	j	80027c0 <__mulsf3+0x44>
 80028a6:	8556                	mv	a0,s5
 80028a8:	2ce5                	jal	8002ba0 <__clzsi2>
 80028aa:	ffb50793          	addi	a5,a0,-5
 80028ae:	8c09                	sub	s0,s0,a0
 80028b0:	00fa9ab3          	sll	s5,s5,a5
 80028b4:	f8a40413          	addi	s0,s0,-118
 80028b8:	4601                	li	a2,0
 80028ba:	bf1d                	j	80027f0 <__mulsf3+0x74>
 80028bc:	44b1                	li	s1,12
 80028be:	0ff00413          	li	s0,255
 80028c2:	4b0d                	li	s6,3
 80028c4:	bdf5                	j	80027c0 <__mulsf3+0x44>
 80028c6:	854e                	mv	a0,s3
 80028c8:	c62e                	sw	a1,12(sp)
 80028ca:	2cd9                	jal	8002ba0 <__clzsi2>
 80028cc:	ffb50793          	addi	a5,a0,-5
 80028d0:	f8a00413          	li	s0,-118
 80028d4:	00f999b3          	sll	s3,s3,a5
 80028d8:	8c09                	sub	s0,s0,a0
 80028da:	4481                	li	s1,0
 80028dc:	4b01                	li	s6,0
 80028de:	45b2                	lw	a1,12(sp)
 80028e0:	b5c5                	j	80027c0 <__mulsf3+0x44>
 80028e2:	0034e493          	ori	s1,s1,3
 80028e6:	460d                	li	a2,3
 80028e8:	b721                	j	80027f0 <__mulsf3+0x74>
 80028ea:	4789                	li	a5,2
 80028ec:	86d2                	mv	a3,s4
 80028ee:	f6fb15e3          	bne	s6,a5,8002858 <__mulsf3+0xdc>
 80028f2:	8536                	mv	a0,a3
 80028f4:	0ff00713          	li	a4,255
 80028f8:	4781                	li	a5,0
 80028fa:	bf0d                	j	800282c <__mulsf3+0xb0>
 80028fc:	6341                	lui	t1,0x10
 80028fe:	fff30693          	addi	a3,t1,-1 # ffff <__stack_size+0xf7ff>
 8002902:	0109d613          	srli	a2,s3,0x10
 8002906:	010ad893          	srli	a7,s5,0x10
 800290a:	00d9f7b3          	and	a5,s3,a3
 800290e:	00dafab3          	and	s5,s5,a3
 8002912:	03578833          	mul	a6,a5,s5
 8002916:	02f889b3          	mul	s3,a7,a5
 800291a:	01085713          	srli	a4,a6,0x10
 800291e:	03560ab3          	mul	s5,a2,s5
 8002922:	99d6                	add	s3,s3,s5
 8002924:	974e                	add	a4,a4,s3
 8002926:	03160633          	mul	a2,a2,a7
 800292a:	01577363          	bgeu	a4,s5,8002930 <__mulsf3+0x1b4>
 800292e:	961a                	add	a2,a2,t1
 8002930:	67c1                	lui	a5,0x10
 8002932:	17fd                	addi	a5,a5,-1
 8002934:	00f776b3          	and	a3,a4,a5
 8002938:	00f87833          	and	a6,a6,a5
 800293c:	06c2                	slli	a3,a3,0x10
 800293e:	96c2                	add	a3,a3,a6
 8002940:	00669993          	slli	s3,a3,0x6
 8002944:	01075793          	srli	a5,a4,0x10
 8002948:	013039b3          	snez	s3,s3
 800294c:	82e9                	srli	a3,a3,0x1a
 800294e:	97b2                	add	a5,a5,a2
 8002950:	079a                	slli	a5,a5,0x6
 8002952:	00d9e6b3          	or	a3,s3,a3
 8002956:	00d7e9b3          	or	s3,a5,a3
 800295a:	00499793          	slli	a5,s3,0x4
 800295e:	0007d963          	bgez	a5,8002970 <__mulsf3+0x1f4>
 8002962:	0019d713          	srli	a4,s3,0x1
 8002966:	0019f793          	andi	a5,s3,1
 800296a:	00f769b3          	or	s3,a4,a5
 800296e:	842e                	mv	s0,a1
 8002970:	07f40713          	addi	a4,s0,127
 8002974:	04e05063          	blez	a4,80029b4 <__mulsf3+0x238>
 8002978:	0079f793          	andi	a5,s3,7
 800297c:	c799                	beqz	a5,800298a <__mulsf3+0x20e>
 800297e:	00f9f793          	andi	a5,s3,15
 8002982:	4691                	li	a3,4
 8002984:	00d78363          	beq	a5,a3,800298a <__mulsf3+0x20e>
 8002988:	0991                	addi	s3,s3,4
 800298a:	00499793          	slli	a5,s3,0x4
 800298e:	0007d963          	bgez	a5,80029a0 <__mulsf3+0x224>
 8002992:	f80007b7          	lui	a5,0xf8000
 8002996:	17fd                	addi	a5,a5,-1
 8002998:	00f9f9b3          	and	s3,s3,a5
 800299c:	08040713          	addi	a4,s0,128
 80029a0:	0fe00793          	li	a5,254
 80029a4:	04e7cb63          	blt	a5,a4,80029fa <__mulsf3+0x27e>
 80029a8:	00699793          	slli	a5,s3,0x6
 80029ac:	83a5                	srli	a5,a5,0x9
 80029ae:	0ff77713          	andi	a4,a4,255
 80029b2:	bdad                	j	800282c <__mulsf3+0xb0>
 80029b4:	4785                	li	a5,1
 80029b6:	40e786b3          	sub	a3,a5,a4
 80029ba:	c711                	beqz	a4,80029c6 <__mulsf3+0x24a>
 80029bc:	466d                	li	a2,27
 80029be:	4701                	li	a4,0
 80029c0:	4781                	li	a5,0
 80029c2:	e6d645e3          	blt	a2,a3,800282c <__mulsf3+0xb0>
 80029c6:	09e40713          	addi	a4,s0,158
 80029ca:	00e99733          	sll	a4,s3,a4
 80029ce:	00e03733          	snez	a4,a4
 80029d2:	00d9d7b3          	srl	a5,s3,a3
 80029d6:	8fd9                	or	a5,a5,a4
 80029d8:	0077f713          	andi	a4,a5,7
 80029dc:	c719                	beqz	a4,80029ea <__mulsf3+0x26e>
 80029de:	00f7f713          	andi	a4,a5,15
 80029e2:	4691                	li	a3,4
 80029e4:	00d70363          	beq	a4,a3,80029ea <__mulsf3+0x26e>
 80029e8:	0791                	addi	a5,a5,4
 80029ea:	00579713          	slli	a4,a5,0x5
 80029ee:	00074c63          	bltz	a4,8002a06 <__mulsf3+0x28a>
 80029f2:	079a                	slli	a5,a5,0x6
 80029f4:	83a5                	srli	a5,a5,0x9
 80029f6:	4701                	li	a4,0
 80029f8:	bd15                	j	800282c <__mulsf3+0xb0>
 80029fa:	0ff00713          	li	a4,255
 80029fe:	4781                	li	a5,0
 8002a00:	b535                	j	800282c <__mulsf3+0xb0>
 8002a02:	842e                	mv	s0,a1
 8002a04:	b7b5                	j	8002970 <__mulsf3+0x1f4>
 8002a06:	4705                	li	a4,1
 8002a08:	4781                	li	a5,0
 8002a0a:	b50d                	j	800282c <__mulsf3+0xb0>

08002a0c <__floatsisf>:
__floatsisf():
 8002a0c:	1141                	addi	sp,sp,-16
 8002a0e:	c606                	sw	ra,12(sp)
 8002a10:	c422                	sw	s0,8(sp)
 8002a12:	c226                	sw	s1,4(sp)
 8002a14:	cd0d                	beqz	a0,8002a4e <__floatsisf+0x42>
 8002a16:	41f55793          	srai	a5,a0,0x1f
 8002a1a:	00a7c433          	xor	s0,a5,a0
 8002a1e:	8c1d                	sub	s0,s0,a5
 8002a20:	84aa                	mv	s1,a0
 8002a22:	8522                	mv	a0,s0
 8002a24:	2ab5                	jal	8002ba0 <__clzsi2>
 8002a26:	09e00793          	li	a5,158
 8002a2a:	40a78733          	sub	a4,a5,a0
 8002a2e:	09600793          	li	a5,150
 8002a32:	80fd                	srli	s1,s1,0x1f
 8002a34:	02e7cc63          	blt	a5,a4,8002a6c <__floatsisf+0x60>
 8002a38:	46a1                	li	a3,8
 8002a3a:	0ff77793          	andi	a5,a4,255
 8002a3e:	00a6d563          	bge	a3,a0,8002a48 <__floatsisf+0x3c>
 8002a42:	1561                	addi	a0,a0,-8
 8002a44:	00a41433          	sll	s0,s0,a0
 8002a48:	0426                	slli	s0,s0,0x9
 8002a4a:	8025                	srli	s0,s0,0x9
 8002a4c:	a021                	j	8002a54 <__floatsisf+0x48>
 8002a4e:	4481                	li	s1,0
 8002a50:	4781                	li	a5,0
 8002a52:	4401                	li	s0,0
 8002a54:	0426                	slli	s0,s0,0x9
 8002a56:	00945513          	srli	a0,s0,0x9
 8002a5a:	40b2                	lw	ra,12(sp)
 8002a5c:	4422                	lw	s0,8(sp)
 8002a5e:	07de                	slli	a5,a5,0x17
 8002a60:	04fe                	slli	s1,s1,0x1f
 8002a62:	8d5d                	or	a0,a0,a5
 8002a64:	8d45                	or	a0,a0,s1
 8002a66:	4492                	lw	s1,4(sp)
 8002a68:	0141                	addi	sp,sp,16
 8002a6a:	8082                	ret
 8002a6c:	09900793          	li	a5,153
 8002a70:	00e7dd63          	bge	a5,a4,8002a8a <__floatsisf+0x7e>
 8002a74:	01b50793          	addi	a5,a0,27
 8002a78:	4695                	li	a3,5
 8002a7a:	00f417b3          	sll	a5,s0,a5
 8002a7e:	8e89                	sub	a3,a3,a0
 8002a80:	00d45433          	srl	s0,s0,a3
 8002a84:	00f037b3          	snez	a5,a5
 8002a88:	8c5d                	or	s0,s0,a5
 8002a8a:	4795                	li	a5,5
 8002a8c:	00a7d663          	bge	a5,a0,8002a98 <__floatsisf+0x8c>
 8002a90:	ffb50793          	addi	a5,a0,-5
 8002a94:	00f41433          	sll	s0,s0,a5
 8002a98:	fc0006b7          	lui	a3,0xfc000
 8002a9c:	16fd                	addi	a3,a3,-1
 8002a9e:	00747793          	andi	a5,s0,7
 8002aa2:	00d47633          	and	a2,s0,a3
 8002aa6:	c385                	beqz	a5,8002ac6 <__floatsisf+0xba>
 8002aa8:	00f47793          	andi	a5,s0,15
 8002aac:	4591                	li	a1,4
 8002aae:	00b78c63          	beq	a5,a1,8002ac6 <__floatsisf+0xba>
 8002ab2:	0611                	addi	a2,a2,4
 8002ab4:	00561793          	slli	a5,a2,0x5
 8002ab8:	0007d763          	bgez	a5,8002ac6 <__floatsisf+0xba>
 8002abc:	09f00793          	li	a5,159
 8002ac0:	8e75                	and	a2,a2,a3
 8002ac2:	40a78733          	sub	a4,a5,a0
 8002ac6:	00661413          	slli	s0,a2,0x6
 8002aca:	8025                	srli	s0,s0,0x9
 8002acc:	0ff77793          	andi	a5,a4,255
 8002ad0:	b751                	j	8002a54 <__floatsisf+0x48>

08002ad2 <__floatunsisf>:
__floatunsisf():
 8002ad2:	1141                	addi	sp,sp,-16
 8002ad4:	c606                	sw	ra,12(sp)
 8002ad6:	c422                	sw	s0,8(sp)
 8002ad8:	cd15                	beqz	a0,8002b14 <__floatunsisf+0x42>
 8002ada:	842a                	mv	s0,a0
 8002adc:	20d1                	jal	8002ba0 <__clzsi2>
 8002ade:	09e00793          	li	a5,158
 8002ae2:	40a78733          	sub	a4,a5,a0
 8002ae6:	09600793          	li	a5,150
 8002aea:	04e7c063          	blt	a5,a4,8002b2a <__floatunsisf+0x58>
 8002aee:	46a1                	li	a3,8
 8002af0:	0ff77793          	andi	a5,a4,255
 8002af4:	00a6d563          	bge	a3,a0,8002afe <__floatunsisf+0x2c>
 8002af8:	1561                	addi	a0,a0,-8
 8002afa:	00a41433          	sll	s0,s0,a0
 8002afe:	0426                	slli	s0,s0,0x9
 8002b00:	8025                	srli	s0,s0,0x9
 8002b02:	0426                	slli	s0,s0,0x9
 8002b04:	00945513          	srli	a0,s0,0x9
 8002b08:	40b2                	lw	ra,12(sp)
 8002b0a:	4422                	lw	s0,8(sp)
 8002b0c:	07de                	slli	a5,a5,0x17
 8002b0e:	8d5d                	or	a0,a0,a5
 8002b10:	0141                	addi	sp,sp,16
 8002b12:	8082                	ret
 8002b14:	4401                	li	s0,0
 8002b16:	0426                	slli	s0,s0,0x9
 8002b18:	00945513          	srli	a0,s0,0x9
 8002b1c:	40b2                	lw	ra,12(sp)
 8002b1e:	4422                	lw	s0,8(sp)
 8002b20:	4781                	li	a5,0
 8002b22:	07de                	slli	a5,a5,0x17
 8002b24:	8d5d                	or	a0,a0,a5
 8002b26:	0141                	addi	sp,sp,16
 8002b28:	8082                	ret
 8002b2a:	09900793          	li	a5,153
 8002b2e:	00e7dd63          	bge	a5,a4,8002b48 <__floatunsisf+0x76>
 8002b32:	01b50793          	addi	a5,a0,27
 8002b36:	4695                	li	a3,5
 8002b38:	00f417b3          	sll	a5,s0,a5
 8002b3c:	8e89                	sub	a3,a3,a0
 8002b3e:	00f037b3          	snez	a5,a5
 8002b42:	00d45433          	srl	s0,s0,a3
 8002b46:	8c5d                	or	s0,s0,a5
 8002b48:	4795                	li	a5,5
 8002b4a:	00a7d663          	bge	a5,a0,8002b56 <__floatunsisf+0x84>
 8002b4e:	ffb50793          	addi	a5,a0,-5
 8002b52:	00f41433          	sll	s0,s0,a5
 8002b56:	fc0006b7          	lui	a3,0xfc000
 8002b5a:	16fd                	addi	a3,a3,-1
 8002b5c:	00747793          	andi	a5,s0,7
 8002b60:	00d47633          	and	a2,s0,a3
 8002b64:	c385                	beqz	a5,8002b84 <__floatunsisf+0xb2>
 8002b66:	00f47793          	andi	a5,s0,15
 8002b6a:	4591                	li	a1,4
 8002b6c:	00b78c63          	beq	a5,a1,8002b84 <__floatunsisf+0xb2>
 8002b70:	0611                	addi	a2,a2,4
 8002b72:	00561793          	slli	a5,a2,0x5
 8002b76:	0007d763          	bgez	a5,8002b84 <__floatunsisf+0xb2>
 8002b7a:	09f00793          	li	a5,159
 8002b7e:	8e75                	and	a2,a2,a3
 8002b80:	40a78733          	sub	a4,a5,a0
 8002b84:	00661413          	slli	s0,a2,0x6
 8002b88:	8025                	srli	s0,s0,0x9
 8002b8a:	0426                	slli	s0,s0,0x9
 8002b8c:	00945513          	srli	a0,s0,0x9
 8002b90:	40b2                	lw	ra,12(sp)
 8002b92:	4422                	lw	s0,8(sp)
 8002b94:	0ff77793          	andi	a5,a4,255
 8002b98:	07de                	slli	a5,a5,0x17
 8002b9a:	8d5d                	or	a0,a0,a5
 8002b9c:	0141                	addi	sp,sp,16
 8002b9e:	8082                	ret

08002ba0 <__clzsi2>:
__clzsi2():
 8002ba0:	67c1                	lui	a5,0x10
 8002ba2:	02f57e63          	bgeu	a0,a5,8002bde <__clzsi2+0x3e>
 8002ba6:	0ff00793          	li	a5,255
 8002baa:	02000713          	li	a4,32
 8002bae:	00a7ec63          	bltu	a5,a0,8002bc6 <__clzsi2+0x26>
 8002bb2:	ffffe797          	auipc	a5,0xffffe
 8002bb6:	a8678793          	addi	a5,a5,-1402 # 8000638 <__clz_tab>
 8002bba:	97aa                	add	a5,a5,a0
 8002bbc:	0007c503          	lbu	a0,0(a5)
 8002bc0:	40a70533          	sub	a0,a4,a0
 8002bc4:	8082                	ret
 8002bc6:	8121                	srli	a0,a0,0x8
 8002bc8:	ffffe797          	auipc	a5,0xffffe
 8002bcc:	a7078793          	addi	a5,a5,-1424 # 8000638 <__clz_tab>
 8002bd0:	97aa                	add	a5,a5,a0
 8002bd2:	0007c503          	lbu	a0,0(a5)
 8002bd6:	4761                	li	a4,24
 8002bd8:	40a70533          	sub	a0,a4,a0
 8002bdc:	8082                	ret
 8002bde:	010007b7          	lui	a5,0x1000
 8002be2:	00f56e63          	bltu	a0,a5,8002bfe <__clzsi2+0x5e>
 8002be6:	8161                	srli	a0,a0,0x18
 8002be8:	ffffe797          	auipc	a5,0xffffe
 8002bec:	a5078793          	addi	a5,a5,-1456 # 8000638 <__clz_tab>
 8002bf0:	97aa                	add	a5,a5,a0
 8002bf2:	0007c503          	lbu	a0,0(a5)
 8002bf6:	4721                	li	a4,8
 8002bf8:	40a70533          	sub	a0,a4,a0
 8002bfc:	8082                	ret
 8002bfe:	8141                	srli	a0,a0,0x10
 8002c00:	ffffe797          	auipc	a5,0xffffe
 8002c04:	a3878793          	addi	a5,a5,-1480 # 8000638 <__clz_tab>
 8002c08:	97aa                	add	a5,a5,a0
 8002c0a:	0007c503          	lbu	a0,0(a5)
 8002c0e:	4741                	li	a4,16
 8002c10:	40a70533          	sub	a0,a4,a0
 8002c14:	8082                	ret

08002c16 <atexit>:
atexit():
 8002c16:	85aa                	mv	a1,a0
 8002c18:	4681                	li	a3,0
 8002c1a:	4601                	li	a2,0
 8002c1c:	4501                	li	a0,0
 8002c1e:	a4fd                	j	8002f0c <__register_exitproc>

08002c20 <exit>:
exit():
 8002c20:	1141                	addi	sp,sp,-16
 8002c22:	c422                	sw	s0,8(sp)
 8002c24:	c606                	sw	ra,12(sp)
 8002c26:	00000797          	auipc	a5,0x0
 8002c2a:	36a78793          	addi	a5,a5,874 # 8002f90 <__call_exitprocs>
 8002c2e:	842a                	mv	s0,a0
 8002c30:	c399                	beqz	a5,8002c36 <exit+0x16>
 8002c32:	4581                	li	a1,0
 8002c34:	2eb1                	jal	8002f90 <__call_exitprocs>
 8002c36:	00000797          	auipc	a5,0x0
 8002c3a:	45278793          	addi	a5,a5,1106 # 8003088 <_global_impure_ptr>
 8002c3e:	4388                	lw	a0,0(a5)
 8002c40:	551c                	lw	a5,40(a0)
 8002c42:	c391                	beqz	a5,8002c46 <exit+0x26>
 8002c44:	9782                	jalr	a5
 8002c46:	8522                	mv	a0,s0
 8002c48:	d9ffe0ef          	jal	ra,80019e6 <_exit>

08002c4c <__libc_fini_array>:
__libc_fini_array():
 8002c4c:	1141                	addi	sp,sp,-16
 8002c4e:	00000797          	auipc	a5,0x0
 8002c52:	43e78793          	addi	a5,a5,1086 # 800308c <__fini_array_end>
 8002c56:	c422                	sw	s0,8(sp)
 8002c58:	00000417          	auipc	s0,0x0
 8002c5c:	43440413          	addi	s0,s0,1076 # 800308c <__fini_array_end>
 8002c60:	8c1d                	sub	s0,s0,a5
 8002c62:	c226                	sw	s1,4(sp)
 8002c64:	c606                	sw	ra,12(sp)
 8002c66:	8409                	srai	s0,s0,0x2
 8002c68:	84be                	mv	s1,a5
 8002c6a:	e419                	bnez	s0,8002c78 <__libc_fini_array+0x2c>
 8002c6c:	4422                	lw	s0,8(sp)
 8002c6e:	40b2                	lw	ra,12(sp)
 8002c70:	4492                	lw	s1,4(sp)
 8002c72:	0141                	addi	sp,sp,16
 8002c74:	850ff06f          	j	8001cc4 <_fini>
 8002c78:	147d                	addi	s0,s0,-1
 8002c7a:	00241793          	slli	a5,s0,0x2
 8002c7e:	97a6                	add	a5,a5,s1
 8002c80:	439c                	lw	a5,0(a5)
 8002c82:	9782                	jalr	a5
 8002c84:	b7dd                	j	8002c6a <__libc_fini_array+0x1e>

08002c86 <__libc_init_array>:
__libc_init_array():
 8002c86:	1141                	addi	sp,sp,-16
 8002c88:	00000797          	auipc	a5,0x0
 8002c8c:	40478793          	addi	a5,a5,1028 # 800308c <__fini_array_end>
 8002c90:	c422                	sw	s0,8(sp)
 8002c92:	00000417          	auipc	s0,0x0
 8002c96:	3fa40413          	addi	s0,s0,1018 # 800308c <__fini_array_end>
 8002c9a:	8c1d                	sub	s0,s0,a5
 8002c9c:	c226                	sw	s1,4(sp)
 8002c9e:	c04a                	sw	s2,0(sp)
 8002ca0:	c606                	sw	ra,12(sp)
 8002ca2:	8409                	srai	s0,s0,0x2
 8002ca4:	4481                	li	s1,0
 8002ca6:	893e                	mv	s2,a5
 8002ca8:	02849863          	bne	s1,s0,8002cd8 <__libc_init_array+0x52>
 8002cac:	802ff0ef          	jal	ra,8001cae <_init>
 8002cb0:	00000797          	auipc	a5,0x0
 8002cb4:	3dc78793          	addi	a5,a5,988 # 800308c <__fini_array_end>
 8002cb8:	00000417          	auipc	s0,0x0
 8002cbc:	3d440413          	addi	s0,s0,980 # 800308c <__fini_array_end>
 8002cc0:	8c1d                	sub	s0,s0,a5
 8002cc2:	8409                	srai	s0,s0,0x2
 8002cc4:	4481                	li	s1,0
 8002cc6:	893e                	mv	s2,a5
 8002cc8:	00849f63          	bne	s1,s0,8002ce6 <__libc_init_array+0x60>
 8002ccc:	40b2                	lw	ra,12(sp)
 8002cce:	4422                	lw	s0,8(sp)
 8002cd0:	4492                	lw	s1,4(sp)
 8002cd2:	4902                	lw	s2,0(sp)
 8002cd4:	0141                	addi	sp,sp,16
 8002cd6:	8082                	ret
 8002cd8:	00249793          	slli	a5,s1,0x2
 8002cdc:	97ca                	add	a5,a5,s2
 8002cde:	439c                	lw	a5,0(a5)
 8002ce0:	0485                	addi	s1,s1,1
 8002ce2:	9782                	jalr	a5
 8002ce4:	b7d1                	j	8002ca8 <__libc_init_array+0x22>
 8002ce6:	00249793          	slli	a5,s1,0x2
 8002cea:	97ca                	add	a5,a5,s2
 8002cec:	439c                	lw	a5,0(a5)
 8002cee:	0485                	addi	s1,s1,1
 8002cf0:	9782                	jalr	a5
 8002cf2:	bfd9                	j	8002cc8 <__libc_init_array+0x42>

08002cf4 <memset>:
memset():
 8002cf4:	433d                	li	t1,15
 8002cf6:	872a                	mv	a4,a0
 8002cf8:	02c37363          	bgeu	t1,a2,8002d1e <memset+0x2a>
 8002cfc:	00f77793          	andi	a5,a4,15
 8002d00:	efbd                	bnez	a5,8002d7e <memset+0x8a>
 8002d02:	e5ad                	bnez	a1,8002d6c <memset+0x78>
 8002d04:	ff067693          	andi	a3,a2,-16
 8002d08:	8a3d                	andi	a2,a2,15
 8002d0a:	96ba                	add	a3,a3,a4
 8002d0c:	c30c                	sw	a1,0(a4)
 8002d0e:	c34c                	sw	a1,4(a4)
 8002d10:	c70c                	sw	a1,8(a4)
 8002d12:	c74c                	sw	a1,12(a4)
 8002d14:	0741                	addi	a4,a4,16
 8002d16:	fed76be3          	bltu	a4,a3,8002d0c <memset+0x18>
 8002d1a:	e211                	bnez	a2,8002d1e <memset+0x2a>
 8002d1c:	8082                	ret
 8002d1e:	40c306b3          	sub	a3,t1,a2
 8002d22:	068a                	slli	a3,a3,0x2
 8002d24:	00000297          	auipc	t0,0x0
 8002d28:	9696                	add	a3,a3,t0
 8002d2a:	00a68067          	jr	10(a3) # fc00000a <_sp+0xdbff800a>
 8002d2e:	00b70723          	sb	a1,14(a4)
 8002d32:	00b706a3          	sb	a1,13(a4)
 8002d36:	00b70623          	sb	a1,12(a4)
 8002d3a:	00b705a3          	sb	a1,11(a4)
 8002d3e:	00b70523          	sb	a1,10(a4)
 8002d42:	00b704a3          	sb	a1,9(a4)
 8002d46:	00b70423          	sb	a1,8(a4)
 8002d4a:	00b703a3          	sb	a1,7(a4)
 8002d4e:	00b70323          	sb	a1,6(a4)
 8002d52:	00b702a3          	sb	a1,5(a4)
 8002d56:	00b70223          	sb	a1,4(a4)
 8002d5a:	00b701a3          	sb	a1,3(a4)
 8002d5e:	00b70123          	sb	a1,2(a4)
 8002d62:	00b700a3          	sb	a1,1(a4)
 8002d66:	00b70023          	sb	a1,0(a4)
 8002d6a:	8082                	ret
 8002d6c:	0ff5f593          	andi	a1,a1,255
 8002d70:	00859693          	slli	a3,a1,0x8
 8002d74:	8dd5                	or	a1,a1,a3
 8002d76:	01059693          	slli	a3,a1,0x10
 8002d7a:	8dd5                	or	a1,a1,a3
 8002d7c:	b761                	j	8002d04 <memset+0x10>
 8002d7e:	00279693          	slli	a3,a5,0x2
 8002d82:	00000297          	auipc	t0,0x0
 8002d86:	9696                	add	a3,a3,t0
 8002d88:	8286                	mv	t0,ra
 8002d8a:	fa8680e7          	jalr	-88(a3)
 8002d8e:	8096                	mv	ra,t0
 8002d90:	17c1                	addi	a5,a5,-16
 8002d92:	8f1d                	sub	a4,a4,a5
 8002d94:	963e                	add	a2,a2,a5
 8002d96:	f8c374e3          	bgeu	t1,a2,8002d1e <memset+0x2a>
 8002d9a:	b7a5                	j	8002d02 <memset+0xe>

08002d9c <strcmp>:
strcmp():
 8002d9c:	00b56733          	or	a4,a0,a1
 8002da0:	53fd                	li	t2,-1
 8002da2:	8b0d                	andi	a4,a4,3
 8002da4:	e779                	bnez	a4,8002e72 <strcmp+0xd6>
 8002da6:	7f7f87b7          	lui	a5,0x7f7f8
 8002daa:	f7f78793          	addi	a5,a5,-129 # 7f7f7f7f <_sp+0x5f7eff7f>
 8002dae:	4110                	lw	a2,0(a0)
 8002db0:	4194                	lw	a3,0(a1)
 8002db2:	00f672b3          	and	t0,a2,a5
 8002db6:	00f66333          	or	t1,a2,a5
 8002dba:	92be                	add	t0,t0,a5
 8002dbc:	0062e2b3          	or	t0,t0,t1
 8002dc0:	0c729763          	bne	t0,t2,8002e8e <strcmp+0xf2>
 8002dc4:	06d61863          	bne	a2,a3,8002e34 <strcmp+0x98>
 8002dc8:	4150                	lw	a2,4(a0)
 8002dca:	41d4                	lw	a3,4(a1)
 8002dcc:	00f672b3          	and	t0,a2,a5
 8002dd0:	00f66333          	or	t1,a2,a5
 8002dd4:	92be                	add	t0,t0,a5
 8002dd6:	0062e2b3          	or	t0,t0,t1
 8002dda:	0a729863          	bne	t0,t2,8002e8a <strcmp+0xee>
 8002dde:	04d61b63          	bne	a2,a3,8002e34 <strcmp+0x98>
 8002de2:	4510                	lw	a2,8(a0)
 8002de4:	4594                	lw	a3,8(a1)
 8002de6:	00f672b3          	and	t0,a2,a5
 8002dea:	00f66333          	or	t1,a2,a5
 8002dee:	92be                	add	t0,t0,a5
 8002df0:	0062e2b3          	or	t0,t0,t1
 8002df4:	0a729163          	bne	t0,t2,8002e96 <strcmp+0xfa>
 8002df8:	02d61e63          	bne	a2,a3,8002e34 <strcmp+0x98>
 8002dfc:	4550                	lw	a2,12(a0)
 8002dfe:	45d4                	lw	a3,12(a1)
 8002e00:	00f672b3          	and	t0,a2,a5
 8002e04:	00f66333          	or	t1,a2,a5
 8002e08:	92be                	add	t0,t0,a5
 8002e0a:	0062e2b3          	or	t0,t0,t1
 8002e0e:	08729a63          	bne	t0,t2,8002ea2 <strcmp+0x106>
 8002e12:	02d61163          	bne	a2,a3,8002e34 <strcmp+0x98>
 8002e16:	4910                	lw	a2,16(a0)
 8002e18:	4994                	lw	a3,16(a1)
 8002e1a:	00f672b3          	and	t0,a2,a5
 8002e1e:	00f66333          	or	t1,a2,a5
 8002e22:	92be                	add	t0,t0,a5
 8002e24:	0062e2b3          	or	t0,t0,t1
 8002e28:	08729363          	bne	t0,t2,8002eae <strcmp+0x112>
 8002e2c:	0551                	addi	a0,a0,20
 8002e2e:	05d1                	addi	a1,a1,20
 8002e30:	f6d60fe3          	beq	a2,a3,8002dae <strcmp+0x12>
 8002e34:	01061713          	slli	a4,a2,0x10
 8002e38:	01069793          	slli	a5,a3,0x10
 8002e3c:	00f71c63          	bne	a4,a5,8002e54 <strcmp+0xb8>
 8002e40:	01065713          	srli	a4,a2,0x10
 8002e44:	0106d793          	srli	a5,a3,0x10
 8002e48:	40f70533          	sub	a0,a4,a5
 8002e4c:	0ff57593          	andi	a1,a0,255
 8002e50:	e991                	bnez	a1,8002e64 <strcmp+0xc8>
 8002e52:	8082                	ret
 8002e54:	8341                	srli	a4,a4,0x10
 8002e56:	83c1                	srli	a5,a5,0x10
 8002e58:	40f70533          	sub	a0,a4,a5
 8002e5c:	0ff57593          	andi	a1,a0,255
 8002e60:	e191                	bnez	a1,8002e64 <strcmp+0xc8>
 8002e62:	8082                	ret
 8002e64:	0ff77713          	andi	a4,a4,255
 8002e68:	0ff7f793          	andi	a5,a5,255
 8002e6c:	40f70533          	sub	a0,a4,a5
 8002e70:	8082                	ret
 8002e72:	00054603          	lbu	a2,0(a0)
 8002e76:	0005c683          	lbu	a3,0(a1)
 8002e7a:	0505                	addi	a0,a0,1
 8002e7c:	0585                	addi	a1,a1,1
 8002e7e:	00d61363          	bne	a2,a3,8002e84 <strcmp+0xe8>
 8002e82:	fa65                	bnez	a2,8002e72 <strcmp+0xd6>
 8002e84:	40d60533          	sub	a0,a2,a3
 8002e88:	8082                	ret
 8002e8a:	0511                	addi	a0,a0,4
 8002e8c:	0591                	addi	a1,a1,4
 8002e8e:	fed612e3          	bne	a2,a3,8002e72 <strcmp+0xd6>
 8002e92:	4501                	li	a0,0
 8002e94:	8082                	ret
 8002e96:	0521                	addi	a0,a0,8
 8002e98:	05a1                	addi	a1,a1,8
 8002e9a:	fcd61ce3          	bne	a2,a3,8002e72 <strcmp+0xd6>
 8002e9e:	4501                	li	a0,0
 8002ea0:	8082                	ret
 8002ea2:	0531                	addi	a0,a0,12
 8002ea4:	05b1                	addi	a1,a1,12
 8002ea6:	fcd616e3          	bne	a2,a3,8002e72 <strcmp+0xd6>
 8002eaa:	4501                	li	a0,0
 8002eac:	8082                	ret
 8002eae:	0541                	addi	a0,a0,16
 8002eb0:	05c1                	addi	a1,a1,16
 8002eb2:	fcd610e3          	bne	a2,a3,8002e72 <strcmp+0xd6>
 8002eb6:	4501                	li	a0,0
 8002eb8:	8082                	ret

08002eba <strlen>:
strlen():
 8002eba:	87aa                	mv	a5,a0
 8002ebc:	0785                	addi	a5,a5,1
 8002ebe:	fff7c703          	lbu	a4,-1(a5)
 8002ec2:	ff6d                	bnez	a4,8002ebc <strlen+0x2>
 8002ec4:	40a78533          	sub	a0,a5,a0
 8002ec8:	157d                	addi	a0,a0,-1
 8002eca:	8082                	ret

08002ecc <write>:
write():
 8002ecc:	17ffd797          	auipc	a5,0x17ffd
 8002ed0:	19478793          	addi	a5,a5,404 # 20000060 <_impure_ptr>
 8002ed4:	86b2                	mv	a3,a2
 8002ed6:	862e                	mv	a2,a1
 8002ed8:	85aa                	mv	a1,a0
 8002eda:	4388                	lw	a0,0(a5)
 8002edc:	a009                	j	8002ede <_write_r>

08002ede <_write_r>:
_write_r():
 8002ede:	1141                	addi	sp,sp,-16
 8002ee0:	c422                	sw	s0,8(sp)
 8002ee2:	842a                	mv	s0,a0
 8002ee4:	852e                	mv	a0,a1
 8002ee6:	85b2                	mv	a1,a2
 8002ee8:	8636                	mv	a2,a3
 8002eea:	c201a023          	sw	zero,-992(gp) # 20000480 <errno>
 8002eee:	c606                	sw	ra,12(sp)
 8002ef0:	b95fe0ef          	jal	ra,8001a84 <_write>
 8002ef4:	57fd                	li	a5,-1
 8002ef6:	00f51763          	bne	a0,a5,8002f04 <_write_r+0x26>
 8002efa:	c2018793          	addi	a5,gp,-992 # 20000480 <errno>
 8002efe:	439c                	lw	a5,0(a5)
 8002f00:	c391                	beqz	a5,8002f04 <_write_r+0x26>
 8002f02:	c01c                	sw	a5,0(s0)
 8002f04:	40b2                	lw	ra,12(sp)
 8002f06:	4422                	lw	s0,8(sp)
 8002f08:	0141                	addi	sp,sp,16
 8002f0a:	8082                	ret

08002f0c <__register_exitproc>:
__register_exitproc():
 8002f0c:	17ffd797          	auipc	a5,0x17ffd
 8002f10:	15c78793          	addi	a5,a5,348 # 20000068 <_global_atexit>
 8002f14:	439c                	lw	a5,0(a5)
 8002f16:	8e2a                	mv	t3,a0
 8002f18:	e38d                	bnez	a5,8002f3a <__register_exitproc+0x2e>
 8002f1a:	b9418713          	addi	a4,gp,-1132 # 200003f4 <_global_atexit0>
 8002f1e:	17ffd797          	auipc	a5,0x17ffd
 8002f22:	14e7a523          	sw	a4,330(a5) # 20000068 <_global_atexit>
 8002f26:	f7ffd517          	auipc	a0,0xf7ffd
 8002f2a:	0da50513          	addi	a0,a0,218 # 0 <__stack_size-0x800>
 8002f2e:	87ba                	mv	a5,a4
 8002f30:	c509                	beqz	a0,8002f3a <__register_exitproc+0x2e>
 8002f32:	411c                	lw	a5,0(a0)
 8002f34:	c0f1ae23          	sw	a5,-996(gp) # 2000047c <_global_atexit0+0x88>
 8002f38:	87ba                	mv	a5,a4
 8002f3a:	43d8                	lw	a4,4(a5)
 8002f3c:	487d                	li	a6,31
 8002f3e:	557d                	li	a0,-1
 8002f40:	04e84763          	blt	a6,a4,8002f8e <__register_exitproc+0x82>
 8002f44:	020e0e63          	beqz	t3,8002f80 <__register_exitproc+0x74>
 8002f48:	0887a803          	lw	a6,136(a5)
 8002f4c:	04080163          	beqz	a6,8002f8e <__register_exitproc+0x82>
 8002f50:	00271893          	slli	a7,a4,0x2
 8002f54:	98c2                	add	a7,a7,a6
 8002f56:	00c8a023          	sw	a2,0(a7)
 8002f5a:	10082303          	lw	t1,256(a6)
 8002f5e:	4605                	li	a2,1
 8002f60:	00e61633          	sll	a2,a2,a4
 8002f64:	00c36333          	or	t1,t1,a2
 8002f68:	10682023          	sw	t1,256(a6)
 8002f6c:	08d8a023          	sw	a3,128(a7)
 8002f70:	4689                	li	a3,2
 8002f72:	00de1763          	bne	t3,a3,8002f80 <__register_exitproc+0x74>
 8002f76:	10482683          	lw	a3,260(a6)
 8002f7a:	8e55                	or	a2,a2,a3
 8002f7c:	10c82223          	sw	a2,260(a6)
 8002f80:	00170693          	addi	a3,a4,1
 8002f84:	070a                	slli	a4,a4,0x2
 8002f86:	c3d4                	sw	a3,4(a5)
 8002f88:	97ba                	add	a5,a5,a4
 8002f8a:	c78c                	sw	a1,8(a5)
 8002f8c:	4501                	li	a0,0
 8002f8e:	8082                	ret

08002f90 <__call_exitprocs>:
__call_exitprocs():
 8002f90:	7179                	addi	sp,sp,-48
 8002f92:	cc52                	sw	s4,24(sp)
 8002f94:	ca56                	sw	s5,20(sp)
 8002f96:	c85a                	sw	s6,16(sp)
 8002f98:	c65e                	sw	s7,12(sp)
 8002f9a:	d606                	sw	ra,44(sp)
 8002f9c:	d422                	sw	s0,40(sp)
 8002f9e:	d226                	sw	s1,36(sp)
 8002fa0:	d04a                	sw	s2,32(sp)
 8002fa2:	ce4e                	sw	s3,28(sp)
 8002fa4:	c462                	sw	s8,8(sp)
 8002fa6:	8b2a                	mv	s6,a0
 8002fa8:	8a2e                	mv	s4,a1
 8002faa:	17ffda97          	auipc	s5,0x17ffd
 8002fae:	0bea8a93          	addi	s5,s5,190 # 20000068 <_global_atexit>
 8002fb2:	4b85                	li	s7,1
 8002fb4:	000aa403          	lw	s0,0(s5)
 8002fb8:	c811                	beqz	s0,8002fcc <__call_exitprocs+0x3c>
 8002fba:	4044                	lw	s1,4(s0)
 8002fbc:	08842983          	lw	s3,136(s0)
 8002fc0:	fff48913          	addi	s2,s1,-1
 8002fc4:	048a                	slli	s1,s1,0x2
 8002fc6:	94a2                	add	s1,s1,s0
 8002fc8:	00095e63          	bgez	s2,8002fe4 <__call_exitprocs+0x54>
 8002fcc:	50b2                	lw	ra,44(sp)
 8002fce:	5422                	lw	s0,40(sp)
 8002fd0:	5492                	lw	s1,36(sp)
 8002fd2:	5902                	lw	s2,32(sp)
 8002fd4:	49f2                	lw	s3,28(sp)
 8002fd6:	4a62                	lw	s4,24(sp)
 8002fd8:	4ad2                	lw	s5,20(sp)
 8002fda:	4b42                	lw	s6,16(sp)
 8002fdc:	4bb2                	lw	s7,12(sp)
 8002fde:	4c22                	lw	s8,8(sp)
 8002fe0:	6145                	addi	sp,sp,48
 8002fe2:	8082                	ret
 8002fe4:	000a0e63          	beqz	s4,8003000 <__call_exitprocs+0x70>
 8002fe8:	00099563          	bnez	s3,8002ff2 <__call_exitprocs+0x62>
 8002fec:	197d                	addi	s2,s2,-1
 8002fee:	14f1                	addi	s1,s1,-4
 8002ff0:	bfe1                	j	8002fc8 <__call_exitprocs+0x38>
 8002ff2:	00291793          	slli	a5,s2,0x2
 8002ff6:	97ce                	add	a5,a5,s3
 8002ff8:	0807a783          	lw	a5,128(a5)
 8002ffc:	ff4798e3          	bne	a5,s4,8002fec <__call_exitprocs+0x5c>
 8003000:	4058                	lw	a4,4(s0)
 8003002:	40dc                	lw	a5,4(s1)
 8003004:	177d                	addi	a4,a4,-1
 8003006:	03271863          	bne	a4,s2,8003036 <__call_exitprocs+0xa6>
 800300a:	01242223          	sw	s2,4(s0)
 800300e:	dff9                	beqz	a5,8002fec <__call_exitprocs+0x5c>
 8003010:	00442c03          	lw	s8,4(s0)
 8003014:	00098863          	beqz	s3,8003024 <__call_exitprocs+0x94>
 8003018:	1009a683          	lw	a3,256(s3)
 800301c:	012b9733          	sll	a4,s7,s2
 8003020:	8ef9                	and	a3,a3,a4
 8003022:	ee89                	bnez	a3,800303c <__call_exitprocs+0xac>
 8003024:	9782                	jalr	a5
 8003026:	4058                	lw	a4,4(s0)
 8003028:	000aa783          	lw	a5,0(s5)
 800302c:	f98714e3          	bne	a4,s8,8002fb4 <__call_exitprocs+0x24>
 8003030:	faf40ee3          	beq	s0,a5,8002fec <__call_exitprocs+0x5c>
 8003034:	b741                	j	8002fb4 <__call_exitprocs+0x24>
 8003036:	0004a223          	sw	zero,4(s1)
 800303a:	bfd1                	j	800300e <__call_exitprocs+0x7e>
 800303c:	00291693          	slli	a3,s2,0x2
 8003040:	96ce                	add	a3,a3,s3
 8003042:	428c                	lw	a1,0(a3)
 8003044:	1049a683          	lw	a3,260(s3)
 8003048:	8f75                	and	a4,a4,a3
 800304a:	e701                	bnez	a4,8003052 <__call_exitprocs+0xc2>
 800304c:	855a                	mv	a0,s6
 800304e:	9782                	jalr	a5
 8003050:	bfd9                	j	8003026 <__call_exitprocs+0x96>
 8003052:	852e                	mv	a0,a1
 8003054:	9782                	jalr	a5
 8003056:	bfc1                	j	8003026 <__call_exitprocs+0x96>
