2026-03-13 22:42:57 +08:00

17415 lines
794 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

TCPClient.elf: file format elf32-littleriscv
TCPClient.elf
architecture: riscv:rv32, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x00000000
Program Header:
LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12
filesz 0x00008e94 memsz 0x00008e94 flags r-x
LOAD off 0x0000a000 vaddr 0x20000000 paddr 0x00008e94 align 2**12
filesz 0x00000078 memsz 0x000078d4 flags rw-
LOAD off 0x0000a800 vaddr 0x2001f800 paddr 0x2001f800 align 2**12
filesz 0x00000000 memsz 0x00000800 flags rw-
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 .init 00000004 00000000 00000000 00001000 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .vector 000001bc 00000004 00000004 00001004 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .text 00008cd4 000001c0 000001c0 000011c0 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE
3 .fini 00000000 00008e94 00008e94 0000a078 2**0 CONTENTS, ALLOC, LOAD, CODE
4 .dalign 00000000 20000000 20000000 0000a078 2**0 CONTENTS
5 .dlalign 00000000 00008e94 00008e94 0000a078 2**0 CONTENTS
6 .data 00000078 20000000 00008e94 0000a000 2**2 CONTENTS, ALLOC, LOAD, DATA
7 .bss 0000785c 20000078 00008f0c 0000a078 2**2 ALLOC
8 .stack 00000800 2001f800 2001f800 0000a800 2**0 ALLOC
9 .debug_info 000148ff 00000000 00000000 0000a078 2**0 CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00003264 00000000 00000000 0001e977 2**0 CONTENTS, READONLY, DEBUGGING
11 .debug_aranges 00000cf8 00000000 00000000 00021be0 2**3 CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000cb8 00000000 00000000 000228d8 2**3 CONTENTS, READONLY, DEBUGGING
13 .debug_line 0000fb42 00000000 00000000 00023590 2**0 CONTENTS, READONLY, DEBUGGING
14 .debug_str 00004976 00000000 00000000 000330d2 2**0 CONTENTS, READONLY, DEBUGGING
15 .comment 00000033 00000000 00000000 00037a48 2**0 CONTENTS, READONLY
16 .debug_frame 00001c0c 00000000 00000000 00037a7c 2**2 CONTENTS, READONLY, DEBUGGING
17 .debug_loc 00004c11 00000000 00000000 00039688 2**0 CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .init 00000000 .init
00000004 l d .vector 00000000 .vector
000001c0 l d .text 00000000 .text
00008e94 l d .fini 00000000 .fini
20000000 l d .dalign 00000000 .dalign
00008e94 l d .dlalign 00000000 .dlalign
20000000 l d .data 00000000 .data
20000078 l d .bss 00000000 .bss
2001f800 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_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 d .debug_loc 00000000 .debug_loc
00000000 l df *ABS* 00000000 ./Startup/startup_ch32v30x_D8C.o
00000004 l .vector 00000000 _vector_base
00000000 l df *ABS* 00000000 ch32v30x_it.c
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 system_ch32v30x.c
00000000 l df *ABS* 00000000 ch32v30x_dbgmcu.c
00000000 l df *ABS* 00000000 ch32v30x_dvp.c
00000000 l df *ABS* 00000000 ch32v30x_eth.c
00000000 l df *ABS* 00000000 ch32v30x_exti.c
00000000 l df *ABS* 00000000 ch32v30x_gpio.c
00000000 l df *ABS* 00000000 ch32v30x_misc.c
00000000 l df *ABS* 00000000 ch32v30x_rcc.c
20000010 l O .data 00000010 APBAHBPrescTable
20000038 l O .data 00000004 ADCPrescTable
00000000 l df *ABS* 00000000 ch32v30x_tim.c
00000000 l df *ABS* 00000000 ch32v30x_usart.c
00000000 l df *ABS* 00000000 eth_driver_RGMII.c
00000000 l df *ABS* 00000000 debug.c
200000b0 l O .bss 00000002 p_ms
200000b2 l O .bss 00000001 p_us
00000000 l df *ABS* 00000000 dvp.c
200000bc l O .bss 00000004 frame_count
00000000 l df *ABS* 00000000 core_riscv.c
00000000 l df *ABS* 00000000 eth_api.c
00000000 l df *ABS* 00000000 ipcheck.c
00000000 l df *ABS* 00000000 socket.c
00000000 l df *ABS* 00000000 etharp.c
00002e0a l F .text 00000180 find_entry
00002f8a l F .text 000000b2 update_arp_entry
200000f8 l O .bss 00000001 etharp_cached_entry
00000000 l df *ABS* 00000000 ethernetif.c
00003686 l F .text 00000052 low_level_output
00000000 l df *ABS* 00000000 inet.c
00000000 l df *ABS* 00000000 ip.c
20000104 l O .bss 00000002 ip_id.2947
00000000 l df *ABS* 00000000 ip_addr.c
00000000 l df *ABS* 00000000 ip_frag.c
20000106 l O .bss 00000002 ip_reass_pbufcount
20000108 l O .bss 00000004 reassdatagrams
00000000 l df *ABS* 00000000 dhcp.c
0000430a l F .text 00000016 dhcp_set_state
00004320 l F .text 00000020 dhcp_option
00004340 l F .text 00000012 dhcp_option_byte
00004352 l F .text 00000048 dhcp_option_long
0000439a l F .text 00000034 dhcp_option_trailer
000043ce l F .text 0000018a dhcp_create_request
00004558 l F .text 0000001e dhcp_delete_request
00000000 l df *ABS* 00000000 init.c
00000000 l df *ABS* 00000000 mem.c
2000010c l O .bss 00000004 lfree
20000110 l O .bss 00000004 ram
20000114 l O .bss 00000004 ram_end
00000000 l df *ABS* 00000000 memp.c
200078a0 l O .bss 00000020 memp_tab
00000000 l df *ABS* 00000000 netif.c
20000120 l O .bss 00000001 netifnum.2482
00000000 l df *ABS* 00000000 pbuf.c
00000000 l df *ABS* 00000000 raw.c
20000124 l O .bss 00000004 raw_pcbs
00000000 l df *ABS* 00000000 tcp.c
00004fe4 l F .text 0000005c tcp_new_port
20000138 l O .bss 00000001 tcp_timer
2000004c l O .data 00000004 iss.3197
20000050 l O .data 00000002 port.3029
00000000 l df *ABS* 00000000 tcp_in.c
00005afc l F .text 000000ce tcp_oos_insert_segment
00005bca l F .text 00000944 tcp_receive
0000650e l F .text 000000a6 tcp_parseopt.isra.0
200078c0 l O .bss 00000014 inseg
20000144 l O .bss 00000004 ackno
20000148 l O .bss 00000001 flags
2000014c l O .bss 00000004 iphdr
20000150 l O .bss 00000004 recv_data
20000154 l O .bss 00000001 recv_flags
20000158 l O .bss 00000004 seqno
20000160 l O .bss 00000004 tcphdr
20000164 l O .bss 00000002 tcplen
00000000 l df *ABS* 00000000 tcp_out.c
00006fe2 l F .text 000000d4 tcp_output_set_header.isra.0.constprop.1
00000000 l df *ABS* 00000000 udp.c
00000000 l df *ABS* 00000000 icmp.c
000080f8 l F .text 00000076 icmp_send_response.isra.0
00000000 l df *ABS* 00000000 inet_chksum.c
000083e6 l F .text 0000007e lwip_standard_chksum
00000000 l df *ABS* 00000000 wchprintf.c
00000000 l df *ABS* 00000000 memcpy.c
00000000 l df *ABS* 00000000 net_dhcp.c
0000880c w F .text 00000004 printDouble
000008ca w .text 00000000 EXTI2_IRQHandler
00008b9e g F .text 00000018 putchar
0000856e g F .text 00000014 inet_chksum
00000568 g F .text 0000005e WCHNET_HandleGlobalInt
000008ca w .text 00000000 TIM8_TRG_COM_IRQHandler
00004ee4 g F .text 0000001e raw_bind
00003db0 g F .text 000003dc ip_reass
000008ca w .text 00000000 TIM8_CC_IRQHandler
00004d3c g F .text 00000058 pbuf_realloc
000009ac g F .text 00000062 DVP_Cfg
20000032 g O .data 00000002 srcport
00005860 g F .text 00000010 tcp_next_iss
00005156 g F .text 00000048 tcp_update_rcv_ann_wnd
00001e36 g F .text 00000012 setRxBuffAddr
00000b98 g F .text 00000010 ETH_FlushTransmitFIFO
00000f1c g F .text 0000001e RCC_AHBPeriphResetCmd
2000011c g O .bss 00000004 netif_list
000008ca w .text 00000000 UART8_IRQHandler
0000791c g F .text 00000108 tcp_rst
00008810 w F .text 00000320 print
200000d8 g O .bss 00000004 TCPTimer
00003206 g F .text 000000ce etharp_request
00008b30 w F .text 00000024 printf
20000820 g .data 00000000 __global_pointer$
000001c8 g F .text 00000028 .hidden __riscv_save_8
0000525a g F .text 00000006 tcp_err
20000064 g O .data 00000004 ip_addr_any
000008ca w .text 00000000 TIM1_CC_IRQHandler
00008464 g F .text 0000010a inet_chksum_pseudo
000023b8 g F .text 00000016 WCHNET_ConfigKeepLive
000074fe g F .text 00000016 tcp_send_ctrl
000002ca g F .text 00000052 HardFault_Handler
00003af0 g F .text 0000015a ip_output_if
000049dc g F .text 00000018 memp_free
00008716 w F .text 000000f2 printInt
00004bae g F .text 0000004e pbuf_free
00000214 g F .text 0000000c .hidden __riscv_restore_3
00002cc6 g F .text 00000012 WCHNET_GetGlobalInt
0000524e g F .text 00000006 tcp_recv
000008ca w .text 00000000 TIM6_IRQHandler
000017e2 g F .text 00000058 ETH_Init
000008ca w .text 00000000 SysTick_Handler
00004db0 g F .text 0000001c pbuf_cat
00000cf0 g F .text 0000005c NVIC_Init
000008ca w .text 00000000 PVD_IRQHandler
000008ca w .text 00000000 SDIO_IRQHandler
200000e4 g O .bss 00000001 ARP_Retry_Cnt
00003c4a g F .text 00000036 ip_output
000008ca w .text 00000000 TIM9_BRK_IRQHandler
00000200 g F .text 00000020 .hidden __riscv_restore_10
0000164e g F .text 00000110 ReInitMACReg
00008010 g F .text 0000002e udp_sendto
00001152 g F .text 00000040 ETH_TxPktChainMode
200000e0 g O .bss 00000004 phydatatime
000008ca w .text 00000000 DMA2_Channel8_IRQHandler
000002c8 g F .text 00000002 NMI_Handler
00007b38 g F .text 0000005e tcp_keepalive
000008ca w .text 00000000 CAN2_RX1_IRQHandler
000008ca w .text 00000000 EXTI3_IRQHandler
0000230e g F .text 000000aa WCHNET_Init
000032d4 g F .text 0000007c etharp_tmr
000001c8 g F .text 00000028 .hidden __riscv_save_11
0000095a g F .text 0000000a DBGMCU_GetCHIPID
00005870 g F .text 00000134 tcp_alloc
00001d3e g F .text 00000014 WCHNET_NetInput
00008dd8 g O .text 00000010 MemSize
00007f3a g F .text 000000d6 udp_sendto_if
00001790 g F .text 00000052 WCHNET_ETHIsr
0000524a g F .text 00000004 tcp_arg
000008ca w .text 00000000 USBHS_IRQHandler
00003096 g F .text 00000170 etharp_arp_input
20000128 g O .bss 00000004 tcp_active_pcbs
00001148 g F .text 0000000a USART_GetFlagStatus
000008ca w .text 00000000 DMA2_Channel9_IRQHandler
20000168 g O .bss 00000004 udp_pcbs
000008ca w .text 00000000 TIM10_CC_IRQHandler
2000007c g O .bss 00000006 MACAddr
0000359c g F .text 00000086 ethernet_input
20000078 g .bss 00000000 _sbss
00000800 g *ABS* 00000000 __stack_size
00004da6 g F .text 0000000a pbuf_ref
0000190a g F .text 00000062 USART_Printf_Init
00002b42 g F .text 00000056 WCHNET_SocketSend
20000094 g O .bss 00000004 ChipId
00005696 g F .text 00000030 tcp_recv_null
200000e8 g O .bss 00000001 SockNumber
000008ca w .text 00000000 USBFS_IRQHandler
000055e4 g F .text 000000b2 tcp_close
20007774 g O .bss 0000000c SelARP
0000519e g F .text 0000003c tcp_recved
000004ce g F .text 0000009a WCHNET_HandleSockInt
00000214 g F .text 0000000c .hidden __riscv_restore_2
0000526a g F .text 0000004e tcp_pcb_purge
2000006c g O .data 00000007 tcp_persist_backoff
00000a0e g F .text 00000014 ETH_DeInit
00008bb6 g F .text 000000b2 memcpy
0000474e g F .text 00000084 mem_free
20000134 g O .bss 00000004 tcp_ticks
20000130 g O .bss 00000004 tcp_listen_pcbs
00007a24 g F .text 00000036 tcp_rexmit_rto
200000b8 g O .bss 00000004 current_line_idx
00003c80 g F .text 0000004a ip_addr_isbroadcast
00008808 w F .text 00000004 printLongLongInt
20000088 g O .bss 00000004 DMARxDescToGet
000059a4 g F .text 00000010 tcp_new
000008ca w .text 00000000 EXTI0_IRQHandler
00000f54 g F .text 00000024 RCC_ETH1G_125Mcmd
000008ca w .text 00000000 I2C2_EV_IRQHandler
00001e7a g F .text 0000000e GetChipID
000008ca w .text 00000000 TIM10_TRG_COM_IRQHandler
00001f48 g F .text 0000003e IPCheckTmr
00001066 g F .text 00000018 TIM_Cmd
00008b54 g F .text 0000004a puts
20007780 g O .bss 00000018 DHCPCtrl
20000034 g O .data 00000004 SystemCoreClock
00004fa4 g F .text 00000010 raw_send
00008582 g F .text 0000006a inet_chksum_pbuf
0000041c g F .text 00000068 WCHNET_CreateTcpSocket
0000816e g F .text 00000250 icmp_input
00000004 g .init 00000000 _einit
00001090 g F .text 0000000c TIM_ClearITPendingBit
00004ad8 g F .text 0000005a netif_add
00000ee0 g F .text 0000001e RCC_APB2PeriphClockCmd
000001c0 g F .text 00000030 .hidden __riscv_save_12
00005204 g F .text 0000001e tcp_segs_free
00002c88 g F .text 0000003e WCHNET_QueryGlobalInt
000008ca w .text 00000000 CAN2_SCE_IRQHandler
000008ca w .text 00000000 ADC1_2_IRQHandler
00002d0c g F .text 00000054 WCHNET_SocketSetKeepLive
00000c30 g F .text 000000c0 GPIO_Init
000008ca w .text 00000000 Break_Point_Handler
000049f4 g F .text 00000096 netif_set_ipaddr
00000200 g F .text 00000020 .hidden __riscv_restore_11
20000090 g O .bss 00000004 NVIC_Priority_Group
000008ca w .text 00000000 SPI1_IRQHandler
0000112a g F .text 00000016 USART_Cmd
00002cd8 g F .text 0000002a WCHNET_GetSocketInt
00007514 g F .text 00000030 tcp_write
000008ca w .text 00000000 TAMPER_IRQHandler
000001f0 g F .text 0000000c .hidden __riscv_save_1
20000084 g O .bss 00000001 socket
2000783c g O .bss 0000002c WCHCfg
00000214 g F .text 0000000c .hidden __riscv_restore_0
0000574a g F .text 0000007c tcp_fastsendack
00001492 g F .text 00000094 ETH_RegInit
000001d6 g F .text 0000001a .hidden __riscv_save_7
000008ca w .text 00000000 CAN2_RX0_IRQHandler
2000003c g O .data 00000004 DHCPXid
00005040 g F .text 00000116 tcp_bind
000083d2 g F .text 00000014 icmp_time_exceeded
20000d64 g O .bss 000029ac MACRxBuf
000008ca w .text 00000000 TIM8_UP_IRQHandler
0000418c g F .text 0000017e ip_frag
00000efe g F .text 0000001e RCC_APB1PeriphClockCmd
000027ee g F .text 000000e8 WCHNET_SocketRecv
200000a8 g O .bss 00000004 pDMARxSet
000008ca w .text 00000000 Ecall_M_Mode_Handler
2001f800 g .stack 00000000 _heap_end
20007798 g O .bss 00000040 dhcp_host_name
00004f26 g F .text 0000007e raw_sendto
000018d4 g F .text 00000036 Delay_Us
0000020a g F .text 00000016 .hidden __riscv_restore_5
20000082 g O .bss 00000001 SocketId
000008ca w .text 00000000 DMA2_Channel2_IRQHandler
00000ec2 g F .text 0000001e RCC_AHBPeriphClockCmd
000008ca w .text 00000000 DMA1_Channel4_IRQHandler
00004de0 g F .text 0000009c pbuf_copy
00007a5a g F .text 0000007c tcp_rexmit
00001ff2 g F .text 00000004 LwipTCPPollCallBack
2000008c g O .bss 00000004 DMATxDescToSet
00000acc g F .text 00000014 ETH_MACTransmissionCmd
2000002c g O .data 00000004 IPMask
200000b3 g O .bss 00000001 Line_Ready_Flag
000008ca w .text 00000000 TIM9_UP_IRQHandler
0000020a g F .text 00000016 .hidden __riscv_restore_6
000008ca w .text 00000000 USART3_IRQHandler
00000c26 g F .text 0000000a EXTI_ClearITPendingBit
000008ca w .text 00000000 RTC_IRQHandler
2000013c g O .bss 00000004 tcp_tmp_pcb
200078d4 g .bss 00000000 _ebss
200047a8 g O .bss 00001270 Mem_Heap_Memory
000008ca w .text 00000000 DMA1_Channel7_IRQHandler
200000c8 g O .bss 00000004 DHCPcoarseTimer
00000bf8 g F .text 0000002e RGMII_TXC_Delay
000008ca w .text 00000000 CAN1_RX1_IRQHandler
000018ae g F .text 00000026 Delay_Init
00004710 g F .text 0000003e mem_init
00000b90 g F .text 00000008 ETH_DMAClearITPendingBit
00001b14 g F .text 0000005a DVP_IRQHandler
000008ca w .text 00000000 UART5_IRQHandler
200000a4 g O .bss 00000002 gPHYAddress
000075b4 g F .text 00000368 tcp_output
000008ca w .text 00000000 TIM4_IRQHandler
2000015c g O .bss 00000004 tcp_input_pcb
00004e7c g F .text 00000068 raw_input
00007544 g F .text 00000070 tcp_send_empty_ack
000001c8 g F .text 00000028 .hidden __riscv_save_9
00007ad6 g F .text 00000062 tcp_rexmit_fast
000008ca w .text 00000000 DMA2_Channel1_IRQHandler
20005a18 g O .bss 0000191f Memp_Memory
00000bda g F .text 0000001e ETH_DMAITConfig
00003748 g F .text 00000076 wch_ethernetif_init
00001e88 g F .text 0000006a getTxBuffAddr
000037fe g F .text 0000000c ntohl
00000b82 g F .text 0000000e ETH_SoftwareReset
000001d6 g F .text 0000001a .hidden __riscv_save_4
00004b32 g F .text 00000006 netif_set_default
000022c2 g F .text 0000004c WCHSocketInit
00000a7a g F .text 00000052 ETH_WritePHYRegister
000080ce g F .text 00000006 udp_recv
000008ca w .text 00000000 I2C1_EV_IRQHandler
00001f86 g F .text 0000002c IPConflictHandle
00004bfc g F .text 00000140 pbuf_alloc
00001f10 g F .text 00000038 SelIPARPSend
00002b98 g F .text 00000052 WCHScokedIntHandle
00000d4c g F .text 00000176 RCC_GetClocksFreq
000008ca w .text 00000000 DMA1_Channel6_IRQHandler
000008ca w .text 00000000 UART4_IRQHandler
200000ec g O .bss 00000004 TCPVerifyConnCallback
000008ca w .text 00000000 DMA2_Channel4_IRQHandler
20000068 g O .data 00000004 ip_addr_broadcast
00003cca g F .text 000000e6 ip_reass_tmr
0000109c g F .text 0000008e USART_Init
20000048 g O .data 00000004 memp_sizes
00001192 g F .text 00000020 WCHNET_GetMacAddr
000008ca w .text 00000000 TIM3_IRQHandler
000008ca w .text 00000000 RCC_IRQHandler
20000d44 g O .bss 00000020 DMATxDscrTab
000001f0 g F .text 0000000c .hidden __riscv_save_3
00008050 g F .text 0000007e udp_connect
000008ca w .text 00000000 TIM1_TRG_COM_IRQHandler
00008e2c g O .text 00000010 ErrTable
000008ca w .text 00000000 DMA1_Channel1_IRQHandler
00004a8a g F .text 0000004e netif_set_addr
00004576 g F .text 00000182 dhcp_arp_reply
200000f4 g O .bss 00000004 tcpSendAckFlag
00000000 g .init 00000000 _start
000008ca w .text 00000000 DMA2_Channel7_IRQHandler
20000000 g O .data 00000010 AHBPrescTable
000049bc g F .text 00000020 memp_malloc
00007b96 g F .text 000000d2 tcp_zero_window_probe
00008636 w F .text 000000e0 prints
00001a72 g F .text 000000a2 DVP_Task
000008ca w .text 00000000 EXTI15_10_IRQHandler
0000107e g F .text 00000012 TIM_ITConfig
200077ec g O .bss 0000000c KeepLiveCfg
00002574 g F .text 000001d2 WCHNET_SocketCreat
0000279e g F .text 00000050 WCHNET_ModifyRecvBuf
20007868 g O .bss 00000038 WCHNetIf
2000012c g O .bss 00000004 tcp_bound_pcbs
000037da g F .text 00000024 htonl
000051da g F .text 0000002a tcp_seg_free
200000b4 g O .bss 00000004 Ready_Line_Ptr
00002bea g F .text 0000009e LwipRemoveTcpPcb
00001b74 g F .text 00000006 __get_MCAUSE
000008ca w .text 00000000 TIM7_IRQHandler
000059e2 g F .text 000000e8 tcp_connect
0000489c g F .text 000000d0 mem_malloc
000008ca w .text 00000000 CAN2_TX_IRQHandler
20000000 g .dalign 00000000 _data_vma
00000964 g F .text 00000016 DVP_INTCfg
000008ca w .text 00000000 TIM5_IRQHandler
00000b36 g F .text 0000004c ETH_DMARxDescChainInit
00000a22 g F .text 00000058 ETH_ReadPHYRegister
0000031c g F .text 00000054 EXTI9_5_IRQHandler
000070b6 g F .text 00000448 tcp_enqueue
000059b4 g F .text 0000002e tcp_eff_send_mss
00002516 g F .text 0000005e WCHFindCorrectTCBPcb
000001c8 g F .text 00000028 .hidden __riscv_save_10
0000183a g F .text 00000074 ETH_LibInit
00002194 g F .text 000000d2 WCHSocketTCPReceive
000008ca w .text 00000000 ETH_WKUP_IRQHandler
0000020a g F .text 00000016 .hidden __riscv_restore_4
00001b7a g F .text 00000006 __get_MTVAL
00000200 g F .text 00000020 .hidden __riscv_restore_8
00001b6e g F .text 00000006 __get_MEPC
000001d6 g F .text 0000001a .hidden __riscv_save_6
00004f02 g F .text 0000001e raw_connect
000008ca w .text 00000000 SPI2_IRQHandler
200000e6 g O .bss 00000002 Arp_Entry_timeout
20000020 g O .data 00000004 DESIP
00000220 g F .text 000000a8 memset
00000200 g F .text 00000020 .hidden __riscv_restore_9
0000020a g F .text 00000016 .hidden __riscv_restore_7
000005c6 g F .text 000000e2 main
200000a0 g O .bss 00000004 LocalTime
20000044 g O .data 00000004 memp_num
000008ca w .text 00000000 TIM10_BRK_IRQHandler
20000024 g O .data 00000004 GWIPAddr
00000396 g F .text 00000018 mStopIfError
000008ca w .text 00000000 TIM9_CC_IRQHandler
000083be g F .text 00000014 icmp_dest_unreach
00001ff6 g F .text 000000c4 SocketIPRAWReceive
00005254 g F .text 00000006 tcp_sent
00004b38 g F .text 00000008 netif_is_up
000008ca w .text 00000000 DMA2_Channel5_IRQHandler
000037cc g F .text 0000000e ntohs
00004fb4 g F .text 00000030 raw_new
200000d4 g O .bss 00000004 IPFragTimer
00001fb2 g F .text 00000002 NET_TCPError
000036d8 g F .text 00000070 ethernetif_input
000008ca w .text 00000000 DMA1_Channel5_IRQHandler
000008ca w .text 00000000 EXTI4_IRQHandler
000008ca w .text 00000000 USB_LP_CAN1_RX0_IRQHandler
20007574 g O .bss 00000200 DMA_LineBuf1
200077d8 g O .bss 00000014 DNSInf
20007374 g O .bss 00000200 DMA_LineBuf0
00002994 g F .text 000000be SocketUdpSend
00007ea0 g F .text 0000009a udp_bind
00005728 g F .text 00000022 tcp_tmr
00003350 g F .text 00000118 etharp_query
00001480 g F .text 00000012 WCHNET_MainTask
000046f8 g F .text 00000018 lwip_init
00001e48 g F .text 00000032 WCHNET_Tx
00003468 g F .text 00000134 etharp_output
000006a8 g F .text 000000f8 SystemInit
000008ca w .text 00000000 RNG_IRQHandler
000019aa g F .text 000000c8 DVP_Init
20000cd4 g O .bss 00000070 DMARxDscrTab
000085ec w F .text 0000004a printchar
00002a52 g F .text 000000f0 SocketTcpSend
000008ca w .text 00000000 USB_HP_CAN1_TX_IRQHandler
00004d94 g F .text 00000012 pbuf_clen
00000000 g .init 00000000 _sinit
2000009c g O .bss 00000004 LastQueryPhyTime
000022a8 g F .text 0000001a ErrorEncode
0000803e g F .text 00000012 udp_send
000008ca w .text 00000000 DMA1_Channel3_IRQHandler
00001636 g F .text 00000018 ETH_Stop
00004f20 g F .text 00000006 raw_recv
00000484 g F .text 0000004a WCHNET_DataLoopback
200000fc g O .bss 00000008 frame
00008dc8 g O .text 00000010 MemNum
00000370 g F .text 00000008 ETH_IRQHandler
000008ca w .text 00000000 TIM1_UP_IRQHandler
000052b8 g F .text 000002ba tcp_slowtmr
00001da0 g F .text 00000096 WCHNET_Rx
00000f3a g F .text 0000001a RCC_ETH1GCLKConfig
20000028 g O .data 00000004 IPAddr
0000097a g F .text 00000032 DVP_Mode
000008ca w .text 00000000 WWDG_IRQHandler
000008ca w .text 00000000 USBHSWakeup_IRQHandler
20000098 g O .bss 00000002 LastPhyStat
000008ca w .text 00000000 DMA2_Channel11_IRQHandler
00000ba8 g F .text 00000032 ETH_Start
000008ca w .text 00000000 Ecall_U_Mode_Handler
00003622 g F .text 00000064 ethernetif_init
000008ca w .text 00000000 DMA2_Channel6_IRQHandler
00000378 g F .text 0000001e TIM2_IRQHandler
20020000 g .stack 00000000 _eusrstack
000001f0 g F .text 0000000c .hidden __riscv_save_2
000008ca w .text 00000000 SW_Handler
20000078 g O .bss 00000004 sys_tick_ms
00002746 g F .text 00000058 tcp_recved_socket
20003710 g O .bss 00000be8 MACTxBuf
200000ac g O .bss 00000004 pDMATxSet
00002d02 g F .text 0000000a WCHNET_GetPHYStatus
00001ef2 g F .text 0000001e IPCheckParaInit
000008ca w .text 00000000 TIM1_BRK_IRQHandler
00001140 g F .text 00000008 USART_SendData
20000140 g O .bss 00000004 tcp_tw_pcbs
000008ca w .text 00000000 DMA2_Channel10_IRQHandler
000008ca w .text 00000000 EXTI1_IRQHandler
00007c68 g F .text 00000238 udp_input
000001d6 g F .text 0000001a .hidden __riscv_save_5
200000cc g O .bss 00000004 DHCPfineTimer
200000dc g O .bss 00000004 TxTimer
0000196c g F .text 0000003e _write
20000078 g .data 00000000 _edata
200078d4 g .bss 00000000 _end
000037be g F .text 0000000e htons
200000d0 g O .bss 00000004 DNSTimer
00001526 g F .text 00000110 ETH_Configuration
200000c4 g O .bss 00000004 ArpCheckTime
00000f78 g F .text 000000ee TIM_TimeBaseInit
0000380a g F .text 0000004c ip_route
000008ca w .text 00000000 RTCAlarm_IRQHandler
00008e94 g .dlalign 00000000 _data_lma
000008ca w .text 00000000 TIM10_UP_IRQHandler
000008ca w .text 00000000 TIM9_TRG_COM_IRQHandler
000008ca w .text 00000000 UART7_IRQHandler
00004b40 g F .text 0000006e pbuf_header
000047d2 g F .text 000000ca mem_realloc
20000118 g O .bss 00000004 netif_default
00005572 g F .text 00000072 tcp_pcb_remove
000008ca w .text 00000000 USART2_IRQHandler
000008ca w .text 00000000 UART6_IRQHandler
000011be g F .text 0000014c ETH_RGMIIPinInit
00004dcc g F .text 00000014 pbuf_chain
200042f8 g O .bss 000004b0 Mem_ArpTable
0000142c g F .text 00000054 WCHNET_QueryPhySta
200000c0 g O .bss 00000004 ARPTimer
20000030 g O .data 00000002 desport
000057c6 g F .text 0000009a tcp_abandon
20000040 g O .data 00000004 arp_table
000020ba g F .text 000000da SocketUdpReceive
00000ae0 g F .text 00000014 ETH_MACReceptionCmd
00002266 g F .text 00000042 LwipTcpConnectedCallBack
000007a0 g F .text 0000012a SystemCoreClockUpdate
20007338 g O .bss 0000003c SocketInf
0000496c g F .text 00000050 memp_init
000056c6 g F .text 00000062 tcp_fasttmr
000028d6 g F .text 000000be SocketIPRawSend
00002512 g F .text 00000004 WCHNET_GetVer
000008ca w .text 00000000 I2C2_ER_IRQHandler
200000f0 g O .bss 00000001 phydata
000008ca w .text 00000000 DMA1_Channel2_IRQHandler
0000303c g F .text 0000005a etharp_ip_input
000001fc g F .text 00000024 .hidden __riscv_restore_12
000008ca w .text 00000000 TIM8_BRK_IRQHandler
000008cc w .text 00000000 handle_reset
000008ca w .text 00000000 CAN1_SCE_IRQHandler
2000016c g O .bss 00000b68 SocketRecvBuf
0000130a g F .text 00000122 ETH_PHYLink
000008ca w .text 00000000 FLASH_IRQHandler
000001f0 g F .text 0000000c .hidden __riscv_save_0
00002dd6 g F .text 0000000e QueryPingEnable
00005222 g F .text 00000028 tcp_seg_copy
000003ae g F .text 0000006e TIM2_Init
000008ca w .text 00000000 USART1_IRQHandler
00005260 g F .text 0000000a tcp_poll
000008ca w .text 00000000 SPI3_IRQHandler
000080d4 g F .text 00000024 udp_new
000008ca w .text 00000000 I2C1_ER_IRQHandler
20000054 g O .data 00000006 ethbroadcast
00008e5c g O .text 0000000d tcp_backoff
000011b2 g F .text 0000000c WCHNET_TimeIsr
00000214 g F .text 0000000c .hidden __riscv_restore_1
200077f8 g O .bss 00000044 NetInf
00001fb4 g F .text 0000003e LwipTCPSendCallBack
00002dfe g F .text 0000000c LwipArpCheck
00002d60 g F .text 00000076 WCHNET_SocketConnect
0000175e g F .text 00000032 WCHNET_RecProcess
000065b4 g F .text 00000a2e tcp_input
00005aca g F .text 00000032 RemoveTimeWaiTCP
00003856 g F .text 0000029a ip_input
2000005c g O .data 00000006 ethzero
000008ca w .text 00000000 USBWakeUp_IRQHandler
000023ce g F .text 00000144 WCHNET_ConfigLIB
00002de4 g F .text 0000001a LwipUnreachPort
200000e5 g O .bss 00000001 ARP_Retry_Period
000008ca w .text 00000000 DMA2_Channel3_IRQHandler
00001d52 g F .text 0000004e WCHNET_PhyStatus
00001b80 g F .text 000001be WCHNET_PeriodicHandle
00000af4 g F .text 00000042 ETH_DMATxDescChainInit
Disassembly of section .init:
00000000 <_sinit>:
_start():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:17
.section .init,"ax",@progbits
.global _start
.align 1
_start:
j handle_reset
0: 0cd0006f j 8cc <handle_reset>
Disassembly of section .vector:
00000004 <_vector_base>:
...
_vector_base():
c: 02c8 addi a0,sp,324
e: 0000 unimp
10: 02ca slli t0,t0,0x12
12: 0000 unimp
14: 0000 unimp
16: 0000 unimp
18: 08ca slli a7,a7,0x12
...
22: 0000 unimp
24: 08ca slli a7,a7,0x12
26: 0000 unimp
28: 08ca slli a7,a7,0x12
...
32: 0000 unimp
34: 08ca slli a7,a7,0x12
36: 0000 unimp
38: 0000 unimp
3a: 0000 unimp
3c: 08ca slli a7,a7,0x12
3e: 0000 unimp
40: 0000 unimp
42: 0000 unimp
44: 08ca slli a7,a7,0x12
46: 0000 unimp
48: 08ca slli a7,a7,0x12
4a: 0000 unimp
4c: 08ca slli a7,a7,0x12
4e: 0000 unimp
50: 08ca slli a7,a7,0x12
52: 0000 unimp
54: 08ca slli a7,a7,0x12
56: 0000 unimp
58: 08ca slli a7,a7,0x12
5a: 0000 unimp
5c: 08ca slli a7,a7,0x12
5e: 0000 unimp
60: 08ca slli a7,a7,0x12
62: 0000 unimp
64: 08ca slli a7,a7,0x12
66: 0000 unimp
68: 08ca slli a7,a7,0x12
6a: 0000 unimp
6c: 08ca slli a7,a7,0x12
6e: 0000 unimp
70: 08ca slli a7,a7,0x12
72: 0000 unimp
74: 08ca slli a7,a7,0x12
76: 0000 unimp
78: 08ca slli a7,a7,0x12
7a: 0000 unimp
7c: 08ca slli a7,a7,0x12
7e: 0000 unimp
80: 08ca slli a7,a7,0x12
82: 0000 unimp
84: 08ca slli a7,a7,0x12
86: 0000 unimp
88: 08ca slli a7,a7,0x12
8a: 0000 unimp
8c: 08ca slli a7,a7,0x12
8e: 0000 unimp
90: 08ca slli a7,a7,0x12
92: 0000 unimp
94: 08ca slli a7,a7,0x12
96: 0000 unimp
98: 08ca slli a7,a7,0x12
9a: 0000 unimp
9c: 08ca slli a7,a7,0x12
9e: 0000 unimp
a0: 031c addi a5,sp,384
a2: 0000 unimp
a4: 08ca slli a7,a7,0x12
a6: 0000 unimp
a8: 08ca slli a7,a7,0x12
aa: 0000 unimp
ac: 08ca slli a7,a7,0x12
ae: 0000 unimp
b0: 08ca slli a7,a7,0x12
b2: 0000 unimp
b4: 0378 addi a4,sp,396
b6: 0000 unimp
b8: 08ca slli a7,a7,0x12
ba: 0000 unimp
bc: 08ca slli a7,a7,0x12
be: 0000 unimp
c0: 08ca slli a7,a7,0x12
c2: 0000 unimp
c4: 08ca slli a7,a7,0x12
c6: 0000 unimp
c8: 08ca slli a7,a7,0x12
ca: 0000 unimp
cc: 08ca slli a7,a7,0x12
ce: 0000 unimp
d0: 08ca slli a7,a7,0x12
d2: 0000 unimp
d4: 08ca slli a7,a7,0x12
d6: 0000 unimp
d8: 08ca slli a7,a7,0x12
da: 0000 unimp
dc: 08ca slli a7,a7,0x12
de: 0000 unimp
e0: 08ca slli a7,a7,0x12
e2: 0000 unimp
e4: 08ca slli a7,a7,0x12
e6: 0000 unimp
e8: 08ca slli a7,a7,0x12
ea: 0000 unimp
ec: 08ca slli a7,a7,0x12
ee: 0000 unimp
f0: 08ca slli a7,a7,0x12
f2: 0000 unimp
f4: 08ca slli a7,a7,0x12
f6: 0000 unimp
f8: 08ca slli a7,a7,0x12
fa: 0000 unimp
fc: 08ca slli a7,a7,0x12
fe: 0000 unimp
100: 08ca slli a7,a7,0x12
102: 0000 unimp
104: 0000 unimp
106: 0000 unimp
108: 08ca slli a7,a7,0x12
10a: 0000 unimp
10c: 08ca slli a7,a7,0x12
10e: 0000 unimp
110: 08ca slli a7,a7,0x12
112: 0000 unimp
114: 08ca slli a7,a7,0x12
116: 0000 unimp
118: 08ca slli a7,a7,0x12
11a: 0000 unimp
11c: 08ca slli a7,a7,0x12
11e: 0000 unimp
120: 08ca slli a7,a7,0x12
122: 0000 unimp
124: 08ca slli a7,a7,0x12
126: 0000 unimp
128: 08ca slli a7,a7,0x12
12a: 0000 unimp
12c: 08ca slli a7,a7,0x12
12e: 0000 unimp
130: 08ca slli a7,a7,0x12
132: 0000 unimp
134: 08ca slli a7,a7,0x12
136: 0000 unimp
138: 0370 addi a2,sp,396
13a: 0000 unimp
13c: 08ca slli a7,a7,0x12
13e: 0000 unimp
140: 08ca slli a7,a7,0x12
142: 0000 unimp
144: 08ca slli a7,a7,0x12
146: 0000 unimp
148: 08ca slli a7,a7,0x12
14a: 0000 unimp
14c: 08ca slli a7,a7,0x12
14e: 0000 unimp
150: 08ca slli a7,a7,0x12
152: 0000 unimp
154: 08ca slli a7,a7,0x12
156: 0000 unimp
158: 08ca slli a7,a7,0x12
15a: 0000 unimp
15c: 1b14 addi a3,sp,432
15e: 0000 unimp
160: 08ca slli a7,a7,0x12
162: 0000 unimp
164: 08ca slli a7,a7,0x12
166: 0000 unimp
168: 08ca slli a7,a7,0x12
16a: 0000 unimp
16c: 08ca slli a7,a7,0x12
16e: 0000 unimp
170: 08ca slli a7,a7,0x12
172: 0000 unimp
174: 08ca slli a7,a7,0x12
176: 0000 unimp
178: 08ca slli a7,a7,0x12
17a: 0000 unimp
17c: 08ca slli a7,a7,0x12
17e: 0000 unimp
180: 08ca slli a7,a7,0x12
182: 0000 unimp
184: 08ca slli a7,a7,0x12
186: 0000 unimp
188: 08ca slli a7,a7,0x12
18a: 0000 unimp
18c: 08ca slli a7,a7,0x12
18e: 0000 unimp
190: 08ca slli a7,a7,0x12
192: 0000 unimp
194: 08ca slli a7,a7,0x12
196: 0000 unimp
198: 08ca slli a7,a7,0x12
19a: 0000 unimp
19c: 08ca slli a7,a7,0x12
19e: 0000 unimp
1a0: 08ca slli a7,a7,0x12
...
Disassembly of section .text:
000001c0 <__riscv_save_12>:
__riscv_save_12():
1c0: 7139 addi sp,sp,-64
1c2: 4301 li t1,0
1c4: c66e sw s11,12(sp)
1c6: a019 j 1cc <__riscv_save_10+0x4>
000001c8 <__riscv_save_10>:
1c8: 7139 addi sp,sp,-64
1ca: 5341 li t1,-16
1cc: c86a sw s10,16(sp)
1ce: ca66 sw s9,20(sp)
1d0: cc62 sw s8,24(sp)
1d2: ce5e sw s7,28(sp)
1d4: a019 j 1da <__riscv_save_4+0x4>
000001d6 <__riscv_save_4>:
1d6: 7139 addi sp,sp,-64
1d8: 5301 li t1,-32
1da: d05a sw s6,32(sp)
1dc: d256 sw s5,36(sp)
1de: d452 sw s4,40(sp)
1e0: d64e sw s3,44(sp)
1e2: d84a sw s2,48(sp)
1e4: da26 sw s1,52(sp)
1e6: dc22 sw s0,56(sp)
1e8: de06 sw ra,60(sp)
1ea: 40610133 sub sp,sp,t1
1ee: 8282 jr t0
000001f0 <__riscv_save_0>:
__riscv_save_1():
1f0: 1141 addi sp,sp,-16
1f2: c04a sw s2,0(sp)
1f4: c226 sw s1,4(sp)
1f6: c422 sw s0,8(sp)
1f8: c606 sw ra,12(sp)
1fa: 8282 jr t0
000001fc <__riscv_restore_12>:
__riscv_restore_12():
1fc: 4db2 lw s11,12(sp)
1fe: 0141 addi sp,sp,16
00000200 <__riscv_restore_10>:
200: 4d02 lw s10,0(sp)
202: 4c92 lw s9,4(sp)
204: 4c22 lw s8,8(sp)
206: 4bb2 lw s7,12(sp)
208: 0141 addi sp,sp,16
0000020a <__riscv_restore_4>:
20a: 4b02 lw s6,0(sp)
20c: 4a92 lw s5,4(sp)
20e: 4a22 lw s4,8(sp)
210: 49b2 lw s3,12(sp)
212: 0141 addi sp,sp,16
00000214 <__riscv_restore_0>:
214: 4902 lw s2,0(sp)
216: 4492 lw s1,4(sp)
218: 4422 lw s0,8(sp)
21a: 40b2 lw ra,12(sp)
21c: 0141 addi sp,sp,16
21e: 8082 ret
00000220 <memset>:
memset():
220: 433d li t1,15
222: 872a mv a4,a0
224: 02c37363 bgeu t1,a2,24a <memset+0x2a>
228: 00f77793 andi a5,a4,15
22c: efbd bnez a5,2aa <memset+0x8a>
22e: e5ad bnez a1,298 <memset+0x78>
230: ff067693 andi a3,a2,-16
234: 8a3d andi a2,a2,15
236: 96ba add a3,a3,a4
238: c30c sw a1,0(a4)
23a: c34c sw a1,4(a4)
23c: c70c sw a1,8(a4)
23e: c74c sw a1,12(a4)
240: 0741 addi a4,a4,16
242: fed76be3 bltu a4,a3,238 <memset+0x18>
246: e211 bnez a2,24a <memset+0x2a>
248: 8082 ret
24a: 40c306b3 sub a3,t1,a2
24e: 068a slli a3,a3,0x2
250: 00000297 auipc t0,0x0
254: 9696 add a3,a3,t0
256: 00a68067 jr 10(a3)
25a: 00b70723 sb a1,14(a4)
25e: 00b706a3 sb a1,13(a4)
262: 00b70623 sb a1,12(a4)
266: 00b705a3 sb a1,11(a4)
26a: 00b70523 sb a1,10(a4)
26e: 00b704a3 sb a1,9(a4)
272: 00b70423 sb a1,8(a4)
276: 00b703a3 sb a1,7(a4)
27a: 00b70323 sb a1,6(a4)
27e: 00b702a3 sb a1,5(a4)
282: 00b70223 sb a1,4(a4)
286: 00b701a3 sb a1,3(a4)
28a: 00b70123 sb a1,2(a4)
28e: 00b700a3 sb a1,1(a4)
292: 00b70023 sb a1,0(a4)
296: 8082 ret
298: 0ff5f593 andi a1,a1,255
29c: 00859693 slli a3,a1,0x8
2a0: 8dd5 or a1,a1,a3
2a2: 01059693 slli a3,a1,0x10
2a6: 8dd5 or a1,a1,a3
2a8: b761 j 230 <memset+0x10>
2aa: 00279693 slli a3,a5,0x2
2ae: 00000297 auipc t0,0x0
2b2: 9696 add a3,a3,t0
2b4: 8286 mv t0,ra
2b6: fa8680e7 jalr -88(a3)
2ba: 8096 mv ra,t0
2bc: 17c1 addi a5,a5,-16
2be: 8f1d sub a4,a4,a5
2c0: 963e add a2,a2,a5
2c2: f8c374e3 bgeu t1,a2,24a <memset+0x2a>
2c6: b7a5 j 22e <memset+0xe>
000002c8 <NMI_Handler>:
NMI_Handler():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:38 (discriminator 1)
*/
void NMI_Handler(void)
{
while (1)
{
}
2c8: a001 j 2c8 <NMI_Handler>
000002ca <HardFault_Handler>:
HardFault_Handler():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:50
*
* @return none
*/
void HardFault_Handler(void)
{
printf("HardFault_Handler\r\n");
2ca: 00009537 lui a0,0x9
2ce: c7450513 addi a0,a0,-908 # 8c74 <memcpy+0xbe>
2d2: 083080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:51
printf("mepc :%08x\r\n", __get_MEPC());
2d6: 099010ef jal ra,1b6e <__get_MEPC>
2da: 85aa mv a1,a0
2dc: 00009537 lui a0,0x9
2e0: c8850513 addi a0,a0,-888 # 8c88 <memcpy+0xd2>
2e4: 04d080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:52
printf("mcause:%08x\r\n", __get_MCAUSE());
2e8: 08d010ef jal ra,1b74 <__get_MCAUSE>
2ec: 85aa mv a1,a0
2ee: 00009537 lui a0,0x9
2f2: c9850513 addi a0,a0,-872 # 8c98 <memcpy+0xe2>
2f6: 03b080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:53
printf("mtval :%08x\r\n", __get_MTVAL());
2fa: 081010ef jal ra,1b7a <__get_MTVAL>
2fe: 85aa mv a1,a0
300: 00009537 lui a0,0x9
304: ca850513 addi a0,a0,-856 # 8ca8 <memcpy+0xf2>
308: 029080ef jal ra,8b30 <printf>
NVIC_SystemReset():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:382
*
* @return none
*/
__attribute__( ( always_inline ) ) RV_STATIC_INLINE void NVIC_SystemReset(void)
{
NVIC->CFGR = NVIC_KEY3|(1<<7);
30c: beef07b7 lui a5,0xbeef0
310: e000e737 lui a4,0xe000e
314: 08078793 addi a5,a5,128 # beef0080 <_eusrstack+0x9eed0080>
318: c73c sw a5,72(a4)
HardFault_Handler():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:55 (discriminator 1)
NVIC_SystemReset();
while(1);
31a: a001 j 31a <HardFault_Handler+0x50>
0000031c <EXTI9_5_IRQHandler>:
EXTI9_5_IRQHandler():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:66
* @brief This function handles GPIO exception.
*
* @return none
*/
void EXTI9_5_IRQHandler(void)
{
31c: 7139 addi sp,sp,-64
31e: de06 sw ra,60(sp)
320: dc16 sw t0,56(sp)
322: da1a sw t1,52(sp)
324: d81e sw t2,48(sp)
326: d62a sw a0,44(sp)
328: d42e sw a1,40(sp)
32a: d232 sw a2,36(sp)
32c: d036 sw a3,32(sp)
32e: ce3a sw a4,28(sp)
330: cc3e sw a5,24(sp)
332: ca42 sw a6,20(sp)
334: c846 sw a7,16(sp)
336: c672 sw t3,12(sp)
338: c476 sw t4,8(sp)
33a: c27a sw t5,4(sp)
33c: c07e sw t6,0(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:67
ETH_PHYLink( );
33e: 7cd000ef jal ra,130a <ETH_PHYLink>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:68
EXTI_ClearITPendingBit(EXTI_Line7); /* Clear Flag */
342: 08000513 li a0,128
346: 0e1000ef jal ra,c26 <EXTI_ClearITPendingBit>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:69
}
34a: 50f2 lw ra,60(sp)
34c: 52e2 lw t0,56(sp)
34e: 5352 lw t1,52(sp)
350: 53c2 lw t2,48(sp)
352: 5532 lw a0,44(sp)
354: 55a2 lw a1,40(sp)
356: 5612 lw a2,36(sp)
358: 5682 lw a3,32(sp)
35a: 4772 lw a4,28(sp)
35c: 47e2 lw a5,24(sp)
35e: 4852 lw a6,20(sp)
360: 48c2 lw a7,16(sp)
362: 4e32 lw t3,12(sp)
364: 4ea2 lw t4,8(sp)
366: 4f12 lw t5,4(sp)
368: 4f82 lw t6,0(sp)
36a: 6121 addi sp,sp,64
36c: 30200073 mret
00000370 <ETH_IRQHandler>:
ETH_IRQHandler():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:80
*
* @return none
*/
void ETH_IRQHandler(void)
{
WCHNET_ETHIsr();
370: 420010ef jal ra,1790 <WCHNET_ETHIsr>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:81
}
374: 30200073 mret
00000378 <TIM2_IRQHandler>:
TIM2_IRQHandler():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:92
*
* @return none
*/
void TIM2_IRQHandler(void)
{
sys_tick_ms += WCHNETTIMERPERIOD; /* 累加实际间隔毫秒数 */
378: 85818793 addi a5,gp,-1960 # 20000078 <_edata>
37c: 4398 lw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:93
WCHNET_TimeIsr(WCHNETTIMERPERIOD);
37e: 4529 li a0,10
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:92
sys_tick_ms += WCHNETTIMERPERIOD; /* 累加实际间隔毫秒数 */
380: 0729 addi a4,a4,10
382: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:93
WCHNET_TimeIsr(WCHNETTIMERPERIOD);
384: 62f000ef jal ra,11b2 <WCHNET_TimeIsr>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:94
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
388: 4585 li a1,1
38a: 40000537 lui a0,0x40000
38e: 503000ef jal ra,1090 <TIM_ClearITPendingBit>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/ch32v30x_it.c:95
}
392: 30200073 mret
00000396 <mStopIfError>:
mStopIfError():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:22
u8 socket[WCHNET_MAX_SOCKET_NUM];
u8 SocketRecvBuf[WCHNET_MAX_SOCKET_NUM][RECE_BUF_LEN];
void mStopIfError(u8 iError)
{
if (iError == WCHNET_ERR_SUCCESS) return;
396: c919 beqz a0,3ac <mStopIfError+0x16>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:21
{
398: e59ff2ef jal t0,1f0 <__riscv_save_0>
39c: 85aa mv a1,a0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:23
printf("Error: %02X\r\n", (u16)iError);
39e: 00009537 lui a0,0x9
3a2: d5050513 addi a0,a0,-688 # 8d50 <memcpy+0x19a>
3a6: 78a080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:24
}
3aa: b5ad j 214 <__riscv_restore_0>
3ac: 8082 ret
000003ae <TIM2_Init>:
TIM2_Init():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:27
void TIM2_Init(void)
{
3ae: e43ff2ef jal t0,1f0 <__riscv_save_0>
3b2: 1141 addi sp,sp,-16
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:29
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure = {0};
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
3b4: 4585 li a1,1
3b6: 4505 li a0,1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:28
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure = {0};
3b8: c202 sw zero,4(sp)
3ba: c402 sw zero,8(sp)
3bc: 00011623 sh zero,12(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:29
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
3c0: 33f000ef jal ra,efe <RCC_APB1PeriphClockCmd>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:31
TIM_TimeBaseStructure.TIM_Period = WCHNETTIMERPERIOD * 1000 - 1;
TIM_TimeBaseStructure.TIM_Prescaler = SystemCoreClock / 1000000 - 1;
3c4: 8141a783 lw a5,-2028(gp) # 20000034 <SystemCoreClock>
3c8: 000f4737 lui a4,0xf4
3cc: 24070713 addi a4,a4,576 # f4240 <_data_lma+0xeb3ac>
3d0: 02e7d7b3 divu a5,a5,a4
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:34
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
3d4: 004c addi a1,sp,4
3d6: 40000537 lui a0,0x40000
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:33
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
3da: 00011323 sh zero,6(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:31
TIM_TimeBaseStructure.TIM_Prescaler = SystemCoreClock / 1000000 - 1;
3de: 17fd addi a5,a5,-1
3e0: 827c sh a5,4(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:30
TIM_TimeBaseStructure.TIM_Period = WCHNETTIMERPERIOD * 1000 - 1;
3e2: 6789 lui a5,0x2
3e4: 70f78793 addi a5,a5,1807 # 270f <WCHNET_SocketCreat+0x19b>
3e8: c43e sw a5,8(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:34
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
3ea: 38f000ef jal ra,f78 <TIM_TimeBaseInit>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:35
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
3ee: 4605 li a2,1
3f0: 4585 li a1,1
3f2: 40000537 lui a0,0x40000
3f6: 489000ef jal ra,107e <TIM_ITConfig>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:36
TIM_Cmd(TIM2, ENABLE);
3fa: 4585 li a1,1
3fc: 40000537 lui a0,0x40000
400: 467000ef jal ra,1066 <TIM_Cmd>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:37
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
404: 4585 li a1,1
406: 40000537 lui a0,0x40000
40a: 487000ef jal ra,1090 <TIM_ClearITPendingBit>
NVIC_EnableIRQ():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:170
NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
40e: e000e7b7 lui a5,0xe000e
412: 6705 lui a4,0x1
414: 10e7a223 sw a4,260(a5) # e000e104 <_eusrstack+0xbffee104>
TIM2_Init():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:39
NVIC_EnableIRQ(TIM2_IRQn);
}
418: 0141 addi sp,sp,16
41a: bbed j 214 <__riscv_restore_0>
0000041c <WCHNET_CreateTcpSocket>:
WCHNET_CreateTcpSocket():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:42
void WCHNET_CreateTcpSocket(void)
{
41c: dd5ff2ef jal t0,1f0 <__riscv_save_0>
420: 7139 addi sp,sp,-64
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:45
u8 i;
SOCK_INF TmpSocketInf;
memset((void *)&TmpSocketInf, 0, sizeof(SOCK_INF));
422: 03c00613 li a2,60
426: 4581 li a1,0
428: 0048 addi a0,sp,4
42a: 3bdd jal 220 <memset>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:46
memcpy((void *)TmpSocketInf.IPAddr, DESIP, 4);
42c: 200007b7 lui a5,0x20000
430: 0207a783 lw a5,32(a5) # 20000020 <DESIP>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:51
TmpSocketInf.DesPort = desport;
TmpSocketInf.SourPort = srcport++;
TmpSocketInf.ProtoType = PROTO_TYPE_TCP;
TmpSocketInf.RecvBufLen = RECE_BUF_LEN;
i = WCHNET_SocketCreat(&SocketId, &TmpSocketInf);
434: 86218413 addi s0,gp,-1950 # 20000082 <SocketId>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:46
memcpy((void *)TmpSocketInf.IPAddr, DESIP, 4);
438: d83e sw a5,48(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:47
TmpSocketInf.DesPort = desport;
43a: 8101d783 lhu a5,-2032(gp) # 20000030 <desport>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:51
i = WCHNET_SocketCreat(&SocketId, &TmpSocketInf);
43e: 004c addi a1,sp,4
440: 86218513 addi a0,gp,-1950 # 20000082 <SocketId>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:47
TmpSocketInf.DesPort = desport;
444: d43e sw a5,40(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:48
TmpSocketInf.SourPort = srcport++;
446: 81218793 addi a5,gp,-2030 # 20000032 <srcport>
44a: 239a lhu a4,0(a5)
44c: 00170693 addi a3,a4,1 # 1001 <TIM_TimeBaseInit+0x89>
450: a396 sh a3,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:49
TmpSocketInf.ProtoType = PROTO_TYPE_TCP;
452: 478d li a5,3
454: d03e sw a5,32(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:50
TmpSocketInf.RecvBufLen = RECE_BUF_LEN;
456: 6785 lui a5,0x1
458: b6878793 addi a5,a5,-1176 # b68 <ETH_DMARxDescChainInit+0x32>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:48
TmpSocketInf.SourPort = srcport++;
45c: d63a sw a4,44(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:50
TmpSocketInf.RecvBufLen = RECE_BUF_LEN;
45e: c83e sw a5,16(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:51
i = WCHNET_SocketCreat(&SocketId, &TmpSocketInf);
460: 114020ef jal ra,2574 <WCHNET_SocketCreat>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:52
printf("SocketId %d\r\n", SocketId);
464: 200c lbu a1,0(s0)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:51
i = WCHNET_SocketCreat(&SocketId, &TmpSocketInf);
466: 84aa mv s1,a0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:52
printf("SocketId %d\r\n", SocketId);
468: 00009537 lui a0,0x9
46c: cb850513 addi a0,a0,-840 # 8cb8 <memcpy+0x102>
470: 6c0080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:53
mStopIfError(i);
474: 8526 mv a0,s1
476: 3705 jal 396 <mStopIfError>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:54
i = WCHNET_SocketConnect(SocketId);
478: 2008 lbu a0,0(s0)
47a: 0e7020ef jal ra,2d60 <WCHNET_SocketConnect>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:55
mStopIfError(i);
47e: 3f21 jal 396 <mStopIfError>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:56
}
480: 6121 addi sp,sp,64
482: bb49 j 214 <__riscv_restore_0>
00000484 <WCHNET_DataLoopback>:
WCHNET_DataLoopback():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:60
/* PC -> MCU 收到数据后回环同时可在此处理PC下发的指令 */
void WCHNET_DataLoopback(u8 id)
{
484: d6dff2ef jal t0,1f0 <__riscv_save_0>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:62
u32 len;
u32 endAddr = SocketInf[id].RecvStartPoint + SocketInf[id].RecvBufLen;
488: 03c00713 li a4,60
48c: 02e50733 mul a4,a0,a4
490: 200077b7 lui a5,0x20007
494: 33878793 addi a5,a5,824 # 20007338 <SocketInf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:60
{
498: 1141 addi sp,sp,-16
49a: 842a mv s0,a0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:62
u32 endAddr = SocketInf[id].RecvStartPoint + SocketInf[id].RecvBufLen;
49c: 97ba add a5,a5,a4
49e: 47d4 lw a3,12(a5)
4a0: 4798 lw a4,8(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:64
if ((SocketInf[id].RecvReadPoint + SocketInf[id].RecvRemLen) > endAddr)
4a2: 4bcc lw a1,20(a5)
4a4: 4f9c lw a5,24(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:62
u32 endAddr = SocketInf[id].RecvStartPoint + SocketInf[id].RecvBufLen;
4a6: 9736 add a4,a4,a3
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:64
if ((SocketInf[id].RecvReadPoint + SocketInf[id].RecvRemLen) > endAddr)
4a8: 00f586b3 add a3,a1,a5
4ac: 00d77463 bgeu a4,a3,4b4 <WCHNET_DataLoopback+0x30>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:65
len = endAddr - SocketInf[id].RecvReadPoint;
4b0: 40b707b3 sub a5,a4,a1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:69
else
len = SocketInf[id].RecvRemLen;
if (WCHNET_SocketSend(id, (u8 *)SocketInf[id].RecvReadPoint, &len) == WCHNET_ERR_SUCCESS)
4b4: 0070 addi a2,sp,12
4b6: 8522 mv a0,s0
4b8: c63e sw a5,12(sp)
4ba: 688020ef jal ra,2b42 <WCHNET_SocketSend>
4be: e511 bnez a0,4ca <WCHNET_DataLoopback+0x46>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:70
WCHNET_SocketRecv(id, NULL, &len);
4c0: 0070 addi a2,sp,12
4c2: 4581 li a1,0
4c4: 8522 mv a0,s0
4c6: 328020ef jal ra,27ee <WCHNET_SocketRecv>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:71
}
4ca: 0141 addi sp,sp,16
4cc: b3a1 j 214 <__riscv_restore_0>
000004ce <WCHNET_HandleSockInt>:
WCHNET_HandleSockInt():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:74
void WCHNET_HandleSockInt(u8 socketid, u8 intstat)
{
4ce: d23ff2ef jal t0,1f0 <__riscv_save_0>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:77
u8 i;
if (intstat & SINT_STAT_RECV)
4d2: 0045f793 andi a5,a1,4
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:74
{
4d6: 842a mv s0,a0
4d8: 84ae mv s1,a1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:77
if (intstat & SINT_STAT_RECV)
4da: c391 beqz a5,4de <WCHNET_HandleSockInt+0x10>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:79
{
WCHNET_DataLoopback(socketid);
4dc: 3765 jal 484 <WCHNET_DataLoopback>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:81
}
if (intstat & SINT_STAT_CONNECT)
4de: 0084f793 andi a5,s1,8
4e2: c3a9 beqz a5,524 <WCHNET_HandleSockInt+0x56>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:84
{
#if KEEPALIVE_ENABLE
WCHNET_SocketSetKeepLive(socketid, ENABLE);
4e4: 4585 li a1,1
4e6: 8522 mv a0,s0
4e8: 025020ef jal ra,2d0c <WCHNET_SocketSetKeepLive>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:86
#endif
WCHNET_ModifyRecvBuf(socketid, (u32)SocketRecvBuf[socketid], RECE_BUF_LEN);
4ec: 6605 lui a2,0x1
4ee: b6860613 addi a2,a2,-1176 # b68 <ETH_DMARxDescChainInit+0x32>
4f2: 02c405b3 mul a1,s0,a2
4f6: 200007b7 lui a5,0x20000
4fa: 16c78793 addi a5,a5,364 # 2000016c <SocketRecvBuf>
4fe: 8522 mv a0,s0
500: 95be add a1,a1,a5
502: 29c020ef jal ra,279e <WCHNET_ModifyRecvBuf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:88
for (i = 0; i < WCHNET_MAX_SOCKET_NUM; i++) {
if (socket[i] == 0xff) { socket[i] = socketid; break; }
506: 86418793 addi a5,gp,-1948 # 20000084 <socket>
50a: 2394 lbu a3,0(a5)
50c: 0ff00713 li a4,255
510: 00e69363 bne a3,a4,516 <WCHNET_HandleSockInt+0x48>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:88 (discriminator 1)
514: a380 sb s0,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:90
}
printf("TCP Connect Success, socket id: %d\r\n", socketid);
516: 00009537 lui a0,0x9
51a: 85a2 mv a1,s0
51c: d0850513 addi a0,a0,-760 # 8d08 <memcpy+0x152>
520: 610080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:92
}
if (intstat & SINT_STAT_DISCONNECT)
524: 0104f793 andi a5,s1,16
528: cf91 beqz a5,544 <WCHNET_HandleSockInt+0x76>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:95
{
for (i = 0; i < WCHNET_MAX_SOCKET_NUM; i++) {
if (socket[i] == socketid) { socket[i] = 0xff; break; }
52a: 86418793 addi a5,gp,-1948 # 20000084 <socket>
52e: 2398 lbu a4,0(a5)
530: 00871463 bne a4,s0,538 <WCHNET_HandleSockInt+0x6a>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:95 (discriminator 1)
534: 577d li a4,-1
536: a398 sb a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:97
}
printf("TCP Disconnect\r\n");
538: 00009537 lui a0,0x9
53c: d3050513 addi a0,a0,-720 # 8d30 <memcpy+0x17a>
540: 614080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:99
}
if (intstat & SINT_STAT_TIM_OUT)
544: 0404f493 andi s1,s1,64
548: cc99 beqz s1,566 <WCHNET_HandleSockInt+0x98>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:102
{
for (i = 0; i < WCHNET_MAX_SOCKET_NUM; i++) {
if (socket[i] == socketid) { socket[i] = 0xff; break; }
54a: 86418793 addi a5,gp,-1948 # 20000084 <socket>
54e: 2398 lbu a4,0(a5)
550: 00871463 bne a4,s0,558 <WCHNET_HandleSockInt+0x8a>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:102 (discriminator 1)
554: 577d li a4,-1
556: a398 sb a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:104
}
printf("TCP Timeout\r\n");
558: 00009537 lui a0,0x9
55c: d4050513 addi a0,a0,-704 # 8d40 <memcpy+0x18a>
560: 5f4080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:105
WCHNET_CreateTcpSocket();
564: 3d65 jal 41c <WCHNET_CreateTcpSocket>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:107
}
}
566: b17d j 214 <__riscv_restore_0>
00000568 <WCHNET_HandleGlobalInt>:
WCHNET_HandleGlobalInt():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:110
void WCHNET_HandleGlobalInt(void)
{
568: c89ff2ef jal t0,1f0 <__riscv_save_0>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:114
u8 intstat;
u16 i;
u8 socketint;
intstat = WCHNET_GetGlobalInt();
56c: 75a020ef jal ra,2cc6 <WCHNET_GetGlobalInt>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:115
if (intstat & GINT_STAT_UNREACH) printf("GINT_STAT_UNREACH\r\n");
570: 00157793 andi a5,a0,1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:114
intstat = WCHNET_GetGlobalInt();
574: 842a mv s0,a0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:115
if (intstat & GINT_STAT_UNREACH) printf("GINT_STAT_UNREACH\r\n");
576: c799 beqz a5,584 <WCHNET_HandleGlobalInt+0x1c>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:115 (discriminator 1)
578: 00009537 lui a0,0x9
57c: cc850513 addi a0,a0,-824 # 8cc8 <memcpy+0x112>
580: 5d4080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:116
if (intstat & GINT_STAT_IP_CONFLI) printf("GINT_STAT_IP_CONFLI\r\n");
584: 00247793 andi a5,s0,2
588: c799 beqz a5,596 <WCHNET_HandleGlobalInt+0x2e>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:116 (discriminator 1)
58a: 00009537 lui a0,0x9
58e: cdc50513 addi a0,a0,-804 # 8cdc <memcpy+0x126>
592: 5c2080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:117
if (intstat & GINT_STAT_PHY_CHANGE) {
596: 00447793 andi a5,s0,4
59a: cb99 beqz a5,5b0 <WCHNET_HandleGlobalInt+0x48>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:118
if (WCHNET_GetPHYStatus() & PHY_Linked_Status)
59c: 766020ef jal ra,2d02 <WCHNET_GetPHYStatus>
5a0: 8911 andi a0,a0,4
5a2: c519 beqz a0,5b0 <WCHNET_HandleGlobalInt+0x48>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:119
printf("PHY Link Success\r\n");
5a4: 00009537 lui a0,0x9
5a8: cf450513 addi a0,a0,-780 # 8cf4 <memcpy+0x13e>
5ac: 5a8080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:121
}
if (intstat & GINT_STAT_SOCKET) {
5b0: 8841 andi s0,s0,16
5b2: e011 bnez s0,5b6 <WCHNET_HandleGlobalInt+0x4e>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:127
for (i = 0; i < WCHNET_MAX_SOCKET_NUM; i++) {
socketint = WCHNET_GetSocketInt(i);
if (socketint) WCHNET_HandleSockInt(i, socketint);
}
}
}
5b4: b185 j 214 <__riscv_restore_0>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:123
socketint = WCHNET_GetSocketInt(i);
5b6: 4501 li a0,0
5b8: 720020ef jal ra,2cd8 <WCHNET_GetSocketInt>
5bc: 85aa mv a1,a0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:124
if (socketint) WCHNET_HandleSockInt(i, socketint);
5be: d97d beqz a0,5b4 <WCHNET_HandleGlobalInt+0x4c>
5c0: 4501 li a0,0
5c2: 3731 jal 4ce <WCHNET_HandleSockInt>
5c4: bfc5 j 5b4 <WCHNET_HandleGlobalInt+0x4c>
000005c6 <main>:
main():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:130
int main(void)
{
5c6: c11ff2ef jal t0,1d6 <__riscv_save_4>
5ca: 1141 addi sp,sp,-16
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:132
u8 i;
SystemCoreClockUpdate();
5cc: 2ad1 jal 7a0 <SystemCoreClockUpdate>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:133
Delay_Init();
5ce: 2e0010ef jal ra,18ae <Delay_Init>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:134
USART_Printf_Init(115200);
5d2: 6571 lui a0,0x1c
5d4: 20050513 addi a0,a0,512 # 1c200 <_data_lma+0x1336c>
5d8: 332010ef jal ra,190a <USART_Printf_Init>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:135
printf("TCPClient Test\r\nSystemClk:%d\r\n", SystemCoreClock);
5dc: 8141a583 lw a1,-2028(gp) # 20000034 <SystemCoreClock>
5e0: 00009537 lui a0,0x9
5e4: d6050513 addi a0,a0,-672 # 8d60 <memcpy+0x1aa>
5e8: 548080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:136
printf("net version:%x\n", WCHNET_GetVer());
5ec: 727010ef jal ra,2512 <WCHNET_GetVer>
5f0: 85aa mv a1,a0
5f2: 00009537 lui a0,0x9
5f6: d8050513 addi a0,a0,-640 # 8d80 <memcpy+0x1ca>
5fa: 536080ef jal ra,8b30 <printf>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:137
if (WCHNET_LIB_VER != WCHNET_GetVer()) printf("version error.\n");
5fe: 715010ef jal ra,2512 <WCHNET_GetVer>
602: 47ed li a5,27
604: 00f50863 beq a0,a5,614 <main+0x4e>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:137 (discriminator 1)
608: 00009537 lui a0,0x9
60c: d9050513 addi a0,a0,-624 # 8d90 <memcpy+0x1da>
610: 544080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:139
WCHNET_GetMacAddr(MACAddr);
614: 85c18513 addi a0,gp,-1956 # 2000007c <MACAddr>
618: 37b000ef jal ra,1192 <WCHNET_GetMacAddr>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:140
printf("mac addr:");
61c: 00009537 lui a0,0x9
620: da050513 addi a0,a0,-608 # 8da0 <memcpy+0x1ea>
624: 50c080ef jal ra,8b30 <printf>
628: 4481 li s1,0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:141
for (i = 0; i < 6; i++) printf("%x ", MACAddr[i]);
62a: 85c18a13 addi s4,gp,-1956 # 2000007c <MACAddr>
62e: 000099b7 lui s3,0x9
632: 4919 li s2,6
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:141 (discriminator 3)
634: 009a07b3 add a5,s4,s1
638: 238c lbu a1,0(a5)
63a: dac98513 addi a0,s3,-596 # 8dac <memcpy+0x1f6>
63e: 0485 addi s1,s1,1
640: 4f0080ef jal ra,8b30 <printf>
644: ff2498e3 bne s1,s2,634 <main+0x6e>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:142
printf("\n");
648: 4529 li a0,10
64a: 554080ef jal ra,8b9e <putchar>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:144
DVP_Init();
64e: 35c010ef jal ra,19aa <DVP_Init>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:145
TIM2_Init();
652: 3bb1 jal 3ae <TIM2_Init>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:147
i = ETH_LibInit(IPAddr, GWIPAddr, IPMask, MACAddr);
654: 85c18693 addi a3,gp,-1956 # 2000007c <MACAddr>
658: 80c18613 addi a2,gp,-2036 # 2000002c <IPMask>
65c: 80418593 addi a1,gp,-2044 # 20000024 <GWIPAddr>
660: 80818513 addi a0,gp,-2040 # 20000028 <IPAddr>
664: 1d6010ef jal ra,183a <ETH_LibInit>
668: 842a mv s0,a0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:148
mStopIfError(i);
66a: 3335 jal 396 <mStopIfError>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:149
if (i == WCHNET_ERR_SUCCESS) printf("WCHNET_LibInit Success\r\n");
66c: e419 bnez s0,67a <main+0xb4>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:149 (discriminator 1)
66e: 00009537 lui a0,0x9
672: db050513 addi a0,a0,-592 # 8db0 <memcpy+0x1fa>
676: 4de080ef jal ra,8b54 <puts>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:153
#if KEEPALIVE_ENABLE
{
struct _KEEP_CFG cfg = {20000, 15000, 9};
67a: 65a5 lui a1,0x9
67c: 4631 li a2,12
67e: c6858593 addi a1,a1,-920 # 8c68 <memcpy+0xb2>
682: 0048 addi a0,sp,4
684: 532080ef jal ra,8bb6 <memcpy>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:154
WCHNET_ConfigKeepLive(&cfg);
688: 0048 addi a0,sp,4
68a: 52f010ef jal ra,23b8 <WCHNET_ConfigKeepLive>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:158
}
#endif
memset(socket, 0xff, WCHNET_MAX_SOCKET_NUM);
68e: 577d li a4,-1
690: 86e18223 sb a4,-1948(gp) # 20000084 <socket>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:159
WCHNET_CreateTcpSocket();
694: 3361 jal 41c <WCHNET_CreateTcpSocket>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:163
while (1)
{
DVP_Task();
696: 3dc010ef jal ra,1a72 <DVP_Task>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:164
WCHNET_MainTask();
69a: 5e7000ef jal ra,1480 <WCHNET_MainTask>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:165
if (WCHNET_QueryGlobalInt())
69e: 5ea020ef jal ra,2c88 <WCHNET_QueryGlobalInt>
6a2: d975 beqz a0,696 <main+0xd0>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/main.c:166
WCHNET_HandleGlobalInt();
6a4: 35d1 jal 568 <WCHNET_HandleGlobalInt>
6a6: bfc5 j 696 <main+0xd0>
000006a8 <SystemInit>:
SystemInit():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:113
*
* @return none
*/
void SystemInit (void)
{
RCC->CTLR |= (uint32_t)0x00000001;
6a8: 400217b7 lui a5,0x40021
6ac: 4398 lw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:115
RCC->CFGR0 &= (uint32_t)0xF0FF0000;
6ae: f0ff06b7 lui a3,0xf0ff0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:112
{
6b2: 1141 addi sp,sp,-16
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:113
RCC->CTLR |= (uint32_t)0x00000001;
6b4: 00176713 ori a4,a4,1
6b8: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:115
RCC->CFGR0 &= (uint32_t)0xF0FF0000;
6ba: 43d8 lw a4,4(a5)
SetSysClockTo144_HSE():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:713
RCC->CTLR |= ((uint32_t)RCC_HSEON);
/* Wait till HSE is ready and if Time out is reached exit */
do
{
HSEStatus = RCC->CTLR & RCC_HSERDY;
6bc: 00020637 lui a2,0x20
SystemInit():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:115
RCC->CFGR0 &= (uint32_t)0xF0FF0000;
6c0: 8f75 and a4,a4,a3
6c2: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:117
RCC->CTLR &= (uint32_t)0xFEF6FFFF;
6c4: 4398 lw a4,0(a5)
6c6: fef706b7 lui a3,0xfef70
6ca: 16fd addi a3,a3,-1
6cc: 8f75 and a4,a4,a3
6ce: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:118
RCC->CTLR &= (uint32_t)0xFFFBFFFF;
6d0: 4398 lw a4,0(a5)
6d2: fffc06b7 lui a3,0xfffc0
6d6: 16fd addi a3,a3,-1
6d8: 8f75 and a4,a4,a3
6da: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:119
RCC->CFGR0 &= (uint32_t)0xFF00FFFF;
6dc: 43d8 lw a4,4(a5)
6de: ff0106b7 lui a3,0xff010
6e2: 16fd addi a3,a3,-1
6e4: 8f75 and a4,a4,a3
6e6: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:122
RCC->CTLR &= (uint32_t)0xEBFFFFFF;
6e8: 4398 lw a4,0(a5)
6ea: ec0006b7 lui a3,0xec000
6ee: 16fd addi a3,a3,-1
6f0: 8f75 and a4,a4,a3
6f2: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:123
RCC->INTR = 0x00FF0000;
6f4: 00ff0737 lui a4,0xff0
6f8: c798 sw a4,8(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:124
RCC->CFGR2 = 0x00000000;
6fa: 0207a623 sw zero,44(a5) # 4002102c <_eusrstack+0x2000102c>
SetSysClockTo144_HSE():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:706
__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
6fe: c402 sw zero,8(sp)
700: c602 sw zero,12(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:708
RCC->CTLR |= ((uint32_t)RCC_HSEON);
702: 4398 lw a4,0(a5)
704: 66c1 lui a3,0x10
706: 8f55 or a4,a4,a3
708: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:713
HSEStatus = RCC->CTLR & RCC_HSERDY;
70a: 400216b7 lui a3,0x40021
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:715
StartUpCounter++;
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
70e: 6705 lui a4,0x1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:713
HSEStatus = RCC->CTLR & RCC_HSERDY;
710: 429c lw a5,0(a3)
712: 8ff1 and a5,a5,a2
714: c63e sw a5,12(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:714
StartUpCounter++;
716: 47a2 lw a5,8(sp)
718: 0785 addi a5,a5,1
71a: c43e sw a5,8(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:715
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
71c: 47b2 lw a5,12(sp)
71e: e781 bnez a5,726 <SystemInit+0x7e>
720: 47a2 lw a5,8(sp)
722: fee797e3 bne a5,a4,710 <SystemInit+0x68>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:717
if ((RCC->CTLR & RCC_HSERDY) != RESET)
726: 400217b7 lui a5,0x40021
72a: 439c lw a5,0(a5)
72c: 00e79713 slli a4,a5,0xe
730: 06075663 bgez a4,79c <SystemInit+0xf4>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:719
{
HSEStatus = (uint32_t)0x01;
734: 4785 li a5,1
736: c63e sw a5,12(sp)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:726
else
{
HSEStatus = (uint32_t)0x00;
}
if (HSEStatus == (uint32_t)0x01)
738: 4732 lw a4,12(sp)
73a: 4785 li a5,1
73c: 04f71e63 bne a4,a5,798 <SystemInit+0xf0>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:729
{
/* HCLK = SYSCLK */
RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1;
740: 400217b7 lui a5,0x40021
744: 43d8 lw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:736
RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1;
/* PCLK1 = HCLK */
RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV2;
/* PLL configuration: PLLCLK = HSE * 18 = 144 MHz */
RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_PLLSRC | RCC_PLLXTPRE |
746: ffc106b7 lui a3,0xffc10
74a: 16fd addi a3,a3,-1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:729
RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1;
74c: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:731
RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1;
74e: 43d8 lw a4,4(a5)
750: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:733
RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV2;
752: 43d8 lw a4,4(a5)
754: 40076713 ori a4,a4,1024
758: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:736
RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_PLLSRC | RCC_PLLXTPRE |
75a: 43d8 lw a4,4(a5)
75c: 8f75 and a4,a4,a3
75e: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:742
RCC_PLLMULL));
#ifdef CH32V30x_D8
RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLXTPRE_HSE | RCC_PLLMULL18);
#else
RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLXTPRE_HSE | RCC_PLLMULL18_EXTEN);
760: 43d8 lw a4,4(a5)
762: 66c1 lui a3,0x10
764: 8f55 or a4,a4,a3
766: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:746
#endif
/* Enable PLL */
RCC->CTLR |= RCC_PLLON;
768: 4398 lw a4,0(a5)
76a: 010006b7 lui a3,0x1000
76e: 8f55 or a4,a4,a3
770: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:748
/* Wait till PLL is ready */
while((RCC->CTLR & RCC_PLLRDY) == 0)
772: 4398 lw a4,0(a5)
774: 00671693 slli a3,a4,0x6
778: fe06dde3 bgez a3,772 <SystemInit+0xca>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:752
{
}
/* Select PLL as system clock source */
RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_SW));
77c: 43d8 lw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:755
RCC->CFGR0 |= (uint32_t)RCC_SW_PLL;
/* Wait till PLL is used as system clock source */
while ((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08)
77e: 400216b7 lui a3,0x40021
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:752
RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_SW));
782: 9b71 andi a4,a4,-4
784: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:753
RCC->CFGR0 |= (uint32_t)RCC_SW_PLL;
786: 43d8 lw a4,4(a5)
788: 00276713 ori a4,a4,2
78c: c3d8 sw a4,4(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:755
while ((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08)
78e: 4721 li a4,8
790: 42dc lw a5,4(a3)
792: 8bb1 andi a5,a5,12
794: fee79ee3 bne a5,a4,790 <SystemInit+0xe8>
SystemInit():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:129
}
798: 0141 addi sp,sp,16
79a: 8082 ret
SetSysClockTo144_HSE():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:723
HSEStatus = (uint32_t)0x00;
79c: c602 sw zero,12(sp)
79e: bf69 j 738 <SystemInit+0x90>
000007a0 <SystemCoreClockUpdate>:
SystemCoreClockUpdate():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:148
tmp = RCC->CFGR0 & RCC_SWS;
7a0: 400216b7 lui a3,0x40021
7a4: 42d8 lw a4,4(a3)
7a6: 4611 li a2,4
7a8: 8b31 andi a4,a4,12
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:150
switch (tmp)
7aa: 81418793 addi a5,gp,-2028 # 20000034 <SystemCoreClock>
7ae: 00c70563 beq a4,a2,7b8 <SystemCoreClockUpdate+0x18>
7b2: 4621 li a2,8
7b4: 02c70863 beq a4,a2,7e4 <SystemCoreClockUpdate+0x44>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:153
SystemCoreClock = HSI_VALUE;
7b8: 007a1737 lui a4,0x7a1
7bc: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:215 (discriminator 1)
if(Pll_6_5 == 1) SystemCoreClock = (SystemCoreClock / 2);
7c0: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:223
tmp = AHBPrescTable[((RCC->CFGR0 & RCC_HPRE) >> 4)];
7c2: 40021737 lui a4,0x40021
7c6: 4358 lw a4,4(a4)
7c8: 8311 srli a4,a4,0x4
7ca: 00f77693 andi a3,a4,15
7ce: 20000737 lui a4,0x20000
7d2: 00070713 mv a4,a4
7d6: 9736 add a4,a4,a3
7d8: 2314 lbu a3,0(a4)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:224
SystemCoreClock >>= tmp;
7da: 4398 lw a4,0(a5)
7dc: 00d75733 srl a4,a4,a3
7e0: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:225
}
7e2: 8082 ret
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:159
pllmull = RCC->CFGR0 & RCC_PLLMULL;
7e4: 42d8 lw a4,4(a3)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:160
pllsource = RCC->CFGR0 & RCC_PLLSRC;
7e6: 42d4 lw a3,4(a3)
7e8: 6641 lui a2,0x10
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:161
pllmull = ( pllmull >> 18) + 2;
7ea: 8349 srli a4,a4,0x12
7ec: 8b3d andi a4,a4,15
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:160
pllsource = RCC->CFGR0 & RCC_PLLSRC;
7ee: 8ef1 and a3,a3,a2
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:166
if(pllmull == 2) pllmull = 18;
7f0: 00270613 addi a2,a4,2 # 20000002 <_data_vma+0x2>
7f4: cf15 beqz a4,830 <__stack_size+0x30>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:167
if(pllmull == 15){
7f6: 473d li a4,15
7f8: 02e60f63 beq a2,a4,836 <__stack_size+0x36>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:171
if(pllmull == 16) pllmull = 15;
7fc: 4741 li a4,16
7fe: 02e60f63 beq a2,a4,83c <__stack_size+0x3c>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:172
if(pllmull == 17) pllmull = 16;
802: 4745 li a4,17
804: 4581 li a1,0
806: 00e61363 bne a2,a4,80c <__stack_size+0xc>
80a: 4641 li a2,16
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:175
if (pllsource == 0x00)
80c: e2a1 bnez a3,84c <__stack_size+0x4c>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:177
if(EXTEN->EXTEN_CTR & EXTEN_PLL_HSI_PRE) SystemCoreClock = HSI_VALUE * pllmull;
80e: 40024737 lui a4,0x40024
812: 80072703 lw a4,-2048(a4) # 40023800 <_eusrstack+0x20003800>
816: 8b41 andi a4,a4,16
818: c70d beqz a4,842 <__stack_size+0x42>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:177 (discriminator 1)
81a: 007a1737 lui a4,0x7a1
81e: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:210
SystemCoreClock = SystemCoreClock * pllmull;
822: 02c70633 mul a2,a4,a2
826: c390 sw a2,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:215
if(Pll_6_5 == 1) SystemCoreClock = (SystemCoreClock / 2);
828: ddc9 beqz a1,7c2 <SystemCoreClockUpdate+0x22>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:215 (discriminator 1)
82a: 4398 lw a4,0(a5)
82c: 8305 srli a4,a4,0x1
82e: bf49 j 7c0 <SystemCoreClockUpdate+0x20>
830: 4581 li a1,0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:166
if(pllmull == 2) pllmull = 18;
832: 4649 li a2,18
834: bfe1 j 80c <__stack_size+0xc>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:169
Pll_6_5 = 1;
836: 4585 li a1,1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:168
pllmull = 13; /* *6.5 */
838: 4635 li a2,13
83a: bfc9 j 80c <__stack_size+0xc>
83c: 4581 li a1,0
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:171
if(pllmull == 16) pllmull = 15;
83e: 463d li a2,15
840: b7f1 j 80c <__stack_size+0xc>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:178
else SystemCoreClock = (HSI_VALUE >> 1) * pllmull;
842: 003d1737 lui a4,0x3d1
846: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3c7a6c>
84a: bfe1 j 822 <__stack_size+0x22>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:194
if(RCC->CFGR2 & (1<<16)){ /* PLL2 */
84c: 40021537 lui a0,0x40021
850: 5558 lw a4,44(a0)
852: 00f71693 slli a3,a4,0xf
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:195
SystemCoreClock = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */
856: 5558 lw a4,44(a0)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:194
if(RCC->CFGR2 & (1<<16)){ /* PLL2 */
858: 0406df63 bgez a3,8b6 <__stack_size+0xb6>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:195
SystemCoreClock = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */
85c: 8311 srli a4,a4,0x4
85e: 8b3d andi a4,a4,15
860: 00170693 addi a3,a4,1
864: 007a1737 lui a4,0x7a1
868: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
86c: 02d75733 divu a4,a4,a3
870: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:197
Pll2mull = (uint8_t)((RCC->CFGR2 & 0xF00)>>8);
872: 5554 lw a3,44(a0)
874: 82a1 srli a3,a3,0x8
876: 8abd andi a3,a3,15
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:199
if(Pll2mull == 0) SystemCoreClock = (SystemCoreClock * 5)>>1;
878: e28d bnez a3,89a <__stack_size+0x9a>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:199 (discriminator 1)
87a: 4695 li a3,5
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:200 (discriminator 1)
else if(Pll2mull == 1) SystemCoreClock = (SystemCoreClock * 25)>>1;
87c: 02d70733 mul a4,a4,a3
880: 8305 srli a4,a4,0x1
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:202
else SystemCoreClock = SystemCoreClock * (Pll2mull + 2);
882: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:204
SystemCoreClock = SystemCoreClock/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */
884: 40021737 lui a4,0x40021
888: 5758 lw a4,44(a4)
88a: 4394 lw a3,0(a5)
88c: 8b3d andi a4,a4,15
88e: 0705 addi a4,a4,1
890: 02e6d733 divu a4,a3,a4
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:207
SystemCoreClock = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */
894: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:210
SystemCoreClock = SystemCoreClock * pllmull;
896: 4398 lw a4,0(a5)
898: b769 j 822 <__stack_size+0x22>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:200
else if(Pll2mull == 1) SystemCoreClock = (SystemCoreClock * 25)>>1;
89a: 4505 li a0,1
89c: 00a69463 bne a3,a0,8a4 <__stack_size+0xa4>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:200 (discriminator 1)
8a0: 46e5 li a3,25
8a2: bfe9 j 87c <__stack_size+0x7c>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:201
else if(Pll2mull == 15) SystemCoreClock = SystemCoreClock * 20;
8a4: 453d li a0,15
8a6: 00a69663 bne a3,a0,8b2 <__stack_size+0xb2>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:201 (discriminator 1)
8aa: 46d1 li a3,20
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:202
else SystemCoreClock = SystemCoreClock * (Pll2mull + 2);
8ac: 02e68733 mul a4,a3,a4
8b0: bfc9 j 882 <__stack_size+0x82>
8b2: 0689 addi a3,a3,2
8b4: bfe5 j 8ac <__stack_size+0xac>
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\ETH\TCPClient\obj/../User/system_ch32v30x.c:207
SystemCoreClock = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */
8b6: 8b3d andi a4,a4,15
8b8: 00170693 addi a3,a4,1 # 40021001 <_eusrstack+0x20001001>
8bc: 007a1737 lui a4,0x7a1
8c0: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
8c4: 02d75733 divu a4,a4,a3
8c8: b7f1 j 894 <__stack_size+0x94>
000008ca <ADC1_2_IRQHandler>:
EXTI2_IRQHandler():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:321
DMA2_Channel8_IRQHandler:
DMA2_Channel9_IRQHandler:
DMA2_Channel10_IRQHandler:
DMA2_Channel11_IRQHandler:
1:
j 1b
8ca: a001 j 8ca <ADC1_2_IRQHandler>
000008cc <handle_reset>:
handle_reset():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:329
.weak handle_reset
.align 1
handle_reset:
.option push
.option norelax
la gp, __global_pointer$
8cc: 20000197 auipc gp,0x20000
8d0: f5418193 addi gp,gp,-172 # 20000820 <__global_pointer$>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:332
.option pop
la sp, _eusrstack
8d4: 2001f117 auipc sp,0x2001f
8d8: 72c10113 addi sp,sp,1836 # 20020000 <_eusrstack>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:335
/* Load data section from flash to RAM */
la a0, _data_lma
8dc: 00008517 auipc a0,0x8
8e0: 5b850513 addi a0,a0,1464 # 8e94 <_data_lma>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:336
la a1, _data_vma
8e4: 1ffff597 auipc a1,0x1ffff
8e8: 71c58593 addi a1,a1,1820 # 20000000 <_data_vma>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:337
la a2, _edata
8ec: 85818613 addi a2,gp,-1960 # 20000078 <_edata>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:338
bgeu a1, a2, 2f
8f0: 00c5fa63 bgeu a1,a2,904 <handle_reset+0x38>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:340
1:
lw t0, (a0)
8f4: 00052283 lw t0,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:341
sw t0, (a1)
8f8: 0055a023 sw t0,0(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:342
addi a0, a0, 4
8fc: 0511 addi a0,a0,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:343
addi a1, a1, 4
8fe: 0591 addi a1,a1,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:344
bltu a1, a2, 1b
900: fec5eae3 bltu a1,a2,8f4 <handle_reset+0x28>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:347
2:
/* Clear bss section */
la a0, _sbss
904: 85818513 addi a0,gp,-1960 # 20000078 <_edata>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:348
la a1, _ebss
908: 20007597 auipc a1,0x20007
90c: fcc58593 addi a1,a1,-52 # 200078d4 <_ebss>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:349
bgeu a0, a1, 2f
910: 00b57763 bgeu a0,a1,91e <handle_reset+0x52>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:351
1:
sw zero, (a0)
914: 00052023 sw zero,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:352
addi a0, a0, 4
918: 0511 addi a0,a0,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:353
bltu a0, a1, 1b
91a: feb56de3 bltu a0,a1,914 <handle_reset+0x48>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:356
2:
/* Configure pipelining and instruction prediction */
li t0, 0x1f
91e: 42fd li t0,31
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:357
csrw 0xbc0, t0
920: bc029073 csrw 0xbc0,t0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:359
/* Enable interrupt nesting and hardware stack */
li t0, 0x0b
924: 42ad li t0,11
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:360
csrw 0x804, t0
926: 80429073 csrw 0x804,t0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:362
/* Enable floating point and global interrupt, configure privileged mode */
li t0, 0x6088
92a: 000062b7 lui t0,0x6
92e: 08828293 addi t0,t0,136 # 6088 <tcp_receive+0x4be>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:363
csrw mstatus, t0
932: 30029073 csrw mstatus,t0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:365
/* Configure the interrupt vector table recognition mode and entry address mode */
la t0, _vector_base
936: fffff297 auipc t0,0xfffff
93a: 6ce28293 addi t0,t0,1742 # 4 <_einit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:366
ori t0, t0, 3
93e: 0032e293 ori t0,t0,3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:367
csrw mtvec, t0
942: 30529073 csrw mtvec,t0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:369
jal SystemInit
946: d63ff0ef jal ra,6a8 <SystemInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:370
la t0, main
94a: 00000297 auipc t0,0x0
94e: c7c28293 addi t0,t0,-900 # 5c6 <main>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:371
csrw mepc, t0
952: 34129073 csrw mepc,t0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S:372
mret
956: 30200073 mret
0000095a <DBGMCU_GetCHIPID>:
DBGMCU_GetCHIPID():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dbgmcu.c:128
* CH32V317TCU6-0x3175B5X8
*/
uint32_t DBGMCU_GetCHIPID( void )
{
return( *( uint32_t * )0x1FFFF704 );
}
95a: 1ffff7b7 lui a5,0x1ffff
95e: 7047a503 lw a0,1796(a5) # 1ffff704 <_data_lma+0x1fff6870>
962: 8082 ret
00000964 <DVP_INTCfg>:
DVP_INTCfg():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:35
*/
void DVP_INTCfg(uint8_t s, uint8_t i)
{
if(s)
{
DVP->IER |= i;
964: 500507b7 lui a5,0x50050
968: 23b8 lbu a4,2(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:33
if(s)
96a: c501 beqz a0,972 <DVP_INTCfg+0xe>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:35
DVP->IER |= i;
96c: 8dd9 or a1,a1,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:39
}
else
{
DVP->IER &= ~i;
96e: a3ac sb a1,2(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:41
}
}
970: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:39
DVP->IER &= ~i;
972: fff5c593 not a1,a1
976: 8df9 and a1,a1,a4
978: bfdd j 96e <DVP_INTCfg+0xa>
0000097a <DVP_Mode>:
DVP_Mode():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:60
*
* @return none
*/
void DVP_Mode(uint8_t s, DVP_Data_ModeTypeDef i)
{
DVP->CR0 &= ~RB_DVP_MSK_DAT_MOD;
97a: 500507b7 lui a5,0x50050
97e: 2398 lbu a4,0(a5)
980: 0cf77713 andi a4,a4,207
984: a398 sb a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:64
if(s)
{
DVP->CR0 |= s;
986: 2398 lbu a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:62
if(s)
988: c919 beqz a0,99e <DVP_Mode+0x24>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:64
DVP->CR0 |= s;
98a: 8d59 or a0,a0,a4
98c: a388 sb a0,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:73
DVP->CR0 &= ~(3 << 4);
}
if(i)
{
DVP->CR0 |= RB_DVP_JPEG;
98e: 50050737 lui a4,0x50050
992: 231c lbu a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:71
if(i)
994: c989 beqz a1,9a6 <DVP_Mode+0x2c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:73
DVP->CR0 |= RB_DVP_JPEG;
996: 0407e793 ori a5,a5,64
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:77
}
else
{
DVP->CR0 &= ~RB_DVP_JPEG;
99a: a31c sb a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:79
}
}
99c: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:68
DVP->CR0 &= ~(3 << 4);
99e: 0cf77713 andi a4,a4,207
9a2: a398 sb a4,0(a5)
9a4: b7ed j 98e <DVP_Mode+0x14>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:77
DVP->CR0 &= ~RB_DVP_JPEG;
9a6: 0bf7f793 andi a5,a5,191
9aa: bfc5 j 99a <DVP_Mode+0x20>
000009ac <DVP_Cfg>:
DVP_Cfg():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:100
*
* @return none
*/
void DVP_Cfg(DVP_DMATypeDef s, DVP_FLAG_FIFO_RESETTypeDef i, DVP_RX_RESETTypeDef j)
{
switch(s)
9ac: cd1d beqz a0,9ea <DVP_Cfg+0x3e>
9ae: 4785 li a5,1
9b0: 00f51863 bne a0,a5,9c0 <DVP_Cfg+0x14>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:103
{
case DVP_DMA_Enable:
DVP->CR1 |= RB_DVP_DMA_EN;
9b4: 50050737 lui a4,0x50050
9b8: 331c lbu a5,1(a4)
9ba: 0017e793 ori a5,a5,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:106
break;
case DVP_DMA_Disable:
DVP->CR1 &= ~RB_DVP_DMA_EN;
9be: b31c sb a5,1(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:112
break;
default:
break;
}
switch(i)
9c0: c99d beqz a1,9f6 <DVP_Cfg+0x4a>
9c2: 4785 li a5,1
9c4: 00f59863 bne a1,a5,9d4 <DVP_Cfg+0x28>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:115
{
case DVP_RX_RESET_Enable:
DVP->CR1 |= RB_DVP_ALL_CLR;
9c8: 50050737 lui a4,0x50050
9cc: 331c lbu a5,1(a4)
9ce: 0027e793 ori a5,a5,2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:118
break;
case DVP_RX_RESET_Disable:
DVP->CR1 &= ~RB_DVP_ALL_CLR;
9d2: b31c sb a5,1(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:124
break;
default:
break;
}
switch(j)
9d4: c61d beqz a2,a02 <DVP_Cfg+0x56>
9d6: 4785 li a5,1
9d8: 00f61863 bne a2,a5,9e8 <DVP_Cfg+0x3c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:127
{
case DVP_RX_RESET_Enable:
DVP->CR1 |= RB_DVP_RCV_CLR;
9dc: 50050737 lui a4,0x50050
9e0: 331c lbu a5,1(a4)
9e2: 0047e793 ori a5,a5,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:130
break;
case DVP_RX_RESET_Disable:
DVP->CR1 &= ~RB_DVP_RCV_CLR;
9e6: b31c sb a5,1(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:135
break;
default:
break;
}
}
9e8: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:106
DVP->CR1 &= ~RB_DVP_DMA_EN;
9ea: 50050737 lui a4,0x50050
9ee: 331c lbu a5,1(a4)
9f0: 0fe7f793 andi a5,a5,254
9f4: b7e9 j 9be <DVP_Cfg+0x12>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:118
DVP->CR1 &= ~RB_DVP_ALL_CLR;
9f6: 50050737 lui a4,0x50050
9fa: 331c lbu a5,1(a4)
9fc: 0fd7f793 andi a5,a5,253
a00: bfc9 j 9d2 <DVP_Cfg+0x26>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_dvp.c:130
DVP->CR1 &= ~RB_DVP_RCV_CLR;
a02: 50050737 lui a4,0x50050
a06: 331c lbu a5,1(a4)
a08: 0fb7f793 andi a5,a5,251
a0c: bfe9 j 9e6 <DVP_Cfg+0x3a>
00000a0e <ETH_DeInit>:
ETH_DeInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:29
*
* @return none
*/
#ifdef CH32V30x_D8C
void ETH_DeInit(void)
{
a0e: fe2ff2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:30
RCC_AHBPeriphResetCmd(RCC_AHBPeriph_ETH_MAC, ENABLE);
a12: 4585 li a1,1
a14: 6511 lui a0,0x4
a16: 2319 jal f1c <RCC_AHBPeriphResetCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:31
RCC_AHBPeriphResetCmd(RCC_AHBPeriph_ETH_MAC, DISABLE);
a18: 4581 li a1,0
a1a: 6511 lui a0,0x4
a1c: 2301 jal f1c <RCC_AHBPeriphResetCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:32
}
a1e: ff6ff06f j 214 <__riscv_restore_0>
00000a22 <ETH_ReadPHYRegister>:
ETH_ReadPHYRegister():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:292
*
* @return ETH_ERROR - in case of timeout.
* MAC MIIDR register value - Data read from the selected PHY register.
*/
uint16_t ETH_ReadPHYRegister(uint16_t PHYAddress, uint16_t PHYReg)
{
a22: 1141 addi sp,sp,-16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:294
uint32_t tmpreg = 0;
__IO uint32_t timeout = 0;
a24: c602 sw zero,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:296
tmpreg = ETH->MACMIIAR;
a26: 400286b7 lui a3,0x40028
a2a: 4a9c lw a5,16(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:298
tmpreg &= ~MACMIIAR_CR_MASK;
tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA);
a2c: 6741 lui a4,0x10
a2e: 052e slli a0,a0,0xb
a30: 177d addi a4,a4,-1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:297
tmpreg &= ~MACMIIAR_CR_MASK;
a32: 8bf1 andi a5,a5,28
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:298
tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA);
a34: 8d79 and a0,a0,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:299
tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR);
a36: 059a slli a1,a1,0x6
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:298
tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA);
a38: 8d5d or a0,a0,a5
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:299
tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR);
a3a: 7c05f593 andi a1,a1,1984
a3e: 8dc9 or a1,a1,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:301
tmpreg &= ~ETH_MACMIIAR_MW;
tmpreg |= ETH_MACMIIAR_MB;
a40: 0015e593 ori a1,a1,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:308
do
{
timeout++;
tmpreg = ETH->MACMIIAR;
} while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO));
a44: 005007b7 lui a5,0x500
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:302
ETH->MACMIIAR = tmpreg;
a48: ca8c sw a1,16(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:308
} while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO));
a4a: 17f9 addi a5,a5,-2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:306 (discriminator 2)
timeout++;
a4c: 4732 lw a4,12(sp)
a4e: 0705 addi a4,a4,1
a50: c63a sw a4,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:307 (discriminator 2)
tmpreg = ETH->MACMIIAR;
a52: 4a98 lw a4,16(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:308 (discriminator 2)
} while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO));
a54: 8b05 andi a4,a4,1
a56: c701 beqz a4,a5e <ETH_ReadPHYRegister+0x3c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:308 (discriminator 1)
a58: 4732 lw a4,12(sp)
a5a: fee7f9e3 bgeu a5,a4,a4c <ETH_ReadPHYRegister+0x2a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:310
if(timeout == PHY_READ_TO)
a5e: 4732 lw a4,12(sp)
a60: 005007b7 lui a5,0x500
a64: 17fd addi a5,a5,-1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:312
{
return (uint16_t)ETH_ERROR;
a66: 4501 li a0,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:310
if(timeout == PHY_READ_TO)
a68: 00f70763 beq a4,a5,a76 <ETH_ReadPHYRegister+0x54>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:315
}
return (uint16_t)(ETH->MACMIIDR);
a6c: 400287b7 lui a5,0x40028
a70: 4bc8 lw a0,20(a5)
a72: 0542 slli a0,a0,0x10
a74: 8141 srli a0,a0,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:316
}
a76: 0141 addi sp,sp,16
a78: 8082 ret
00000a7a <ETH_WritePHYRegister>:
ETH_WritePHYRegister():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:331
*
* @return ETH_ERROR - in case of timeout.
* ETH_SUCCESS - for correct write
*/
uint32_t ETH_WritePHYRegister(uint16_t PHYAddress, uint16_t PHYReg, uint16_t PHYValue)
{
a7a: 1141 addi sp,sp,-16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:335
uint32_t tmpreg = 0;
__IO uint32_t timeout = 0;
tmpreg = ETH->MACMIIAR;
a7c: 400287b7 lui a5,0x40028
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:333
__IO uint32_t timeout = 0;
a80: c602 sw zero,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:335
tmpreg = ETH->MACMIIAR;
a82: 4b98 lw a4,16(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:337
tmpreg &= ~MACMIIAR_CR_MASK;
tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA);
a84: 66c1 lui a3,0x10
a86: 16fd addi a3,a3,-1
a88: 052e slli a0,a0,0xb
a8a: 8d75 and a0,a0,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:336
tmpreg &= ~MACMIIAR_CR_MASK;
a8c: 8b71 andi a4,a4,28
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:338
tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR);
a8e: 059a slli a1,a1,0x6
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:337
tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA);
a90: 8d59 or a0,a0,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:338
tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR);
a92: 7c05f593 andi a1,a1,1984
a96: 8dc9 or a1,a1,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:341
tmpreg |= ETH_MACMIIAR_MW;
tmpreg |= ETH_MACMIIAR_MB;
ETH->MACMIIDR = PHYValue;
a98: cbd0 sw a2,20(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:340
tmpreg |= ETH_MACMIIAR_MB;
a9a: 0035e593 ori a1,a1,3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:342
ETH->MACMIIAR = tmpreg;
a9e: cb8c sw a1,16(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:348
do
{
timeout++;
tmpreg = ETH->MACMIIAR;
} while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO));
aa0: 000507b7 lui a5,0x50
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:347
tmpreg = ETH->MACMIIAR;
aa4: 400286b7 lui a3,0x40028
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:348
} while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO));
aa8: 17f9 addi a5,a5,-2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:346 (discriminator 2)
timeout++;
aaa: 4732 lw a4,12(sp)
aac: 0705 addi a4,a4,1
aae: c63a sw a4,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:347 (discriminator 2)
tmpreg = ETH->MACMIIAR;
ab0: 4a98 lw a4,16(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:348 (discriminator 2)
} while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO));
ab2: 8b05 andi a4,a4,1
ab4: c701 beqz a4,abc <ETH_WritePHYRegister+0x42>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:348 (discriminator 1)
ab6: 4732 lw a4,12(sp)
ab8: fee7f9e3 bgeu a5,a4,aaa <ETH_WritePHYRegister+0x30>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:350
if(timeout >= PHY_WRITE_TO)
abc: 4532 lw a0,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:356
{
return ETH_ERROR;
}
return ETH_SUCCESS;
}
abe: 000507b7 lui a5,0x50
ac2: 17fd addi a5,a5,-1
ac4: 00f53533 sltu a0,a0,a5
ac8: 0141 addi sp,sp,16
aca: 8082 ret
00000acc <ETH_MACTransmissionCmd>:
ETH_MACTransmissionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:407
*/
void ETH_MACTransmissionCmd(FunctionalState NewState)
{
if(NewState != DISABLE)
{
ETH->MACCR |= ETH_MACCR_TE;
acc: 40028737 lui a4,0x40028
ad0: 431c lw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:405
if(NewState != DISABLE)
ad2: c509 beqz a0,adc <ETH_MACTransmissionCmd+0x10>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:407
ETH->MACCR |= ETH_MACCR_TE;
ad4: 0087e793 ori a5,a5,8
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:411
}
else
{
ETH->MACCR &= ~ETH_MACCR_TE;
ad8: c31c sw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:413
}
}
ada: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:411
ETH->MACCR &= ~ETH_MACCR_TE;
adc: 9bdd andi a5,a5,-9
ade: bfed j ad8 <ETH_MACTransmissionCmd+0xc>
00000ae0 <ETH_MACReceptionCmd>:
ETH_MACReceptionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:428
*/
void ETH_MACReceptionCmd(FunctionalState NewState)
{
if(NewState != DISABLE)
{
ETH->MACCR |= ETH_MACCR_RE;
ae0: 40028737 lui a4,0x40028
ae4: 431c lw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:426
if(NewState != DISABLE)
ae6: c509 beqz a0,af0 <ETH_MACReceptionCmd+0x10>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:428
ETH->MACCR |= ETH_MACCR_RE;
ae8: 0047e793 ori a5,a5,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:432
}
else
{
ETH->MACCR &= ~ETH_MACCR_RE;
aec: c31c sw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:434
}
}
aee: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:432
ETH->MACCR &= ~ETH_MACCR_RE;
af0: 9bed andi a5,a5,-5
af2: bfed j aec <ETH_MACReceptionCmd+0xc>
00000af4 <ETH_DMATxDescChainInit>:
ETH_DMATxDescChainInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:712
void ETH_DMATxDescChainInit(ETH_DMADESCTypeDef *DMATxDescTab, uint8_t *TxBuff, uint32_t TxBuffCount)
{
uint32_t i = 0;
ETH_DMADESCTypeDef *DMATxDesc;
DMATxDescToSet = DMATxDescTab;
af4: 86a1a623 sw a0,-1940(gp) # 2000008c <DMATxDescToSet>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:714
for(i = 0; i < TxBuffCount; i++)
af8: 872a mv a4,a0
afa: 4781 li a5,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:717
{
DMATxDesc = DMATxDescTab + i;
DMATxDesc->Status = ETH_DMATxDesc_TCH | ETH_DMATxDesc_IC;
afc: 401008b7 lui a7,0x40100
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:718
DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i * ETH_MAX_PACKET_SIZE]);
b00: 5f400313 li t1,1524
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:720
if(i < (TxBuffCount - 1))
b04: fff60e13 addi t3,a2,-1 # ffff <_data_lma+0x716b>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:714 (discriminator 1)
for(i = 0; i < TxBuffCount; i++)
b08: 00c79663 bne a5,a2,b14 <ETH_DMATxDescChainInit+0x20>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:730
{
DMATxDesc->Buffer2NextDescAddr = (uint32_t)DMATxDescTab;
}
}
ETH->DMATDLAR = (uint32_t)DMATxDescTab;
b0c: 400297b7 lui a5,0x40029
b10: cb88 sw a0,16(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:731
}
b12: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:718
DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i * ETH_MAX_PACKET_SIZE]);
b14: 026786b3 mul a3,a5,t1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:717
DMATxDesc->Status = ETH_DMATxDesc_TCH | ETH_DMATxDesc_IC;
b18: 01172023 sw a7,0(a4) # 40028000 <_eusrstack+0x20008000>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:718
DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i * ETH_MAX_PACKET_SIZE]);
b1c: 882a mv a6,a0
b1e: 96ae add a3,a3,a1
b20: c714 sw a3,8(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:720
if(i < (TxBuffCount - 1))
b22: 01070693 addi a3,a4,16
b26: 01c7f363 bgeu a5,t3,b2c <ETH_DMATxDescChainInit+0x38>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:722
DMATxDesc->Buffer2NextDescAddr = (uint32_t)(DMATxDescTab + i + 1);
b2a: 8836 mv a6,a3
b2c: 01072623 sw a6,12(a4)
b30: 0785 addi a5,a5,1
b32: 8736 mv a4,a3
b34: bfd1 j b08 <ETH_DMATxDescChainInit+0x14>
00000b36 <ETH_DMARxDescChainInit>:
ETH_DMARxDescChainInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1046
for(i = 0; i < RxBuffCount; i++)
{
DMARxDesc = DMARxDescTab + i;
DMARxDesc->Status = ETH_DMARxDesc_OWN;
DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_MAX_PACKET_SIZE;
b36: 6691 lui a3,0x4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1040
DMARxDescToGet = DMARxDescTab;
b38: 86a1a423 sw a0,-1944(gp) # 20000088 <DMARxDescToGet>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1042
for(i = 0; i < RxBuffCount; i++)
b3c: 4701 li a4,0
b3e: 87aa mv a5,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1045
DMARxDesc->Status = ETH_DMARxDesc_OWN;
b40: 80000337 lui t1,0x80000
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1046
DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_MAX_PACKET_SIZE;
b44: 5f468693 addi a3,a3,1524 # 45f4 <dhcp_arp_reply+0x7e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1047
DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i * ETH_MAX_PACKET_SIZE]);
b48: 5f400e13 li t3,1524
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1049
if(i < (RxBuffCount - 1))
b4c: fff60e93 addi t4,a2,-1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1042 (discriminator 1)
for(i = 0; i < RxBuffCount; i++)
b50: 00c71663 bne a4,a2,b5c <ETH_DMARxDescChainInit+0x26>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1059
{
DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab);
}
}
ETH->DMARDLAR = (uint32_t)DMARxDescTab;
b54: 400297b7 lui a5,0x40029
b58: c7c8 sw a0,12(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1060
}
b5a: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1047
DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i * ETH_MAX_PACKET_SIZE]);
b5c: 03c70833 mul a6,a4,t3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1045
DMARxDesc->Status = ETH_DMARxDesc_OWN;
b60: 0067a023 sw t1,0(a5) # 40029000 <_eusrstack+0x20009000>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1046
DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_MAX_PACKET_SIZE;
b64: c3d4 sw a3,4(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1047
DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i * ETH_MAX_PACKET_SIZE]);
b66: 88aa mv a7,a0
b68: 982e add a6,a6,a1
b6a: 0107a423 sw a6,8(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1049
if(i < (RxBuffCount - 1))
b6e: 01078813 addi a6,a5,16
b72: 01d77363 bgeu a4,t4,b78 <ETH_DMARxDescChainInit+0x42>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1051
DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab + i + 1);
b76: 88c2 mv a7,a6
b78: 0117a623 sw a7,12(a5)
b7c: 0705 addi a4,a4,1
b7e: 87c2 mv a5,a6
b80: bfc1 j b50 <ETH_DMARxDescChainInit+0x1a>
00000b82 <ETH_SoftwareReset>:
ETH_SoftwareReset():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1269
*
* @return none
*/
void ETH_SoftwareReset(void)
{
ETH->DMABMR |= ETH_DMABMR_SR;
b82: 40029737 lui a4,0x40029
b86: 431c lw a5,0(a4)
b88: 0017e793 ori a5,a5,1
b8c: c31c sw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1270
}
b8e: 8082 ret
00000b90 <ETH_DMAClearITPendingBit>:
ETH_DMAClearITPendingBit():
b90: 400297b7 lui a5,0x40029
b94: cbc8 sw a0,20(a5)
b96: 8082 ret
00000b98 <ETH_FlushTransmitFIFO>:
ETH_FlushTransmitFIFO():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1507
*
* @return none
*/
void ETH_FlushTransmitFIFO(void)
{
ETH->DMAOMR |= ETH_DMAOMR_FTF;
b98: 40029737 lui a4,0x40029
b9c: 4f1c lw a5,24(a4)
b9e: 001006b7 lui a3,0x100
ba2: 8fd5 or a5,a5,a3
ba4: cf1c sw a5,24(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1508
}
ba6: 8082 ret
00000ba8 <ETH_Start>:
ETH_Start():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:107
{
ba8: e48ff2ef jal t0,1f0 <__riscv_save_0>
ETH_MACTransmissionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:407
ETH->MACCR |= ETH_MACCR_TE;
bac: 40028437 lui s0,0x40028
bb0: 401c lw a5,0(s0)
bb2: 0087e793 ori a5,a5,8
bb6: c01c sw a5,0(s0)
ETH_Start():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:109
ETH_FlushTransmitFIFO();
bb8: 37c5 jal b98 <ETH_FlushTransmitFIFO>
ETH_MACReceptionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:428
ETH->MACCR |= ETH_MACCR_RE;
bba: 401c lw a5,0(s0)
ETH_DMATransmissionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1544
*/
void ETH_DMATransmissionCmd(FunctionalState NewState)
{
if(NewState != DISABLE)
{
ETH->DMAOMR |= ETH_DMAOMR_ST;
bbc: 6689 lui a3,0x2
ETH_MACReceptionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:428
ETH->MACCR |= ETH_MACCR_RE;
bbe: 0047e793 ori a5,a5,4
bc2: c01c sw a5,0(s0)
ETH_DMATransmissionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1544
ETH->DMAOMR |= ETH_DMAOMR_ST;
bc4: 400297b7 lui a5,0x40029
bc8: 4f98 lw a4,24(a5)
bca: 8f55 or a4,a4,a3
bcc: cf98 sw a4,24(a5)
ETH_DMAReceptionCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1565
*/
void ETH_DMAReceptionCmd(FunctionalState NewState)
{
if(NewState != DISABLE)
{
ETH->DMAOMR |= ETH_DMAOMR_SR;
bce: 4f98 lw a4,24(a5)
bd0: 00276713 ori a4,a4,2
bd4: cf98 sw a4,24(a5)
ETH_Start():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:113
}
bd6: e3eff06f j 214 <__riscv_restore_0>
00000bda <ETH_DMAITConfig>:
ETH_DMAITConfig():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1602
*
* @return new state of the specified ETHERNET DMA interrupts.
*/
void ETH_DMAITConfig(uint32_t ETH_DMA_IT, FunctionalState NewState)
{
if(NewState != DISABLE)
bda: c599 beqz a1,be8 <ETH_DMAITConfig+0xe>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1604
{
ETH->DMAIER |= ETH_DMA_IT;
bdc: 40029737 lui a4,0x40029
be0: 4f5c lw a5,28(a4)
be2: 8d5d or a0,a0,a5
be4: cf48 sw a0,28(a4)
be6: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1608
}
else
{
ETH->DMAIER &= (~(uint32_t)ETH_DMA_IT);
be8: 400297b7 lui a5,0x40029
bec: 4fd8 lw a4,28(a5)
bee: fff54513 not a0,a0
bf2: 8d79 and a0,a0,a4
bf4: cfc8 sw a0,28(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:1610
}
}
bf6: 8082 ret
00000bf8 <RGMII_TXC_Delay>:
RGMII_TXC_Delay():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2513
*/
void RGMII_TXC_Delay(uint8_t clock_polarity, uint8_t delay_time)
{
if(clock_polarity)
{
ETH->MACCR |= (uint32_t)(1 << 1);
bf8: 40028737 lui a4,0x40028
bfc: 431c lw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2511
if(clock_polarity)
bfe: c115 beqz a0,c22 <RGMII_TXC_Delay+0x2a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2513
ETH->MACCR |= (uint32_t)(1 << 1);
c00: 0027e793 ori a5,a5,2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2517
}
else
{
ETH->MACCR &= ~(uint32_t)(1 << 1);
c04: c31c sw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2519
}
if(delay_time <= 7)
c06: 479d li a5,7
c08: 00b7ec63 bltu a5,a1,c20 <RGMII_TXC_Delay+0x28>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2521
{
ETH->MACCR &= ~(uint32_t)(7 << 29);
c0c: 40028737 lui a4,0x40028
c10: 431c lw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2522
ETH->MACCR |= (uint32_t)(delay_time << 29);
c12: 05f6 slli a1,a1,0x1d
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2521
ETH->MACCR &= ~(uint32_t)(7 << 29);
c14: 078e slli a5,a5,0x3
c16: 838d srli a5,a5,0x3
c18: c31c sw a5,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2522
ETH->MACCR |= (uint32_t)(delay_time << 29);
c1a: 431c lw a5,0(a4)
c1c: 8ddd or a1,a1,a5
c1e: c30c sw a1,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2524
}
}
c20: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_eth.c:2517
ETH->MACCR &= ~(uint32_t)(1 << 1);
c22: 9bf5 andi a5,a5,-3
c24: b7c5 j c04 <RGMII_TXC_Delay+0xc>
00000c26 <EXTI_ClearITPendingBit>:
EXTI_ClearITPendingBit():
c26: 400107b7 lui a5,0x40010
c2a: 40a7aa23 sw a0,1044(a5) # 40010414 <_eusrstack+0x1fff0414>
c2e: 8082 ret
00000c30 <GPIO_Init>:
GPIO_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:90
void GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)
{
uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00;
uint32_t tmpreg = 0x00, pinmask = 0x00;
currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F);
c30: 459c lw a5,8(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:92
if((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00)
c32: 0107f713 andi a4,a5,16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:90
currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F);
c36: 00f7f813 andi a6,a5,15
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:92
if((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00)
c3a: c701 beqz a4,c42 <GPIO_Init+0x12>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:94
{
currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed;
c3c: 41d8 lw a4,4(a1)
c3e: 00e86833 or a6,a6,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:97
}
if(((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00)
c42: 218e lhu a1,0(a1)
c44: 0ff5f713 andi a4,a1,255
c48: c339 beqz a4,c8e <GPIO_Init+0x5e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:99
{
tmpreg = GPIOx->CFGLR;
c4a: 4118 lw a4,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:101
for(pinpos = 0x00; pinpos < 0x08; pinpos++)
c4c: 4681 li a3,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:103
{
pos = ((uint32_t)0x01) << pinpos;
c4e: 4e85 li t4,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:109
currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
if(currentpin == pos)
{
pos = pinpos << 2;
pinmask = ((uint32_t)0x0F) << pos;
c50: 4f3d li t5,15
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:113
tmpreg &= ~pinmask;
tmpreg |= (currentmode << pos);
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
c52: 02800f93 li t6,40
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:119
{
GPIOx->BCR = (((uint32_t)0x01) << pinpos);
}
else
{
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
c56: 04800293 li t0,72
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:101
for(pinpos = 0x00; pinpos < 0x08; pinpos++)
c5a: 4e21 li t3,8
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:103
pos = ((uint32_t)0x01) << pinpos;
c5c: 00de9633 sll a2,t4,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:104
currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
c60: 00c5f8b3 and a7,a1,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:106
if(currentpin == pos)
c64: 03161163 bne a2,a7,c86 <GPIO_Init+0x56>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:108
pos = pinpos << 2;
c68: 00269893 slli a7,a3,0x2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:109
pinmask = ((uint32_t)0x0F) << pos;
c6c: 011f1333 sll t1,t5,a7
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:110
tmpreg &= ~pinmask;
c70: fff34313 not t1,t1
c74: 00e37733 and a4,t1,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:111
tmpreg |= (currentmode << pos);
c78: 011818b3 sll a7,a6,a7
c7c: 00e8e733 or a4,a7,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:113
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
c80: 05f79f63 bne a5,t6,cde <GPIO_Init+0xae>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:115
GPIOx->BCR = (((uint32_t)0x01) << pinpos);
c84: c950 sw a2,20(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:101 (discriminator 2)
for(pinpos = 0x00; pinpos < 0x08; pinpos++)
c86: 0685 addi a3,a3,1
c88: fdc69ae3 bne a3,t3,c5c <GPIO_Init+0x2c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:126
GPIOx->BSHR = (((uint32_t)0x01) << pinpos);
}
}
}
}
GPIOx->CFGLR = tmpreg;
c8c: c118 sw a4,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:129
}
if(GPIO_InitStruct->GPIO_Pin > 0x00FF)
c8e: 0ff00713 li a4,255
c92: 04b77563 bgeu a4,a1,cdc <GPIO_Init+0xac>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:131
{
tmpreg = GPIOx->CFGHR;
c96: 4154 lw a3,4(a0)
c98: 4621 li a2,8
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:135
for(pinpos = 0x00; pinpos < 0x08; pinpos++)
{
pos = (((uint32_t)0x01) << (pinpos + 0x08));
c9a: 4e85 li t4,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:141
currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos);
if(currentpin == pos)
{
pos = pinpos << 2;
pinmask = ((uint32_t)0x0F) << pos;
c9c: 4f3d li t5,15
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:145
tmpreg &= ~pinmask;
tmpreg |= (currentmode << pos);
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
c9e: 02800f93 li t6,40
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:150
{
GPIOx->BCR = (((uint32_t)0x01) << (pinpos + 0x08));
}
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
ca2: 04800293 li t0,72
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:133
for(pinpos = 0x00; pinpos < 0x08; pinpos++)
ca6: 4e41 li t3,16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:135
pos = (((uint32_t)0x01) << (pinpos + 0x08));
ca8: 00ce98b3 sll a7,t4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:136
currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos);
cac: 0115f733 and a4,a1,a7
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:138
if(currentpin == pos)
cb0: 02e89263 bne a7,a4,cd4 <GPIO_Init+0xa4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:140
pos = pinpos << 2;
cb4: 00261713 slli a4,a2,0x2
cb8: 1701 addi a4,a4,-32
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:141
pinmask = ((uint32_t)0x0F) << pos;
cba: 00ef1333 sll t1,t5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:142
tmpreg &= ~pinmask;
cbe: fff34313 not t1,t1
cc2: 00d376b3 and a3,t1,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:143
tmpreg |= (currentmode << pos);
cc6: 00e81733 sll a4,a6,a4
cca: 8ed9 or a3,a3,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:145
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
ccc: 01f79d63 bne a5,t6,ce6 <GPIO_Init+0xb6>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:147
GPIOx->BCR = (((uint32_t)0x01) << (pinpos + 0x08));
cd0: 01152a23 sw a7,20(a0) # 4014 <ip_reass+0x264>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:150
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
cd4: 0605 addi a2,a2,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:133 (discriminator 2)
for(pinpos = 0x00; pinpos < 0x08; pinpos++)
cd6: fdc619e3 bne a2,t3,ca8 <GPIO_Init+0x78>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:156
{
GPIOx->BSHR = (((uint32_t)0x01) << (pinpos + 0x08));
}
}
}
GPIOx->CFGHR = tmpreg;
cda: c154 sw a3,4(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:158
}
}
cdc: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:119
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
cde: fa5794e3 bne a5,t0,c86 <GPIO_Init+0x56>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:121
GPIOx->BSHR = (((uint32_t)0x01) << pinpos);
ce2: c910 sw a2,16(a0)
ce4: b74d j c86 <GPIO_Init+0x56>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:150
if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
ce6: fe5797e3 bne a5,t0,cd4 <GPIO_Init+0xa4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_gpio.c:152
GPIOx->BSHR = (((uint32_t)0x01) << (pinpos + 0x08));
cea: 01152823 sw a7,16(a0)
cee: b7dd j cd4 <GPIO_Init+0xa4>
00000cf0 <NVIC_Init>:
NVIC_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_misc.c:80
{
NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << 7) | (NVIC_InitStruct->NVIC_IRQChannelSubPriority << 5));
}
}
#elif (INTSYSCR_INEST == INTSYSCR_INEST_EN_4Level)
if(NVIC_Priority_Group == NVIC_PriorityGroup_2)
cf0: 8701a703 lw a4,-1936(gp) # 20000090 <NVIC_Priority_Group>
cf4: 4789 li a5,2
cf6: 2110 lbu a2,0(a0)
cf8: 02f71163 bne a4,a5,d1a <NVIC_Init+0x2a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_misc.c:82
{
if(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority < 4)
cfc: 3114 lbu a3,1(a0)
cfe: 478d li a5,3
d00: 00d7ed63 bltu a5,a3,d1a <NVIC_Init+0x2a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_misc.c:84
{
NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << 6) | (NVIC_InitStruct->NVIC_IRQChannelSubPriority << 5));
d04: 213c lbu a5,2(a0)
d06: 069a slli a3,a3,0x6
NVIC_SetPriority():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:286
NVIC->IPRIOR[(uint32_t)(IRQn)] = priority;
d08: e000e737 lui a4,0xe000e
NVIC_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_misc.c:84
d0c: 0796 slli a5,a5,0x5
d0e: 8fd5 or a5,a5,a3
d10: 0ff7f793 andi a5,a5,255
NVIC_SetPriority():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:286
d14: 9732 add a4,a4,a2
d16: 40f70023 sb a5,1024(a4) # e000e400 <_eusrstack+0xbffee400>
NVIC_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_misc.c:97
NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << 5) );
}
}
#endif
if(NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
d1a: 4154 lw a3,4(a0)
d1c: 4705 li a4,1
d1e: 00565793 srli a5,a2,0x5
d22: 00c71733 sll a4,a4,a2
d26: ca89 beqz a3,d38 <NVIC_Init+0x48>
NVIC_EnableIRQ():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:170
NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
d28: 04078793 addi a5,a5,64
d2c: 078a slli a5,a5,0x2
d2e: e000e6b7 lui a3,0xe000e
d32: 97b6 add a5,a5,a3
d34: c398 sw a4,0(a5)
d36: 8082 ret
NVIC_DisableIRQ():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:184
NVIC->IRER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
d38: 06078793 addi a5,a5,96
d3c: e000e6b7 lui a3,0xe000e
d40: 078a slli a5,a5,0x2
d42: 97b6 add a5,a5,a3
d44: c398 sw a4,0(a5)
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:185
__asm volatile ("fence.i");
d46: 0000100f fence.i
NVIC_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_misc.c:105
}
else
{
NVIC_DisableIRQ(NVIC_InitStruct->NVIC_IRQChannel);
}
}
d4a: 8082 ret
00000d4c <RCC_GetClocksFreq>:
RCC_GetClocksFreq():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:585
#ifdef CH32V30x_D8C
uint8_t Pll2mull = 0;
#endif
tmp = RCC->CFGR0 & CFGR0_SWS_Mask;
d4c: 40021737 lui a4,0x40021
d50: 435c lw a5,4(a4)
d52: 4691 li a3,4
d54: 8bb1 andi a5,a5,12
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:587
switch(tmp)
d56: 00d78563 beq a5,a3,d60 <RCC_GetClocksFreq+0x14>
d5a: 46a1 li a3,8
d5c: 06d78263 beq a5,a3,dc0 <RCC_GetClocksFreq+0x74>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:590
{
case 0x00:
RCC_Clocks->SYSCLK_Frequency = HSI_VALUE;
d60: 007a17b7 lui a5,0x7a1
d64: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79836c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:668
#endif
}
if(Pll_6_5 == 1)
RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency / 2);
d68: c11c sw a5,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:677
default:
RCC_Clocks->SYSCLK_Frequency = HSI_VALUE;
break;
}
tmp = RCC->CFGR0 & CFGR0_HPRE_Set_Mask;
d6a: 40021637 lui a2,0x40021
d6e: 425c lw a5,4(a2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:679
tmp = tmp >> 4;
presc = APBAHBPrescTable[tmp];
d70: 20000737 lui a4,0x20000
d74: 01070713 addi a4,a4,16 # 20000010 <APBAHBPrescTable>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:678
tmp = tmp >> 4;
d78: 8391 srli a5,a5,0x4
d7a: 8bbd andi a5,a5,15
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:679
presc = APBAHBPrescTable[tmp];
d7c: 97ba add a5,a5,a4
d7e: 2394 lbu a3,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:680
RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc;
d80: 411c lw a5,0(a0)
d82: 00d7d7b3 srl a5,a5,a3
d86: c15c sw a5,4(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:681
tmp = RCC->CFGR0 & CFGR0_PPRE1_Set_Mask;
d88: 4254 lw a3,4(a2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:682
tmp = tmp >> 8;
d8a: 82a1 srli a3,a3,0x8
d8c: 8a9d andi a3,a3,7
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:683
presc = APBAHBPrescTable[tmp];
d8e: 96ba add a3,a3,a4
d90: 2294 lbu a3,0(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:684
RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc;
d92: 00d7d6b3 srl a3,a5,a3
d96: c514 sw a3,8(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:685
tmp = RCC->CFGR0 & CFGR0_PPRE2_Set_Mask;
d98: 4254 lw a3,4(a2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:686
tmp = tmp >> 11;
d9a: 82ad srli a3,a3,0xb
d9c: 8a9d andi a3,a3,7
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:687
presc = APBAHBPrescTable[tmp];
d9e: 9736 add a4,a4,a3
da0: 2318 lbu a4,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:688
RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc;
da2: 00e7d7b3 srl a5,a5,a4
da6: c55c sw a5,12(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:689
tmp = RCC->CFGR0 & CFGR0_ADCPRE_Set_Mask;
da8: 4258 lw a4,4(a2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:690
tmp = tmp >> 14;
daa: 8339 srli a4,a4,0xe
dac: 00377693 andi a3,a4,3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:691
presc = ADCPrescTable[tmp];
db0: 81818713 addi a4,gp,-2024 # 20000038 <ADCPrescTable>
db4: 9736 add a4,a4,a3
db6: 2318 lbu a4,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:692
RCC_Clocks->ADCCLK_Frequency = RCC_Clocks->PCLK2_Frequency / presc;
db8: 02e7d7b3 divu a5,a5,a4
dbc: c91c sw a5,16(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:693
}
dbe: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:598
pllmull = RCC->CFGR0 & CFGR0_PLLMull_Mask;
dc0: 435c lw a5,4(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:599
pllsource = RCC->CFGR0 & CFGR0_PLLSRC_Mask;
dc2: 4358 lw a4,4(a4)
dc4: 66c1 lui a3,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:601
pllmull = (pllmull >> 18) + 2;
dc6: 83c9 srli a5,a5,0x12
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:599
pllsource = RCC->CFGR0 & CFGR0_PLLSRC_Mask;
dc8: 8f75 and a4,a4,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:603
if(((*(uint32_t *)0x1FFFF70C) & (1 << 14)) != (1 << 14))
dca: 1ffff6b7 lui a3,0x1ffff
dce: 70c6a683 lw a3,1804(a3) # 1ffff70c <_data_lma+0x1fff6878>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:601
pllmull = (pllmull >> 18) + 2;
dd2: 8bbd andi a5,a5,15
dd4: 0789 addi a5,a5,2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:603
if(((*(uint32_t *)0x1FFFF70C) & (1 << 14)) != (1 << 14))
dd6: 01169613 slli a2,a3,0x11
dda: 00064863 bltz a2,dea <RCC_GetClocksFreq+0x9e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:605
if(pllmull == 17)
dde: 46c5 li a3,17
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:578
uint8_t Pll_6_5 = 0;
de0: 4601 li a2,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:605
if(pllmull == 17)
de2: 02d79263 bne a5,a3,e06 <RCC_GetClocksFreq+0xba>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:606
pllmull = 18;
de6: 47c9 li a5,18
de8: a839 j e06 <RCC_GetClocksFreq+0xba>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:610
if(pllmull == 2)
dea: 4689 li a3,2
dec: 02d78f63 beq a5,a3,e2a <RCC_GetClocksFreq+0xde>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:612
if(pllmull == 15)
df0: 46bd li a3,15
df2: 02d78e63 beq a5,a3,e2e <RCC_GetClocksFreq+0xe2>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:617
if(pllmull == 16)
df6: 46c1 li a3,16
df8: 02d78e63 beq a5,a3,e34 <RCC_GetClocksFreq+0xe8>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:619
if(pllmull == 17)
dfc: 46c5 li a3,17
dfe: 4601 li a2,0
e00: 00d79363 bne a5,a3,e06 <RCC_GetClocksFreq+0xba>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:620
pllmull = 16;
e04: 47c1 li a5,16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:623
if(pllsource == 0x00)
e06: ef1d bnez a4,e44 <RCC_GetClocksFreq+0xf8>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:625
if(EXTEN->EXTEN_CTR & EXTEN_PLL_HSI_PRE)
e08: 40024737 lui a4,0x40024
e0c: 80072703 lw a4,-2048(a4) # 40023800 <_eusrstack+0x20003800>
e10: 8b41 andi a4,a4,16
e12: c705 beqz a4,e3a <RCC_GetClocksFreq+0xee>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:627
RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE)*pllmull;
e14: 007a1737 lui a4,0x7a1
e18: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:662
RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * pllmull;
e1c: 02f707b3 mul a5,a4,a5
e20: c11c sw a5,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:667
if(Pll_6_5 == 1)
e22: d621 beqz a2,d6a <RCC_GetClocksFreq+0x1e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:668
RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency / 2);
e24: 411c lw a5,0(a0)
e26: 8385 srli a5,a5,0x1
e28: b781 j d68 <RCC_GetClocksFreq+0x1c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:578
uint8_t Pll_6_5 = 0;
e2a: 4601 li a2,0
e2c: bf6d j de6 <RCC_GetClocksFreq+0x9a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:615
Pll_6_5 = 1;
e2e: 4605 li a2,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:614
pllmull = 13; /* *6.5 */
e30: 47b5 li a5,13
e32: bfd1 j e06 <RCC_GetClocksFreq+0xba>
e34: 4601 li a2,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:618
pllmull = 15;
e36: 47bd li a5,15
e38: b7f9 j e06 <RCC_GetClocksFreq+0xba>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:631
RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE >> 1) * pllmull;
e3a: 003d1737 lui a4,0x3d1
e3e: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3c7a6c>
e42: bfe9 j e1c <RCC_GetClocksFreq+0xd0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:646
if(RCC->CFGR2 & (1<<16)){ /* PLL2 */
e44: 400215b7 lui a1,0x40021
e48: 55d8 lw a4,44(a1)
e4a: 00f71693 slli a3,a4,0xf
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:647
RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */
e4e: 55d8 lw a4,44(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:646
if(RCC->CFGR2 & (1<<16)){ /* PLL2 */
e50: 0406df63 bgez a3,eae <RCC_GetClocksFreq+0x162>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:647
RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */
e54: 8311 srli a4,a4,0x4
e56: 8b3d andi a4,a4,15
e58: 00170693 addi a3,a4,1
e5c: 007a1737 lui a4,0x7a1
e60: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
e64: 02d75733 divu a4,a4,a3
e68: c118 sw a4,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:649
Pll2mull = (uint8_t)((RCC->CFGR2 & 0xF00)>>8);
e6a: 55d4 lw a3,44(a1)
e6c: 82a1 srli a3,a3,0x8
e6e: 8abd andi a3,a3,15
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:651
if(Pll2mull == 0) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency * 5)>>1;
e70: e28d bnez a3,e92 <RCC_GetClocksFreq+0x146>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:651 (discriminator 1)
e72: 4695 li a3,5
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:652 (discriminator 1)
else if(Pll2mull == 1) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency * 25)>>1;
e74: 02d70733 mul a4,a4,a3
e78: 8305 srli a4,a4,0x1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:654
else RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * (Pll2mull + 2);
e7a: c118 sw a4,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:656
RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */
e7c: 40021737 lui a4,0x40021
e80: 5758 lw a4,44(a4)
e82: 4114 lw a3,0(a0)
e84: 8b3d andi a4,a4,15
e86: 0705 addi a4,a4,1
e88: 02e6d733 divu a4,a3,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:659
RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */
e8c: c118 sw a4,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:662
RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * pllmull;
e8e: 4118 lw a4,0(a0)
e90: b771 j e1c <RCC_GetClocksFreq+0xd0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:652
else if(Pll2mull == 1) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency * 25)>>1;
e92: 4585 li a1,1
e94: 00b69463 bne a3,a1,e9c <RCC_GetClocksFreq+0x150>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:652 (discriminator 1)
e98: 46e5 li a3,25
e9a: bfe9 j e74 <RCC_GetClocksFreq+0x128>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:653
else if(Pll2mull == 15) RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * 20;
e9c: 45bd li a1,15
e9e: 00b69663 bne a3,a1,eaa <RCC_GetClocksFreq+0x15e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:653 (discriminator 1)
ea2: 46d1 li a3,20
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:654
else RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * (Pll2mull + 2);
ea4: 02e68733 mul a4,a3,a4
ea8: bfc9 j e7a <RCC_GetClocksFreq+0x12e>
eaa: 0689 addi a3,a3,2
eac: bfe5 j ea4 <RCC_GetClocksFreq+0x158>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:659
RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */
eae: 8b3d andi a4,a4,15
eb0: 00170693 addi a3,a4,1 # 40021001 <_eusrstack+0x20001001>
eb4: 007a1737 lui a4,0x7a1
eb8: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
ebc: 02d75733 divu a4,a4,a3
ec0: b7f1 j e8c <RCC_GetClocksFreq+0x140>
00000ec2 <RCC_AHBPeriphClockCmd>:
RCC_AHBPeriphClockCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:722
*
* @return none
*/
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)
{
if(NewState != DISABLE)
ec2: c599 beqz a1,ed0 <RCC_AHBPeriphClockCmd+0xe>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:724
{
RCC->AHBPCENR |= RCC_AHBPeriph;
ec4: 40021737 lui a4,0x40021
ec8: 4b5c lw a5,20(a4)
eca: 8d5d or a0,a0,a5
ecc: cb48 sw a0,20(a4)
ece: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:728
}
else
{
RCC->AHBPCENR &= ~RCC_AHBPeriph;
ed0: 400217b7 lui a5,0x40021
ed4: 4bd8 lw a4,20(a5)
ed6: fff54513 not a0,a0
eda: 8d79 and a0,a0,a4
edc: cbc8 sw a0,20(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:730
}
}
ede: 8082 ret
00000ee0 <RCC_APB2PeriphClockCmd>:
RCC_APB2PeriphClockCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:758
*
* @return none
*/
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
{
if(NewState != DISABLE)
ee0: c599 beqz a1,eee <RCC_APB2PeriphClockCmd+0xe>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:760
{
RCC->APB2PCENR |= RCC_APB2Periph;
ee2: 40021737 lui a4,0x40021
ee6: 4f1c lw a5,24(a4)
ee8: 8d5d or a0,a0,a5
eea: cf08 sw a0,24(a4)
eec: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:764
}
else
{
RCC->APB2PCENR &= ~RCC_APB2Periph;
eee: 400217b7 lui a5,0x40021
ef2: 4f98 lw a4,24(a5)
ef4: fff54513 not a0,a0
ef8: 8d79 and a0,a0,a4
efa: cf88 sw a0,24(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:766
}
}
efc: 8082 ret
00000efe <RCC_APB1PeriphClockCmd>:
RCC_APB1PeriphClockCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:803
*
* @return none
*/
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
{
if(NewState != DISABLE)
efe: c599 beqz a1,f0c <RCC_APB1PeriphClockCmd+0xe>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:805
{
RCC->APB1PCENR |= RCC_APB1Periph;
f00: 40021737 lui a4,0x40021
f04: 4f5c lw a5,28(a4)
f06: 8d5d or a0,a0,a5
f08: cf48 sw a0,28(a4)
f0a: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:809
}
else
{
RCC->APB1PCENR &= ~RCC_APB1Periph;
f0c: 400217b7 lui a5,0x40021
f10: 4fd8 lw a4,28(a5)
f12: fff54513 not a0,a0
f16: 8d79 and a0,a0,a4
f18: cfc8 sw a0,28(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:811
}
}
f1a: 8082 ret
00000f1c <RCC_AHBPeriphResetCmd>:
RCC_AHBPeriphResetCmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1295
*
* @return none
*/
void RCC_AHBPeriphResetCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)
{
if(NewState != DISABLE)
f1c: c599 beqz a1,f2a <RCC_AHBPeriphResetCmd+0xe>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1297
{
RCC->AHBRSTR |= RCC_AHBPeriph;
f1e: 40021737 lui a4,0x40021
f22: 571c lw a5,40(a4)
f24: 8d5d or a0,a0,a5
f26: d708 sw a0,40(a4)
f28: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1301
}
else
{
RCC->AHBRSTR &= ~RCC_AHBPeriph;
f2a: 400217b7 lui a5,0x40021
f2e: 5798 lw a4,40(a5)
f30: fff54513 not a0,a0
f34: 8d79 and a0,a0,a4
f36: d788 sw a0,40(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1303
}
}
f38: 8082 ret
00000f3a <RCC_ETH1GCLKConfig>:
RCC_ETH1GCLKConfig():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1357
*
* @return none
*/
void RCC_ETH1GCLKConfig(uint32_t RCC_ETH1GCLKSource)
{
RCC->CFGR2 &= ~(3 << 20);
f3a: 400217b7 lui a5,0x40021
f3e: 57d8 lw a4,44(a5)
f40: ffd006b7 lui a3,0xffd00
f44: 16fd addi a3,a3,-1
f46: 8f75 and a4,a4,a3
f48: d7d8 sw a4,44(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1358
RCC->CFGR2 |= RCC_ETH1GCLKSource << 20;
f4a: 57d8 lw a4,44(a5)
f4c: 0552 slli a0,a0,0x14
f4e: 8d59 or a0,a0,a4
f50: d7c8 sw a0,44(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1359
}
f52: 8082 ret
00000f54 <RCC_ETH1G_125Mcmd>:
RCC_ETH1G_125Mcmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1372
*
* @return none
*/
void RCC_ETH1G_125Mcmd(FunctionalState NewState)
{
if(NewState != DISABLE)
f54: c909 beqz a0,f66 <RCC_ETH1G_125Mcmd+0x12>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1374
{
RCC->CFGR2 |= (1 << 22);
f56: 40021737 lui a4,0x40021
f5a: 575c lw a5,44(a4)
f5c: 004006b7 lui a3,0x400
f60: 8fd5 or a5,a5,a3
f62: d75c sw a5,44(a4)
f64: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1378
}
else
{
RCC->CFGR2 &= ~(1 << 22);
f66: 400216b7 lui a3,0x40021
f6a: 56dc lw a5,44(a3)
f6c: ffc00737 lui a4,0xffc00
f70: 177d addi a4,a4,-1
f72: 8ff9 and a5,a5,a4
f74: d6dc sw a5,44(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_rcc.c:1380
}
}
f76: 8082 ret
00000f78 <TIM_TimeBaseInit>:
TIM_TimeBaseInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:110
*/
void TIM_TimeBaseInit(TIM_TypeDef *TIMx, TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct)
{
uint16_t tmpcr1 = 0;
uint32_t temper1 = 0;
temper1 = ((*( uint32_t * )0x1FFFF704) & 0x000000F0) >> 4;
f78: 1ffff737 lui a4,0x1ffff
f7c: 70472703 lw a4,1796(a4) # 1ffff704 <_data_lma+0x1fff6870>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:111
tmpcr1 = TIMx->CTLR1;
f80: 211e lhu a5,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113
if(((temper1>=4)&&(temper1<=8))&&((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10)))
f82: 4691 li a3,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:110
temper1 = ((*( uint32_t * )0x1FFFF704) & 0x000000F0) >> 4;
f84: 8311 srli a4,a4,0x4
f86: 8b3d andi a4,a4,15
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:111
tmpcr1 = TIMx->CTLR1;
f88: 07c2 slli a5,a5,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113
if(((temper1>=4)&&(temper1<=8))&&((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10)))
f8a: 1771 addi a4,a4,-4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:111
tmpcr1 = TIMx->CTLR1;
f8c: 83c1 srli a5,a5,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113
if(((temper1>=4)&&(temper1<=8))&&((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10)))
f8e: 02e6e663 bltu a3,a4,fba <TIM_TimeBaseInit+0x42>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113 (discriminator 1)
f92: 40013737 lui a4,0x40013
f96: c0070693 addi a3,a4,-1024 # 40012c00 <_eusrstack+0x1fff2c00>
f9a: 00d50e63 beq a0,a3,fb6 <TIM_TimeBaseInit+0x3e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113 (discriminator 2)
f9e: 40070713 addi a4,a4,1024
fa2: 00e50a63 beq a0,a4,fb6 <TIM_TimeBaseInit+0x3e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113 (discriminator 3)
fa6: 40015737 lui a4,0x40015
faa: c0070693 addi a3,a4,-1024 # 40014c00 <_eusrstack+0x1fff4c00>
fae: 00d50463 beq a0,a3,fb6 <TIM_TimeBaseInit+0x3e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:113 (discriminator 4)
fb2: 00e51a63 bne a0,a4,fc6 <TIM_TimeBaseInit+0x4e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:115
{
tmpcr1 |= 1<<13;
fb6: 6709 lui a4,0x2
fb8: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:118
}
if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4) ||
fba: 40013737 lui a4,0x40013
fbe: c0070713 addi a4,a4,-1024 # 40012c00 <_eusrstack+0x1fff2c00>
fc2: 04e50263 beq a0,a4,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:118 (discriminator 1)
fc6: 40000737 lui a4,0x40000
fca: 02e50e63 beq a0,a4,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:118 (discriminator 2)
fce: 40070713 addi a4,a4,1024 # 40000400 <_eusrstack+0x1ffe0400>
fd2: 02e50a63 beq a0,a4,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:118 (discriminator 3)
fd6: 40001737 lui a4,0x40001
fda: 80070693 addi a3,a4,-2048 # 40000800 <_eusrstack+0x1ffe0800>
fde: 02d50463 beq a0,a3,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:118 (discriminator 4)
fe2: c0070713 addi a4,a4,-1024
fe6: 02e50063 beq a0,a4,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:119
(TIMx == TIM5) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10))
fea: 40013737 lui a4,0x40013
fee: 40070713 addi a4,a4,1024 # 40013400 <_eusrstack+0x1fff3400>
ff2: 00e50a63 beq a0,a4,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:119 (discriminator 1)
ff6: 40015737 lui a4,0x40015
ffa: c0070693 addi a3,a4,-1024 # 40014c00 <_eusrstack+0x1fff4c00>
ffe: 00d50463 beq a0,a3,1006 <TIM_TimeBaseInit+0x8e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:119 (discriminator 2)
1002: 00e51863 bne a0,a4,1012 <TIM_TimeBaseInit+0x9a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:121
{
tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_DIR | TIM_CMS)));
1006: f8f7f793 andi a5,a5,-113
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:122
tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode;
100a: 21ba lhu a4,2(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:121
tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_DIR | TIM_CMS)));
100c: 07c2 slli a5,a5,0x10
100e: 83c1 srli a5,a5,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:122
tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode;
1010: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:125
}
if((TIMx != TIM6) && (TIMx != TIM7))
1012: 40001737 lui a4,0x40001
1016: 00e50c63 beq a0,a4,102e <TIM_TimeBaseInit+0xb6>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:125 (discriminator 1)
101a: 40070713 addi a4,a4,1024 # 40001400 <_eusrstack+0x1ffe1400>
101e: 00e50863 beq a0,a4,102e <TIM_TimeBaseInit+0xb6>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:127
{
tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CTLR1_CKD));
1022: cff7f793 andi a5,a5,-769
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:128
tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision;
1026: 21fa lhu a4,6(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:127
tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CTLR1_CKD));
1028: 07c2 slli a5,a5,0x10
102a: 83c1 srli a5,a5,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:128
tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision;
102c: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:131
}
TIMx->CTLR1 = tmpcr1;
102e: a11e sh a5,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:132
TIMx->ATRLR = TIM_TimeBaseInitStruct->TIM_Period;
1030: 21de lhu a5,4(a1)
1032: b55e sh a5,44(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:133
TIMx->PSC = TIM_TimeBaseInitStruct->TIM_Prescaler;
1034: 219e lhu a5,0(a1)
1036: b51e sh a5,40(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:135
if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10))
1038: 400137b7 lui a5,0x40013
103c: c0078713 addi a4,a5,-1024 # 40012c00 <_eusrstack+0x1fff2c00>
1040: 00e50e63 beq a0,a4,105c <TIM_TimeBaseInit+0xe4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:135 (discriminator 1)
1044: 40078793 addi a5,a5,1024
1048: 00f50a63 beq a0,a5,105c <TIM_TimeBaseInit+0xe4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:135 (discriminator 2)
104c: 400157b7 lui a5,0x40015
1050: c0078713 addi a4,a5,-1024 # 40014c00 <_eusrstack+0x1fff4c00>
1054: 00e50463 beq a0,a4,105c <TIM_TimeBaseInit+0xe4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:135 (discriminator 3)
1058: 00f51463 bne a0,a5,1060 <TIM_TimeBaseInit+0xe8>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:137
{
TIMx->RPTCR = TIM_TimeBaseInitStruct->TIM_RepetitionCounter;
105c: 259c lbu a5,8(a1)
105e: b91e sh a5,48(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:140
}
TIMx->SWEVGR = TIM_PSCReloadMode_Immediate;
1060: 4785 li a5,1
1062: a95e sh a5,20(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:141
}
1064: 8082 ret
00001066 <TIM_Cmd>:
TIM_Cmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:522
*/
void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState NewState)
{
if(NewState != DISABLE)
{
TIMx->CTLR1 |= TIM_CEN;
1066: 211e lhu a5,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:520
if(NewState != DISABLE)
1068: c589 beqz a1,1072 <TIM_Cmd+0xc>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:522
TIMx->CTLR1 |= TIM_CEN;
106a: 0017e793 ori a5,a5,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:526
}
else
{
TIMx->CTLR1 &= (uint16_t)(~((uint16_t)TIM_CEN));
106e: a11e sh a5,0(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:528
}
}
1070: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:526
TIMx->CTLR1 &= (uint16_t)(~((uint16_t)TIM_CEN));
1072: 07c2 slli a5,a5,0x10
1074: 83c1 srli a5,a5,0x10
1076: 9bf9 andi a5,a5,-2
1078: 07c2 slli a5,a5,0x10
107a: 83c1 srli a5,a5,0x10
107c: bfcd j 106e <TIM_Cmd+0x8>
0000107e <TIM_ITConfig>:
TIM_ITConfig():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:576
*/
void TIM_ITConfig(TIM_TypeDef *TIMx, uint16_t TIM_IT, FunctionalState NewState)
{
if(NewState != DISABLE)
{
TIMx->DMAINTENR |= TIM_IT;
107e: 255e lhu a5,12(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:574
if(NewState != DISABLE)
1080: c601 beqz a2,1088 <TIM_ITConfig+0xa>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:576
TIMx->DMAINTENR |= TIM_IT;
1082: 8ddd or a1,a1,a5
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:580
}
else
{
TIMx->DMAINTENR &= (uint16_t)~TIM_IT;
1084: a54e sh a1,12(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:582
}
}
1086: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_tim.c:580
TIMx->DMAINTENR &= (uint16_t)~TIM_IT;
1088: fff5c593 not a1,a1
108c: 8dfd and a1,a1,a5
108e: bfdd j 1084 <TIM_ITConfig+0x6>
00001090 <TIM_ClearITPendingBit>:
TIM_ClearITPendingBit():
1090: fff5c593 not a1,a1
1094: 05c2 slli a1,a1,0x10
1096: 81c1 srli a1,a1,0x10
1098: a90e sh a1,16(a0)
109a: 8082 ret
0000109c <USART_Init>:
USART_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:122
* USART peripheral.
*
* @return none
*/
void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct)
{
109c: 954ff2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:134
if(USART_InitStruct->USART_HardwareFlowControl != USART_HardwareFlowControl_None)
{
}
usartxbase = (uint32_t)USARTx;
tmpreg = USARTx->CTLR2;
10a0: 2916 lhu a3,16(a0)
10a2: 77f5 lui a5,0xffffd
10a4: 17fd addi a5,a5,-1
10a6: 8ff5 and a5,a5,a3
10a8: 21f6 lhu a3,6(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:129
if(USART_InitStruct->USART_HardwareFlowControl != USART_HardwareFlowControl_None)
10aa: 25da lhu a4,12(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:122
{
10ac: 7179 addi sp,sp,-48
10ae: 8fd5 or a5,a5,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:138
tmpreg &= CTLR2_STOP_CLEAR_Mask;
tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits;
USARTx->CTLR2 = (uint16_t)tmpreg;
10b0: a91e sh a5,16(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:139
tmpreg = USARTx->CTLR1;
10b2: 2556 lhu a3,12(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:141
tmpreg &= CTLR1_CLEAR_Mask;
tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity |
10b4: 77fd lui a5,0xfffff
10b6: 9f378793 addi a5,a5,-1549 # ffffe9f3 <_eusrstack+0xdffde9f3>
10ba: 8ff5 and a5,a5,a3
10bc: 21d6 lhu a3,4(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:122
{
10be: 842a mv s0,a0
10c0: c62e sw a1,12(sp)
10c2: 8fd5 or a5,a5,a3
10c4: 2596 lhu a3,8(a1)
10c6: 8fd5 or a5,a5,a3
10c8: 25b6 lhu a3,10(a1)
10ca: 8fd5 or a5,a5,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:143
USART_InitStruct->USART_Mode;
USARTx->CTLR1 = (uint16_t)tmpreg;
10cc: a55e sh a5,12(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:145
tmpreg = USARTx->CTLR3;
10ce: 295e lhu a5,20(a0)
10d0: 07c2 slli a5,a5,0x10
10d2: 83c1 srli a5,a5,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:147
tmpreg &= CTLR3_CLEAR_Mask;
tmpreg |= USART_InitStruct->USART_HardwareFlowControl;
10d4: cff7f793 andi a5,a5,-769
10d8: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:148
USARTx->CTLR3 = (uint16_t)tmpreg;
10da: a95e sh a5,20(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:150
RCC_GetClocksFreq(&RCC_ClocksStatus);
10dc: 0868 addi a0,sp,28
10de: 31bd jal d4c <RCC_GetClocksFreq>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:152
if(usartxbase == USART1_BASE)
10e0: 400147b7 lui a5,0x40014
10e4: 80078793 addi a5,a5,-2048 # 40013800 <_eusrstack+0x1fff3800>
10e8: 45b2 lw a1,12(sp)
10ea: 02f41e63 bne s0,a5,1126 <USART_Init+0x8a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:154
{
apbclock = RCC_ClocksStatus.PCLK2_Frequency;
10ee: 57a2 lw a5,40(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:161
else
{
apbclock = RCC_ClocksStatus.PCLK1_Frequency;
}
integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate)));
10f0: 4765 li a4,25
10f2: 02e787b3 mul a5,a5,a4
10f6: 4198 lw a4,0(a1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:162
tmpreg = (integerdivider / 100) << 4;
10f8: 06400693 li a3,100
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:161
integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate)));
10fc: 070a slli a4,a4,0x2
10fe: 02e7d7b3 divu a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:162
tmpreg = (integerdivider / 100) << 4;
1102: 02d7d733 divu a4,a5,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:164
fractionaldivider = integerdivider - (100 * (tmpreg >> 4));
tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F);
1106: 02d7f7b3 remu a5,a5,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:162
tmpreg = (integerdivider / 100) << 4;
110a: 0712 slli a4,a4,0x4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:164
tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F);
110c: 0792 slli a5,a5,0x4
110e: 03278793 addi a5,a5,50
1112: 02d7d7b3 divu a5,a5,a3
1116: 8bbd andi a5,a5,15
1118: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:165
USARTx->BRR = (uint16_t)tmpreg;
111a: 07c2 slli a5,a5,0x10
111c: 83c1 srli a5,a5,0x10
111e: a41e sh a5,8(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:166
}
1120: 6145 addi sp,sp,48
1122: 8f2ff06f j 214 <__riscv_restore_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:158
apbclock = RCC_ClocksStatus.PCLK1_Frequency;
1126: 5792 lw a5,36(sp)
1128: b7e1 j 10f0 <USART_Init+0x54>
0000112a <USART_Cmd>:
USART_Cmd():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:244
*
* @return none
*/
void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState)
{
if(NewState != DISABLE)
112a: c591 beqz a1,1136 <USART_Cmd+0xc>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:246
{
USARTx->CTLR1 |= CTLR1_UE_Set;
112c: 255e lhu a5,12(a0)
112e: 6709 lui a4,0x2
1130: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:250
}
else
{
USARTx->CTLR1 &= CTLR1_UE_Reset;
1132: a55e sh a5,12(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:252
}
}
1134: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:250
USARTx->CTLR1 &= CTLR1_UE_Reset;
1136: 255a lhu a4,12(a0)
1138: 77f9 lui a5,0xffffe
113a: 17fd addi a5,a5,-1
113c: 8ff9 and a5,a5,a4
113e: bfd5 j 1132 <USART_Cmd+0x8>
00001140 <USART_SendData>:
USART_SendData():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:447
*
* @return none
*/
void USART_SendData(USART_TypeDef *USARTx, uint16_t Data)
{
USARTx->DATAR = (Data & (uint16_t)0x01FF);
1140: 1ff5f593 andi a1,a1,511
1144: a14e sh a1,4(a0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:448
}
1146: 8082 ret
00001148 <USART_GetFlagStatus>:
USART_GetFlagStatus():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:649
*/
FlagStatus USART_GetFlagStatus(USART_TypeDef *USARTx, uint16_t USART_FLAG)
{
FlagStatus bitstatus = RESET;
if((USARTx->STATR & USART_FLAG) != (uint16_t)RESET)
1148: 210a lhu a0,0(a0)
114a: 8d6d and a0,a0,a1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Peripheral/src/ch32v30x_usart.c:658
else
{
bitstatus = RESET;
}
return bitstatus;
}
114c: 00a03533 snez a0,a0
1150: 8082 ret
00001152 <ETH_TxPktChainMode>:
ETH_TxPktChainMode():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:484
* @return Send status.
*/
uint32_t ETH_TxPktChainMode(uint16_t len, uint32_t *pBuff )
{
/* Check if the descriptor is owned by the ETHERNET DMA (when set) or CPU (when reset) */
if((DMATxDescToSet->Status & ETH_DMATxDesc_OWN) != (u32)RESET)
1152: 86c1a783 lw a5,-1940(gp) # 2000008c <DMATxDescToSet>
1156: 4398 lw a4,0(a5)
1158: 02074b63 bltz a4,118e <ETH_TxPktChainMode+0x3c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:497
/* Setting the last segment and first segment bits (in this case a frame is transmitted in one descriptor) */
#if HARDWARE_CHECKSUM_CONFIG
DMATxDescToSet->Status |= ETH_DMATxDesc_LS | ETH_DMATxDesc_FS | ETH_DMATxDesc_CIC_TCPUDPICMP_Full;
#else
DMATxDescToSet->Status |= ETH_DMATxDesc_LS | ETH_DMATxDesc_FS;
115c: 4398 lw a4,0(a5)
115e: 30000637 lui a2,0x30000
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:490
DMATxDescToSet->ControlBufferSize = (len & ETH_DMATxDesc_TBS1);
1162: 054e slli a0,a0,0x13
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:497
DMATxDescToSet->Status |= ETH_DMATxDesc_LS | ETH_DMATxDesc_FS;
1164: 8f51 or a4,a4,a2
1166: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:501
#endif
/* Set Own bit of the Tx descriptor Status: gives the buffer back to ETHERNET DMA */
DMATxDescToSet->Status |= ETH_DMATxDesc_OWN;
1168: 4398 lw a4,0(a5)
116a: 80000637 lui a2,0x80000
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:490
DMATxDescToSet->ControlBufferSize = (len & ETH_DMATxDesc_TBS1);
116e: 814d srli a0,a0,0x13
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:501
DMATxDescToSet->Status |= ETH_DMATxDesc_OWN;
1170: 8f51 or a4,a4,a2
1172: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:490
DMATxDescToSet->ControlBufferSize = (len & ETH_DMATxDesc_TBS1);
1174: c3c8 sw a0,4(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:491
DMATxDescToSet->Buffer1Addr = (uint32_t)pBuff;
1176: c78c sw a1,8(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:504
/* Clear TBUS ETHERNET DMA flag */
ETH->DMASR = ETH_DMASR_TBUS;
1178: 40029737 lui a4,0x40029
117c: 4611 li a2,4
117e: cb50 sw a2,20(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:506
/* Resume DMA transmission*/
ETH->DMATPDR = 0;
1180: 00072223 sw zero,4(a4) # 40029004 <_eusrstack+0x20009004>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:511
/* Update the ETHERNET DMA global Tx descriptor with next Tx descriptor */
/* Chained Mode */
/* Selects the next DMA Tx descriptor list for next buffer to send */
DMATxDescToSet = (ETH_DMADESCTypeDef*) (DMATxDescToSet->Buffer2NextDescAddr);
1184: 47dc lw a5,12(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:513
/* Return SUCCESS */
return ETH_SUCCESS;
1186: 4505 li a0,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:511
DMATxDescToSet = (ETH_DMADESCTypeDef*) (DMATxDescToSet->Buffer2NextDescAddr);
1188: 86f1a623 sw a5,-1940(gp) # 2000008c <DMATxDescToSet>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:513
return ETH_SUCCESS;
118c: 8082 ret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:487
return ETH_ERROR;
118e: 4501 li a0,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:514
}
1190: 8082 ret
00001192 <WCHNET_GetMacAddr>:
WCHNET_GetMacAddr():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:71
*p = *macaddr;
1192: 1ffff737 lui a4,0x1ffff
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:65
{
1196: 4781 li a5,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:71
*p = *macaddr;
1198: 7ed70713 addi a4,a4,2029 # 1ffff7ed <_data_lma+0x1fff6959>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:69
for(i=0;i<6;i++)
119c: 4699 li a3,6
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:71 (discriminator 3)
*p = *macaddr;
119e: 40f70633 sub a2,a4,a5
11a2: 220c lbu a1,0(a2)
11a4: 00f50633 add a2,a0,a5
11a8: 0785 addi a5,a5,1
11aa: a20c sb a1,0(a2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:69 (discriminator 3)
for(i=0;i<6;i++)
11ac: fed799e3 bne a5,a3,119e <WCHNET_GetMacAddr+0xc>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:75
}
11b0: 8082 ret
000011b2 <WCHNET_TimeIsr>:
WCHNET_TimeIsr():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:86
LocalTime += timperiod;
11b2: 88018793 addi a5,gp,-1920 # 200000a0 <LocalTime>
11b6: 4398 lw a4,0(a5)
11b8: 953a add a0,a0,a4
11ba: c388 sw a0,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:87
}
11bc: 8082 ret
000011be <ETH_RGMIIPinInit>:
ETH_RGMIIPinInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:143
{
11be: 80aff2ef jal t0,1c8 <__riscv_save_10>
11c2: 1141 addi sp,sp,-16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:146
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
11c4: 4585 li a1,1
11c6: 4505 li a0,1
11c8: 3b21 jal ee0 <RCC_APB2PeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:147
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
11ca: 4585 li a1,1
11cc: 4571 li a0,28
11ce: 3b09 jal ee0 <RCC_APB2PeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:148
GPIOB->CFGHR &= ~(0xff<<16);
11d0: 40011937 lui s2,0x40011
11d4: c0492783 lw a5,-1020(s2) # 40010c04 <_eusrstack+0x1fff0c04>
11d8: ff010737 lui a4,0xff010
11dc: 177d addi a4,a4,-1
11de: 8ff9 and a5,a5,a4
11e0: c0f92223 sw a5,-1020(s2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:149
GPIOB->CFGHR |= (0xbb<<16);
11e4: c0492783 lw a5,-1020(s2)
11e8: 00bb0737 lui a4,0xbb0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:152
GPIO_Output(GPIOA, GPIO_Pin_2);
11ec: 440d li s0,3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:149
GPIOB->CFGHR |= (0xbb<<16);
11ee: 8fd9 or a5,a5,a4
11f0: c0f92223 sw a5,-1020(s2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:150
GPIOB->CFGLR &= ~(0xff<<4);
11f4: c0092783 lw a5,-1024(s2)
11f8: 777d lui a4,0xfffff
11fa: 073d addi a4,a4,15
11fc: 8ff9 and a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:152
GPIO_Output(GPIOA, GPIO_Pin_2);
11fe: 44e1 li s1,24
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:150
GPIOB->CFGLR &= ~(0xff<<4);
1200: c0f92023 sw a5,-1024(s2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:152
GPIO_Output(GPIOA, GPIO_Pin_2);
1204: 004c addi a1,sp,4
1206: 4791 li a5,4
1208: 80090513 addi a0,s2,-2048
120c: 827c sh a5,4(sp)
120e: c422 sw s0,8(sp)
1210: c626 sw s1,12(sp)
1212: 3c39 jal c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:153
GPIO_Output(GPIOA, GPIO_Pin_3);
1214: 4ba1 li s7,8
1216: 004c addi a1,sp,4
1218: 80090513 addi a0,s2,-2048
121c: 01711223 sh s7,4(sp)
1220: c422 sw s0,8(sp)
1222: c626 sw s1,12(sp)
1224: 3431 jal c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:154
GPIO_Output(GPIOA, GPIO_Pin_7);
1226: 08000b13 li s6,128
122a: 004c addi a1,sp,4
122c: 80090513 addi a0,s2,-2048
1230: 01611223 sh s6,4(sp)
1234: c422 sw s0,8(sp)
1236: c626 sw s1,12(sp)
1238: 3ae5 jal c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:155
GPIO_Output(GPIOC, GPIO_Pin_4);
123a: 47c1 li a5,16
123c: 004c addi a1,sp,4
123e: 40011537 lui a0,0x40011
1242: 827c sh a5,4(sp)
1244: c422 sw s0,8(sp)
1246: c626 sw s1,12(sp)
1248: 32e5 jal c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:156
GPIO_Output(GPIOC, GPIO_Pin_5);
124a: 02000793 li a5,32
124e: 004c addi a1,sp,4
1250: 40011537 lui a0,0x40011
1254: 827c sh a5,4(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:148
GPIOB->CFGHR &= ~(0xff<<16);
1256: c0090993 addi s3,s2,-1024
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:156
GPIO_Output(GPIOC, GPIO_Pin_5);
125a: c422 sw s0,8(sp)
125c: c626 sw s1,12(sp)
125e: 9d3ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:157
GPIO_Output(GPIOB, GPIO_Pin_0);
1262: 4a85 li s5,1
1264: 004c addi a1,sp,4
1266: 854e mv a0,s3
1268: 01511223 sh s5,4(sp)
126c: c422 sw s0,8(sp)
126e: c626 sw s1,12(sp)
1270: 9c1ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:159
GPIO_Input(GPIOC, GPIO_Pin_0);
1274: 4491 li s1,4
1276: 004c addi a1,sp,4
1278: 40011537 lui a0,0x40011
127c: 01511223 sh s5,4(sp)
1280: c422 sw s0,8(sp)
1282: c626 sw s1,12(sp)
1284: 9adff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:160
GPIO_Input(GPIOC, GPIO_Pin_1);
1288: 4a09 li s4,2
128a: 004c addi a1,sp,4
128c: 40011537 lui a0,0x40011
1290: 01411223 sh s4,4(sp)
1294: c422 sw s0,8(sp)
1296: c626 sw s1,12(sp)
1298: 999ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:161
GPIO_Input(GPIOC, GPIO_Pin_2);
129c: 004c addi a1,sp,4
129e: 40011537 lui a0,0x40011
12a2: 8264 sh s1,4(sp)
12a4: c422 sw s0,8(sp)
12a6: c626 sw s1,12(sp)
12a8: 989ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:162
GPIO_Input(GPIOC, GPIO_Pin_3);
12ac: 004c addi a1,sp,4
12ae: 40011537 lui a0,0x40011
12b2: 01711223 sh s7,4(sp)
12b6: c422 sw s0,8(sp)
12b8: c626 sw s1,12(sp)
12ba: 977ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:163
GPIO_Input(GPIOA, GPIO_Pin_0);
12be: 004c addi a1,sp,4
12c0: 80090513 addi a0,s2,-2048
12c4: 01511223 sh s5,4(sp)
12c8: c422 sw s0,8(sp)
12ca: c626 sw s1,12(sp)
12cc: 965ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:164
GPIO_Input(GPIOA, GPIO_Pin_1);
12d0: 004c addi a1,sp,4
12d2: 80090513 addi a0,s2,-2048
12d6: 01411223 sh s4,4(sp)
12da: c422 sw s0,8(sp)
12dc: c626 sw s1,12(sp)
12de: 953ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:166
GPIO_Input(GPIOB, GPIO_Pin_1); /* 125m in */
12e2: 004c addi a1,sp,4
12e4: 854e mv a0,s3
12e6: 01411223 sh s4,4(sp)
12ea: c422 sw s0,8(sp)
12ec: c626 sw s1,12(sp)
12ee: 943ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:167
GPIO_Input(GPIOC, GPIO_Pin_7); /* interrupt pin */
12f2: 004c addi a1,sp,4
12f4: 40011537 lui a0,0x40011
12f8: 01611223 sh s6,4(sp)
12fc: c422 sw s0,8(sp)
12fe: c626 sw s1,12(sp)
1300: 931ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:168
}
1304: 0141 addi sp,sp,16
1306: efbfe06f j 200 <__riscv_restore_10>
0000130a <ETH_PHYLink>:
ETH_PHYLink():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:242
{
130a: ecdfe2ef jal t0,1d6 <__riscv_save_4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:248
ETH_WritePHYRegister( gPHYAddress, 0x1F, 0x0a43 );
130e: 88418413 addi s0,gp,-1916 # 200000a4 <gPHYAddress>
1312: 200a lhu a0,0(s0)
1314: 6605 lui a2,0x1
1316: a4360613 addi a2,a2,-1469 # a43 <ETH_ReadPHYRegister+0x21>
131a: 45fd li a1,31
131c: f5eff0ef jal ra,a7a <ETH_WritePHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:251
ETH_ReadPHYRegister( gPHYAddress, 0x1A);
1320: 200a lhu a0,0(s0)
1322: 45e9 li a1,26
1324: efeff0ef jal ra,a22 <ETH_ReadPHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:252
phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1A);
1328: 200a lhu a0,0(s0)
132a: 45e9 li a1,26
132c: 88418493 addi s1,gp,-1916 # 200000a4 <gPHYAddress>
1330: ef2ff0ef jal ra,a22 <ETH_ReadPHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:254
if((ChipId & 0xf0) <= 0x20)
1334: 8741a783 lw a5,-1932(gp) # 20000094 <ChipId>
1338: 02000713 li a4,32
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:252
phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1A);
133c: 842a mv s0,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:254
if((ChipId & 0xf0) <= 0x20)
133e: 0f07f793 andi a5,a5,240
1342: 87418993 addi s3,gp,-1932 # 20000094 <ChipId>
1346: 4941 li s2,16
1348: 06f77863 bgeu a4,a5,13b8 <ETH_PHYLink+0xae>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:264
LastPhyStat = phy_stat & 0x04;
134c: 00447913 andi s2,s0,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:266
WCHNET_PhyStatus( phy_stat );
1350: 8522 mv a0,s0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:264
LastPhyStat = phy_stat & 0x04;
1352: 87219c23 sh s2,-1928(gp) # 20000098 <LastPhyStat>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:266
WCHNET_PhyStatus( phy_stat );
1356: 1fd000ef jal ra,1d52 <WCHNET_PhyStatus>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:268
if( phy_stat & 0x04 )
135a: 02090d63 beqz s2,1394 <ETH_PHYLink+0x8a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:271
RGMII_TXC_Delay(0, 4);
135e: 4591 li a1,4
1360: 4501 li a0,0
1362: 897ff0ef jal ra,bf8 <RGMII_TXC_Delay>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:272
if( phy_stat & 0x08 )
1366: 00847793 andi a5,s0,8
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:274
ETH->MACCR |= ETH_Mode_FullDuplex;
136a: 400286b7 lui a3,0x40028
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:272
if( phy_stat & 0x08 )
136e: cfb1 beqz a5,13ca <ETH_PHYLink+0xc0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:274
ETH->MACCR |= ETH_Mode_FullDuplex;
1370: 429c lw a5,0(a3)
1372: 6705 lui a4,0x1
1374: 80070713 addi a4,a4,-2048 # 800 <__stack_size>
1378: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:278
ETH->MACCR &= ~ETH_Mode_FullDuplex;
137a: c29c sw a5,0(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:280
if( (phy_stat & 0x30) == 0x00 )
137c: 03047413 andi s0,s0,48
1380: e839 bnez s0,13d6 <ETH_PHYLink+0xcc>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:282
ETH->MACCR &= ~(ETH_Speed_100M|ETH_Speed_1000M);
1382: 400286b7 lui a3,0x40028
1386: 429c lw a5,0(a3)
1388: 7751 lui a4,0xffff4
138a: 177d addi a4,a4,-1
138c: 8ff9 and a5,a5,a4
138e: c29c sw a5,0(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:297
ETH_Start( );
1390: 819ff0ef jal ra,ba8 <ETH_Start>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:299
phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1D); /* Clear the Interrupt status */
1394: 208a lhu a0,0(s1)
1396: 45f5 li a1,29
1398: e8aff0ef jal ra,a22 <ETH_ReadPHYRegister>
139c: a02d j 13c6 <ETH_PHYLink+0xbc>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:258
Delay_Us(100);
139e: 06400513 li a0,100
13a2: 2b0d jal 18d4 <Delay_Us>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:259
phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1A);
13a4: 208a lhu a0,0(s1)
13a6: 45e9 li a1,26
13a8: 197d addi s2,s2,-1
13aa: e78ff0ef jal ra,a22 <ETH_ReadPHYRegister>
13ae: 0ff97913 andi s2,s2,255
13b2: 842a mv s0,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:260
if(timeout++ == 15) break;
13b4: 00090363 beqz s2,13ba <ETH_PHYLink+0xb0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:256
while(phy_stat == 0)
13b8: d07d beqz s0,139e <ETH_PHYLink+0x94>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:262
if(LastPhyStat == (phy_stat & 0x04)) return;
13ba: 8781d703 lhu a4,-1928(gp) # 20000098 <LastPhyStat>
13be: 00447793 andi a5,s0,4
13c2: f8f715e3 bne a4,a5,134c <ETH_PHYLink+0x42>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:300
}
13c6: e45fe06f j 20a <__riscv_restore_4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:278
ETH->MACCR &= ~ETH_Mode_FullDuplex;
13ca: 429c lw a5,0(a3)
13cc: 777d lui a4,0xfffff
13ce: 7ff70713 addi a4,a4,2047 # fffff7ff <_eusrstack+0xdffdf7ff>
13d2: 8ff9 and a5,a5,a4
13d4: b75d j 137a <ETH_PHYLink+0x70>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:284
else if( (phy_stat & 0x30) == 0x10 )
13d6: 47c1 li a5,16
13d8: 00f41e63 bne s0,a5,13f4 <ETH_PHYLink+0xea>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:286
ETH->MACCR &= ~(ETH_Speed_100M|ETH_Speed_1000M);
13dc: 400287b7 lui a5,0x40028
13e0: 4398 lw a4,0(a5)
13e2: 76d1 lui a3,0xffff4
13e4: 16fd addi a3,a3,-1
13e6: 8f75 and a4,a4,a3
13e8: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:287
ETH->MACCR |= ETH_Speed_100M;
13ea: 4398 lw a4,0(a5)
13ec: 6691 lui a3,0x4
13ee: 8f55 or a4,a4,a3
13f0: c398 sw a4,0(a5)
13f2: bf79 j 1390 <ETH_PHYLink+0x86>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:289
else if( (phy_stat & 0x30) == 0x20 )
13f4: 02000793 li a5,32
13f8: f8f41ce3 bne s0,a5,1390 <ETH_PHYLink+0x86>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:291
ETH->MACCR &= ~(ETH_Speed_100M|ETH_Speed_1000M);
13fc: 400287b7 lui a5,0x40028
1400: 4398 lw a4,0(a5)
1402: 76d1 lui a3,0xffff4
1404: 16fd addi a3,a3,-1
1406: 8f75 and a4,a4,a3
1408: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:292
ETH->MACCR |= ETH_Speed_1000M;
140a: 4398 lw a4,0(a5)
140c: 66a1 lui a3,0x8
140e: 8f55 or a4,a4,a3
1410: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:294
if((ChipId & 0xf0) >= 0x60)
1412: 0009a783 lw a5,0(s3)
1416: 05f00713 li a4,95
141a: 0f07f793 andi a5,a5,240
141e: f6f779e3 bgeu a4,a5,1390 <ETH_PHYLink+0x86>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:295
RGMII_TXC_Delay(1, 2);
1422: 4589 li a1,2
1424: 4505 li a0,1
1426: fd2ff0ef jal ra,bf8 <RGMII_TXC_Delay>
142a: b79d j 1390 <ETH_PHYLink+0x86>
0000142c <WCHNET_QueryPhySta>:
WCHNET_QueryPhySta():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:100
if(QUERY_STAT_FLAG){ /* Query the PHY link status every 1s */
142c: 88018713 addi a4,gp,-1920 # 200000a0 <LocalTime>
1430: 4314 lw a3,0(a4)
1432: 3e800613 li a2,1000
1436: 02c6d6b3 divu a3,a3,a2
143a: 87c18793 addi a5,gp,-1924 # 2000009c <LastQueryPhyTime>
143e: 438c lw a1,0(a5)
1440: 02b68f63 beq a3,a1,147e <WCHNET_QueryPhySta+0x52>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:98
{
1444: dadfe2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:101
LastQueryPhyTime = LocalTime / 1000;
1448: 4318 lw a4,0(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:102
ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 );
144a: 45fd li a1,31
144c: 4505 li a0,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:101
LastQueryPhyTime = LocalTime / 1000;
144e: 02c75733 divu a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:102
ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 );
1452: 6605 lui a2,0x1
1454: a4360613 addi a2,a2,-1469 # a43 <ETH_ReadPHYRegister+0x21>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:101
LastQueryPhyTime = LocalTime / 1000;
1458: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:102
ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 );
145a: e20ff0ef jal ra,a7a <ETH_WritePHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:105
ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A);
145e: 45e9 li a1,26
1460: 4505 li a0,1
1462: dc0ff0ef jal ra,a22 <ETH_ReadPHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:106
phy_stat = ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A) & 0x04;
1466: 45e9 li a1,26
1468: 4505 li a0,1
146a: db8ff0ef jal ra,a22 <ETH_ReadPHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:107
if((phy_stat != LastPhyStat) && (phy_stat != 0xffff)){
146e: 8781d783 lhu a5,-1928(gp) # 20000098 <LastPhyStat>
1472: 8911 andi a0,a0,4
1474: 00a78363 beq a5,a0,147a <WCHNET_QueryPhySta+0x4e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:108
ETH_PHYLink();
1478: 3d49 jal 130a <ETH_PHYLink>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:111
}
147a: d9bfe06f j 214 <__riscv_restore_0>
147e: 8082 ret
00001480 <WCHNET_MainTask>:
WCHNET_MainTask():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:124
{
1480: d71fe2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:125
WCHNET_NetInput( ); /* Ethernet data input */
1484: 0bb000ef jal ra,1d3e <WCHNET_NetInput>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:126
WCHNET_PeriodicHandle( ); /* Protocol stack time-related task processing */
1488: 6f8000ef jal ra,1b80 <WCHNET_PeriodicHandle>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:129
WCHNET_QueryPhySta(); /* Query external PHY status */
148c: 3745 jal 142c <WCHNET_QueryPhySta>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:131
}
148e: d87fe06f j 214 <__riscv_restore_0>
00001492 <ETH_RegInit>:
ETH_RegInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:313
{
1492: d5ffe2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:315
ETH->MACMIIAR = (uint32_t)ETH_MACMIIAR_CR_Div42;
1496: 400286b7 lui a3,0x40028
149a: 0006a823 sw zero,16(a3) # 40028010 <_eusrstack+0x20008010>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:313
{
149e: 87aa mv a5,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:318
ETH->MACCR = (uint32_t)(ETH_InitStruct->ETH_Watchdog |
14a0: 4790 lw a2,8(a5)
14a2: 43d8 lw a4,4(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:313
{
14a4: 852e mv a0,a1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:351
ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset);
14a6: 4581 li a1,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:318
ETH->MACCR = (uint32_t)(ETH_InitStruct->ETH_Watchdog |
14a8: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:319
ETH_InitStruct->ETH_Jabber |
14aa: 47d0 lw a2,12(a5)
14ac: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:320
ETH_InitStruct->ETH_InterFrameGap |
14ae: 53d0 lw a2,36(a5)
14b0: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:321
ETH_InitStruct->ETH_ChecksumOffload |
14b2: 57d0 lw a2,44(a5)
14b4: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:322
ETH_InitStruct->ETH_AutomaticPadCRCStrip |
14b6: 4fd0 lw a2,28(a5)
14b8: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:318
ETH->MACCR = (uint32_t)(ETH_InitStruct->ETH_Watchdog |
14ba: c298 sw a4,0(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:325
ETH->MACFFR = (uint32_t)(ETH_InitStruct->ETH_ReceiveAll |
14bc: 5fd0 lw a2,60(a5)
14be: 5f98 lw a4,56(a5)
14c0: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:326
ETH_InitStruct->ETH_SourceAddrFilter |
14c2: 43b0 lw a2,64(a5)
14c4: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:327
ETH_InitStruct->ETH_PassControlFrames |
14c6: 43f0 lw a2,68(a5)
14c8: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:328
ETH_InitStruct->ETH_BroadcastFramesReception |
14ca: 47b0 lw a2,72(a5)
14cc: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:329
ETH_InitStruct->ETH_DestinationAddrFilter |
14ce: 47f0 lw a2,76(a5)
14d0: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:330
ETH_InitStruct->ETH_PromiscuousMode |
14d2: 4bb0 lw a2,80(a5)
14d4: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:331
ETH_InitStruct->ETH_MulticastFramesFilter |
14d6: 4bf0 lw a2,84(a5)
14d8: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:325
ETH->MACFFR = (uint32_t)(ETH_InitStruct->ETH_ReceiveAll |
14da: c2d8 sw a4,4(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:334
ETH->MACHTHR = (uint32_t)ETH_InitStruct->ETH_HashTableHigh;
14dc: 4fb8 lw a4,88(a5)
14de: c698 sw a4,8(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:335
ETH->MACHTLR = (uint32_t)ETH_InitStruct->ETH_HashTableLow;
14e0: 4ff8 lw a4,92(a5)
14e2: c6d8 sw a4,12(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:339
ETH_InitStruct->ETH_ReceiveFlowControl |
14e4: 5bb0 lw a2,112(a5)
14e6: 57f8 lw a4,108(a5)
14e8: 8f51 or a4,a4,a2
14ea: 5bf0 lw a2,116(a5)
14ec: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:337
ETH->MACFCR = (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) |
14ee: 53b0 lw a2,96(a5)
14f0: 0642 slli a2,a2,0x10
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:339
ETH_InitStruct->ETH_ReceiveFlowControl |
14f2: 8f51 or a4,a4,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:337
ETH->MACFCR = (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) |
14f4: ce98 sw a4,24(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:342
ETH->MACVLANTR = (uint32_t)(ETH_InitStruct->ETH_VLANTagComparison |
14f6: 5ff0 lw a2,124(a5)
14f8: 5fb8 lw a4,120(a5)
14fa: 8f51 or a4,a4,a2
14fc: ced8 sw a4,28(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:345
ETH->DMAOMR = (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame |
14fe: 08c7a683 lw a3,140(a5) # 4002808c <_eusrstack+0x2000808c>
1502: 0807a703 lw a4,128(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:351
ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset);
1506: 6621 lui a2,0x8
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:345
ETH->DMAOMR = (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame |
1508: 8f55 or a4,a4,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:346
ETH_InitStruct->ETH_TransmitStoreForward |
150a: 0947a683 lw a3,148(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:347
ETH_InitStruct->ETH_ForwardErrorFrames |
150e: 0987a783 lw a5,152(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:346
ETH_InitStruct->ETH_TransmitStoreForward |
1512: 8f55 or a4,a4,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:347
ETH_InitStruct->ETH_ForwardErrorFrames |
1514: 8f5d or a4,a4,a5
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:345
ETH->DMAOMR = (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame |
1516: 400297b7 lui a5,0x40029
151a: cf98 sw a4,24(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:351
ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset);
151c: d5eff0ef jal ra,a7a <ETH_WritePHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:353
}
1520: 4505 li a0,1
1522: cf3fe06f j 214 <__riscv_restore_0>
00001526 <ETH_Configuration>:
ETH_Configuration():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:363
{
1526: cb1fe2ef jal t0,1d6 <__riscv_save_4>
152a: 7131 addi sp,sp,-192
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:368
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | \
152c: 4585 li a1,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:363
{
152e: 84aa mv s1,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:368
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | \
1530: 6571 lui a0,0x1c
1532: 991ff0ef jal ra,ec2 <RCC_AHBPeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:375
EXTEN->EXTEN_CTR |= EXTEN_ETH_RGMII_SEL;
1536: 40024737 lui a4,0x40024
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:372
gPHYAddress = PHY_ADDRESS;
153a: 4785 li a5,1
153c: 88f19223 sh a5,-1916(gp) # 200000a4 <gPHYAddress>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:375
EXTEN->EXTEN_CTR |= EXTEN_ETH_RGMII_SEL;
1540: 80072783 lw a5,-2048(a4) # 40023800 <_eusrstack+0x20003800>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:376
RCC_ETH1GCLKConfig(RCC_ETH1GCLKSource_PB1_IN);
1544: 4509 li a0,2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:385
ETH_SoftwareReset();
1546: 6409 lui s0,0x2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:375
EXTEN->EXTEN_CTR |= EXTEN_ETH_RGMII_SEL;
1548: 0087e793 ori a5,a5,8
154c: 80f72023 sw a5,-2048(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:376
RCC_ETH1GCLKConfig(RCC_ETH1GCLKSource_PB1_IN);
1550: 9ebff0ef jal ra,f3a <RCC_ETH1GCLKConfig>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:377
RCC_ETH1G_125Mcmd(ENABLE);
1554: 4505 li a0,1
1556: 9ffff0ef jal ra,f54 <RCC_ETH1G_125Mcmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:385
ETH_SoftwareReset();
155a: 71040413 addi s0,s0,1808 # 2710 <WCHNET_SocketCreat+0x19c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:379
ETH_RGMIIPinInit();
155e: 3185 jal 11be <ETH_RGMIIPinInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:382
ETH_DeInit();
1560: 88418913 addi s2,gp,-1916 # 200000a4 <gPHYAddress>
1564: caaff0ef jal ra,a0e <ETH_DeInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:391
}while(ETH->DMABMR & ETH_DMABMR_SR);
1568: 400299b7 lui s3,0x40029
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:385
ETH_SoftwareReset();
156c: e16ff0ef jal ra,b82 <ETH_SoftwareReset>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:389
Delay_Us(10);
1570: 147d addi s0,s0,-1
1572: 0442 slli s0,s0,0x10
1574: 4529 li a0,10
1576: 8041 srli s0,s0,0x10
1578: 2eb1 jal 18d4 <Delay_Us>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:390
if( !--timeout ) break;
157a: c409 beqz s0,1584 <ETH_Configuration+0x5e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:391
}while(ETH->DMABMR & ETH_DMABMR_SR);
157c: 0009a783 lw a5,0(s3) # 40029000 <_eusrstack+0x20009000>
1580: 8b85 andi a5,a5,1
1582: f7fd bnez a5,1570 <ETH_Configuration+0x4a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:438
ETH_RegInit( &ETH_InitStructure, gPHYAddress );
1584: 00095583 lhu a1,0(s2)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:412
ETH_InitStructure.ETH_PassControlFrames = ETH_PassControlFrames_BlockAll;
1588: 04000793 li a5,64
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:434
ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;
158c: 00200437 lui s0,0x200
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:435
ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Enable;
1590: 08000713 li a4,128
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:438
ETH_RegInit( &ETH_InitStructure, gPHYAddress );
1594: 0048 addi a0,sp,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:412
ETH_InitStructure.ETH_PassControlFrames = ETH_PassControlFrames_BlockAll;
1596: c2be sw a5,68(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:434
ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;
1598: c922 sw s0,144(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:435
ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Enable;
159a: cd3a sw a4,152(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:436
ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Enable;
159c: cf3e sw a5,156(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:395
ETH_InitStructure.ETH_Watchdog = ETH_Watchdog_Enable;
159e: c402 sw zero,8(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:396
ETH_InitStructure.ETH_Jabber = ETH_Jabber_Enable;
15a0: c602 sw zero,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:397
ETH_InitStructure.ETH_InterFrameGap = ETH_InterFrameGap_96Bit;
15a2: c802 sw zero,16(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:401
ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Disable;
15a4: d402 sw zero,40(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:403
ETH_InitStructure.ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable;
15a6: d802 sw zero,48(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:404
ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;
15a8: d002 sw zero,32(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:407
ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable;
15aa: de02 sw zero,60(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:408
ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;
15ac: c882 sw zero,80(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:409
ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable;
15ae: c482 sw zero,72(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:410
ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect;
15b0: ca82 sw zero,84(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:411
ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect;
15b2: cc82 sw zero,88(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:413
ETH_InitStructure.ETH_DestinationAddrFilter = ETH_DestinationAddrFilter_Normal;
15b4: c682 sw zero,76(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:414
ETH_InitStructure.ETH_SourceAddrFilter = ETH_SourceAddrFilter_Disable;
15b6: c082 sw zero,64(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:416
ETH_InitStructure.ETH_HashTableHigh = 0x0;
15b8: ce82 sw zero,92(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:417
ETH_InitStructure.ETH_HashTableLow = 0x0;
15ba: d082 sw zero,96(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:420
ETH_InitStructure.ETH_VLANTagComparison = ETH_VLANTagComparison_16Bit;
15bc: de82 sw zero,124(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:421
ETH_InitStructure.ETH_VLANTagIdentifier = 0x0;
15be: c102 sw zero,128(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:424
ETH_InitStructure.ETH_PauseTime = 0x0;
15c0: d282 sw zero,100(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:425
ETH_InitStructure.ETH_UnicastPauseFrameDetect = ETH_UnicastPauseFrameDetect_Disable;
15c2: d882 sw zero,112(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:426
ETH_InitStructure.ETH_ReceiveFlowControl = ETH_ReceiveFlowControl_Disable;
15c4: da82 sw zero,116(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:427
ETH_InitStructure.ETH_TransmitFlowControl = ETH_TransmitFlowControl_Disable;
15c6: dc82 sw zero,120(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:433
ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable;
15c8: c302 sw zero,132(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:438
ETH_RegInit( &ETH_InitStructure, gPHYAddress );
15ca: 35e1 jal 1492 <ETH_RegInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:441
ETH->MACA0HR = (uint32_t)((macAddr[5]<<8) | macAddr[4]);
15cc: 30dc lbu a5,5(s1)
15ce: 20d8 lbu a4,4(s1)
15d0: 400286b7 lui a3,0x40028
15d4: 07a2 slli a5,a5,0x8
15d6: 8fd9 or a5,a5,a4
15d8: c2bc sw a5,64(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:442
ETH->MACA0LR = (uint32_t)(macAddr[0] | (macAddr[1]<<8) | (macAddr[2]<<16) | (macAddr[3]<<24));
15da: 3098 lbu a4,1(s1)
15dc: 209c lbu a5,0(s1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:450
ETH_DMAITConfig(ETH_DMA_IT_NIS |\
15de: 6561 lui a0,0x18
15e0: 0722 slli a4,a4,0x8
15e2: 8f5d or a4,a4,a5
15e4: 20bc lbu a5,2(s1)
15e6: 4585 li a1,1
15e8: 0c150513 addi a0,a0,193 # 180c1 <_data_lma+0xf22d>
15ec: 07c2 slli a5,a5,0x10
15ee: 8f5d or a4,a4,a5
15f0: 30bc lbu a5,3(s1)
15f2: 07e2 slli a5,a5,0x18
15f4: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:442
ETH->MACA0LR = (uint32_t)(macAddr[0] | (macAddr[1]<<8) | (macAddr[2]<<16) | (macAddr[3]<<24));
15f6: c2fc sw a5,68(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:448
ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM;
15f8: 000207b7 lui a5,0x20
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:445
ETH->MMCTIMR = ETH_MMCTIMR_TGFM;
15fc: 1086a823 sw s0,272(a3) # 40028110 <_eusrstack+0x20008110>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:448
ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM;
1600: 02078793 addi a5,a5,32 # 20020 <_data_lma+0x1718c>
1604: 10f6a623 sw a5,268(a3)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:450
ETH_DMAITConfig(ETH_DMA_IT_NIS |\
1608: dd2ff0ef jal ra,bda <ETH_DMAITConfig>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:463
ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 );
160c: 6605 lui a2,0x1
160e: a4360613 addi a2,a2,-1469 # a43 <ETH_ReadPHYRegister+0x21>
1612: 45fd li a1,31
1614: 4505 li a0,1
1616: c64ff0ef jal ra,a7a <ETH_WritePHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:466
ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A);
161a: 45e9 li a1,26
161c: 4505 li a0,1
161e: c04ff0ef jal ra,a22 <ETH_ReadPHYRegister>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:467
LastPhyStat = ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A) & 0x04;
1622: 45e9 li a1,26
1624: 4505 li a0,1
1626: bfcff0ef jal ra,a22 <ETH_ReadPHYRegister>
162a: 8911 andi a0,a0,4
162c: 86a19c23 sh a0,-1928(gp) # 20000098 <LastPhyStat>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:469
}
1630: 6129 addi sp,sp,192
1632: bd9fe06f j 20a <__riscv_restore_4>
00001636 <ETH_Stop>:
ETH_Stop():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:524
* @brief Disables ENET MAC and DMA reception/transmission.
*
* @return none
*/
void ETH_Stop(void)
{
1636: bbbfe2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:525
ETH_MACTransmissionCmd(DISABLE);
163a: 4501 li a0,0
163c: c90ff0ef jal ra,acc <ETH_MACTransmissionCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:526
ETH_FlushTransmitFIFO();
1640: d58ff0ef jal ra,b98 <ETH_FlushTransmitFIFO>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:527
ETH_MACReceptionCmd(DISABLE);
1644: 4501 li a0,0
1646: c9aff0ef jal ra,ae0 <ETH_MACReceptionCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:528
}
164a: bcbfe06f j 214 <__riscv_restore_0>
0000164e <ReInitMACReg>:
ReInitMACReg():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:540
* @param none.
*
* @return none.
*/
void ReInitMACReg(void)
{
164e: b7bfe2ef jal t0,1c8 <__riscv_save_10>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:546
uint16_t timeout = 10000;
uint32_t maccr, macmiiar, macffr, machthr, machtlr;
uint32_t macfcr, macvlantr, dmaomr;
/* Wait for sending data to complete */
while((ETH->DMASR & (7 << 20)) != ETH_DMA_TransmitProcess_Suspended);
1652: 40028437 lui s0,0x40028
1656: 400294b7 lui s1,0x40029
165a: 007006b7 lui a3,0x700
165e: 00600737 lui a4,0x600
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:546 (discriminator 1)
1662: 48dc lw a5,20(s1)
1664: 8ff5 and a5,a5,a3
1666: fee79ee3 bne a5,a4,1662 <ReInitMACReg+0x14>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:548
ETH_Stop();
166a: 37f1 jal 1636 <ETH_Stop>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:551
/* Record the register value */
macmiiar = ETH->MACMIIAR;
166c: 01042b83 lw s7,16(s0) # 40028010 <_eusrstack+0x20008010>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:552
maccr = ETH->MACCR;
1670: 00042b03 lw s6,0(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:553
macffr = ETH->MACFFR;
1674: 00442a83 lw s5,4(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:554
machthr = ETH->MACHTHR;
1678: 00842a03 lw s4,8(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:555
machtlr = ETH->MACHTLR;
167c: 00c42983 lw s3,12(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:556
macfcr = ETH->MACFCR;
1680: 01842903 lw s2,24(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:557
macvlantr = ETH->MACVLANTR;
1684: 01c42c03 lw s8,28(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:564
/* Reset ETHERNET on AHB Bus */
ETH_DeInit();
/* Software reset */
ETH_SoftwareReset();
1688: 6409 lui s0,0x2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:558
dmaomr = ETH->DMAOMR;
168a: 4c84 lw s1,24(s1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:564
ETH_SoftwareReset();
168c: 71040413 addi s0,s0,1808 # 2710 <WCHNET_SocketCreat+0x19c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:561
ETH_DeInit();
1690: b7eff0ef jal ra,a0e <ETH_DeInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:570
/* Wait for software reset */
do{
Delay_Us(10);
if( !--timeout ) break;
}while(ETH->DMABMR & ETH_DMABMR_SR);
1694: 40029cb7 lui s9,0x40029
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:564
ETH_SoftwareReset();
1698: ceaff0ef jal ra,b82 <ETH_SoftwareReset>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:568
Delay_Us(10);
169c: 147d addi s0,s0,-1
169e: 0442 slli s0,s0,0x10
16a0: 4529 li a0,10
16a2: 8041 srli s0,s0,0x10
16a4: 2c05 jal 18d4 <Delay_Us>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:569
if( !--timeout ) break;
16a6: c409 beqz s0,16b0 <ReInitMACReg+0x62>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:570
}while(ETH->DMABMR & ETH_DMABMR_SR);
16a8: 000ca783 lw a5,0(s9) # 40029000 <_eusrstack+0x20009000>
16ac: 8b85 andi a5,a5,1
16ae: f7fd bnez a5,169c <ReInitMACReg+0x4e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:573
/* Configure MAC address */
ETH->MACA0HR = (uint32_t)((MACAddr[5]<<8) | MACAddr[4]);
16b0: 85c18713 addi a4,gp,-1956 # 2000007c <MACAddr>
16b4: 335c lbu a5,5(a4)
16b6: 2350 lbu a2,4(a4)
16b8: 40028437 lui s0,0x40028
16bc: 07a2 slli a5,a5,0x8
16be: 8fd1 or a5,a5,a2
16c0: c03c sw a5,64(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:574
ETH->MACA0LR = (uint32_t)(MACAddr[0] | (MACAddr[1]<<8) | (MACAddr[2]<<16) | (MACAddr[3]<<24));
16c2: 85d1c703 lbu a4,-1955(gp) # 2000007d <MACAddr+0x1>
16c6: 85c1c783 lbu a5,-1956(gp) # 2000007c <MACAddr>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:582
ETH->MMCTIMR = ETH_MMCTIMR_TGFM;
/* Mask the interrupt that Rx good unicast frames counter reaches half the maximum value */
/* Mask the interrupt that Rx crc error counter reaches half the maximum value */
ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM;
ETH_DMAITConfig(ETH_DMA_IT_NIS |\
16ca: 6561 lui a0,0x18
16cc: 0722 slli a4,a4,0x8
16ce: 8f5d or a4,a4,a5
16d0: 85e1c783 lbu a5,-1954(gp) # 2000007e <MACAddr+0x2>
16d4: 4585 li a1,1
16d6: 0c150513 addi a0,a0,193 # 180c1 <_data_lma+0xf22d>
16da: 07c2 slli a5,a5,0x10
16dc: 8f5d or a4,a4,a5
16de: 85f1c783 lbu a5,-1953(gp) # 2000007f <MACAddr+0x3>
16e2: 07e2 slli a5,a5,0x18
16e4: 8fd9 or a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:574
ETH->MACA0LR = (uint32_t)(MACAddr[0] | (MACAddr[1]<<8) | (MACAddr[2]<<16) | (MACAddr[3]<<24));
16e6: c07c sw a5,68(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:577
ETH->MMCTIMR = ETH_MMCTIMR_TGFM;
16e8: 002007b7 lui a5,0x200
16ec: 10f42823 sw a5,272(s0) # 40028110 <_eusrstack+0x20008110>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:580
ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM;
16f0: 000207b7 lui a5,0x20
16f4: 02078793 addi a5,a5,32 # 20020 <_data_lma+0x1718c>
16f8: 10f42623 sw a5,268(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:582
ETH_DMAITConfig(ETH_DMA_IT_NIS |\
16fc: cdeff0ef jal ra,bda <ETH_DMAITConfig>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:589
ETH_DMA_IT_T |\
ETH_DMA_IT_AIS |\
ETH_DMA_IT_RBU,\
ENABLE);
ETH_DMATxDescChainInit(DMATxDscrTab, MACTxBuf, ETH_TXBUFNB);
1700: 200035b7 lui a1,0x20003
1704: 52418c93 addi s9,gp,1316 # 20000d44 <DMATxDscrTab>
1708: 4609 li a2,2
170a: 71058593 addi a1,a1,1808 # 20003710 <MACTxBuf>
170e: 52418513 addi a0,gp,1316 # 20000d44 <DMATxDscrTab>
1712: be2ff0ef jal ra,af4 <ETH_DMATxDescChainInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:590
ETH_DMARxDescChainInit(DMARxDscrTab, MACRxBuf, ETH_RXBUFNB);
1716: 200015b7 lui a1,0x20001
171a: 4b418d13 addi s10,gp,1204 # 20000cd4 <DMARxDscrTab>
171e: 461d li a2,7
1720: d6458593 addi a1,a1,-668 # 20000d64 <MACRxBuf>
1724: 4b418513 addi a0,gp,1204 # 20000cd4 <DMARxDscrTab>
1728: c0eff0ef jal ra,b36 <ETH_DMARxDescChainInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:591
pDMARxSet = DMARxDscrTab;
172c: 89a1a423 sw s10,-1912(gp) # 200000a8 <pDMARxSet>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:592
pDMATxSet = DMATxDscrTab;
1730: 8991a623 sw s9,-1908(gp) # 200000ac <pDMATxSet>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:594
ETH->MACMIIAR = macmiiar;
1734: 01742823 sw s7,16(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:595
ETH->MACCR = maccr;
1738: 01642023 sw s6,0(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:596
ETH->MACFFR = macffr;
173c: 01542223 sw s5,4(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:597
ETH->MACHTHR = machthr;
1740: 01442423 sw s4,8(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:598
ETH->MACHTLR = machtlr;
1744: 01342623 sw s3,12(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:599
ETH->MACFCR = macfcr;
1748: 01242c23 sw s2,24(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:600
ETH->MACVLANTR = macvlantr;
174c: 01842e23 sw s8,28(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:601
ETH->DMAOMR = dmaomr;
1750: 400297b7 lui a5,0x40029
1754: cf84 sw s1,24(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:603
ETH_Start( );
1756: c52ff0ef jal ra,ba8 <ETH_Start>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:604
}
175a: aa7fe06f j 200 <__riscv_restore_10>
0000175e <WCHNET_RecProcess>:
WCHNET_RecProcess():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:617
*
* @return none.
*/
void WCHNET_RecProcess(void)
{
if(((ChipId & 0xf0) <= 0x20) && \
175e: 8741a783 lw a5,-1932(gp) # 20000094 <ChipId>
1762: 02000713 li a4,32
1766: 0f07f793 andi a5,a5,240
176a: 02f76263 bltu a4,a5,178e <WCHNET_RecProcess+0x30>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:616 (discriminator 1)
{
176e: a83fe2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:618 (discriminator 1)
((ETH->DMAMFBOCR & 0x1FFE0000) != 0))
1772: 40029437 lui s0,0x40029
1776: 501c lw a5,32(s0)
1778: 1ffe0737 lui a4,0x1ffe0
177c: 8ff9 and a5,a5,a4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:617 (discriminator 1)
if(((ChipId & 0xf0) <= 0x20) && \
177e: c791 beqz a5,178a <WCHNET_RecProcess+0x2c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:620
{
ReInitMACReg();
1780: 35f9 jal 164e <ReInitMACReg>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:622
/* Resume DMA transport */
ETH->DMARPDR = 0;
1782: 00042423 sw zero,8(s0) # 40029008 <_eusrstack+0x20009008>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:623
ETH->DMATPDR = 0;
1786: 00042223 sw zero,4(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:625
}
}
178a: a8bfe06f j 214 <__riscv_restore_0>
178e: 8082 ret
00001790 <WCHNET_ETHIsr>:
WCHNET_ETHIsr():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:635
* @brief Ethernet Interrupt Service Routine
*
* @return none
*/
void WCHNET_ETHIsr(void)
{
1790: a61fe2ef jal t0,1f0 <__riscv_save_0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:638
uint32_t int_sta;
int_sta = ETH->DMASR;
1794: 400297b7 lui a5,0x40029
1798: 4bc0 lw s0,20(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:639
if (int_sta & ETH_DMA_IT_AIS)
179a: 01041793 slli a5,s0,0x10
179e: 0007dd63 bgez a5,17b8 <WCHNET_ETHIsr+0x28>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:641
{
if (int_sta & ETH_DMA_IT_RBU)
17a2: 08047793 andi a5,s0,128
17a6: c791 beqz a5,17b2 <WCHNET_ETHIsr+0x22>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:643
{
WCHNET_RecProcess();
17a8: 3f5d jal 175e <WCHNET_RecProcess>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:644
ETH_DMAClearITPendingBit(ETH_DMA_IT_RBU);
17aa: 08000513 li a0,128
17ae: be2ff0ef jal ra,b90 <ETH_DMAClearITPendingBit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:646
}
ETH_DMAClearITPendingBit(ETH_DMA_IT_AIS);
17b2: 6521 lui a0,0x8
17b4: bdcff0ef jal ra,b90 <ETH_DMAClearITPendingBit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:649
}
if( int_sta & ETH_DMA_IT_NIS )
17b8: 00f41793 slli a5,s0,0xf
17bc: 0207d163 bgez a5,17de <WCHNET_ETHIsr+0x4e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:651
{
if( int_sta & ETH_DMA_IT_R )
17c0: 04047793 andi a5,s0,64
17c4: c789 beqz a5,17ce <WCHNET_ETHIsr+0x3e>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:655
{
/*If you don't use the Ethernet library,
* you can do some data processing operations here*/
ETH_DMAClearITPendingBit(ETH_DMA_IT_R);
17c6: 04000513 li a0,64
17ca: bc6ff0ef jal ra,b90 <ETH_DMAClearITPendingBit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:657
}
if( int_sta & ETH_DMA_IT_T )
17ce: 8805 andi s0,s0,1
17d0: c401 beqz s0,17d8 <WCHNET_ETHIsr+0x48>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:659
{
ETH_DMAClearITPendingBit(ETH_DMA_IT_T);
17d2: 4505 li a0,1
17d4: bbcff0ef jal ra,b90 <ETH_DMAClearITPendingBit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:661
}
ETH_DMAClearITPendingBit(ETH_DMA_IT_NIS);
17d8: 6541 lui a0,0x10
17da: bb6ff0ef jal ra,b90 <ETH_DMAClearITPendingBit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:663
}
}
17de: a37fe06f j 214 <__riscv_restore_0>
000017e2 <ETH_Init>:
ETH_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:673
* @brief Ethernet initialization.
*
* @return none
*/
void ETH_Init( uint8_t *macAddr )
{
17e2: a0ffe2ef jal t0,1f0 <__riscv_save_0>
17e6: 842a mv s0,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:674
ChipId = DBGMCU_GetCHIPID();
17e8: 972ff0ef jal ra,95a <DBGMCU_GetCHIPID>
17ec: 86a1aa23 sw a0,-1932(gp) # 20000094 <ChipId>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:675
ETH_Configuration( macAddr );
17f0: 8522 mv a0,s0
17f2: 3b15 jal 1526 <ETH_Configuration>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:676
ETH_DMATxDescChainInit(DMATxDscrTab, MACTxBuf, ETH_TXBUFNB);
17f4: 200035b7 lui a1,0x20003
17f8: 52418413 addi s0,gp,1316 # 20000d44 <DMATxDscrTab>
17fc: 4609 li a2,2
17fe: 71058593 addi a1,a1,1808 # 20003710 <MACTxBuf>
1802: 52418513 addi a0,gp,1316 # 20000d44 <DMATxDscrTab>
1806: aeeff0ef jal ra,af4 <ETH_DMATxDescChainInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:677
ETH_DMARxDescChainInit(DMARxDscrTab, MACRxBuf, ETH_RXBUFNB);
180a: 200015b7 lui a1,0x20001
180e: 4b418493 addi s1,gp,1204 # 20000cd4 <DMARxDscrTab>
1812: 461d li a2,7
1814: d6458593 addi a1,a1,-668 # 20000d64 <MACRxBuf>
1818: 4b418513 addi a0,gp,1204 # 20000cd4 <DMARxDscrTab>
181c: b1aff0ef jal ra,b36 <ETH_DMARxDescChainInit>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:678
pDMARxSet = DMARxDscrTab;
1820: 8891a423 sw s1,-1912(gp) # 200000a8 <pDMARxSet>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:679
pDMATxSet = DMATxDscrTab;
1824: 8881a623 sw s0,-1908(gp) # 200000ac <pDMATxSet>
NVIC_EnableIRQ():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:170
NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
1828: 6709 lui a4,0x2
182a: e000e7b7 lui a5,0xe000e
182e: 10e7a423 sw a4,264(a5) # e000e108 <_eusrstack+0xbffee108>
NVIC_SetPriority():
D:\Project\MINI212\ALL\soft\CH32V307EVT\EVT\EXAM\SRC\Core/core_riscv.h:286
NVIC->IPRIOR[(uint32_t)(IRQn)] = priority;
1832: 440786a3 sb zero,1101(a5)
ETH_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:682
NVIC_EnableIRQ(ETH_IRQn);
NVIC_SetPriority(ETH_IRQn, 0);
}
1836: 9dffe06f j 214 <__riscv_restore_0>
0000183a <ETH_LibInit>:
ETH_LibInit():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:692
* @brief Ethernet library initialization program
*
* @return command status
*/
uint8_t ETH_LibInit( uint8_t *ip, uint8_t *gwip, uint8_t *mask, uint8_t *macaddr )
{
183a: 9b7fe2ef jal t0,1f0 <__riscv_save_0>
183e: 7139 addi sp,sp,-64
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:697
uint8_t s;
struct _WCH_CFG cfg;
memset(&cfg,0,sizeof(cfg));
cfg.TxBufSize = ETH_TX_BUF_SZE;
1840: 5f400793 li a5,1524
1844: ca3e sw a5,20(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:698
cfg.TCPMss = WCHNET_TCP_MSS;
1846: 5b400793 li a5,1460
184a: cc3e sw a5,24(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:699
cfg.HeapSize = WCHNET_MEM_HEAP_SIZE;
184c: 6785 lui a5,0x1
184e: 26878793 addi a5,a5,616 # 1268 <ETH_RGMIIPinInit+0xaa>
1852: ce3e sw a5,28(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:700
cfg.ARPTableNum = WCHNET_NUM_ARP_TABLE;
1854: 03200793 li a5,50
1858: d03e sw a5,32(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:701
cfg.MiscConfig0 = WCHNET_MISC_CONFIG0;
185a: 10300793 li a5,259
185e: d23e sw a5,36(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:702
cfg.MiscConfig1 = WCHNET_MISC_CONFIG1;
1860: 405527b7 lui a5,0x40552
1864: 0785 addi a5,a5,1
1866: d43e sw a5,40(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:703
cfg.net_send = ETH_TxPktChainMode;
1868: 000017b7 lui a5,0x1
186c: 15278793 addi a5,a5,338 # 1152 <ETH_TxPktChainMode>
1870: da3e sw a5,52(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:704
cfg.CheckValid = WCHNET_CFG_VALID;
1872: 123457b7 lui a5,0x12345
1876: 67878793 addi a5,a5,1656 # 12345678 <_data_lma+0x1233c7e4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:692
{
187a: 892a mv s2,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:705
s = WCHNET_ConfigLIB(&cfg);
187c: 0848 addi a0,sp,20
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:692
{
187e: c62e sw a1,12(sp)
1880: c432 sw a2,8(sp)
1882: 84b6 mv s1,a3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:696
memset(&cfg,0,sizeof(cfg));
1884: d602 sw zero,44(sp)
1886: d802 sw zero,48(sp)
1888: dc02 sw zero,56(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:704
cfg.CheckValid = WCHNET_CFG_VALID;
188a: de3e sw a5,60(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:705
s = WCHNET_ConfigLIB(&cfg);
188c: 343000ef jal ra,23ce <WCHNET_ConfigLIB>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:706
if( s ){
1890: 842a mv s0,a0
1892: e911 bnez a0,18a6 <ETH_LibInit+0x6c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:709
return (s);
}
s = WCHNET_Init(ip,gwip,mask,macaddr);
1894: 4622 lw a2,8(sp)
1896: 45b2 lw a1,12(sp)
1898: 86a6 mv a3,s1
189a: 854a mv a0,s2
189c: 273000ef jal ra,230e <WCHNET_Init>
18a0: 842a mv s0,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:710
ETH_Init( macaddr );
18a2: 8526 mv a0,s1
18a4: 3f3d jal 17e2 <ETH_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/ETH/NetLib/eth_driver_RGMII.c:712
return (s);
}
18a6: 8522 mv a0,s0
18a8: 6121 addi sp,sp,64
18aa: 96bfe06f j 214 <__riscv_restore_0>
000018ae <Delay_Init>:
Delay_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:30
*
* @return none
*/
void Delay_Init(void)
{
p_us = SystemCoreClock / 8000000;
18ae: 8141a783 lw a5,-2028(gp) # 20000034 <SystemCoreClock>
18b2: 007a1737 lui a4,0x7a1
18b6: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79836c>
18ba: 02e7d7b3 divu a5,a5,a4
18be: 0ff7f793 andi a5,a5,255
18c2: 88f18923 sb a5,-1902(gp) # 200000b2 <p_us>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:31
p_ms = (uint16_t)p_us * 1000;
18c6: 3e800713 li a4,1000
18ca: 02e787b3 mul a5,a5,a4
18ce: 88f19823 sh a5,-1904(gp) # 200000b0 <p_ms>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:32
}
18d2: 8082 ret
000018d4 <Delay_Us>:
Delay_Us():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:47
*/
void Delay_Us(uint32_t n)
{
uint32_t i;
SysTick->SR &= ~(1 << 0);
18d4: e000f7b7 lui a5,0xe000f
18d8: 43d8 lw a4,4(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:50
i = (uint32_t)n * p_us;
SysTick->CMP = i;
18da: 4681 li a3,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:47
SysTick->SR &= ~(1 << 0);
18dc: 9b79 andi a4,a4,-2
18de: c3d8 sw a4,4(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:48
i = (uint32_t)n * p_us;
18e0: 8921c703 lbu a4,-1902(gp) # 200000b2 <p_us>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:50
SysTick->CMP = i;
18e4: 02a70633 mul a2,a4,a0
18e8: cb90 sw a2,16(a5)
18ea: cbd4 sw a3,20(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:51
SysTick->CTLR |= (1 << 4);
18ec: 4398 lw a4,0(a5)
18ee: 01076713 ori a4,a4,16
18f2: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:52
SysTick->CTLR |= (1 << 5) | (1 << 0);
18f4: 4398 lw a4,0(a5)
18f6: 02176713 ori a4,a4,33
18fa: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:54 (discriminator 1)
while((SysTick->SR & (1 << 0)) != (1 << 0))
18fc: 43d8 lw a4,4(a5)
18fe: 8b05 andi a4,a4,1
1900: df75 beqz a4,18fc <Delay_Us+0x28>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:56
;
SysTick->CTLR &= ~(1 << 0);
1902: 4398 lw a4,0(a5)
1904: 9b79 andi a4,a4,-2
1906: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:57
}
1908: 8082 ret
0000190a <USART_Printf_Init>:
USART_Printf_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:94
* @param baudrate - USART communication baud rate.
*
* @return None
*/
void USART_Printf_Init(uint32_t baudrate)
{
190a: 8e7fe2ef jal t0,1f0 <__riscv_save_0>
190e: 1101 addi sp,sp,-32
1910: 842a mv s0,a0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:116
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
#elif(DEBUG == DEBUG_UART3)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
1912: 4585 li a1,1
1914: 00040537 lui a0,0x40
1918: de6ff0ef jal ra,efe <RCC_APB1PeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:117
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
191c: 4585 li a1,1
191e: 4521 li a0,8
1920: dc0ff0ef jal ra,ee0 <RCC_APB2PeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:119
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
1924: 40000793 li a5,1024
1928: 827c sh a5,4(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:122
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
192a: 40011537 lui a0,0x40011
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:120
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
192e: 478d li a5,3
1930: c43e sw a5,8(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:122
GPIO_Init(GPIOB, &GPIO_InitStructure);
1932: 004c addi a1,sp,4
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:121
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
1934: 47e1 li a5,24
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:122
GPIO_Init(GPIOB, &GPIO_InitStructure);
1936: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x1fff0c00>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:121
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
193a: c63e sw a5,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:122
GPIO_Init(GPIOB, &GPIO_InitStructure);
193c: af4ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:126
#endif
USART_InitStructure.USART_BaudRate = baudrate;
1940: c822 sw s0,16(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:142
#elif(DEBUG == DEBUG_UART2)
USART_Init(USART2, &USART_InitStructure);
USART_Cmd(USART2, ENABLE);
#elif(DEBUG == DEBUG_UART3)
USART_Init(USART3, &USART_InitStructure);
1942: 40005437 lui s0,0x40005
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:129
USART_InitStructure.USART_Parity = USART_Parity_No;
1946: 000807b7 lui a5,0x80
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:142
USART_Init(USART3, &USART_InitStructure);
194a: 080c addi a1,sp,16
194c: 80040513 addi a0,s0,-2048 # 40004800 <_eusrstack+0x1ffe4800>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:129
USART_InitStructure.USART_Parity = USART_Parity_No;
1950: cc3e sw a5,24(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:127
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
1952: ca02 sw zero,20(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:130
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
1954: 00011e23 sh zero,28(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:142
USART_Init(USART3, &USART_InitStructure);
1958: f44ff0ef jal ra,109c <USART_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:143
USART_Cmd(USART3, ENABLE);
195c: 4585 li a1,1
195e: 80040513 addi a0,s0,-2048
1962: fc8ff0ef jal ra,112a <USART_Cmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:146
#endif
}
1966: 6105 addi sp,sp,32
1968: 8adfe06f j 214 <__riscv_restore_0>
0000196c <_write>:
_write():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:175
* size - Data length
*
* @return size: Data length
*/
__attribute__((used)) int _write(int fd, char *buf, int size)
{
196c: 86bfe2ef jal t0,1d6 <__riscv_save_4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:224
USART_SendData(USART1, *buf++);
#elif(DEBUG == DEBUG_UART2)
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
USART_SendData(USART2, *buf++);
#elif(DEBUG == DEBUG_UART3)
while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);
1970: 400054b7 lui s1,0x40005
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:175
{
1974: 89ae mv s3,a1
1976: 8932 mv s2,a2
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:215
for(i = 0; i < size; i++)
1978: 4401 li s0,0
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:224
while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);
197a: 80048493 addi s1,s1,-2048 # 40004800 <_eusrstack+0x1ffe4800>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:215 (discriminator 1)
for(i = 0; i < size; i++)
197e: 01244563 blt s0,s2,1988 <_write+0x1c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:230
USART_SendData(USART3, *buf++);
#endif
}
#endif
return size;
}
1982: 854a mv a0,s2
1984: 887fe06f j 20a <__riscv_restore_4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:224 (discriminator 1)
while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);
1988: 04000593 li a1,64
198c: 8526 mv a0,s1
198e: fbaff0ef jal ra,1148 <USART_GetFlagStatus>
1992: d97d beqz a0,1988 <_write+0x1c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:225 (discriminator 2)
USART_SendData(USART3, *buf++);
1994: 008987b3 add a5,s3,s0
1998: 00078583 lb a1,0(a5) # 80000 <_data_lma+0x7716c>
199c: 8526 mv a0,s1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:215 (discriminator 2)
for(i = 0; i < size; i++)
199e: 0405 addi s0,s0,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/debug.c:225 (discriminator 2)
USART_SendData(USART3, *buf++);
19a0: 05c2 slli a1,a1,0x10
19a2: 81c1 srli a1,a1,0x10
19a4: f9cff0ef jal ra,1140 <USART_SendData>
19a8: bfd9 j 197e <_write+0x12>
000019aa <DVP_Init>:
DVP_Init():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:17
static uint32_t frame_count = 0;
extern u8 socket[];
void DVP_Init(void)
{
19aa: 847fe2ef jal t0,1f0 <__riscv_save_0>
19ae: 1101 addi sp,sp,-32
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:21
GPIO_InitTypeDef GPIO_InitStructure = {0};
NVIC_InitTypeDef NVIC_InitStructure = {0};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
19b0: 4585 li a1,1
19b2: 4571 li a0,28
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:18
GPIO_InitTypeDef GPIO_InitStructure = {0};
19b4: ca02 sw zero,20(sp)
19b6: cc02 sw zero,24(sp)
19b8: ce02 sw zero,28(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:19
NVIC_InitTypeDef NVIC_InitStructure = {0};
19ba: c602 sw zero,12(sp)
19bc: c802 sw zero,16(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:21
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
19be: d22ff0ef jal ra,ee0 <RCC_APB2PeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:22
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DVP, ENABLE);
19c2: 4585 li a1,1
19c4: 6509 lui a0,0x2
19c6: cfcff0ef jal ra,ec2 <RCC_AHBPeriphClockCmd>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:26
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_9 | GPIO_Pin_10;
GPIO_Init(GPIOA, &GPIO_InitStructure);
19ca: 40011437 lui s0,0x40011
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:24
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
19ce: 4791 li a5,4
19d0: ce3e sw a5,28(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:26
GPIO_Init(GPIOA, &GPIO_InitStructure);
19d2: 084c addi a1,sp,20
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:25
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_9 | GPIO_Pin_10;
19d4: 67000793 li a5,1648
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:26
GPIO_Init(GPIOA, &GPIO_InitStructure);
19d8: 80040513 addi a0,s0,-2048 # 40010800 <_eusrstack+0x1fff0800>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:25
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_9 | GPIO_Pin_10;
19dc: 82fc sh a5,20(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:26
GPIO_Init(GPIOA, &GPIO_InitStructure);
19de: a52ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:27
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11;
19e2: 6785 lui a5,0x1
19e4: b0078793 addi a5,a5,-1280 # b00 <ETH_DMATxDescChainInit+0xc>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:28
GPIO_Init(GPIOC, &GPIO_InitStructure);
19e8: 084c addi a1,sp,20
19ea: 40011537 lui a0,0x40011
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:27
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11;
19ee: 82fc sh a5,20(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:28
GPIO_Init(GPIOC, &GPIO_InitStructure);
19f0: a40ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:30
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9;
GPIO_Init(GPIOB, &GPIO_InitStructure);
19f4: 084c addi a1,sp,20
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:29
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9;
19f6: 30800793 li a5,776
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:30
GPIO_Init(GPIOB, &GPIO_InitStructure);
19fa: c0040513 addi a0,s0,-1024
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:29
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9;
19fe: 82fc sh a5,20(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:30
GPIO_Init(GPIOB, &GPIO_InitStructure);
1a00: a30ff0ef jal ra,c30 <GPIO_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:32
NVIC_InitStructure.NVIC_IRQChannel = DVP_IRQn;
1a04: 05600793 li a5,86
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:35
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
1a08: 4485 li s1,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:36
NVIC_Init(&NVIC_InitStructure);
1a0a: 0068 addi a0,sp,12
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:32
NVIC_InitStructure.NVIC_IRQChannel = DVP_IRQn;
1a0c: 867c sh a5,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:35
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
1a0e: c826 sw s1,16(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:34
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
1a10: 00010723 sb zero,14(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:36
NVIC_Init(&NVIC_InitStructure);
1a14: adcff0ef jal ra,cf0 <NVIC_Init>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:38
DVP_Cfg(DVP_DMA_Disable, DVP_FLAG_FIFO_RESET_Enable, DVP_RX_RESET_Enable);
1a18: 4605 li a2,1
1a1a: 4585 li a1,1
1a1c: 4501 li a0,0
1a1e: f8ffe0ef jal ra,9ac <DVP_Cfg>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:39
DVP_Mode(RB_DVP_D8_MOD, Video_Mode);
1a22: 4581 li a1,0
1a24: 4501 li a0,0
1a26: f55fe0ef jal ra,97a <DVP_Mode>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:40
DVP->CR0 &= ~(RB_DVP_P_POLAR | RB_DVP_V_POLAR | RB_DVP_H_POLAR);
1a2a: 50050437 lui s0,0x50050
1a2e: 201c lbu a5,0(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:45
DVP->DMA_BUF0 = (uint32_t)DMA_LineBuf0;
DVP->DMA_BUF1 = (uint32_t)DMA_LineBuf1;
DVP->ROW_NUM = 1;
DVP->COL_NUM = BYTES_PER_LINE;
DVP_INTCfg(ENABLE, RB_DVP_IE_STR_FRM | RB_DVP_IE_ROW_DONE);
1a30: 458d li a1,3
1a32: 4505 li a0,1
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:40
DVP->CR0 &= ~(RB_DVP_P_POLAR | RB_DVP_V_POLAR | RB_DVP_H_POLAR);
1a34: 0f17f793 andi a5,a5,241
1a38: a01c sb a5,0(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:41
DVP->DMA_BUF0 = (uint32_t)DMA_LineBuf0;
1a3a: 200077b7 lui a5,0x20007
1a3e: 37478793 addi a5,a5,884 # 20007374 <DMA_LineBuf0>
1a42: c41c sw a5,8(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:42
DVP->DMA_BUF1 = (uint32_t)DMA_LineBuf1;
1a44: 200077b7 lui a5,0x20007
1a48: 57478793 addi a5,a5,1396 # 20007574 <DMA_LineBuf1>
1a4c: c45c sw a5,12(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:43
DVP->ROW_NUM = 1;
1a4e: a046 sh s1,4(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:44
DVP->COL_NUM = BYTES_PER_LINE;
1a50: 20000793 li a5,512
1a54: a07e sh a5,6(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:45
DVP_INTCfg(ENABLE, RB_DVP_IE_STR_FRM | RB_DVP_IE_ROW_DONE);
1a56: f0ffe0ef jal ra,964 <DVP_INTCfg>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:46
DVP_Cfg(DVP_DMA_Enable, DVP_FLAG_FIFO_RESET_Disable, DVP_RX_RESET_Disable);
1a5a: 4601 li a2,0
1a5c: 4581 li a1,0
1a5e: 4505 li a0,1
1a60: f4dfe0ef jal ra,9ac <DVP_Cfg>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:47
DVP->CR0 |= RB_DVP_ENABLE;
1a64: 201c lbu a5,0(s0)
1a66: 0017e793 ori a5,a5,1
1a6a: a01c sb a5,0(s0)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:48
}
1a6c: 6105 addi sp,sp,32
1a6e: fa6fe06f j 214 <__riscv_restore_0>
00001a72 <DVP_Task>:
DVP_Task():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:52
void DVP_Task(void)
{
if (!Line_Ready_Flag) return;
1a72: 89318793 addi a5,gp,-1901 # 200000b3 <Line_Ready_Flag>
1a76: 2398 lbu a4,0(a5)
1a78: 0ff77713 andi a4,a4,255
1a7c: cb59 beqz a4,1b12 <DVP_Task+0xa0>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:51
{
1a7e: f58fe2ef jal t0,1d6 <__riscv_save_4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:54
uint8_t *line = (uint8_t *)Ready_Line_Ptr;
1a82: 8941a983 lw s3,-1900(gp) # 200000b4 <Ready_Line_Ptr>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:55
uint32_t idx = current_line_idx;
1a86: 8981a403 lw s0,-1896(gp) # 200000b8 <current_line_idx>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:56
Line_Ready_Flag = 0;
1a8a: 00078023 sb zero,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:59
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD> socket <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (idx < SENSOR_HEIGHT && socket[0] != 0xFF)
1a8e: 0bf00793 li a5,191
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:51
{
1a92: 1141 addi sp,sp,-16
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:59
if (idx < SENSOR_HEIGHT && socket[0] != 0xFF)
1a94: 0487ec63 bltu a5,s0,1aec <DVP_Task+0x7a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:59 (discriminator 1)
1a98: 8641c503 lbu a0,-1948(gp) # 20000084 <socket>
1a9c: 0ff00793 li a5,255
1aa0: 04f50f63 beq a0,a5,1afe <DVP_Task+0x8c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:62
{
/* 4<>ֽ<EFBFBD><D6BD><EFBFBD>ͷ<EFBFBD><CDB7>֡<EFBFBD><D6A1>(2B) + <20>к<EFBFBD>(2B) */
uint8_t hdr[4] = {
1aa4: 89c18493 addi s1,gp,-1892 # 200000bc <frame_count>
1aa8: 209e lhu a5,0(s1)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:67
(frame_count >> 8) & 0xFF, frame_count & 0xFF,
(idx >> 8) & 0xFF, idx & 0xFF
};
u32 len = 4;
WCHNET_SocketSend(socket[0], hdr, &len);
1aaa: 0070 addi a2,sp,12
1aac: 002c addi a1,sp,8
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:62
uint8_t hdr[4] = {
1aae: 00879713 slli a4,a5,0x8
1ab2: 83a1 srli a5,a5,0x8
1ab4: 8fd9 or a5,a5,a4
1ab6: 847c sh a5,8(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:66
u32 len = 4;
1ab8: 4791 li a5,4
1aba: c63e sw a5,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:62
uint8_t hdr[4] = {
1abc: 00010523 sb zero,10(sp)
1ac0: 85c0 sb s0,11(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:67
WCHNET_SocketSend(socket[0], hdr, &len);
1ac2: 080010ef jal ra,2b42 <WCHNET_SocketSend>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:69
len = BYTES_PER_LINE;
WCHNET_SocketSend(socket[0], line, &len);
1ac6: 8641c503 lbu a0,-1948(gp) # 20000084 <socket>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:68
len = BYTES_PER_LINE;
1aca: 20000793 li a5,512
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:69
WCHNET_SocketSend(socket[0], line, &len);
1ace: 0070 addi a2,sp,12
1ad0: 85ce mv a1,s3
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:68
len = BYTES_PER_LINE;
1ad2: c63e sw a5,12(sp)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:69
WCHNET_SocketSend(socket[0], line, &len);
1ad4: 06e010ef jal ra,2b42 <WCHNET_SocketSend>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:72
/* ÿ֡<C3BF><D6A1>0<EFBFBD>д<EFBFBD>ӡһ<D3A1>Σ<EFBFBD>ȷ<EFBFBD><C8B7>֡<EFBFBD>ź<EFBFBD>socket״̬ */
if (idx == 0)
1ad8: e811 bnez s0,1aec <DVP_Task+0x7a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:73
printf("[DVP] frame=%lu socket=%d\r\n", frame_count, socket[0]);
1ada: 8641c603 lbu a2,-1948(gp) # 20000084 <socket>
1ade: 408c lw a1,0(s1)
1ae0: 00009537 lui a0,0x9
1ae4: de850513 addi a0,a0,-536 # 8de8 <MemSize+0x10>
1ae8: 048070ef jal ra,8b30 <printf>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:80
else if (idx == 0 && socket[0] == 0xFF)
{
/* socket δ<><CEB4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ */
printf("[DVP] frame=%lu waiting for TCP...\r\n", frame_count);
}
memset(line, 0, BYTES_PER_LINE);
1aec: 20000613 li a2,512
1af0: 4581 li a1,0
1af2: 854e mv a0,s3
1af4: f2cfe0ef jal ra,220 <memset>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:81
}
1af8: 0141 addi sp,sp,16
1afa: f10fe06f j 20a <__riscv_restore_4>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:75
else if (idx == 0 && socket[0] == 0xFF)
1afe: f47d bnez s0,1aec <DVP_Task+0x7a>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:78 (discriminator 1)
printf("[DVP] frame=%lu waiting for TCP...\r\n", frame_count);
1b00: 89c1a583 lw a1,-1892(gp) # 200000bc <frame_count>
1b04: 00009537 lui a0,0x9
1b08: e0450513 addi a0,a0,-508 # 8e04 <MemSize+0x2c>
1b0c: 024070ef jal ra,8b30 <printf>
1b10: bff1 j 1aec <DVP_Task+0x7a>
1b12: 8082 ret
00001b14 <DVP_IRQHandler>:
DVP_IRQHandler():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:86
void DVP_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
void DVP_IRQHandler(void)
{
if (DVP->IFR & RB_DVP_IF_STR_FRM)
1b14: 50050737 lui a4,0x50050
1b18: 2b1c lbu a5,16(a4)
1b1a: 8b85 andi a5,a5,1
1b1c: cb91 beqz a5,1b30 <DVP_IRQHandler+0x1c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:88
{
DVP->IFR = RB_DVP_IF_STR_FRM;
1b1e: 4785 li a5,1
1b20: ab1c sb a5,16(a4)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:89
current_line_idx = 0;
1b22: 8801ac23 sw zero,-1896(gp) # 200000b8 <current_line_idx>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:90
frame_count++;
1b26: 89c18793 addi a5,gp,-1892 # 200000bc <frame_count>
1b2a: 4398 lw a4,0(a5)
1b2c: 0705 addi a4,a4,1
1b2e: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:92
}
if (DVP->IFR & RB_DVP_IF_ROW_DONE)
1b30: 500507b7 lui a5,0x50050
1b34: 2b98 lbu a4,16(a5)
1b36: 8b09 andi a4,a4,2
1b38: c705 beqz a4,1b60 <DVP_IRQHandler+0x4c>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:94
{
DVP->IFR = RB_DVP_IF_ROW_DONE;
1b3a: 4709 li a4,2
1b3c: ab98 sb a4,16(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:95
Ready_Line_Ptr = (DVP->CR1 & RB_DVP_BUF_TOG) ? DMA_LineBuf0 : DMA_LineBuf1;
1b3e: 339c lbu a5,1(a5)
1b40: 8ba1 andi a5,a5,8
1b42: e38d bnez a5,1b64 <DVP_IRQHandler+0x50>
1b44: 200077b7 lui a5,0x20007
1b48: 57478793 addi a5,a5,1396 # 20007574 <DMA_LineBuf1>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:95 (discriminator 4)
1b4c: 88f1aa23 sw a5,-1900(gp) # 200000b4 <Ready_Line_Ptr>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:96 (discriminator 4)
current_line_idx++;
1b50: 89818793 addi a5,gp,-1896 # 200000b8 <current_line_idx>
1b54: 4398 lw a4,0(a5)
1b56: 0705 addi a4,a4,1
1b58: c398 sw a4,0(a5)
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:97 (discriminator 4)
Line_Ready_Flag = 1;
1b5a: 4705 li a4,1
1b5c: 88e189a3 sb a4,-1901(gp) # 200000b3 <Line_Ready_Flag>
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:99
}
}
1b60: 30200073 mret
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Debug/dvp.c:95
Ready_Line_Ptr = (DVP->CR1 & RB_DVP_BUF_TOG) ? DMA_LineBuf0 : DMA_LineBuf1;
1b64: 200077b7 lui a5,0x20007
1b68: 37478793 addi a5,a5,884 # 20007374 <DMA_LineBuf0>
1b6c: b7c5 j 1b4c <DVP_IRQHandler+0x38>
00001b6e <__get_MEPC>:
__get_MEPC():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Core/core_riscv.c:248
*/
uint32_t __get_MEPC(void)
{
uint32_t result;
__ASM volatile ( "csrr %0," "mepc" : "=r" (result) );
1b6e: 34102573 csrr a0,mepc
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Core/core_riscv.c:250
return (result);
}
1b72: 8082 ret
00001b74 <__get_MCAUSE>:
__get_MCAUSE():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Core/core_riscv.c:275
*/
uint32_t __get_MCAUSE(void)
{
uint32_t result;
__ASM volatile ( "csrr %0," "mcause" : "=r" (result) );
1b74: 34202573 csrr a0,mcause
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Core/core_riscv.c:277
return (result);
}
1b78: 8082 ret
00001b7a <__get_MTVAL>:
__get_MTVAL():
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Core/core_riscv.c:302
*/
uint32_t __get_MTVAL(void)
{
uint32_t result;
__ASM volatile ( "csrr %0," "mtval" : "=r" (result) );
1b7a: 34302573 csrr a0,mtval
D:/Project/MINI212/ALL/soft/CH32V307EVT/EVT/EXAM/SRC/Core/core_riscv.c:304
return (result);
}
1b7e: 8082 ret
00001b80 <WCHNET_PeriodicHandle>:
WCHNET_PeriodicHandle():
1b80: e70fe2ef jal t0,1f0 <__riscv_save_0>
1b84: 8801a783 lw a5,-1920(gp) # 200000a0 <LocalTime>
1b88: 1141 addi sp,sp,-16
1b8a: c63e sw a5,12(sp)
1b8c: 176010ef jal ra,2d02 <WCHNET_GetPHYStatus>
1b90: 8911 andi a0,a0,4
1b92: 14050363 beqz a0,1cd8 <WCHNET_PeriodicHandle+0x158>
1b96: 8b818793 addi a5,gp,-1864 # 200000d8 <TCPTimer>
1b9a: 4398 lw a4,0(a5)
1b9c: 46b2 lw a3,12(sp)
1b9e: 8e99 sub a3,a3,a4
1ba0: 20008737 lui a4,0x20008
1ba4: 81472703 lw a4,-2028(a4) # 20007814 <NetInf+0x1c>
1ba8: 8305 srli a4,a4,0x1
1baa: 00d77663 bgeu a4,a3,1bb6 <WCHNET_PeriodicHandle+0x36>
1bae: 4732 lw a4,12(sp)
1bb0: c398 sw a4,0(a5)
1bb2: 377030ef jal ra,5728 <tcp_tmr>
1bb6: 715030ef jal ra,5aca <RemoveTimeWaiTCP>
1bba: 8d41a783 lw a5,-1836(gp) # 200000f4 <tcpSendAckFlag>
1bbe: c791 beqz a5,1bca <WCHNET_PeriodicHandle+0x4a>
1bc0: 38b030ef jal ra,574a <tcp_fastsendack>
1bc4: e119 bnez a0,1bca <WCHNET_PeriodicHandle+0x4a>
1bc6: 8c01aa23 sw zero,-1836(gp) # 200000f4 <tcpSendAckFlag>
1bca: 8b418493 addi s1,gp,-1868 # 200000d4 <IPFragTimer>
1bce: 4098 lw a4,0(s1)
1bd0: 47b2 lw a5,12(sp)
1bd2: 8f99 sub a5,a5,a4
1bd4: 3e700713 li a4,999
1bd8: 00f77663 bgeu a4,a5,1be4 <WCHNET_PeriodicHandle+0x64>
1bdc: 0ee020ef jal ra,3cca <ip_reass_tmr>
1be0: 47b2 lw a5,12(sp)
1be2: c09c sw a5,0(s1)
1be4: 8a018793 addi a5,gp,-1888 # 200000c0 <ARPTimer>
1be8: 4398 lw a4,0(a5)
1bea: 46b2 lw a3,12(sp)
1bec: 06400613 li a2,100
1bf0: 8e99 sub a3,a3,a4
1bf2: 8c51c703 lbu a4,-1851(gp) # 200000e5 <ARP_Retry_Period>
1bf6: 02c70733 mul a4,a4,a2
1bfa: 00e6e663 bltu a3,a4,1c06 <WCHNET_PeriodicHandle+0x86>
1bfe: 4732 lw a4,12(sp)
1c00: c398 sw a4,0(a5)
1c02: 6d2010ef jal ra,32d4 <etharp_tmr>
1c06: 200077b7 lui a5,0x20007
1c0a: 7d878793 addi a5,a5,2008 # 200077d8 <DNSInf>
1c0e: 47d8 lw a4,12(a5)
1c10: cf11 beqz a4,1c2c <WCHNET_PeriodicHandle+0xac>
1c12: 8b018713 addi a4,gp,-1872 # 200000d0 <DNSTimer>
1c16: 4310 lw a2,0(a4)
1c18: 46b2 lw a3,12(sp)
1c1a: 8e91 sub a3,a3,a2
1c1c: 3e700613 li a2,999
1c20: 00d67663 bgeu a2,a3,1c2c <WCHNET_PeriodicHandle+0xac>
1c24: 46b2 lw a3,12(sp)
1c26: 43dc lw a5,4(a5)
1c28: c314 sw a3,0(a4)
1c2a: 9782 jalr a5
1c2c: 200074b7 lui s1,0x20007
1c30: 7804a783 lw a5,1920(s1) # 20007780 <DHCPCtrl>
1c34: cba9 beqz a5,1c86 <WCHNET_PeriodicHandle+0x106>
1c36: 8ac18713 addi a4,gp,-1876 # 200000cc <DHCPfineTimer>
1c3a: 431c lw a5,0(a4)
1c3c: 46b2 lw a3,12(sp)
1c3e: 0fa00613 li a2,250
1c42: 8e9d sub a3,a3,a5
1c44: 200087b7 lui a5,0x20008
1c48: 8507a783 lw a5,-1968(a5) # 20007850 <WCHCfg+0x14>
1c4c: 83ed srli a5,a5,0x1b
1c4e: 02c787b3 mul a5,a5,a2
1c52: 00f6e963 bltu a3,a5,1c64 <WCHNET_PeriodicHandle+0xe4>
1c56: 47b2 lw a5,12(sp)
1c58: c31c sw a5,0(a4)
1c5a: 78048793 addi a5,s1,1920
1c5e: 4b9c lw a5,16(a5)
1c60: c391 beqz a5,1c64 <WCHNET_PeriodicHandle+0xe4>
1c62: 9782 jalr a5
1c64: 8a818793 addi a5,gp,-1880 # 200000c8 <DHCPcoarseTimer>
1c68: 4398 lw a4,0(a5)
1c6a: 46b2 lw a3,12(sp)
1c6c: 8e99 sub a3,a3,a4
1c6e: 673d lui a4,0xf
1c70: a5f70713 addi a4,a4,-1441 # ea5f <_data_lma+0x5bcb>
1c74: 00d77963 bgeu a4,a3,1c86 <WCHNET_PeriodicHandle+0x106>
1c78: 4732 lw a4,12(sp)
1c7a: 78048493 addi s1,s1,1920
1c7e: c398 sw a4,0(a5)
1c80: 48dc lw a5,20(s1)
1c82: c391 beqz a5,1c86 <WCHNET_PeriodicHandle+0x106>
1c84: 9782 jalr a5
1c86: 4532 lw a0,12(sp)
1c88: 8a418493 addi s1,gp,-1884 # 200000c4 <ArpCheckTime>
1c8c: 2c75 jal 1f48 <IPCheckTmr>
1c8e: 409c lw a5,0(s1)
1c90: 4732 lw a4,12(sp)
1c92: 8f1d sub a4,a4,a5
1c94: 67bd lui a5,0xf
1c96: a5f78793 addi a5,a5,-1441 # ea5f <_data_lma+0x5bcb>
1c9a: 00e7f563 bgeu a5,a4,1ca4 <WCHNET_PeriodicHandle+0x124>
1c9e: 2c8d jal 1f10 <SelIPARPSend>
1ca0: 47b2 lw a5,12(sp)
1ca2: c09c sw a5,0(s1)
1ca4: 8d01c703 lbu a4,-1840(gp) # 200000f0 <phydata>
1ca8: 84be mv s1,a5
1caa: 0ff77713 andi a4,a4,255
1cae: c70d beqz a4,1cd8 <WCHNET_PeriodicHandle+0x158>
1cb0: 8d01c703 lbu a4,-1840(gp) # 200000f0 <phydata>
1cb4: 0c077713 andi a4,a4,192
1cb8: e31d bnez a4,1cde <WCHNET_PeriodicHandle+0x15e>
1cba: 200087b7 lui a5,0x20008
1cbe: 8587a783 lw a5,-1960(a5) # 20007858 <WCHCfg+0x1c>
1cc2: c399 beqz a5,1cc8 <WCHNET_PeriodicHandle+0x148>
1cc4: 4505 li a0,1
1cc6: 9782 jalr a5
1cc8: 8801a703 lw a4,-1920(gp) # 200000a0 <LocalTime>
1ccc: 8ce1a023 sw a4,-1856(gp) # 200000e0 <phydatatime>
1cd0: 04000793 li a5,64
1cd4: 8cf18823 sb a5,-1840(gp) # 200000f0 <phydata>
1cd8: 0141 addi sp,sp,16
1cda: d3afe06f j 214 <__riscv_restore_0>
1cde: 8d01c703 lbu a4,-1840(gp) # 200000f0 <phydata>
1ce2: 04077713 andi a4,a4,64
1ce6: cb15 beqz a4,1d1a <WCHNET_PeriodicHandle+0x19a>
1ce8: 8c01a683 lw a3,-1856(gp) # 200000e0 <phydatatime>
1cec: 8801a703 lw a4,-1920(gp) # 200000a0 <LocalTime>
1cf0: 8c018913 addi s2,gp,-1856 # 200000e0 <phydatatime>
1cf4: 8f15 sub a4,a4,a3
1cf6: 06400693 li a3,100
1cfa: fce6ffe3 bgeu a3,a4,1cd8 <WCHNET_PeriodicHandle+0x158>
1cfe: 200087b7 lui a5,0x20008
1d02: 8587a783 lw a5,-1960(a5) # 20007858 <WCHCfg+0x1c>
1d06: c399 beqz a5,1d0c <WCHNET_PeriodicHandle+0x18c>
1d08: 4501 li a0,0
1d0a: 9782 jalr a5
1d0c: 8801a783 lw a5,-1920(gp) # 200000a0 <LocalTime>
1d10: 00f92023 sw a5,0(s2)
1d14: f8000793 li a5,-128
1d18: bf75 j 1cd4 <WCHNET_PeriodicHandle+0x154>
1d1a: 8d01c703 lbu a4,-1840(gp) # 200000f0 <phydata>
1d1e: 0762 slli a4,a4,0x18
1d20: 8761 srai a4,a4,0x18
1d22: fa075be3 bgez a4,1cd8 <WCHNET_PeriodicHandle+0x158>
1d26: 8c01a683 lw a3,-1856(gp) # 200000e0 <phydatatime>
1d2a: 8801a703 lw a4,-1920(gp) # 200000a0 <LocalTime>
1d2e: 8f15 sub a4,a4,a3
1d30: 06400693 li a3,100
1d34: fae6f2e3 bgeu a3,a4,1cd8 <WCHNET_PeriodicHandle+0x158>
1d38: 8c018823 sb zero,-1840(gp) # 200000f0 <phydata>
1d3c: bf71 j 1cd8 <WCHNET_PeriodicHandle+0x158>
00001d3e <WCHNET_NetInput>:
WCHNET_NetInput():
1d3e: cb2fe2ef jal t0,1f0 <__riscv_save_0>
1d42: 20008537 lui a0,0x20008
1d46: 86850513 addi a0,a0,-1944 # 20007868 <WCHNetIf>
1d4a: 18f010ef jal ra,36d8 <ethernetif_input>
1d4e: cc6fe06f j 214 <__riscv_restore_0>
00001d52 <WCHNET_PhyStatus>:
WCHNET_PhyStatus():
1d52: c9efe2ef jal t0,1f0 <__riscv_save_0>
1d56: 200077b7 lui a5,0x20007
1d5a: 7f878793 addi a5,a5,2040 # 200077f8 <NetInf>
1d5e: 57d8 lw a4,44(a5)
1d60: 20008437 lui s0,0x20008
1d64: d388 sw a0,32(a5)
1d66: 00476713 ori a4,a4,4
1d6a: d7d8 sw a4,44(a5)
1d6c: 8911 andi a0,a0,4
1d6e: 83c40793 addi a5,s0,-1988 # 2000783c <WCHCfg>
1d72: 4f9c lw a5,24(a5)
1d74: 83c40413 addi s0,s0,-1988
1d78: cd01 beqz a0,1d90 <WCHNET_PhyStatus+0x3e>
1d7a: c399 beqz a5,1d80 <WCHNET_PhyStatus+0x2e>
1d7c: 4501 li a0,0
1d7e: 9782 jalr a5
1d80: 4c5c lw a5,28(s0)
1d82: c399 beqz a5,1d88 <WCHNET_PhyStatus+0x36>
1d84: 4501 li a0,0
1d86: 9782 jalr a5
1d88: 4505 li a0,1
1d8a: 22a5 jal 1ef2 <IPCheckParaInit>
1d8c: c88fe06f j 214 <__riscv_restore_0>
1d90: c399 beqz a5,1d96 <WCHNET_PhyStatus+0x44>
1d92: 4505 li a0,1
1d94: 9782 jalr a5
1d96: 4c5c lw a5,28(s0)
1d98: dbf5 beqz a5,1d8c <WCHNET_PhyStatus+0x3a>
1d9a: 4505 li a0,1
1d9c: 9782 jalr a5
1d9e: b7fd j 1d8c <WCHNET_PhyStatus+0x3a>
00001da0 <WCHNET_Rx>:
WCHNET_Rx():
1da0: 8881a783 lw a5,-1912(gp) # 200000a8 <pDMARxSet>
1da4: 00052023 sw zero,0(a0)
1da8: cb9d beqz a5,1dde <WCHNET_Rx+0x3e>
1daa: 4394 lw a3,0(a5)
1dac: 0006db63 bgez a3,1dc2 <WCHNET_Rx+0x22>
1db0: 47d4 lw a3,12(a5)
1db2: 4290 lw a2,0(a3)
1db4: 02064563 bltz a2,1dde <WCHNET_Rx+0x3e>
1db8: 439c lw a5,0(a5)
1dba: 0007d463 bgez a5,1dc2 <WCHNET_Rx+0x22>
1dbe: 88d1a423 sw a3,-1912(gp) # 200000a8 <pDMARxSet>
1dc2: 8881a783 lw a5,-1912(gp) # 200000a8 <pDMARxSet>
1dc6: 6591 lui a1,0x4
1dc8: 4601 li a2,0
1dca: 15fd addi a1,a1,-1
1dcc: 4835 li a6,13
1dce: 800008b7 lui a7,0x80000
1dd2: 4394 lw a3,0(a5)
1dd4: 0006d763 bgez a3,1de2 <WCHNET_Rx+0x42>
1dd8: c219 beqz a2,1dde <WCHNET_Rx+0x3e>
1dda: 88f1a423 sw a5,-1912(gp) # 200000a8 <pDMARxSet>
1dde: 4501 li a0,0
1de0: 8082 ret
1de2: 4394 lw a3,0(a5)
1de4: 01069313 slli t1,a3,0x10
1de8: 04034263 bltz t1,1e2c <WCHNET_Rx+0x8c>
1dec: 4394 lw a3,0(a5)
1dee: 1006f693 andi a3,a3,256
1df2: ce8d beqz a3,1e2c <WCHNET_Rx+0x8c>
1df4: 4394 lw a3,0(a5)
1df6: 2006f693 andi a3,a3,512
1dfa: ca8d beqz a3,1e2c <WCHNET_Rx+0x8c>
1dfc: 4394 lw a3,0(a5)
1dfe: 82c1 srli a3,a3,0x10
1e00: 8eed and a3,a3,a1
1e02: 16f1 addi a3,a3,-4
1e04: c114 sw a3,0(a0)
1e06: 02d87163 bgeu a6,a3,1e28 <WCHNET_Rx+0x88>
1e0a: 4394 lw a3,0(a5)
1e0c: 0206f693 andi a3,a3,32
1e10: ea81 bnez a3,1e20 <WCHNET_Rx+0x80>
1e12: c219 beqz a2,1e18 <WCHNET_Rx+0x78>
1e14: 88f1a423 sw a5,-1912(gp) # 200000a8 <pDMARxSet>
1e18: 479c lw a5,8(a5)
1e1a: c15c sw a5,4(a0)
1e1c: 4505 li a0,1
1e1e: 8082 ret
1e20: 4394 lw a3,0(a5)
1e22: 0816f693 andi a3,a3,129
1e26: d6f5 beqz a3,1e12 <WCHNET_Rx+0x72>
1e28: 00052023 sw zero,0(a0)
1e2c: 0117a023 sw a7,0(a5)
1e30: 4605 li a2,1
1e32: 47dc lw a5,12(a5)
1e34: bf79 j 1dd2 <WCHNET_Rx+0x32>
00001e36 <setRxBuffAddr>:
setRxBuffAddr():
1e36: 8881a703 lw a4,-1912(gp) # 200000a8 <pDMARxSet>
1e3a: 800006b7 lui a3,0x80000
1e3e: c314 sw a3,0(a4)
1e40: 4758 lw a4,12(a4)
1e42: 88e1a423 sw a4,-1912(gp) # 200000a8 <pDMARxSet>
1e46: 8082 ret
00001e48 <WCHNET_Tx>:
WCHNET_Tx():
1e48: ba8fe2ef jal t0,1f0 <__riscv_save_0>
1e4c: 8d01c783 lbu a5,-1840(gp) # 200000f0 <phydata>
1e50: 0ff7f793 andi a5,a5,255
1e54: e781 bnez a5,1e5c <WCHNET_Tx+0x14>
1e56: 4785 li a5,1
1e58: 8cf18823 sb a5,-1840(gp) # 200000f0 <phydata>
1e5c: 8801a703 lw a4,-1920(gp) # 200000a0 <LocalTime>
1e60: 8bc18793 addi a5,gp,-1860 # 200000dc <TxTimer>
1e64: cb09 beqz a4,1e76 <WCHNET_Tx+0x2e>
1e66: c398 sw a4,0(a5)
1e68: 200087b7 lui a5,0x20008
1e6c: 85c7a783 lw a5,-1956(a5) # 2000785c <WCHCfg+0x20>
1e70: 9782 jalr a5
1e72: ba2fe06f j 214 <__riscv_restore_0>
1e76: 4705 li a4,1
1e78: b7fd j 1e66 <WCHNET_Tx+0x1e>
00001e7a <GetChipID>:
GetChipID():
1e7a: 1ffff7b7 lui a5,0x1ffff
1e7e: 7067d503 lhu a0,1798(a5) # 1ffff706 <_data_lma+0x1fff6872>
1e82: 0f057513 andi a0,a0,240
1e86: 8082 ret
00001e88 <getTxBuffAddr>:
getTxBuffAddr():
1e88: b68fe2ef jal t0,1f0 <__riscv_save_0>
1e8c: 200087b7 lui a5,0x20008
1e90: 85c7a783 lw a5,-1956(a5) # 2000785c <WCHCfg+0x20>
1e94: 4901 li s2,0
1e96: c7b1 beqz a5,1ee2 <getTxBuffAddr+0x5a>
1e98: 86c1a483 lw s1,-1940(gp) # 2000008c <DMATxDescToSet>
1e9c: c0b9 beqz s1,1ee2 <getTxBuffAddr+0x5a>
1e9e: 409c lw a5,0(s1)
1ea0: 0084a903 lw s2,8(s1)
1ea4: 8bc18413 addi s0,gp,-1860 # 200000dc <TxTimer>
1ea8: 0207db63 bgez a5,1ede <getTxBuffAddr+0x56>
1eac: 37f9 jal 1e7a <GetChipID>
1eae: 4014 lw a3,0(s0)
1eb0: 4781 li a5,0
1eb2: 08000613 li a2,128
1eb6: 06300813 li a6,99
1eba: 68a1 lui a7,0x8
1ebc: 03000313 li t1,48
1ec0: 00c50463 beq a0,a2,1ec8 <getTxBuffAddr+0x40>
1ec4: 02651263 bne a0,t1,1ee8 <getTxBuffAddr+0x60>
1ec8: 8801a703 lw a4,-1920(gp) # 200000a0 <LocalTime>
1ecc: 8f15 sub a4,a4,a3
1ece: 00e86463 bltu a6,a4,1ed6 <getTxBuffAddr+0x4e>
1ed2: 00f8fb63 bgeu a7,a5,1ee8 <getTxBuffAddr+0x60>
1ed6: 409c lw a5,0(s1)
1ed8: 0786 slli a5,a5,0x1
1eda: 8385 srli a5,a5,0x1
1edc: c09c sw a5,0(s1)
1ede: 00042023 sw zero,0(s0)
1ee2: 854a mv a0,s2
1ee4: b30fe06f j 214 <__riscv_restore_0>
1ee8: 4098 lw a4,0(s1)
1eea: fe075ae3 bgez a4,1ede <getTxBuffAddr+0x56>
1eee: 0785 addi a5,a5,1
1ef0: bfc1 j 1ec0 <getTxBuffAddr+0x38>
00001ef2 <IPCheckParaInit>:
IPCheckParaInit():
1ef2: 8801a703 lw a4,-1920(gp) # 200000a0 <LocalTime>
1ef6: 200077b7 lui a5,0x20007
1efa: 77478793 addi a5,a5,1908 # 20007774 <SelARP>
1efe: a388 sb a0,0(a5)
1f00: 00079123 sh zero,2(a5)
1f04: 00079223 sh zero,4(a5)
1f08: c798 sw a4,8(a5)
1f0a: 000780a3 sb zero,1(a5)
1f0e: 8082 ret
00001f10 <SelIPARPSend>:
SelIPARPSend():
1f10: ae0fe2ef jal t0,1f0 <__riscv_save_0>
1f14: 200084b7 lui s1,0x20008
1f18: 86848413 addi s0,s1,-1944 # 20007868 <WCHNetIf>
1f1c: 405c lw a5,4(s0)
1f1e: 1141 addi sp,sp,-16
1f20: 006c addi a1,sp,12
1f22: 86848513 addi a0,s1,-1944
1f26: c63e sw a5,12(sp)
1f28: 00042223 sw zero,4(s0)
1f2c: 2da010ef jal ra,3206 <etharp_request>
1f30: 47b2 lw a5,12(sp)
1f32: 006c addi a1,sp,12
1f34: 86848513 addi a0,s1,-1944
1f38: c05c sw a5,4(s0)
1f3a: 445c lw a5,12(s0)
1f3c: c63e sw a5,12(sp)
1f3e: 2c8010ef jal ra,3206 <etharp_request>
1f42: 0141 addi sp,sp,16
1f44: ad0fe06f j 214 <__riscv_restore_0>
00001f48 <IPCheckTmr>:
IPCheckTmr():
1f48: 200077b7 lui a5,0x20007
1f4c: 77478793 addi a5,a5,1908 # 20007774 <SelARP>
1f50: 2398 lbu a4,0(a5)
1f52: e319 bnez a4,1f58 <IPCheckTmr+0x10>
1f54: c788 sw a0,8(a5)
1f56: 8082 ret
1f58: 4798 lw a4,8(a5)
1f5a: 3e700693 li a3,999
1f5e: 40e50733 sub a4,a0,a4
1f62: 02e6f163 bgeu a3,a4,1f84 <IPCheckTmr+0x3c>
1f66: a8afe2ef jal t0,1f0 <__riscv_save_0>
1f6a: 23ba lhu a4,2(a5)
1f6c: c788 sw a0,8(a5)
1f6e: 4691 li a3,4
1f70: 00e6f663 bgeu a3,a4,1f7c <IPCheckTmr+0x34>
1f74: 4501 li a0,0
1f76: 3fb5 jal 1ef2 <IPCheckParaInit>
1f78: a9cfe06f j 214 <__riscv_restore_0>
1f7c: 0705 addi a4,a4,1
1f7e: a3ba sh a4,2(a5)
1f80: 3f41 jal 1f10 <SelIPARPSend>
1f82: bfdd j 1f78 <IPCheckTmr+0x30>
1f84: 8082 ret
00001f86 <IPConflictHandle>:
IPConflictHandle():
1f86: a6afe2ef jal t0,1f0 <__riscv_save_0>
1f8a: 842a mv s0,a0
1f8c: 4501 li a0,0
1f8e: 3795 jal 1ef2 <IPCheckParaInit>
1f90: 200077b7 lui a5,0x20007
1f94: 77478793 addi a5,a5,1908 # 20007774 <SelARP>
1f98: c811 beqz s0,1fac <IPConflictHandle+0x26>
1f9a: 4705 li a4,1
1f9c: b398 sb a4,1(a5)
1f9e: 200087b7 lui a5,0x20008
1fa2: 4709 li a4,2
1fa4: 82e7a223 sw a4,-2012(a5) # 20007824 <NetInf+0x2c>
1fa8: a6cfe06f j 214 <__riscv_restore_0>
1fac: 000780a3 sb zero,1(a5)
1fb0: bfe5 j 1fa8 <IPConflictHandle+0x22>
00001fb2 <NET_TCPError>:
NET_TCPError():
1fb2: 8082 ret
00001fb4 <LwipTCPSendCallBack>:
LwipTCPSendCallBack():
1fb4: 03852803 lw a6,56(a0)
1fb8: 02080b63 beqz a6,1fee <LwipTCPSendCallBack+0x3a>
1fbc: a34fe2ef jal t0,1f0 <__riscv_save_0>
1fc0: 5dfc lw a5,124(a1)
1fc2: 4701 li a4,0
1fc4: c791 beqz a5,1fd0 <LwipTCPSendCallBack+0x1c>
1fc6: 0705 addi a4,a4,1
1fc8: 0742 slli a4,a4,0x10
1fca: 8341 srli a4,a4,0x10
1fcc: 439c lw a5,0(a5)
1fce: bfdd j 1fc4 <LwipTCPSendCallBack+0x10>
1fd0: 0805a783 lw a5,128(a1) # 4080 <ip_reass+0x2d0>
1fd4: c791 beqz a5,1fe0 <LwipTCPSendCallBack+0x2c>
1fd6: 0705 addi a4,a4,1
1fd8: 0742 slli a4,a4,0x10
1fda: 8341 srli a4,a4,0x10
1fdc: 439c lw a5,0(a5)
1fde: bfdd j 1fd4 <LwipTCPSendCallBack+0x20>
1fe0: 4681 li a3,0
1fe2: 4601 li a2,0
1fe4: 4581 li a1,0
1fe6: 9802 jalr a6
1fe8: 4501 li a0,0
1fea: a2afe06f j 214 <__riscv_restore_0>
1fee: 4501 li a0,0
1ff0: 8082 ret
00001ff2 <LwipTCPPollCallBack>:
LwipTCPPollCallBack():
1ff2: 4501 li a0,0
1ff4: 8082 ret
00001ff6 <SocketIPRAWReceive>:
SocketIPRAWReceive():
1ff6: 9d2fe2ef jal t0,1c8 <__riscv_save_10>
1ffa: 425c lw a5,4(a2)
1ffc: 00852a03 lw s4,8(a0)
2000: 00c52903 lw s2,12(a0)
2004: 4900 lw s0,16(a0)
2006: 84aa mv s1,a0
2008: 2388 lbu a0,0(a5)
200a: 339c lbu a5,1(a5)
200c: 89b2 mv s3,a2
200e: 07a2 slli a5,a5,0x8
2010: 8d5d or a0,a0,a5
2012: 7ba010ef jal ra,37cc <ntohs>
2016: 00655593 srli a1,a0,0x6
201a: 03c5f593 andi a1,a1,60
201e: 40b005b3 neg a1,a1
2022: 854e mv a0,s3
2024: 31d020ef jal ra,4b40 <pbuf_header>
2028: e559 bnez a0,20b6 <SocketIPRAWReceive+0xc0>
202a: 44dc lw a5,12(s1)
202c: 4c98 lw a4,24(s1)
202e: 0089db03 lhu s6,8(s3)
2032: 8f99 sub a5,a5,a4
2034: 0167e463 bltu a5,s6,203c <SocketIPRAWReceive+0x46>
2038: 000b1863 bnez s6,2048 <SocketIPRAWReceive+0x52>
203c: 854e mv a0,s3
203e: 371020ef jal ra,4bae <pbuf_free>
2042: 4505 li a0,1
2044: 9bcfe06f j 200 <__riscv_restore_10>
2048: 9a4a add s4,s4,s2
204a: 894e mv s2,s3
204c: 00a95603 lhu a2,10(s2)
2050: 408a0ab3 sub s5,s4,s0
2054: 00492b83 lw s7,4(s2)
2058: 04caf463 bgeu s5,a2,20a0 <SocketIPRAWReceive+0xaa>
205c: 8656 mv a2,s5
205e: 85de mv a1,s7
2060: 8522 mv a0,s0
2062: 355060ef jal ra,8bb6 <memcpy>
2066: 00a95783 lhu a5,10(s2)
206a: 4498 lw a4,8(s1)
206c: 41440433 sub s0,s0,s4
2070: 943e add s0,s0,a5
2072: 8622 mv a2,s0
2074: 015b85b3 add a1,s7,s5
2078: 853a mv a0,a4
207a: 33d060ef jal ra,8bb6 <memcpy>
207e: 942a add s0,s0,a0
2080: 00092903 lw s2,0(s2)
2084: fc0914e3 bnez s2,204c <SocketIPRAWReceive+0x56>
2088: 854e mv a0,s3
208a: 325020ef jal ra,4bae <pbuf_free>
208e: 4c9c lw a5,24(s1)
2090: c880 sw s0,16(s1)
2092: 97da add a5,a5,s6
2094: cc9c sw a5,24(s1)
2096: 409c lw a5,0(s1)
2098: 0047e793 ori a5,a5,4
209c: c09c sw a5,0(s1)
209e: b755 j 2042 <SocketIPRAWReceive+0x4c>
20a0: 8522 mv a0,s0
20a2: 85de mv a1,s7
20a4: 313060ef jal ra,8bb6 <memcpy>
20a8: 00a95783 lhu a5,10(s2)
20ac: 943e add s0,s0,a5
20ae: fd5799e3 bne a5,s5,2080 <SocketIPRAWReceive+0x8a>
20b2: 4480 lw s0,8(s1)
20b4: b7f1 j 2080 <SocketIPRAWReceive+0x8a>
20b6: 4501 li a0,0
20b8: b771 j 2044 <SocketIPRAWReceive+0x4e>
000020ba <SocketUdpReceive>:
SocketUdpReceive():
20ba: ce61 beqz a2,2192 <SocketUdpReceive+0xd8>
20bc: 90cfe2ef jal t0,1c8 <__riscv_save_10>
20c0: 00c52b83 lw s7,12(a0)
20c4: 4d1c lw a5,24(a0)
20c6: 00865b03 lhu s6,8(a2)
20ca: 8aba mv s5,a4
20cc: 40fb87b3 sub a5,s7,a5
20d0: 8a36 mv s4,a3
20d2: 8932 mv s2,a2
20d4: 842a mv s0,a0
20d6: 0167e463 bltu a5,s6,20de <SocketUdpReceive+0x24>
20da: 000b1763 bnez s6,20e8 <SocketUdpReceive+0x2e>
20de: 854a mv a0,s2
20e0: 2cf020ef jal ra,4bae <pbuf_free>
20e4: 91cfe06f j 200 <__riscv_restore_10>
20e8: 451c lw a5,8(a0)
20ea: 4904 lw s1,16(a0)
20ec: 89b2 mv s3,a2
20ee: 9bbe add s7,s7,a5
20f0: 00a9d603 lhu a2,10(s3)
20f4: 409b8c33 sub s8,s7,s1
20f8: 0049ac83 lw s9,4(s3)
20fc: 06cc7763 bgeu s8,a2,216a <SocketUdpReceive+0xb0>
2100: 8662 mv a2,s8
2102: 85e6 mv a1,s9
2104: 8526 mv a0,s1
2106: 2b1060ef jal ra,8bb6 <memcpy>
210a: 00a9d783 lhu a5,10(s3)
210e: 4418 lw a4,8(s0)
2110: 417484b3 sub s1,s1,s7
2114: 94be add s1,s1,a5
2116: 8626 mv a2,s1
2118: 018c85b3 add a1,s9,s8
211c: 853a mv a0,a4
211e: 299060ef jal ra,8bb6 <memcpy>
2122: 94aa add s1,s1,a0
2124: 0009a983 lw s3,0(s3)
2128: fc0994e3 bnez s3,20f0 <SocketUdpReceive+0x36>
212c: 854a mv a0,s2
212e: 281020ef jal ra,4bae <pbuf_free>
2132: 03842803 lw a6,56(s0)
2136: 04080563 beqz a6,2180 <SocketUdpReceive+0xc6>
213a: 001a4583 lbu a1,1(s4)
213e: 000a4783 lbu a5,0(s4)
2142: 4814 lw a3,16(s0)
2144: 05a2 slli a1,a1,0x8
2146: 8ddd or a1,a1,a5
2148: 002a4783 lbu a5,2(s4)
214c: 875a mv a4,s6
214e: 8656 mv a2,s5
2150: 07c2 slli a5,a5,0x10
2152: 8fcd or a5,a5,a1
2154: 003a4583 lbu a1,3(s4)
2158: 8522 mv a0,s0
215a: 05e2 slli a1,a1,0x18
215c: 8ddd or a1,a1,a5
215e: 9802 jalr a6
2160: 441c lw a5,8(s0)
2162: 00042c23 sw zero,24(s0)
2166: c81c sw a5,16(s0)
2168: bfb5 j 20e4 <SocketUdpReceive+0x2a>
216a: 8526 mv a0,s1
216c: 85e6 mv a1,s9
216e: 249060ef jal ra,8bb6 <memcpy>
2172: 00a9d783 lhu a5,10(s3)
2176: 94be add s1,s1,a5
2178: fb8796e3 bne a5,s8,2124 <SocketUdpReceive+0x6a>
217c: 4404 lw s1,8(s0)
217e: b75d j 2124 <SocketUdpReceive+0x6a>
2180: 4c18 lw a4,24(s0)
2182: 401c lw a5,0(s0)
2184: c804 sw s1,16(s0)
2186: 975a add a4,a4,s6
2188: 0047e793 ori a5,a5,4
218c: cc18 sw a4,24(s0)
218e: c01c sw a5,0(s0)
2190: bf91 j 20e4 <SocketUdpReceive+0x2a>
2192: 8082 ret
00002194 <WCHSocketTCPReceive>:
WCHSocketTCPReceive():
2194: 491c lw a5,16(a0)
2196: c7f1 beqz a5,2262 <WCHSocketTCPReceive+0xce>
2198: 830fe2ef jal t0,1c8 <__riscv_save_10>
219c: 8a32 mv s4,a2
219e: 84ae mv s1,a1
21a0: 842a mv s0,a0
21a2: ca55 beqz a2,2256 <WCHSocketTCPReceive+0xc2>
21a4: 00852a83 lw s5,8(a0)
21a8: 4558 lw a4,12(a0)
21aa: 00865b83 lhu s7,8(a2)
21ae: 8932 mv s2,a2
21b0: 9aba add s5,s5,a4
21b2: 0ac2 slli s5,s5,0x10
21b4: 010ada93 srli s5,s5,0x10
21b8: 01079993 slli s3,a5,0x10
21bc: 0109d993 srli s3,s3,0x10
21c0: 413a8b33 sub s6,s5,s3
21c4: 00a95603 lhu a2,10(s2)
21c8: 0b42 slli s6,s6,0x10
21ca: 010b5b13 srli s6,s6,0x10
21ce: 00492c03 lw s8,4(s2)
21d2: 06cb7663 bgeu s6,a2,223e <WCHSocketTCPReceive+0xaa>
21d6: 865a mv a2,s6
21d8: 85e2 mv a1,s8
21da: 853e mv a0,a5
21dc: 1db060ef jal ra,8bb6 <memcpy>
21e0: 00a95703 lhu a4,10(s2)
21e4: 441c lw a5,8(s0)
21e6: 016c05b3 add a1,s8,s6
21ea: 41570733 sub a4,a4,s5
21ee: 99ba add s3,s3,a4
21f0: 09c2 slli s3,s3,0x10
21f2: 0109d993 srli s3,s3,0x10
21f6: 853e mv a0,a5
21f8: 864e mv a2,s3
21fa: 1bd060ef jal ra,8bb6 <memcpy>
21fe: 013507b3 add a5,a0,s3
2202: 00092903 lw s2,0(s2)
2206: fa0919e3 bnez s2,21b8 <WCHSocketTCPReceive+0x24>
220a: 4c18 lw a4,24(s0)
220c: c81c sw a5,16(s0)
220e: 8552 mv a0,s4
2210: 975e add a4,a4,s7
2212: cc18 sw a4,24(s0)
2214: 4018 lw a4,0(s0)
2216: 00476713 ori a4,a4,4
221a: c018 sw a4,0(s0)
221c: 193020ef jal ra,4bae <pbuf_free>
2220: 38fe lhu a5,54(s1)
2222: 4c18 lw a4,24(s0)
2224: 8526 mv a0,s1
2226: 41778bb3 sub s7,a5,s7
222a: 445c lw a5,12(s0)
222c: 03749b23 sh s7,54(s1)
2230: 8f99 sub a5,a5,a4
2232: b4de sh a5,44(s1)
2234: 723020ef jal ra,5156 <tcp_update_rcv_ann_wnd>
2238: 4501 li a0,0
223a: fc7fd06f j 200 <__riscv_restore_10>
223e: 853e mv a0,a5
2240: 85e2 mv a1,s8
2242: 175060ef jal ra,8bb6 <memcpy>
2246: 00a95703 lhu a4,10(s2)
224a: 00e507b3 add a5,a0,a4
224e: fb671ae3 bne a4,s6,2202 <WCHSocketTCPReceive+0x6e>
2252: 441c lw a5,8(s0)
2254: b77d j 2202 <WCHSocketTCPReceive+0x6e>
2256: 4501 li a0,0
2258: f2ed bnez a3,223a <WCHSocketTCPReceive+0xa6>
225a: 852e mv a0,a1
225c: 388030ef jal ra,55e4 <tcp_close>
2260: bfe9 j 223a <WCHSocketTCPReceive+0xa6>
2262: 557d li a0,-1
2264: 8082 ret
00002266 <LwipTcpConnectedCallBack>:
LwipTcpConnectedCallBack():
2266: f8bfd2ef jal t0,1f0 <__riscv_save_0>
226a: 842e mv s0,a1
226c: 000025b7 lui a1,0x2
2270: 84aa mv s1,a0
2272: 19458593 addi a1,a1,404 # 2194 <WCHSocketTCPReceive>
2276: 8522 mv a0,s0
2278: 7d7020ef jal ra,524e <tcp_recv>
227c: 000025b7 lui a1,0x2
2280: 8522 mv a0,s0
2282: fb458593 addi a1,a1,-76 # 1fb4 <LwipTCPSendCallBack>
2286: 7cf020ef jal ra,5254 <tcp_sent>
228a: 000025b7 lui a1,0x2
228e: 8522 mv a0,s0
2290: 4605 li a2,1
2292: ff258593 addi a1,a1,-14 # 1ff2 <LwipTCPPollCallBack>
2296: 7cb020ef jal ra,5260 <tcp_poll>
229a: 209c lbu a5,0(s1)
229c: 4501 li a0,0
229e: 0087e793 ori a5,a5,8
22a2: c09c sw a5,0(s1)
22a4: f71fd06f j 214 <__riscv_restore_0>
000022a8 <ErrorEncode>:
ErrorEncode():
22a8: c919 beqz a0,22be <ErrorEncode+0x16>
22aa: 40a00533 neg a0,a0
22ae: 67a5 lui a5,0x9
22b0: e2c78793 addi a5,a5,-468 # 8e2c <ErrTable>
22b4: 0ff57513 andi a0,a0,255
22b8: 953e add a0,a0,a5
22ba: 2108 lbu a0,0(a0)
22bc: 8082 ret
22be: 4501 li a0,0
22c0: 8082 ret
000022c2 <WCHSocketInit>:
WCHSocketInit():
22c2: f2ffd2ef jal t0,1f0 <__riscv_save_0>
22c6: 03c00793 li a5,60
22ca: 02f587b3 mul a5,a1,a5
22ce: 20007437 lui s0,0x20007
22d2: 33840713 addi a4,s0,824 # 20007338 <SocketInf>
22d6: 892a mv s2,a0
22d8: 84ae mv s1,a1
22da: 03c00613 li a2,60
22de: 4581 li a1,0
22e0: 33840413 addi s0,s0,824
22e4: 97ba add a5,a5,a4
22e6: 853e mv a0,a5
22e8: f39fd0ef jal ra,220 <memset>
22ec: 00090763 beqz s2,22fa <WCHSocketInit+0x38>
22f0: 03c00613 li a2,60
22f4: 85ca mv a1,s2
22f6: 0c1060ef jal ra,8bb6 <memcpy>
22fa: 03c00593 li a1,60
22fe: 02b485b3 mul a1,s1,a1
2302: 95a2 add a1,a1,s0
2304: 459c lw a5,8(a1)
2306: c99c sw a5,16(a1)
2308: c9dc sw a5,20(a1)
230a: f0bfd06f j 214 <__riscv_restore_0>
0000230e <WCHNET_Init>:
WCHNET_Init():
230e: ec9fd2ef jal t0,1d6 <__riscv_save_4>
2312: 8a2a mv s4,a0
2314: 20007537 lui a0,0x20007
2318: 1141 addi sp,sp,-16
231a: 89ae mv s3,a1
231c: 84b2 mv s1,a2
231e: 4581 li a1,0
2320: 4661 li a2,24
2322: 78050513 addi a0,a0,1920 # 20007780 <DHCPCtrl>
2326: c636 sw a3,12(sp)
2328: ef9fd0ef jal ra,220 <memset>
232c: 46b2 lw a3,12(sp)
232e: 20007437 lui s0,0x20007
2332: 7f840913 addi s2,s0,2040 # 200077f8 <NetInf>
2336: 85b6 mv a1,a3
2338: 4619 li a2,6
233a: 00c90513 addi a0,s2,12
233e: 079060ef jal ra,8bb6 <memcpy>
2342: 4611 li a2,4
2344: 85d2 mv a1,s4
2346: 7f840513 addi a0,s0,2040
234a: 06d060ef jal ra,8bb6 <memcpy>
234e: 4611 li a2,4
2350: 85ce mv a1,s3
2352: 00490513 addi a0,s2,4
2356: 061060ef jal ra,8bb6 <memcpy>
235a: 7f840413 addi s0,s0,2040
235e: e0a1 bnez s1,239e <WCHNET_Init+0x90>
2360: 010007b7 lui a5,0x1000
2364: 17fd addi a5,a5,-1
2366: c41c sw a5,8(s0)
2368: 4481 li s1,0
236a: 8c81c783 lbu a5,-1848(gp) # 200000e8 <SockNumber>
236e: 02f4cf63 blt s1,a5,23ac <WCHNET_Init+0x9e>
2372: 3d6010ef jal ra,3748 <wch_ethernetif_init>
2376: 4785 li a5,1
2378: d05c sw a5,36(s0)
237a: 6715 lui a4,0x5
237c: 200077b7 lui a5,0x20007
2380: 7ec78793 addi a5,a5,2028 # 200077ec <KeepLiveCfg>
2384: e2070713 addi a4,a4,-480 # 4e20 <pbuf_copy+0x40>
2388: c398 sw a4,0(a5)
238a: 6711 lui a4,0x4
238c: a9870713 addi a4,a4,-1384 # 3a98 <ip_input+0x242>
2390: c3d8 sw a4,4(a5)
2392: 4725 li a4,9
2394: c798 sw a4,8(a5)
2396: 4501 li a0,0
2398: 0141 addi sp,sp,16
239a: e71fd06f j 20a <__riscv_restore_4>
239e: 4611 li a2,4
23a0: 85a6 mv a1,s1
23a2: 00840513 addi a0,s0,8
23a6: 011060ef jal ra,8bb6 <memcpy>
23aa: bf7d j 2368 <WCHNET_Init+0x5a>
23ac: 0ff4f593 andi a1,s1,255
23b0: 4501 li a0,0
23b2: 3f01 jal 22c2 <WCHSocketInit>
23b4: 0485 addi s1,s1,1
23b6: bf55 j 236a <WCHNET_Init+0x5c>
000023b8 <WCHNET_ConfigKeepLive>:
WCHNET_ConfigKeepLive():
23b8: 4118 lw a4,0(a0)
23ba: 200077b7 lui a5,0x20007
23be: 7ec78793 addi a5,a5,2028 # 200077ec <KeepLiveCfg>
23c2: c398 sw a4,0(a5)
23c4: 4158 lw a4,4(a0)
23c6: c3d8 sw a4,4(a5)
23c8: 4518 lw a4,8(a0)
23ca: c798 sw a4,8(a5)
23cc: 8082 ret
000023ce <WCHNET_ConfigLIB>:
WCHNET_ConfigLIB():
23ce: 5518 lw a4,40(a0)
23d0: 123457b7 lui a5,0x12345
23d4: 67878793 addi a5,a5,1656 # 12345678 <_data_lma+0x1233c7e4>
23d8: 12f71a63 bne a4,a5,250c <WCHNET_ConfigLIB+0x13e>
23dc: dfbfd2ef jal t0,1d6 <__riscv_save_4>
23e0: 511c lw a5,32(a0)
23e2: 842a mv s0,a0
23e4: 4525 li a0,9
23e6: 10078b63 beqz a5,24fc <WCHNET_ConfigLIB+0x12e>
23ea: 20007937 lui s2,0x20007
23ee: 04400613 li a2,68
23f2: 4581 li a1,0
23f4: 7f890513 addi a0,s2,2040 # 200077f8 <NetInf>
23f8: e29fd0ef jal ra,220 <memset>
23fc: 200084b7 lui s1,0x20008
2400: 02c00613 li a2,44
2404: 4581 li a1,0
2406: 83c48513 addi a0,s1,-1988 # 2000783c <WCHCfg>
240a: e17fd0ef jal ra,220 <memset>
240e: 02c00613 li a2,44
2412: 85a2 mv a1,s0
2414: 83c48513 addi a0,s1,-1988
2418: 79e060ef jal ra,8bb6 <memcpy>
241c: 83c48993 addi s3,s1,-1988
2420: 0149a703 lw a4,20(s3)
2424: 864a mv a2,s2
2426: 83c48793 addi a5,s1,-1988
242a: eb25 bnez a4,249a <WCHNET_ConfigLIB+0xcc>
242c: 66a5 lui a3,0x9
242e: dc86d703 lhu a4,-568(a3) # 8dc8 <MemNum>
2432: dc868693 addi a3,a3,-568
2436: 22ae lhu a1,2(a3)
2438: 972e add a4,a4,a1
243a: 22ce lhu a1,4(a3)
243c: 22f6 lhu a3,6(a3)
243e: 972e add a4,a4,a1
2440: 9736 add a4,a4,a3
2442: 01271693 slli a3,a4,0x12
2446: 0a06dd63 bgez a3,2500 <WCHNET_ConfigLIB+0x132>
244a: cbd8 sw a4,20(a5)
244c: 4bd8 lw a4,20(a5)
244e: 00e75693 srli a3,a4,0xe
2452: 8afd andi a3,a3,31
2454: ea89 bnez a3,2466 <WCHNET_ConfigLIB+0x98>
2456: fff846b7 lui a3,0xfff84
245a: 16fd addi a3,a3,-1
245c: 8f75 and a4,a4,a3
245e: 000506b7 lui a3,0x50
2462: 8f55 or a4,a4,a3
2464: cbd8 sw a4,20(a5)
2466: 4bd8 lw a4,20(a5)
2468: 01375693 srli a3,a4,0x13
246c: 8afd andi a3,a3,31
246e: ea89 bnez a3,2480 <WCHNET_ConfigLIB+0xb2>
2470: fff846b7 lui a3,0xfff84
2474: 16fd addi a3,a3,-1
2476: 8f75 and a4,a4,a3
2478: 005006b7 lui a3,0x500
247c: 8f55 or a4,a4,a3
247e: cbd8 sw a4,20(a5)
2480: 4bd8 lw a4,20(a5)
2482: 00671693 slli a3,a4,0x6
2486: 0006ca63 bltz a3,249a <WCHNET_ConfigLIB+0xcc>
248a: fe0006b7 lui a3,0xfe000
248e: 16fd addi a3,a3,-1
2490: 8f75 and a4,a4,a3
2492: 140006b7 lui a3,0x14000
2496: 8f55 or a4,a4,a3
2498: cbd8 sw a4,20(a5)
249a: 4bd8 lw a4,20(a5)
249c: 01b75693 srli a3,a4,0x1b
24a0: e689 bnez a3,24aa <WCHNET_ConfigLIB+0xdc>
24a2: 400006b7 lui a3,0x40000
24a6: 8f55 or a4,a4,a3
24a8: cbd8 sw a4,20(a5)
24aa: 46a9 li a3,10
24ac: 8cd182a3 sb a3,-1851(gp) # 200000e5 <ARP_Retry_Period>
24b0: 468d li a3,3
24b2: 8cd18223 sb a3,-1852(gp) # 200000e4 <ARP_Retry_Cnt>
24b6: 12c00693 li a3,300
24ba: 8cd19323 sh a3,-1850(gp) # 200000e6 <Arp_Entry_timeout>
24be: 53d8 lw a4,36(a5)
24c0: e711 bnez a4,24cc <WCHNET_ConfigLIB+0xfe>
24c2: 00002737 lui a4,0x2
24c6: da070713 addi a4,a4,-608 # 1da0 <WCHNET_Rx>
24ca: d3d8 sw a4,36(a5)
24cc: 4bd4 lw a3,20(a5)
24ce: 4501 li a0,0
24d0: 00e6d713 srli a4,a3,0xe
24d4: 8b7d andi a4,a4,31
24d6: 8cd18423 sb a3,-1848(gp) # 200000e8 <SockNumber>
24da: 7f860793 addi a5,a2,2040
24de: cf98 sw a4,24(a5)
24e0: 0136d713 srli a4,a3,0x13
24e4: 8b7d andi a4,a4,31
24e6: 03200613 li a2,50
24ea: 02c70733 mul a4,a4,a2
24ee: cfd8 sw a4,28(a5)
24f0: 00669713 slli a4,a3,0x6
24f4: 00075463 bgez a4,24fc <WCHNET_ConfigLIB+0x12e>
24f8: 4709 li a4,2
24fa: c3b8 sw a4,64(a5)
24fc: d0ffd06f j 20a <__riscv_restore_4>
2500: 76f9 lui a3,0xffffe
2502: 16fd addi a3,a3,-1
2504: 8f75 and a4,a4,a3
2506: 6689 lui a3,0x2
2508: 8f55 or a4,a4,a3
250a: b781 j 244a <WCHNET_ConfigLIB+0x7c>
250c: 0ff00513 li a0,255
2510: 8082 ret
00002512 <WCHNET_GetVer>:
WCHNET_GetVer():
2512: 456d li a0,27
2514: 8082 ret
00002516 <WCHFindCorrectTCBPcb>:
WCHFindCorrectTCBPcb():
2516: 8c81c603 lbu a2,-1848(gp) # 200000e8 <SockNumber>
251a: 200077b7 lui a5,0x20007
251e: 33878693 addi a3,a5,824 # 20007338 <SocketInf>
2522: 4701 li a4,0
2524: 33878793 addi a5,a5,824
2528: 00e61763 bne a2,a4,2536 <WCHFindCorrectTCBPcb+0x20>
252c: 4781 li a5,0
252e: 02f71363 bne a4,a5,2554 <WCHFindCorrectTCBPcb+0x3e>
2532: 4501 li a0,0
2534: 8082 ret
2536: 0307a803 lw a6,48(a5)
253a: 00a81763 bne a6,a0,2548 <WCHFindCorrectTCBPcb+0x32>
253e: c509 beqz a0,2548 <WCHFindCorrectTCBPcb+0x32>
2540: 4505 li a0,1
2542: d9ed beqz a1,2534 <WCHFindCorrectTCBPcb+0x1e>
2544: a198 sb a4,0(a1)
2546: 8082 ret
2548: 0705 addi a4,a4,1
254a: 0ff77713 andi a4,a4,255
254e: 03c78793 addi a5,a5,60
2552: bfd9 j 2528 <WCHFindCorrectTCBPcb+0x12>
2554: 5ad0 lw a2,52(a3)
2556: 00a61963 bne a2,a0,2568 <WCHFindCorrectTCBPcb+0x52>
255a: c519 beqz a0,2568 <WCHFindCorrectTCBPcb+0x52>
255c: 4505 li a0,1
255e: d9f9 beqz a1,2534 <WCHFindCorrectTCBPcb+0x1e>
2560: f807e793 ori a5,a5,-128
2564: a19c sb a5,0(a1)
2566: 8082 ret
2568: 0785 addi a5,a5,1
256a: 0ff7f793 andi a5,a5,255
256e: 03c68693 addi a3,a3,60 # 203c <SocketIPRAWReceive+0x46>
2572: bf75 j 252e <WCHFindCorrectTCBPcb+0x18>
00002574 <WCHNET_SocketCreat>:
WCHNET_SocketCreat():
2574: c63fd2ef jal t0,1d6 <__riscv_save_4>
2578: 20007937 lui s2,0x20007
257c: 00050023 sb zero,0(a0)
2580: 8c81c703 lbu a4,-1848(gp) # 200000e8 <SockNumber>
2584: 1141 addi sp,sp,-16
2586: 33890793 addi a5,s2,824 # 20007338 <SocketInf>
258a: 4481 li s1,0
258c: 33890913 addi s2,s2,824
2590: 00971763 bne a4,s1,259e <WCHNET_SocketCreat+0x2a>
2594: 02000513 li a0,32
2598: 0141 addi sp,sp,16
259a: c71fd06f j 20a <__riscv_restore_4>
259e: 03c78793 addi a5,a5,60
25a2: fe47a683 lw a3,-28(a5)
25a6: 18068163 beqz a3,2728 <WCHNET_SocketCreat+0x1b4>
25aa: 0485 addi s1,s1,1
25ac: 0ff4f493 andi s1,s1,255
25b0: b7c5 j 2590 <WCHNET_SocketCreat+0x1c>
25b2: 200077b7 lui a5,0x20007
25b6: 7f87a783 lw a5,2040(a5) # 200077f8 <NetInf>
25ba: 006c addi a1,sp,12
25bc: c63e sw a5,12(sp)
25be: 127020ef jal ra,4ee4 <raw_bind>
25c2: 4611 li a2,4
25c4: 02c40593 addi a1,s0,44
25c8: 0068 addi a0,sp,12
25ca: 5ec060ef jal ra,8bb6 <memcpy>
25ce: 006c addi a1,sp,12
25d0: 854e mv a0,s3
25d2: 131020ef jal ra,4f02 <raw_connect>
25d6: 03c00613 li a2,60
25da: 02c48633 mul a2,s1,a2
25de: 000025b7 lui a1,0x2
25e2: ff658593 addi a1,a1,-10 # 1ff6 <SocketIPRAWReceive>
25e6: 854e mv a0,s3
25e8: 964a add a2,a2,s2
25ea: 137020ef jal ra,4f20 <raw_recv>
25ee: 4795 li a5,5
25f0: 20008537 lui a0,0x20008
25f4: 006c addi a1,sp,12
25f6: 03342823 sw s3,48(s0)
25fa: d01c sw a5,32(s0)
25fc: 86850513 addi a0,a0,-1944 # 20007868 <WCHNetIf>
2600: 407000ef jal ra,3206 <etharp_request>
2604: 85a6 mv a1,s1
2606: 8522 mv a0,s0
2608: cbbff0ef jal ra,22c2 <WCHSocketInit>
260c: 4501 li a0,0
260e: b769 j 2598 <WCHNET_SocketCreat+0x24>
2610: 4709 li a4,2
2612: 0ae79063 bne a5,a4,26b2 <WCHNET_SocketCreat+0x13e>
2616: 2bf050ef jal ra,80d4 <udp_new>
261a: 89aa mv s3,a0
261c: 12050363 beqz a0,2742 <WCHNET_SocketCreat+0x1ce>
2620: 02c40a93 addi s5,s0,44
2624: 4611 li a2,4
2626: 85d6 mv a1,s5
2628: 0068 addi a0,sp,12
262a: 58c060ef jal ra,8bb6 <memcpy>
262e: 4a32 lw s4,12(sp)
2630: f0000537 lui a0,0xf0000
2634: 1ca010ef jal ra,37fe <ntohl>
2638: 00aa7a33 and s4,s4,a0
263c: e0000537 lui a0,0xe0000
2640: 1be010ef jal ra,37fe <ntohl>
2644: 04aa0063 beq s4,a0,2684 <WCHNET_SocketCreat+0x110>
2648: 200085b7 lui a1,0x20008
264c: 86858593 addi a1,a1,-1944 # 20007868 <WCHNetIf>
2650: 0068 addi a0,sp,12
2652: 62e010ef jal ra,3c80 <ip_addr_isbroadcast>
2656: e51d bnez a0,2684 <WCHNET_SocketCreat+0x110>
2658: 200077b7 lui a5,0x20007
265c: 7f87a783 lw a5,2040(a5) # 200077f8 <NetInf>
2660: 3412 lhu a2,40(s0)
2662: 006c addi a1,sp,12
2664: 854e mv a0,s3
2666: c63e sw a5,12(sp)
2668: 039050ef jal ra,7ea0 <udp_bind>
266c: e11d bnez a0,2692 <WCHNET_SocketCreat+0x11e>
266e: 85d6 mv a1,s5
2670: 4611 li a2,4
2672: 0068 addi a0,sp,12
2674: 542060ef jal ra,8bb6 <memcpy>
2678: 3052 lhu a2,36(s0)
267a: 006c addi a1,sp,12
267c: 854e mv a0,s3
267e: 1d3050ef jal ra,8050 <udp_connect>
2682: a039 j 2690 <WCHNET_SocketCreat+0x11c>
2684: 3412 lhu a2,40(s0)
2686: 84418593 addi a1,gp,-1980 # 20000064 <ip_addr_any>
268a: 854e mv a0,s3
268c: 015050ef jal ra,7ea0 <udp_bind>
2690: c501 beqz a0,2698 <WCHNET_SocketCreat+0x124>
2692: c17ff0ef jal ra,22a8 <ErrorEncode>
2696: b709 j 2598 <WCHNET_SocketCreat+0x24>
2698: 03c00613 li a2,60
269c: 02c48633 mul a2,s1,a2
26a0: 000025b7 lui a1,0x2
26a4: 0ba58593 addi a1,a1,186 # 20ba <SocketUdpReceive>
26a8: 854e mv a0,s3
26aa: 964a add a2,a2,s2
26ac: 223050ef jal ra,80ce <udp_recv>
26b0: bf3d j 25ee <WCHNET_SocketCreat+0x7a>
26b2: 470d li a4,3
26b4: 02100513 li a0,33
26b8: eee790e3 bne a5,a4,2598 <WCHNET_SocketCreat+0x24>
26bc: 2e8030ef jal ra,59a4 <tcp_new>
26c0: 445c lw a5,12(s0)
26c2: 3412 lhu a2,40(s0)
26c4: 006c addi a1,sp,12
26c6: b95e sh a5,52(a0)
26c8: 200077b7 lui a5,0x20007
26cc: 7f87a783 lw a5,2040(a5) # 200077f8 <NetInf>
26d0: 89aa mv s3,a0
26d2: c63e sw a5,12(sp)
26d4: 16d020ef jal ra,5040 <tcp_bind>
26d8: 8a2a mv s4,a0
26da: c511 beqz a0,26e6 <WCHNET_SocketCreat+0x172>
26dc: 854e mv a0,s3
26de: 707020ef jal ra,55e4 <tcp_close>
26e2: 8552 mv a0,s4
26e4: b77d j 2692 <WCHNET_SocketCreat+0x11e>
26e6: 03c00593 li a1,60
26ea: 02b485b3 mul a1,s1,a1
26ee: 854e mv a0,s3
26f0: 95ca add a1,a1,s2
26f2: 359020ef jal ra,524a <tcp_arg>
26f6: 000025b7 lui a1,0x2
26fa: 854e mv a0,s3
26fc: fb258593 addi a1,a1,-78 # 1fb2 <NET_TCPError>
2700: 35b020ef jal ra,525a <tcp_err>
2704: 4795 li a5,5
2706: 85a6 mv a1,s1
2708: 8522 mv a0,s0
270a: 03342823 sw s3,48(s0)
270e: 03342a23 sw s3,52(s0)
2712: d01c sw a5,32(s0)
2714: bafff0ef jal ra,22c2 <WCHSocketInit>
2718: 20008537 lui a0,0x20008
271c: 006c addi a1,sp,12
271e: 86850513 addi a0,a0,-1944 # 20007868 <WCHNetIf>
2722: 2e5000ef jal ra,3206 <etharp_request>
2726: b5dd j 260c <WCHNET_SocketCreat+0x98>
2728: a104 sb s1,0(a0)
272a: 4ddc lw a5,28(a1)
272c: c1c4 sw s1,4(a1)
272e: 842e mv s0,a1
2730: ee0790e3 bnez a5,2610 <WCHNET_SocketCreat+0x9c>
2734: 02844503 lbu a0,40(s0)
2738: 07d020ef jal ra,4fb4 <raw_new>
273c: 89aa mv s3,a0
273e: e6051ae3 bnez a0,25b2 <WCHNET_SocketCreat+0x3e>
2742: 4545 li a0,17
2744: bd91 j 2598 <WCHNET_SocketCreat+0x24>
00002746 <tcp_recved_socket>:
tcp_recved_socket():
2746: aabfd2ef jal t0,1f0 <__riscv_save_0>
274a: 08852783 lw a5,136(a0)
274e: b54e sh a1,44(a0)
2750: 842a mv s0,a0
2752: c781 beqz a5,275a <tcp_recved_socket+0x14>
2754: 279e lhu a5,8(a5)
2756: 8d9d sub a1,a1,a5
2758: b54e sh a1,44(a0)
275a: 8522 mv a0,s0
275c: 1fb020ef jal ra,5156 <tcp_update_rcv_ann_wnd>
2760: cd09 beqz a0,277a <tcp_recved_socket+0x34>
2762: 02644783 lbu a5,38(s0)
2766: 8522 mv a0,s0
2768: 0027e793 ori a5,a5,2
276c: 02f40323 sb a5,38(s0)
2770: 645040ef jal ra,75b4 <tcp_output>
2774: 4505 li a0,1
2776: a9ffd06f j 214 <__riscv_restore_0>
277a: 200087b7 lui a5,0x20008
277e: 84c7a783 lw a5,-1972(a5) # 2000784c <WCHCfg+0x10>
2782: 83a1 srli a5,a5,0x8
2784: 8b85 andi a5,a5,1
2786: d7fd beqz a5,2774 <tcp_recved_socket+0x2e>
2788: 02644783 lbu a5,38(s0)
278c: 8b85 andi a5,a5,1
278e: d3fd beqz a5,2774 <tcp_recved_socket+0x2e>
2790: 4789 li a5,2
2792: 02f403a3 sb a5,39(s0)
2796: 4705 li a4,1
2798: 8ce1aa23 sw a4,-1836(gp) # 200000f4 <tcpSendAckFlag>
279c: bfe1 j 2774 <tcp_recved_socket+0x2e>
0000279e <WCHNET_ModifyRecvBuf>:
WCHNET_ModifyRecvBuf():
279e: 8c81c783 lbu a5,-1848(gp) # 200000e8 <SockNumber>
27a2: 04f57563 bgeu a0,a5,27ec <WCHNET_ModifyRecvBuf+0x4e>
27a6: 03c00713 li a4,60
27aa: 02e50533 mul a0,a0,a4
27ae: 200077b7 lui a5,0x20007
27b2: 33878793 addi a5,a5,824 # 20007338 <SocketInf>
27b6: 953e add a0,a0,a5
27b8: 4d58 lw a4,28(a0)
27ba: 00052c23 sw zero,24(a0)
27be: c550 sw a2,12(a0)
27c0: c50c sw a1,8(a0)
27c2: c90c sw a1,16(a0)
27c4: c94c sw a1,20(a0)
27c6: 478d li a5,3
27c8: 02f71263 bne a4,a5,27ec <WCHNET_ModifyRecvBuf+0x4e>
27cc: 5908 lw a0,48(a0)
27ce: cd19 beqz a0,27ec <WCHNET_ModifyRecvBuf+0x4e>
27d0: 395a lhu a4,52(a0)
27d2: 00163793 seqz a5,a2
27d6: 00f71b63 bne a4,a5,27ec <WCHNET_ModifyRecvBuf+0x4e>
27da: a17fd2ef jal t0,1f0 <__riscv_save_0>
27de: 01061593 slli a1,a2,0x10
27e2: 81c1 srli a1,a1,0x10
27e4: b94e sh a1,52(a0)
27e6: 3785 jal 2746 <tcp_recved_socket>
27e8: a2dfd06f j 214 <__riscv_restore_0>
27ec: 8082 ret
000027ee <WCHNET_SocketRecv>:
WCHNET_SocketRecv():
27ee: 9e9fd2ef jal t0,1d6 <__riscv_save_4>
27f2: 4214 lw a3,0(a2)
27f4: 4469 li s0,26
27f6: cecd beqz a3,28b0 <WCHNET_SocketRecv+0xc2>
27f8: 00062023 sw zero,0(a2)
27fc: 8a32 mv s4,a2
27fe: 03c00613 li a2,60
2802: 02c50633 mul a2,a0,a2
2806: 200074b7 lui s1,0x20007
280a: 33848713 addi a4,s1,824 # 20007338 <SocketInf>
280e: 89aa mv s3,a0
2810: 87ae mv a5,a1
2812: 33848493 addi s1,s1,824
2816: 9732 add a4,a4,a2
2818: 00872b03 lw s6,8(a4)
281c: 4750 lw a2,12(a4)
281e: 01872903 lw s2,24(a4)
2822: 4b40 lw s0,20(a4)
2824: 9b32 add s6,s6,a2
2826: 0126f363 bgeu a3,s2,282c <WCHNET_SocketRecv+0x3e>
282a: 8936 mv s2,a3
282c: 408b0ab3 sub s5,s6,s0
2830: 092af363 bgeu s5,s2,28b6 <WCHNET_SocketRecv+0xc8>
2834: cb81 beqz a5,2844 <WCHNET_SocketRecv+0x56>
2836: 853e mv a0,a5
2838: 8656 mv a2,s5
283a: 85a2 mv a1,s0
283c: 37a060ef jal ra,8bb6 <memcpy>
2840: 015507b3 add a5,a0,s5
2844: 03c00713 li a4,60
2848: 02e98733 mul a4,s3,a4
284c: 944a add s0,s0,s2
284e: 41640433 sub s0,s0,s6
2852: 9726 add a4,a4,s1
2854: 00872a83 lw s5,8(a4)
2858: c791 beqz a5,2864 <WCHNET_SocketRecv+0x76>
285a: 8622 mv a2,s0
285c: 85d6 mv a1,s5
285e: 853e mv a0,a5
2860: 356060ef jal ra,8bb6 <memcpy>
2864: 9456 add s0,s0,s5
2866: 03c00793 li a5,60
286a: 02f987b3 mul a5,s3,a5
286e: 012a2023 sw s2,0(s4)
2872: 97a6 add a5,a5,s1
2874: 4f98 lw a4,24(a5)
2876: cbc0 sw s0,20(a5)
2878: 41270933 sub s2,a4,s2
287c: 0127ac23 sw s2,24(a5)
2880: 00091863 bnez s2,2890 <WCHNET_SocketRecv+0xa2>
2884: 4798 lw a4,8(a5)
2886: cbd8 sw a4,20(a5)
2888: cb98 sw a4,16(a5)
288a: 4398 lw a4,0(a5)
288c: 9b6d andi a4,a4,-5
288e: c398 sw a4,0(a5)
2890: 03c00793 li a5,60
2894: 02f989b3 mul s3,s3,a5
2898: 478d li a5,3
289a: 4401 li s0,0
289c: 94ce add s1,s1,s3
289e: 4cd8 lw a4,28(s1)
28a0: 00f71863 bne a4,a5,28b0 <WCHNET_SocketRecv+0xc2>
28a4: 00091663 bnez s2,28b0 <WCHNET_SocketRecv+0xc2>
28a8: 24ce lhu a1,12(s1)
28aa: 5888 lw a0,48(s1)
28ac: e9bff0ef jal ra,2746 <tcp_recved_socket>
28b0: 8522 mv a0,s0
28b2: 959fd06f j 20a <__riscv_restore_4>
28b6: c791 beqz a5,28c2 <WCHNET_SocketRecv+0xd4>
28b8: 864a mv a2,s2
28ba: 85a2 mv a1,s0
28bc: 853e mv a0,a5
28be: 2f8060ef jal ra,8bb6 <memcpy>
28c2: 944a add s0,s0,s2
28c4: fb2a91e3 bne s5,s2,2866 <WCHNET_SocketRecv+0x78>
28c8: 03c00793 li a5,60
28cc: 02f987b3 mul a5,s3,a5
28d0: 97a6 add a5,a5,s1
28d2: 4780 lw s0,8(a5)
28d4: bf49 j 2866 <WCHNET_SocketRecv+0x78>
000028d6 <SocketIPRawSend>:
SocketIPRawSend():
28d6: 8f3fd2ef jal t0,1c8 <__riscv_save_10>
28da: 4200 lw s0,0(a2)
28dc: 00062023 sw zero,0(a2)
28e0: c455 beqz s0,298c <SocketIPRawSend+0xb6>
28e2: 87aa mv a5,a0
28e4: 4569 li a0,26
28e6: c5d9 beqz a1,2974 <SocketIPRawSend+0x9e>
28e8: 03c00513 li a0,60
28ec: 02a787b3 mul a5,a5,a0
28f0: 20007537 lui a0,0x20007
28f4: 33850513 addi a0,a0,824 # 20007338 <SocketInf>
28f8: 20007ab7 lui s5,0x20007
28fc: 4481 li s1,0
28fe: 97aa add a5,a5,a0
2900: 0307ab03 lw s6,48(a5)
2904: 7f8a8793 addi a5,s5,2040 # 200077f8 <NetInf>
2908: 43bc lw a5,64(a5)
290a: 7f8a8a93 addi s5,s5,2040
290e: 8b89 andi a5,a5,2
2910: e399 bnez a5,2916 <SocketIPRawSend+0x40>
2912: 0c700493 li s1,199
2916: 5c800793 li a5,1480
291a: 0087f463 bgeu a5,s0,2922 <SocketIPRawSend+0x4c>
291e: 5c800413 li s0,1480
2922: 01041c93 slli s9,s0,0x10
2926: 8a32 mv s4,a2
2928: 892e mv s2,a1
292a: 010cdc93 srli s9,s9,0x10
292e: 0c800c13 li s8,200
2932: 4601 li a2,0
2934: 85e6 mv a1,s9
2936: 4501 li a0,0
2938: 2c4020ef jal ra,4bfc <pbuf_alloc>
293c: 89aa mv s3,a0
293e: c929 beqz a0,2990 <SocketIPRawSend+0xba>
2940: 4148 lw a0,4(a0)
2942: 8622 mv a2,s0
2944: 85ca mv a1,s2
2946: 020aae23 sw zero,60(s5)
294a: 26c060ef jal ra,8bb6 <memcpy>
294e: 85ce mv a1,s3
2950: 855a mv a0,s6
2952: 652020ef jal ra,4fa4 <raw_send>
2956: 8baa mv s7,a0
2958: 854e mv a0,s3
295a: 254020ef jal ra,4bae <pbuf_free>
295e: 03caa783 lw a5,60(s5)
2962: cb99 beqz a5,2978 <SocketIPRawSend+0xa2>
2964: 0485 addi s1,s1,1
2966: 04c2 slli s1,s1,0x10
2968: 80c1 srli s1,s1,0x10
296a: bd4ff0ef jal ra,1d3e <WCHNET_NetInput>
296e: fd8492e3 bne s1,s8,2932 <SocketIPRawSend+0x5c>
2972: 454d li a0,19
2974: 88dfd06f j 200 <__riscv_restore_10>
2978: 000bd663 bgez s7,2984 <SocketIPRawSend+0xae>
297c: 855e mv a0,s7
297e: 92bff0ef jal ra,22a8 <ErrorEncode>
2982: bfcd j 2974 <SocketIPRawSend+0x9e>
2984: 008a2023 sw s0,0(s4)
2988: 4501 li a0,0
298a: b7ed j 2974 <SocketIPRawSend+0x9e>
298c: 4569 li a0,26
298e: b7dd j 2974 <SocketIPRawSend+0x9e>
2990: 4545 li a0,17
2992: b7cd j 2974 <SocketIPRawSend+0x9e>
00002994 <SocketUdpSend>:
SocketUdpSend():
2994: 835fd2ef jal t0,1c8 <__riscv_save_10>
2998: 4200 lw s0,0(a2)
299a: 00062023 sw zero,0(a2)
299e: c455 beqz s0,2a4a <SocketUdpSend+0xb6>
29a0: 87aa mv a5,a0
29a2: 4569 li a0,26
29a4: c5d9 beqz a1,2a32 <SocketUdpSend+0x9e>
29a6: 03c00513 li a0,60
29aa: 02a787b3 mul a5,a5,a0
29ae: 20007537 lui a0,0x20007
29b2: 33850513 addi a0,a0,824 # 20007338 <SocketInf>
29b6: 20007ab7 lui s5,0x20007
29ba: 4481 li s1,0
29bc: 97aa add a5,a5,a0
29be: 0307ab03 lw s6,48(a5)
29c2: 7f8a8793 addi a5,s5,2040 # 200077f8 <NetInf>
29c6: 43bc lw a5,64(a5)
29c8: 7f8a8a93 addi s5,s5,2040
29cc: 8b89 andi a5,a5,2
29ce: e399 bnez a5,29d4 <SocketUdpSend+0x40>
29d0: 0c700493 li s1,199
29d4: 5c000793 li a5,1472
29d8: 0087f463 bgeu a5,s0,29e0 <SocketUdpSend+0x4c>
29dc: 5c000413 li s0,1472
29e0: 01041c93 slli s9,s0,0x10
29e4: 8a32 mv s4,a2
29e6: 892e mv s2,a1
29e8: 010cdc93 srli s9,s9,0x10
29ec: 0c800c13 li s8,200
29f0: 4601 li a2,0
29f2: 85e6 mv a1,s9
29f4: 4501 li a0,0
29f6: 206020ef jal ra,4bfc <pbuf_alloc>
29fa: 89aa mv s3,a0
29fc: c929 beqz a0,2a4e <SocketUdpSend+0xba>
29fe: 4148 lw a0,4(a0)
2a00: 8622 mv a2,s0
2a02: 85ca mv a1,s2
2a04: 020aae23 sw zero,60(s5)
2a08: 1ae060ef jal ra,8bb6 <memcpy>
2a0c: 85ce mv a1,s3
2a0e: 855a mv a0,s6
2a10: 62e050ef jal ra,803e <udp_send>
2a14: 8baa mv s7,a0
2a16: 854e mv a0,s3
2a18: 196020ef jal ra,4bae <pbuf_free>
2a1c: 03caa783 lw a5,60(s5)
2a20: cb99 beqz a5,2a36 <SocketUdpSend+0xa2>
2a22: 0485 addi s1,s1,1
2a24: 04c2 slli s1,s1,0x10
2a26: 80c1 srli s1,s1,0x10
2a28: b16ff0ef jal ra,1d3e <WCHNET_NetInput>
2a2c: fd8492e3 bne s1,s8,29f0 <SocketUdpSend+0x5c>
2a30: 454d li a0,19
2a32: fcefd06f j 200 <__riscv_restore_10>
2a36: 000bd663 bgez s7,2a42 <SocketUdpSend+0xae>
2a3a: 855e mv a0,s7
2a3c: 86dff0ef jal ra,22a8 <ErrorEncode>
2a40: bfcd j 2a32 <SocketUdpSend+0x9e>
2a42: 008a2023 sw s0,0(s4)
2a46: 4501 li a0,0
2a48: b7ed j 2a32 <SocketUdpSend+0x9e>
2a4a: 4569 li a0,26
2a4c: b7dd j 2a32 <SocketUdpSend+0x9e>
2a4e: 4545 li a0,17
2a50: b7cd j 2a32 <SocketUdpSend+0x9e>
00002a52 <SocketTcpSend>:
SocketTcpSend():
2a52: f76fd2ef jal t0,1c8 <__riscv_save_10>
2a56: 00062983 lw s3,0(a2)
2a5a: 00062023 sw zero,0(a2)
2a5e: 0c098e63 beqz s3,2b3a <SocketTcpSend+0xe8>
2a62: 87aa mv a5,a0
2a64: 8b2e mv s6,a1
2a66: 4569 li a0,26
2a68: c1a1 beqz a1,2aa8 <SocketTcpSend+0x56>
2a6a: 03c00513 li a0,60
2a6e: 02a787b3 mul a5,a5,a0
2a72: 20007537 lui a0,0x20007
2a76: 33850513 addi a0,a0,824 # 20007338 <SocketInf>
2a7a: 20008a37 lui s4,0x20008
2a7e: 8bb2 mv s7,a2
2a80: 0c900a93 li s5,201
2a84: 4481 li s1,0
2a86: 4c11 li s8,4
2a88: 83ca0a13 addi s4,s4,-1988 # 2000783c <WCHCfg>
2a8c: 5cfd li s9,-1
2a8e: 97aa add a5,a5,a0
2a90: 0307a903 lw s2,48(a5)
2a94: 1afd addi s5,s5,-1
2a96: 0ac2 slli s5,s5,0x10
2a98: 010ada93 srli s5,s5,0x10
2a9c: 000a9863 bnez s5,2aac <SocketTcpSend+0x5a>
2aa0: 000ba783 lw a5,0(s7)
2aa4: cbc9 beqz a5,2b36 <SocketTcpSend+0xe4>
2aa6: 4501 li a0,0
2aa8: f58fd06f j 200 <__riscv_restore_10>
2aac: 01092783 lw a5,16(s2)
2ab0: 09879763 bne a5,s8,2b3e <SocketTcpSend+0xec>
2ab4: a8aff0ef jal ra,1d3e <WCHNET_NetInput>
2ab8: 07695703 lhu a4,118(s2)
2abc: e319 bnez a4,2ac2 <SocketTcpSend+0x70>
2abe: 4545 li a0,17
2ac0: b7e5 j 2aa8 <SocketTcpSend+0x56>
2ac2: 010a2783 lw a5,16(s4)
2ac6: 8b85 andi a5,a5,1
2ac8: e399 bnez a5,2ace <SocketTcpSend+0x7c>
2aca: ff376ae3 bltu a4,s3,2abe <SocketTcpSend+0x6c>
2ace: 004a2403 lw s0,4(s4)
2ad2: 00877363 bgeu a4,s0,2ad8 <SocketTcpSend+0x86>
2ad6: 843a mv s0,a4
2ad8: 0089f363 bgeu s3,s0,2ade <SocketTcpSend+0x8c>
2adc: 844e mv s0,s3
2ade: 01041613 slli a2,s0,0x10
2ae2: 8241 srli a2,a2,0x10
2ae4: 4685 li a3,1
2ae6: e391 bnez a5,2aea <SocketTcpSend+0x98>
2ae8: 4681 li a3,0
2aea: 85da mv a1,s6
2aec: 854a mv a0,s2
2aee: 227040ef jal ra,7514 <tcp_write>
2af2: 84aa mv s1,a0
2af4: 854a mv a0,s2
2af6: e48d bnez s1,2b20 <SocketTcpSend+0xce>
2af8: 2bd040ef jal ra,75b4 <tcp_output>
2afc: 000ba783 lw a5,0(s7)
2b00: 408989b3 sub s3,s3,s0
2b04: 84aa mv s1,a0
2b06: 97a2 add a5,a5,s0
2b08: 00fba023 sw a5,0(s7)
2b0c: 9b22 add s6,s6,s0
2b0e: f8098ce3 beqz s3,2aa6 <SocketTcpSend+0x54>
2b12: 010a2783 lw a5,16(s4)
2b16: 8b85 andi a5,a5,1
2b18: ffb5 bnez a5,2a94 <SocketTcpSend+0x42>
2b1a: f8eff0ef jal ra,22a8 <ErrorEncode>
2b1e: b769 j 2aa8 <SocketTcpSend+0x56>
2b20: 01949963 bne s1,s9,2b32 <SocketTcpSend+0xe0>
2b24: 291040ef jal ra,75b4 <tcp_output>
2b28: 010a2783 lw a5,16(s4)
2b2c: 8b85 andi a5,a5,1
2b2e: f3bd bnez a5,2a94 <SocketTcpSend+0x42>
2b30: b779 j 2abe <SocketTcpSend+0x6c>
2b32: 283040ef jal ra,75b4 <tcp_output>
2b36: 8526 mv a0,s1
2b38: b7cd j 2b1a <SocketTcpSend+0xc8>
2b3a: 4569 li a0,26
2b3c: b7b5 j 2aa8 <SocketTcpSend+0x56>
2b3e: 455d li a0,23
2b40: b7a5 j 2aa8 <SocketTcpSend+0x56>
00002b42 <WCHNET_SocketSend>:
WCHNET_SocketSend():
2b42: 03c00793 li a5,60
2b46: 02f507b3 mul a5,a0,a5
2b4a: 20007737 lui a4,0x20007
2b4e: 33870713 addi a4,a4,824 # 20007338 <SocketInf>
2b52: 97ba add a5,a5,a4
2b54: 0207a803 lw a6,32(a5)
2b58: 4715 li a4,5
2b5a: 00e80763 beq a6,a4,2b68 <WCHNET_SocketSend+0x26>
2b5e: 47dd li a5,23
2b60: 00062023 sw zero,0(a2)
2b64: 853e mv a0,a5
2b66: 8082 ret
2b68: e88fd2ef jal t0,1f0 <__riscv_save_0>
2b6c: 4fd8 lw a4,28(a5)
2b6e: 478d li a5,3
2b70: 00f71863 bne a4,a5,2b80 <WCHNET_SocketSend+0x3e>
2b74: edfff0ef jal ra,2a52 <SocketTcpSend>
2b78: 87aa mv a5,a0
2b7a: 853e mv a0,a5
2b7c: e98fd06f j 214 <__riscv_restore_0>
2b80: e701 bnez a4,2b88 <WCHNET_SocketSend+0x46>
2b82: d55ff0ef jal ra,28d6 <SocketIPRawSend>
2b86: bfcd j 2b78 <WCHNET_SocketSend+0x36>
2b88: 4689 li a3,2
2b8a: 0fa00793 li a5,250
2b8e: fed716e3 bne a4,a3,2b7a <WCHNET_SocketSend+0x38>
2b92: e03ff0ef jal ra,2994 <SocketUdpSend>
2b96: b7cd j 2b78 <WCHNET_SocketSend+0x36>
00002b98 <WCHScokedIntHandle>:
WCHScokedIntHandle():
2b98: e58fd2ef jal t0,1f0 <__riscv_save_0>
2b9c: 47a1 li a5,8
2b9e: 84aa mv s1,a0
2ba0: 2100 lbu s0,0(a0)
2ba2: 02f58a63 beq a1,a5,2bd6 <WCHScokedIntHandle+0x3e>
2ba6: 00b7ec63 bltu a5,a1,2bbe <WCHScokedIntHandle+0x26>
2baa: 4785 li a5,1
2bac: 02f58163 beq a1,a5,2bce <WCHScokedIntHandle+0x36>
2bb0: 4789 li a5,2
2bb2: 00246413 ori s0,s0,2
2bb6: 00f58e63 beq a1,a5,2bd2 <WCHScokedIntHandle+0x3a>
2bba: e5afd06f j 214 <__riscv_restore_0>
2bbe: 47c1 li a5,16
2bc0: 00f58e63 beq a1,a5,2bdc <WCHScokedIntHandle+0x44>
2bc4: 04000793 li a5,64
2bc8: 04046413 ori s0,s0,64
2bcc: b7ed j 2bb6 <WCHScokedIntHandle+0x1e>
2bce: 00146413 ori s0,s0,1
2bd2: c080 sw s0,0(s1)
2bd4: b7dd j 2bba <WCHScokedIntHandle+0x22>
2bd6: 00846413 ori s0,s0,8
2bda: bfe5 j 2bd2 <WCHScokedIntHandle+0x3a>
2bdc: 5948 lw a0,52(a0)
2bde: 01046413 ori s0,s0,16
2be2: d965 beqz a0,2bd2 <WCHScokedIntHandle+0x3a>
2be4: 201020ef jal ra,55e4 <tcp_close>
2be8: b7ed j 2bd2 <WCHScokedIntHandle+0x3a>
00002bea <LwipRemoveTcpPcb>:
LwipRemoveTcpPcb():
2bea: decfd2ef jal t0,1d6 <__riscv_save_4>
2bee: 1141 addi sp,sp,-16
2bf0: 00f10593 addi a1,sp,15
2bf4: 89aa mv s3,a0
2bf6: 000107a3 sb zero,15(sp)
2bfa: 91dff0ef jal ra,2516 <WCHFindCorrectTCBPcb>
2bfe: c515 beqz a0,2c2a <LwipRemoveTcpPcb+0x40>
2c00: 8784 lbu s1,15(sp)
2c02: 01849793 slli a5,s1,0x18
2c06: 87e1 srai a5,a5,0x18
2c08: 0207d463 bgez a5,2c30 <LwipRemoveTcpPcb+0x46>
2c0c: 03c00413 li s0,60
2c10: 07f4f493 andi s1,s1,127
2c14: 028484b3 mul s1,s1,s0
2c18: 20007437 lui s0,0x20007
2c1c: 33840413 addi s0,s0,824 # 20007338 <SocketInf>
2c20: 9426 add s0,s0,s1
2c22: 02042a23 sw zero,52(s0)
2c26: 02042023 sw zero,32(s0)
2c2a: 0141 addi sp,sp,16
2c2c: ddefd06f j 20a <__riscv_restore_4>
2c30: 8c81c783 lbu a5,-1848(gp) # 200000e8 <SockNumber>
2c34: fef4fbe3 bgeu s1,a5,2c2a <LwipRemoveTcpPcb+0x40>
2c38: 03c00713 li a4,60
2c3c: 02e48733 mul a4,s1,a4
2c40: 200077b7 lui a5,0x20007
2c44: 33878413 addi s0,a5,824 # 20007338 <SocketInf>
2c48: 33878913 addi s2,a5,824
2c4c: 943a add s0,s0,a4
2c4e: 4c54 lw a3,28(s0)
2c50: 470d li a4,3
2c52: fce69ce3 bne a3,a4,2c2a <LwipRemoveTcpPcb+0x40>
2c56: 0109a783 lw a5,16(s3)
2c5a: 4705 li a4,1
2c5c: 17dd addi a5,a5,-9
2c5e: 0ff7f793 andi a5,a5,255
2c62: 00f76e63 bltu a4,a5,2c7e <LwipRemoveTcpPcb+0x94>
2c66: 45c1 li a1,16
2c68: 8522 mv a0,s0
2c6a: f2fff0ef jal ra,2b98 <WCHScokedIntHandle>
2c6e: 03c00793 li a5,60
2c72: 02f484b3 mul s1,s1,a5
2c76: 94ca add s1,s1,s2
2c78: 0204a823 sw zero,48(s1)
2c7c: b76d j 2c26 <LwipRemoveTcpPcb+0x3c>
2c7e: 201c lbu a5,0(s0)
2c80: 0407e793 ori a5,a5,64
2c84: c01c sw a5,0(s0)
2c86: b7e5 j 2c6e <LwipRemoveTcpPcb+0x84>
00002c88 <WCHNET_QueryGlobalInt>:
WCHNET_QueryGlobalInt():
2c88: 20007737 lui a4,0x20007
2c8c: 8c81c683 lbu a3,-1848(gp) # 200000e8 <SockNumber>
2c90: 33870713 addi a4,a4,824 # 20007338 <SocketInf>
2c94: 4781 li a5,0
2c96: 00f68f63 beq a3,a5,2cb4 <WCHNET_QueryGlobalInt+0x2c>
2c9a: 03c70713 addi a4,a4,60
2c9e: fc472603 lw a2,-60(a4)
2ca2: ce11 beqz a2,2cbe <WCHNET_QueryGlobalInt+0x36>
2ca4: 200077b7 lui a5,0x20007
2ca8: 7f878793 addi a5,a5,2040 # 200077f8 <NetInf>
2cac: 57d8 lw a4,44(a5)
2cae: 01076713 ori a4,a4,16
2cb2: d7d8 sw a4,44(a5)
2cb4: 200087b7 lui a5,0x20008
2cb8: 8247c503 lbu a0,-2012(a5) # 20007824 <NetInf+0x2c>
2cbc: 8082 ret
2cbe: 0785 addi a5,a5,1
2cc0: 0ff7f793 andi a5,a5,255
2cc4: bfc9 j 2c96 <WCHNET_QueryGlobalInt+0xe>
00002cc6 <WCHNET_GetGlobalInt>:
WCHNET_GetGlobalInt():
2cc6: d2afd2ef jal t0,1f0 <__riscv_save_0>
2cca: 3f7d jal 2c88 <WCHNET_QueryGlobalInt>
2ccc: 200087b7 lui a5,0x20008
2cd0: 8207a223 sw zero,-2012(a5) # 20007824 <NetInf+0x2c>
2cd4: d40fd06f j 214 <__riscv_restore_0>
00002cd8 <WCHNET_GetSocketInt>:
WCHNET_GetSocketInt():
2cd8: 8c81c783 lbu a5,-1848(gp) # 200000e8 <SockNumber>
2cdc: 02f57163 bgeu a0,a5,2cfe <WCHNET_GetSocketInt+0x26>
2ce0: 03c00793 li a5,60
2ce4: 02f50533 mul a0,a0,a5
2ce8: 200077b7 lui a5,0x20007
2cec: 33878793 addi a5,a5,824 # 20007338 <SocketInf>
2cf0: 97aa add a5,a5,a0
2cf2: 4398 lw a4,0(a5)
2cf4: 0ff77513 andi a0,a4,255
2cf8: 8b11 andi a4,a4,4
2cfa: c398 sw a4,0(a5)
2cfc: 8082 ret
2cfe: 4501 li a0,0
2d00: 8082 ret
00002d02 <WCHNET_GetPHYStatus>:
WCHNET_GetPHYStatus():
2d02: 200087b7 lui a5,0x20008
2d06: 8187c503 lbu a0,-2024(a5) # 20007818 <NetInf+0x20>
2d0a: 8082 ret
00002d0c <WCHNET_SocketSetKeepLive>:
WCHNET_SocketSetKeepLive():
2d0c: 03c00793 li a5,60
2d10: 02f50533 mul a0,a0,a5
2d14: 200077b7 lui a5,0x20007
2d18: 33878793 addi a5,a5,824 # 20007338 <SocketInf>
2d1c: 953e add a0,a0,a5
2d1e: 591c lw a5,48(a0)
2d20: cf95 beqz a5,2d5c <WCHNET_SocketSetKeepLive+0x50>
2d22: 5114 lw a3,32(a0)
2d24: 4715 li a4,5
2d26: 455d li a0,23
2d28: 02e69b63 bne a3,a4,2d5e <WCHNET_SocketSetKeepLive+0x52>
2d2c: 8985 andi a1,a1,1
2d2e: 279a lhu a4,8(a5)
2d30: c19d beqz a1,2d56 <WCHNET_SocketSetKeepLive+0x4a>
2d32: 00876713 ori a4,a4,8
2d36: a79a sh a4,8(a5)
2d38: 20007737 lui a4,0x20007
2d3c: 7ec70713 addi a4,a4,2028 # 200077ec <KeepLiveCfg>
2d40: 4314 lw a3,0(a4)
2d42: 0ad7a023 sw a3,160(a5)
2d46: 4354 lw a3,4(a4)
2d48: 4718 lw a4,8(a4)
2d4a: 0ad7a223 sw a3,164(a5)
2d4e: 0ae7a423 sw a4,168(a5)
2d52: 4501 li a0,0
2d54: 8082 ret
2d56: 9b5d andi a4,a4,-9
2d58: a79a sh a4,8(a5)
2d5a: bfe5 j 2d52 <WCHNET_SocketSetKeepLive+0x46>
2d5c: 455d li a0,23
2d5e: 8082 ret
00002d60 <WCHNET_SocketConnect>:
WCHNET_SocketConnect():
2d60: 8c81c783 lbu a5,-1848(gp) # 200000e8 <SockNumber>
2d64: 06f57763 bgeu a0,a5,2dd2 <WCHNET_SocketConnect+0x72>
2d68: c88fd2ef jal t0,1f0 <__riscv_save_0>
2d6c: 03c00413 li s0,60
2d70: 02850533 mul a0,a0,s0
2d74: 20007437 lui s0,0x20007
2d78: 33840413 addi s0,s0,824 # 20007338 <SocketInf>
2d7c: 1141 addi sp,sp,-16
2d7e: 942a add s0,s0,a0
2d80: 5804 lw s1,48(s0)
2d82: 455d li a0,23
2d84: cc85 beqz s1,2dbc <WCHNET_SocketConnect+0x5c>
2d86: 5018 lw a4,32(s0)
2d88: 4795 li a5,5
2d8a: 02f71963 bne a4,a5,2dbc <WCHNET_SocketConnect+0x5c>
2d8e: 545c lw a5,44(s0)
2d90: 02042a23 sw zero,52(s0)
2d94: 000026b7 lui a3,0x2
2d98: c63e sw a5,12(sp)
2d9a: 3052 lhu a2,36(s0)
2d9c: 26668693 addi a3,a3,614 # 2266 <LwipTcpConnectedCallBack>
2da0: 006c addi a1,sp,12
2da2: 8526 mv a0,s1
2da4: 43f020ef jal ra,59e2 <tcp_connect>
2da8: 892a mv s2,a0
2daa: cd01 beqz a0,2dc2 <WCHNET_SocketConnect+0x62>
2dac: 8526 mv a0,s1
2dae: 037020ef jal ra,55e4 <tcp_close>
2db2: 854a mv a0,s2
2db4: 02042023 sw zero,32(s0)
2db8: cf0ff0ef jal ra,22a8 <ErrorEncode>
2dbc: 0141 addi sp,sp,16
2dbe: c56fd06f j 214 <__riscv_restore_0>
2dc2: 0264c783 lbu a5,38(s1)
2dc6: 4501 li a0,0
2dc8: fbf7f793 andi a5,a5,-65
2dcc: 02f48323 sb a5,38(s1)
2dd0: b7f5 j 2dbc <WCHNET_SocketConnect+0x5c>
2dd2: 4569 li a0,26
2dd4: 8082 ret
00002dd6 <QueryPingEnable>:
QueryPingEnable():
2dd6: 200087b7 lui a5,0x20008
2dda: 8507a503 lw a0,-1968(a5) # 20007850 <WCHCfg+0x14>
2dde: 8135 srli a0,a0,0xd
2de0: 8905 andi a0,a0,1
2de2: 8082 ret
00002de4 <LwipUnreachPort>:
LwipUnreachPort():
2de4: 200077b7 lui a5,0x20007
2de8: 7f878793 addi a5,a5,2040 # 200077f8 <NetInf>
2dec: 4705 li a4,1
2dee: 1141 addi sp,sp,-16
2df0: cbc8 sw a0,20(a5)
2df2: db94 sw a3,48(a5)
2df4: dbd0 sw a2,52(a5)
2df6: df8c sw a1,56(a5)
2df8: d7d8 sw a4,44(a5)
2dfa: 0141 addi sp,sp,16
2dfc: 8082 ret
00002dfe <LwipArpCheck>:
LwipArpCheck():
2dfe: 200087b7 lui a5,0x20008
2e02: 4705 li a4,1
2e04: 82e7aa23 sw a4,-1996(a5) # 20007834 <NetInf+0x3c>
2e08: 8082 ret
00002e0a <find_entry>:
find_entry():
2e0a: be6fd2ef jal t0,1f0 <__riscv_save_0>
2e0e: 200087b7 lui a5,0x20008
2e12: 8487a603 lw a2,-1976(a5) # 20007848 <WCHCfg+0xc>
2e16: 8201a683 lw a3,-2016(gp) # 20000040 <arp_table>
2e1a: 01861713 slli a4,a2,0x18
2e1e: 8761 srai a4,a4,0x18
2e20: 14050c63 beqz a0,2f78 <find_entry+0x16e>
2e24: 8d81c783 lbu a5,-1832(gp) # 200000f8 <etharp_cached_entry>
2e28: 4861 li a6,24
2e2a: 4889 li a7,2
2e2c: 03078833 mul a6,a5,a6
2e30: 9836 add a6,a6,a3
2e32: 00c82303 lw t1,12(a6)
2e36: 15131163 bne t1,a7,2f78 <find_entry+0x16e>
2e3a: 00154303 lbu t1,1(a0)
2e3e: 00054883 lbu a7,0(a0)
2e42: 00082803 lw a6,0(a6)
2e46: 0322 slli t1,t1,0x8
2e48: 01136333 or t1,t1,a7
2e4c: 00254883 lbu a7,2(a0)
2e50: 08c2 slli a7,a7,0x10
2e52: 0068e333 or t1,a7,t1
2e56: 00354883 lbu a7,3(a0)
2e5a: 08e2 slli a7,a7,0x18
2e5c: 0068e8b3 or a7,a7,t1
2e60: 11089c63 bne a7,a6,2f78 <find_entry+0x16e>
2e64: 07e2 slli a5,a5,0x18
2e66: 87e1 srai a5,a5,0x18
2e68: 853e mv a0,a5
2e6a: baafd06f j 214 <__riscv_restore_0>
2e6e: 025788b3 mul a7,a5,t0
2e72: 98b6 add a7,a7,a3
2e74: 00c8ae03 lw t3,12(a7) # 800c <udp_sendto_if+0xd2>
2e78: 07061a63 bne a2,a6,2eec <find_entry+0xe2>
2e7c: 060e1863 bnez t3,2eec <find_entry+0xe2>
2e80: 01879813 slli a6,a5,0x18
2e84: 41885813 srai a6,a6,0x18
2e88: 0785 addi a5,a5,1
2e8a: 07c2 slli a5,a5,0x10
2e8c: 83c1 srli a5,a5,0x10
2e8e: fec7e0e3 bltu a5,a2,2e6e <find_entry+0x64>
2e92: 01061763 bne a2,a6,2ea0 <find_entry+0x96>
2e96: 0015f893 andi a7,a1,1
2e9a: 57fd li a5,-1
2e9c: fc0886e3 beqz a7,2e68 <find_entry+0x5e>
2ea0: 8989 andi a1,a1,2
2ea2: 57fd li a5,-1
2ea4: f1f1 bnez a1,2e68 <find_entry+0x5e>
2ea6: 01081793 slli a5,a6,0x10
2eaa: 00c86b63 bltu a6,a2,2ec0 <find_entry+0xb6>
2eae: 01031793 slli a5,t1,0x10
2eb2: 00c36763 bltu t1,a2,2ec0 <find_entry+0xb6>
2eb6: 57fd li a5,-1
2eb8: fac778e3 bgeu a4,a2,2e68 <find_entry+0x5e>
2ebc: 01071793 slli a5,a4,0x10
2ec0: 83c1 srli a5,a5,0x10
2ec2: 4761 li a4,24
2ec4: 02e78733 mul a4,a5,a4
2ec8: 96ba add a3,a3,a4
2eca: 0006a623 sw zero,12(a3)
2ece: cd01 beqz a0,2ee6 <find_entry+0xdc>
2ed0: 3110 lbu a2,1(a0)
2ed2: 2118 lbu a4,0(a0)
2ed4: 0622 slli a2,a2,0x8
2ed6: 8e59 or a2,a2,a4
2ed8: 2138 lbu a4,2(a0)
2eda: 0742 slli a4,a4,0x10
2edc: 8e59 or a2,a2,a4
2ede: 3138 lbu a4,3(a0)
2ee0: 0762 slli a4,a4,0x18
2ee2: 8f51 or a4,a4,a2
2ee4: c298 sw a4,0(a3)
2ee6: 00069823 sh zero,16(a3)
2eea: a80d j 2f1c <find_entry+0x112>
2eec: 047e1463 bne t3,t2,2f34 <find_entry+0x12a>
2ef0: c90d beqz a0,2f22 <find_entry+0x118>
2ef2: 00154e83 lbu t4,1(a0)
2ef6: 00054e03 lbu t3,0(a0)
2efa: 0ea2 slli t4,t4,0x8
2efc: 01ceeeb3 or t4,t4,t3
2f00: 00254e03 lbu t3,2(a0)
2f04: 0e42 slli t3,t3,0x10
2f06: 01de6eb3 or t4,t3,t4
2f0a: 00354e03 lbu t3,3(a0)
2f0e: 0e62 slli t3,t3,0x18
2f10: 01de6e33 or t3,t3,t4
2f14: 0008ae83 lw t4,0(a7)
2f18: 01de1563 bne t3,t4,2f22 <find_entry+0x118>
2f1c: 8cf18c23 sb a5,-1832(gp) # 200000f8 <etharp_cached_entry>
2f20: b791 j 2e64 <find_entry+0x5a>
2f22: 0108d883 lhu a7,16(a7)
2f26: f7e8e1e3 bltu a7,t5,2e88 <find_entry+0x7e>
2f2a: 01879713 slli a4,a5,0x18
2f2e: 8761 srai a4,a4,0x18
2f30: 8f46 mv t5,a7
2f32: bf99 j 2e88 <find_entry+0x7e>
2f34: f48e1ae3 bne t3,s0,2e88 <find_entry+0x7e>
2f38: c515 beqz a0,2f64 <find_entry+0x15a>
2f3a: 00154e83 lbu t4,1(a0)
2f3e: 00054e03 lbu t3,0(a0)
2f42: 0ea2 slli t4,t4,0x8
2f44: 01ceeeb3 or t4,t4,t3
2f48: 00254e03 lbu t3,2(a0)
2f4c: 0e42 slli t3,t3,0x10
2f4e: 01de6eb3 or t4,t3,t4
2f52: 00354e03 lbu t3,3(a0)
2f56: 0e62 slli t3,t3,0x18
2f58: 01de6e33 or t3,t3,t4
2f5c: 0008ae83 lw t4,0(a7)
2f60: fbde0ee3 beq t3,t4,2f1c <find_entry+0x112>
2f64: 0108d883 lhu a7,16(a7)
2f68: f3f8e0e3 bltu a7,t6,2e88 <find_entry+0x7e>
2f6c: 01879313 slli t1,a5,0x18
2f70: 41835313 srai t1,t1,0x18
2f74: 8fc6 mv t6,a7
2f76: bf09 j 2e88 <find_entry+0x7e>
2f78: 883a mv a6,a4
2f7a: 833a mv t1,a4
2f7c: 4f81 li t6,0
2f7e: 4f01 li t5,0
2f80: 4781 li a5,0
2f82: 42e1 li t0,24
2f84: 4385 li t2,1
2f86: 4409 li s0,2
2f88: b719 j 2e8e <find_entry+0x84>
00002f8a <update_arp_entry>:
update_arp_entry():
2f8a: a4cfd2ef jal t0,1d6 <__riscv_save_4>
2f8e: 3198 lbu a4,1(a1)
2f90: 219c lbu a5,0(a1)
2f92: 8a36 mv s4,a3
2f94: 0722 slli a4,a4,0x8
2f96: 8f5d or a4,a4,a5
2f98: 21bc lbu a5,2(a1)
2f9a: 4154 lw a3,4(a0)
2f9c: 07c2 slli a5,a5,0x10
2f9e: 8f5d or a4,a4,a5
2fa0: 31bc lbu a5,3(a1)
2fa2: 07e2 slli a5,a5,0x18
2fa4: 8fd9 or a5,a5,a4
2fa6: 00f69b63 bne a3,a5,2fbc <update_arp_entry+0x32>
2faa: e689 bnez a3,2fb4 <update_arp_entry+0x2a>
2fac: 57d9 li a5,-10
2fae: 853e mv a0,a5
2fb0: a5afd06f j 20a <__riscv_restore_4>
2fb4: 4505 li a0,1
2fb6: fd1fe0ef jal ra,1f86 <IPConflictHandle>
2fba: bfcd j 2fac <update_arp_entry+0x22>
2fbc: dbe5 beqz a5,2fac <update_arp_entry+0x22>
2fbe: 842e mv s0,a1
2fc0: 892a mv s2,a0
2fc2: 85aa mv a1,a0
2fc4: 8522 mv a0,s0
2fc6: 89b2 mv s3,a2
2fc8: 4b9000ef jal ra,3c80 <ip_addr_isbroadcast>
2fcc: f165 bnez a0,2fac <update_arp_entry+0x22>
2fce: 301c lbu a5,1(s0)
2fd0: 2004 lbu s1,0(s0)
2fd2: f0000537 lui a0,0xf0000
2fd6: 07a2 slli a5,a5,0x8
2fd8: 8fc5 or a5,a5,s1
2fda: 2024 lbu s1,2(s0)
2fdc: 04c2 slli s1,s1,0x10
2fde: 8fc5 or a5,a5,s1
2fe0: 3024 lbu s1,3(s0)
2fe2: 04e2 slli s1,s1,0x18
2fe4: 8cdd or s1,s1,a5
2fe6: 019000ef jal ra,37fe <ntohl>
2fea: 8ce9 and s1,s1,a0
2fec: e0000537 lui a0,0xe0000
2ff0: 00f000ef jal ra,37fe <ntohl>
2ff4: faa48ce3 beq s1,a0,2fac <update_arp_entry+0x22>
2ff8: 85d2 mv a1,s4
2ffa: 8522 mv a0,s0
2ffc: e0fff0ef jal ra,2e0a <find_entry>
3000: 87aa mv a5,a0
3002: fa0546e3 bltz a0,2fae <update_arp_entry+0x24>
3006: 47e1 li a5,24
3008: 02f507b3 mul a5,a0,a5
300c: 8201a503 lw a0,-2016(gp) # 20000040 <arp_table>
3010: 953e add a0,a0,a5
3012: 4789 li a5,2
3014: c55c sw a5,12(a0)
3016: 01252a23 sw s2,20(a0) # e0000014 <_eusrstack+0xbffe0014>
301a: 00598793 addi a5,s3,5
301e: 00950713 addi a4,a0,9
3022: 2394 lbu a3,0(a5)
3024: 177d addi a4,a4,-1
3026: b314 sb a3,1(a4)
3028: fff78693 addi a3,a5,-1
302c: 00f99663 bne s3,a5,3038 <update_arp_entry+0xae>
3030: 00051823 sh zero,16(a0)
3034: 4781 li a5,0
3036: bfa5 j 2fae <update_arp_entry+0x24>
3038: 87b6 mv a5,a3
303a: b7e5 j 3022 <update_arp_entry+0x98>
0000303c <etharp_ip_input>:
etharp_ip_input():
303c: cd21 beqz a0,3094 <etharp_ip_input+0x58>
303e: 9b2fd2ef jal t0,1f0 <__riscv_save_0>
3042: 41c4 lw s1,4(a1)
3044: 842a mv s0,a0
3046: 34dc lbu a5,13(s1)
3048: 24c8 lbu a0,12(s1)
304a: 07a2 slli a5,a5,0x8
304c: 8d5d or a0,a0,a5
304e: 770000ef jal ra,37be <htons>
3052: 67a1 lui a5,0x8
3054: 10078793 addi a5,a5,256 # 8100 <icmp_send_response.isra.0+0x8>
3058: 01248593 addi a1,s1,18
305c: 00f50463 beq a0,a5,3064 <etharp_ip_input+0x28>
3060: 00e48593 addi a1,s1,14
3064: 35d8 lbu a4,13(a1)
3066: 25dc lbu a5,12(a1)
3068: 0722 slli a4,a4,0x8
306a: 8f5d or a4,a4,a5
306c: 25fc lbu a5,14(a1)
306e: 07c2 slli a5,a5,0x10
3070: 8f5d or a4,a4,a5
3072: 35fc lbu a5,15(a1)
3074: 07e2 slli a5,a5,0x18
3076: 8fd9 or a5,a5,a4
3078: 4058 lw a4,4(s0)
307a: 8fb9 xor a5,a5,a4
307c: 4418 lw a4,8(s0)
307e: 8ff9 and a5,a5,a4
3080: eb81 bnez a5,3090 <etharp_ip_input+0x54>
3082: 4681 li a3,0
3084: 00648613 addi a2,s1,6
3088: 05b1 addi a1,a1,12
308a: 8522 mv a0,s0
308c: effff0ef jal ra,2f8a <update_arp_entry>
3090: 984fd06f j 214 <__riscv_restore_0>
3094: 8082 ret
00003096 <etharp_arp_input>:
etharp_arp_input():
3096: 16050763 beqz a0,3204 <etharp_arp_input+0x16e>
309a: 93cfd2ef jal t0,1d6 <__riscv_save_4>
309e: 263a lhu a4,10(a2)
30a0: 02900793 li a5,41
30a4: 1141 addi sp,sp,-16
30a6: 89b2 mv s3,a2
30a8: 8a2e mv s4,a1
30aa: 84aa mv s1,a0
30ac: 00e7e863 bltu a5,a4,30bc <etharp_arp_input+0x26>
30b0: 854e mv a0,s3
30b2: 2fd010ef jal ra,4bae <pbuf_free>
30b6: 0141 addi sp,sp,16
30b8: 952fd06f j 20a <__riscv_restore_4>
30bc: 00462903 lw s2,4(a2)
30c0: 00d94783 lbu a5,13(s2)
30c4: 00c94503 lbu a0,12(s2)
30c8: 01290413 addi s0,s2,18
30cc: 07a2 slli a5,a5,0x8
30ce: 8d5d or a0,a0,a5
30d0: 6ee000ef jal ra,37be <htons>
30d4: 67a1 lui a5,0x8
30d6: 10078793 addi a5,a5,256 # 8100 <icmp_send_response.isra.0+0x8>
30da: 00f50463 beq a0,a5,30e2 <etharp_arp_input+0x4c>
30de: 00e90413 addi s0,s2,14
30e2: 00144a83 lbu s5,1(s0)
30e6: 201c lbu a5,0(s0)
30e8: 4505 li a0,1
30ea: 0aa2 slli s5,s5,0x8
30ec: 00faeab3 or s5,s5,a5
30f0: 6ce000ef jal ra,37be <htons>
30f4: faaa9ee3 bne s5,a0,30b0 <etharp_arp_input+0x1a>
30f8: 00544a83 lbu s5,5(s0)
30fc: 205c lbu a5,4(s0)
30fe: 60400513 li a0,1540
3102: 0aa2 slli s5,s5,0x8
3104: 00faeab3 or s5,s5,a5
3108: 6b6000ef jal ra,37be <htons>
310c: faaa92e3 bne s5,a0,30b0 <etharp_arp_input+0x1a>
3110: 00344a83 lbu s5,3(s0)
3114: 203c lbu a5,2(s0)
3116: 6505 lui a0,0x1
3118: 0aa2 slli s5,s5,0x8
311a: 80050513 addi a0,a0,-2048 # 800 <__stack_size>
311e: 00faeab3 or s5,s5,a5
3122: 69c000ef jal ra,37be <htons>
3126: f8aa95e3 bne s5,a0,30b0 <etharp_arp_input+0x1a>
312a: 00e40a93 addi s5,s0,14
312e: 4611 li a2,4
3130: 85d6 mv a1,s5
3132: 0068 addi a0,sp,12
3134: 283050ef jal ra,8bb6 <memcpy>
3138: 40d4 lw a3,4(s1)
313a: 00840613 addi a2,s0,8
313e: c2ad beqz a3,31a0 <etharp_arp_input+0x10a>
3140: 3c18 lbu a4,25(s0)
3142: 2c1c lbu a5,24(s0)
3144: 0722 slli a4,a4,0x8
3146: 8f5d or a4,a4,a5
3148: 2c3c lbu a5,26(s0)
314a: 07c2 slli a5,a5,0x10
314c: 8f5d or a4,a4,a5
314e: 3c3c lbu a5,27(s0)
3150: 07e2 slli a5,a5,0x18
3152: 8fd9 or a5,a5,a4
3154: 04f69663 bne a3,a5,31a0 <etharp_arp_input+0x10a>
3158: 4685 li a3,1
315a: 006c addi a1,sp,12
315c: 8526 mv a0,s1
315e: e2dff0ef jal ra,2f8a <update_arp_entry>
3162: 4b05 li s6,1
3164: 307c lbu a5,7(s0)
3166: 2068 lbu a0,6(s0)
3168: 07a2 slli a5,a5,0x8
316a: 8d5d or a0,a0,a5
316c: 2d89 jal 37be <htons>
316e: 4785 li a5,1
3170: 02f50f63 beq a0,a5,31ae <etharp_arp_input+0x118>
3174: 4789 li a5,2
3176: f2f51de3 bne a0,a5,30b0 <etharp_arp_input+0x1a>
317a: 006c addi a1,sp,12
317c: 8526 mv a0,s1
317e: 3f8010ef jal ra,4576 <dhcp_arp_reply>
3182: 200077b7 lui a5,0x20007
3186: 7807a703 lw a4,1920(a5) # 20007780 <DHCPCtrl>
318a: f20703e3 beqz a4,30b0 <etharp_arp_input+0x1a>
318e: 78078793 addi a5,a5,1920
3192: 47dc lw a5,12(a5)
3194: f0078ee3 beqz a5,30b0 <etharp_arp_input+0x1a>
3198: 006c addi a1,sp,12
319a: 8526 mv a0,s1
319c: 9782 jalr a5
319e: bf09 j 30b0 <etharp_arp_input+0x1a>
31a0: 4681 li a3,0
31a2: 006c addi a1,sp,12
31a4: 8526 mv a0,s1
31a6: de5ff0ef jal ra,2f8a <update_arp_entry>
31aa: 4b01 li s6,0
31ac: bf65 j 3164 <etharp_arp_input+0xce>
31ae: f00b01e3 beqz s6,30b0 <etharp_arp_input+0x1a>
31b2: 4509 li a0,2
31b4: 2529 jal 37be <htons>
31b6: a068 sb a0,6(s0)
31b8: 8121 srli a0,a0,0x8
31ba: b068 sb a0,7(s0)
31bc: 4611 li a2,4
31be: 85d6 mv a1,s5
31c0: 01840513 addi a0,s0,24
31c4: 1f3050ef jal ra,8bb6 <memcpy>
31c8: 4611 li a2,4
31ca: 00448593 addi a1,s1,4
31ce: 8556 mv a0,s5
31d0: 1e7050ef jal ra,8bb6 <memcpy>
31d4: 0435 addi s0,s0,13
31d6: 0915 addi s2,s2,5
31d8: 4795 li a5,5
31da: 56fd li a3,-1
31dc: 2018 lbu a4,0(s0)
31de: 197d addi s2,s2,-1
31e0: 147d addi s0,s0,-1
31e2: b438 sb a4,11(s0)
31e4: 00e900a3 sb a4,1(s2)
31e8: 00fa0733 add a4,s4,a5
31ec: 2318 lbu a4,0(a4)
31ee: 17fd addi a5,a5,-1
31f0: b018 sb a4,1(s0)
31f2: 00e903a3 sb a4,7(s2)
31f6: fed793e3 bne a5,a3,31dc <etharp_arp_input+0x146>
31fa: 4c9c lw a5,24(s1)
31fc: 85ce mv a1,s3
31fe: 8526 mv a0,s1
3200: 9782 jalr a5
3202: b57d j 30b0 <etharp_arp_input+0x1a>
3204: 8082 ret
00003206 <etharp_request>:
etharp_request():
3206: fd1fc2ef jal t0,1d6 <__riscv_save_4>
320a: 892a mv s2,a0
320c: 89ae mv s3,a1
320e: 4601 li a2,0
3210: 02a00593 li a1,42
3214: 450d li a0,3
3216: 1e7010ef jal ra,4bfc <pbuf_alloc>
321a: 547d li s0,-1
321c: c94d beqz a0,32ce <etharp_request+0xc8>
321e: 4140 lw s0,4(a0)
3220: 84aa mv s1,a0
3222: 4505 li a0,1
3224: 2b69 jal 37be <htons>
3226: a848 sb a0,20(s0)
3228: 8121 srli a0,a0,0x8
322a: b848 sb a0,21(s0)
322c: 02e90693 addi a3,s2,46
3230: 00540793 addi a5,s0,5
3234: 4715 li a4,5
3236: 83c18593 addi a1,gp,-1988 # 2000005c <ethzero>
323a: 83418613 addi a2,gp,-1996 # 20000054 <ethbroadcast>
323e: 557d li a0,-1
3240: 0006c803 lbu a6,0(a3)
3244: 17fd addi a5,a5,-1
3246: 16fd addi a3,a3,-1
3248: 01078ba3 sb a6,23(a5)
324c: 00e58833 add a6,a1,a4
3250: 00084803 lbu a6,0(a6)
3254: 030780a3 sb a6,33(a5)
3258: 00e60833 add a6,a2,a4
325c: 00084803 lbu a6,0(a6)
3260: 177d addi a4,a4,-1
3262: 010780a3 sb a6,1(a5)
3266: 0016c803 lbu a6,1(a3)
326a: 010783a3 sb a6,7(a5)
326e: fca719e3 bne a4,a0,3240 <etharp_request+0x3a>
3272: 4611 li a2,4
3274: 00490593 addi a1,s2,4
3278: 01c40513 addi a0,s0,28
327c: 13b050ef jal ra,8bb6 <memcpy>
3280: 85ce mv a1,s3
3282: 4611 li a2,4
3284: 02640513 addi a0,s0,38
3288: 12f050ef jal ra,8bb6 <memcpy>
328c: 4505 li a0,1
328e: 2b05 jal 37be <htons>
3290: a468 sb a0,14(s0)
3292: 6985 lui s3,0x1
3294: 8121 srli a0,a0,0x8
3296: b468 sb a0,15(s0)
3298: 80098513 addi a0,s3,-2048 # 800 <__stack_size>
329c: 230d jal 37be <htons>
329e: a808 sb a0,16(s0)
32a0: 8121 srli a0,a0,0x8
32a2: b808 sb a0,17(s0)
32a4: 60400513 li a0,1540
32a8: 2b19 jal 37be <htons>
32aa: a828 sb a0,18(s0)
32ac: 8121 srli a0,a0,0x8
32ae: b828 sb a0,19(s0)
32b0: 80698513 addi a0,s3,-2042
32b4: 2329 jal 37be <htons>
32b6: 01892783 lw a5,24(s2)
32ba: a448 sb a0,12(s0)
32bc: 8121 srli a0,a0,0x8
32be: b448 sb a0,13(s0)
32c0: 85a6 mv a1,s1
32c2: 854a mv a0,s2
32c4: 9782 jalr a5
32c6: 842a mv s0,a0
32c8: 8526 mv a0,s1
32ca: 0e5010ef jal ra,4bae <pbuf_free>
32ce: 8522 mv a0,s0
32d0: f3bfc06f j 20a <__riscv_restore_4>
000032d4 <etharp_tmr>:
etharp_tmr():
32d4: ef5fc2ef jal t0,1c8 <__riscv_save_10>
32d8: 200084b7 lui s1,0x20008
32dc: 4401 li s0,0
32de: 83c48493 addi s1,s1,-1988 # 2000783c <WCHCfg>
32e2: 4ae1 li s5,24
32e4: 4b89 li s7,2
32e6: 4c05 li s8,1
32e8: 0ff00c93 li s9,255
32ec: 44dc lw a5,12(s1)
32ee: 00f46463 bltu s0,a5,32f6 <etharp_tmr+0x22>
32f2: f0ffc06f j 200 <__riscv_restore_10>
32f6: 03540933 mul s2,s0,s5
32fa: 82018993 addi s3,gp,-2016 # 20000040 <arp_table>
32fe: 0009a583 lw a1,0(s3)
3302: 95ca add a1,a1,s2
3304: 299e lhu a5,16(a1)
3306: 45d8 lw a4,12(a1)
3308: 0785 addi a5,a5,1
330a: 07c2 slli a5,a5,0x10
330c: 83c1 srli a5,a5,0x10
330e: a99e sh a5,16(a1)
3310: 01771a63 bne a4,s7,3324 <etharp_tmr+0x50>
3314: 8c61d703 lhu a4,-1850(gp) # 200000e6 <Arp_Entry_timeout>
3318: 00e7fc63 bgeu a5,a4,3330 <etharp_tmr+0x5c>
331c: 0405 addi s0,s0,1
331e: 0ff47413 andi s0,s0,255
3322: b7e9 j 32ec <etharp_tmr+0x18>
3324: ff871ce3 bne a4,s8,331c <etharp_tmr+0x48>
3328: 8c41c703 lbu a4,-1852(gp) # 200000e4 <ARP_Retry_Cnt>
332c: 00f77563 bgeu a4,a5,3336 <etharp_tmr+0x62>
3330: 0005a623 sw zero,12(a1)
3334: b7e5 j 331c <etharp_tmr+0x48>
3336: 49c8 lw a0,20(a1)
3338: ecfff0ef jal ra,3206 <etharp_request>
333c: 8c41c783 lbu a5,-1852(gp) # 200000e4 <ARP_Retry_Cnt>
3340: fd979ee3 bne a5,s9,331c <etharp_tmr+0x48>
3344: 0009a783 lw a5,0(s3)
3348: 97ca add a5,a5,s2
334a: 00079823 sh zero,16(a5)
334e: b7f9 j 331c <etharp_tmr+0x48>
00003350 <etharp_query>:
etharp_query():
3350: e87fc2ef jal t0,1d6 <__riscv_save_4>
3354: 842e mv s0,a1
3356: 1141 addi sp,sp,-16
3358: 892a mv s2,a0
335a: 85aa mv a1,a0
335c: 8522 mv a0,s0
335e: 89b2 mv s3,a2
3360: 121000ef jal ra,3c80 <ip_addr_isbroadcast>
3364: c509 beqz a0,336e <etharp_query+0x1e>
3366: 5559 li a0,-10
3368: 0141 addi sp,sp,16
336a: ea1fc06f j 20a <__riscv_restore_4>
336e: 301c lbu a5,1(s0)
3370: 2004 lbu s1,0(s0)
3372: f0000537 lui a0,0xf0000
3376: 07a2 slli a5,a5,0x8
3378: 8fc5 or a5,a5,s1
337a: 2024 lbu s1,2(s0)
337c: 04c2 slli s1,s1,0x10
337e: 8fc5 or a5,a5,s1
3380: 3024 lbu s1,3(s0)
3382: 04e2 slli s1,s1,0x18
3384: 8cdd or s1,s1,a5
3386: 29a5 jal 37fe <ntohl>
3388: 8ce9 and s1,s1,a0
338a: e0000537 lui a0,0xe0000
338e: 2985 jal 37fe <ntohl>
3390: fca48be3 beq s1,a0,3366 <etharp_query+0x16>
3394: 3018 lbu a4,1(s0)
3396: 201c lbu a5,0(s0)
3398: 0722 slli a4,a4,0x8
339a: 8f5d or a4,a4,a5
339c: 203c lbu a5,2(s0)
339e: 07c2 slli a5,a5,0x10
33a0: 8f5d or a4,a4,a5
33a2: 303c lbu a5,3(s0)
33a4: 07e2 slli a5,a5,0x18
33a6: 8fd9 or a5,a5,a4
33a8: dfdd beqz a5,3366 <etharp_query+0x16>
33aa: 4585 li a1,1
33ac: 8522 mv a0,s0
33ae: a5dff0ef jal ra,2e0a <find_entry>
33b2: fa054be3 bltz a0,3368 <etharp_query+0x18>
33b6: 47e1 li a5,24
33b8: 02f504b3 mul s1,a0,a5
33bc: 8201a783 lw a5,-2016(gp) # 20000040 <arp_table>
33c0: 82018a13 addi s4,gp,-2016 # 20000040 <arp_table>
33c4: 97a6 add a5,a5,s1
33c6: 47d8 lw a4,12(a5)
33c8: c711 beqz a4,33d4 <etharp_query+0x84>
33ca: 557d li a0,-1
33cc: 02099b63 bnez s3,3402 <etharp_query+0xb2>
33d0: 4a81 li s5,0
33d2: a031 j 33de <etharp_query+0x8e>
33d4: 4705 li a4,1
33d6: c7d8 sw a4,12(a5)
33d8: 0127aa23 sw s2,20(a5)
33dc: 4a85 li s5,1
33de: a21ff0ef jal ra,2dfe <LwipArpCheck>
33e2: 85a2 mv a1,s0
33e4: 854a mv a0,s2
33e6: e21ff0ef jal ra,3206 <etharp_request>
33ea: ed01 bnez a0,3402 <etharp_query+0xb2>
33ec: 000a2783 lw a5,0(s4)
33f0: 4705 li a4,1
33f2: 97a6 add a5,a5,s1
33f4: 47d4 lw a3,12(a5)
33f6: 00e69663 bne a3,a4,3402 <etharp_query+0xb2>
33fa: 000a9463 bnez s5,3402 <etharp_query+0xb2>
33fe: 00079823 sh zero,16(a5)
3402: 000a2783 lw a5,0(s4)
3406: 97a6 add a5,a5,s1
3408: 47d8 lw a4,12(a5)
340a: 4785 li a5,1
340c: 00f71663 bne a4,a5,3418 <etharp_query+0xc8>
3410: c62a sw a0,12(sp)
3412: 9edff0ef jal ra,2dfe <LwipArpCheck>
3416: 4532 lw a0,12(sp)
3418: f40988e3 beqz s3,3368 <etharp_query+0x18>
341c: 000a2783 lw a5,0(s4)
3420: 4709 li a4,2
3422: 97a6 add a5,a5,s1
3424: 47d4 lw a3,12(a5)
3426: f4e691e3 bne a3,a4,3368 <etharp_query+0x18>
342a: 0049a403 lw s0,4(s3)
342e: 00978713 addi a4,a5,9
3432: 02e90613 addi a2,s2,46
3436: 00540693 addi a3,s0,5
343a: 078d addi a5,a5,3
343c: 230c lbu a1,0(a4)
343e: 177d addi a4,a4,-1
3440: 16fd addi a3,a3,-1
3442: b28c sb a1,1(a3)
3444: 220c lbu a1,0(a2)
3446: 167d addi a2,a2,-1
3448: b2ec sb a1,7(a3)
344a: fef719e3 bne a4,a5,343c <etharp_query+0xec>
344e: 6505 lui a0,0x1
3450: 80050513 addi a0,a0,-2048 # 800 <__stack_size>
3454: 26ad jal 37be <htons>
3456: 01892783 lw a5,24(s2)
345a: a448 sb a0,12(s0)
345c: 8121 srli a0,a0,0x8
345e: b448 sb a0,13(s0)
3460: 85ce mv a1,s3
3462: 854a mv a0,s2
3464: 9782 jalr a5
3466: b709 j 3368 <etharp_query+0x18>
00003468 <etharp_output>:
etharp_output():
3468: d6ffc2ef jal t0,1d6 <__riscv_save_4>
346c: 84ae mv s1,a1
346e: 1141 addi sp,sp,-16
3470: 892a mv s2,a0
3472: 45b9 li a1,14
3474: 8526 mv a0,s1
3476: 8432 mv s0,a2
3478: 6c8010ef jal ra,4b40 <pbuf_header>
347c: 10051e63 bnez a0,3598 <etharp_output+0x130>
3480: 85ca mv a1,s2
3482: 8522 mv a0,s0
3484: 7fc000ef jal ra,3c80 <ip_addr_isbroadcast>
3488: 10051563 bnez a0,3592 <etharp_output+0x12a>
348c: 301c lbu a5,1(s0)
348e: 00044983 lbu s3,0(s0)
3492: f0000537 lui a0,0xf0000
3496: 07a2 slli a5,a5,0x8
3498: 0137e7b3 or a5,a5,s3
349c: 00244983 lbu s3,2(s0)
34a0: 09c2 slli s3,s3,0x10
34a2: 00f9e7b3 or a5,s3,a5
34a6: 00344983 lbu s3,3(s0)
34aa: 09e2 slli s3,s3,0x18
34ac: 00f9e9b3 or s3,s3,a5
34b0: 26b9 jal 37fe <ntohl>
34b2: 00a9f9b3 and s3,s3,a0
34b6: e0000537 lui a0,0xe0000
34ba: 2691 jal 37fe <ntohl>
34bc: 2010 lbu a2,0(s0)
34be: 3014 lbu a3,1(s0)
34c0: 2038 lbu a4,2(s0)
34c2: 303c lbu a5,3(s0)
34c4: 08a99c63 bne s3,a0,355c <etharp_output+0xf4>
34c8: 00869513 slli a0,a3,0x8
34cc: 8d51 or a0,a0,a2
34ce: 0742 slli a4,a4,0x10
34d0: 8d59 or a0,a0,a4
34d2: 07e2 slli a5,a5,0x18
34d4: 4585 li a1,1
34d6: 846c sh a1,8(sp)
34d8: 8d5d or a0,a0,a5
34da: 05e00593 li a1,94
34de: 854c sb a1,10(sp)
34e0: 2e39 jal 37fe <ntohl>
34e2: 8141 srli a0,a0,0x10
34e4: 07f57513 andi a0,a0,127
34e8: 85c8 sb a0,11(sp)
34ea: 3008 lbu a0,1(s0)
34ec: 201c lbu a5,0(s0)
34ee: 0522 slli a0,a0,0x8
34f0: 8d5d or a0,a0,a5
34f2: 203c lbu a5,2(s0)
34f4: 07c2 slli a5,a5,0x10
34f6: 8fc9 or a5,a5,a0
34f8: 3028 lbu a0,3(s0)
34fa: 0562 slli a0,a0,0x18
34fc: 8d5d or a0,a0,a5
34fe: 2601 jal 37fe <ntohl>
3500: 8121 srli a0,a0,0x8
3502: 8648 sb a0,12(sp)
3504: 3008 lbu a0,1(s0)
3506: 201c lbu a5,0(s0)
3508: 0522 slli a0,a0,0x8
350a: 8d5d or a0,a0,a5
350c: 203c lbu a5,2(s0)
350e: 07c2 slli a5,a5,0x10
3510: 8fc9 or a5,a5,a0
3512: 3028 lbu a0,3(s0)
3514: 0562 slli a0,a0,0x18
3516: 8d5d or a0,a0,a5
3518: 24dd jal 37fe <ntohl>
351a: 86c8 sb a0,13(sp)
351c: 0034 addi a3,sp,8
351e: 40c0 lw s0,4(s1)
3520: 4795 li a5,5
3522: 567d li a2,-1
3524: 00540713 addi a4,s0,5
3528: 00f685b3 add a1,a3,a5
352c: 218c lbu a1,0(a1)
352e: 177d addi a4,a4,-1
3530: b30c sb a1,1(a4)
3532: 00f905b3 add a1,s2,a5
3536: 0295c583 lbu a1,41(a1)
353a: 17fd addi a5,a5,-1
353c: b36c sb a1,7(a4)
353e: fec795e3 bne a5,a2,3528 <etharp_output+0xc0>
3542: 6505 lui a0,0x1
3544: 80050513 addi a0,a0,-2048 # 800 <__stack_size>
3548: 2c9d jal 37be <htons>
354a: 01892783 lw a5,24(s2)
354e: a448 sb a0,12(s0)
3550: 8121 srli a0,a0,0x8
3552: b448 sb a0,13(s0)
3554: 85a6 mv a1,s1
3556: 854a mv a0,s2
3558: 9782 jalr a5
355a: a80d j 358c <etharp_output+0x124>
355c: 06a2 slli a3,a3,0x8
355e: 8ed1 or a3,a3,a2
3560: 0742 slli a4,a4,0x10
3562: 8f55 or a4,a4,a3
3564: 07e2 slli a5,a5,0x18
3566: 8fd9 or a5,a5,a4
3568: 00492703 lw a4,4(s2)
356c: 8fb9 xor a5,a5,a4
356e: 00892703 lw a4,8(s2)
3572: 8ff9 and a5,a5,a4
3574: c799 beqz a5,3582 <etharp_output+0x11a>
3576: 00c92783 lw a5,12(s2)
357a: 5571 li a0,-4
357c: cb81 beqz a5,358c <etharp_output+0x124>
357e: 00c90413 addi s0,s2,12
3582: 8626 mv a2,s1
3584: 85a2 mv a1,s0
3586: 854a mv a0,s2
3588: dc9ff0ef jal ra,3350 <etharp_query>
358c: 0141 addi sp,sp,16
358e: c7dfc06f j 20a <__riscv_restore_4>
3592: 83418693 addi a3,gp,-1996 # 20000054 <ethbroadcast>
3596: b761 j 351e <etharp_output+0xb6>
3598: 5579 li a0,-2
359a: bfcd j 358c <etharp_output+0x124>
0000359c <ethernet_input>:
ethernet_input():
359c: c55fc2ef jal t0,1f0 <__riscv_save_0>
35a0: 4144 lw s1,4(a0)
35a2: 842a mv s0,a0
35a4: 892e mv s2,a1
35a6: 34dc lbu a5,13(s1)
35a8: 24c8 lbu a0,12(s1)
35aa: 07a2 slli a5,a5,0x8
35ac: 8d5d or a0,a0,a5
35ae: 2c01 jal 37be <htons>
35b0: 67a1 lui a5,0x8
35b2: 10078793 addi a5,a5,256 # 8100 <icmp_send_response.isra.0+0x8>
35b6: 00f51763 bne a0,a5,35c4 <ethernet_input+0x28>
35ba: 389c lbu a5,17(s1)
35bc: 2888 lbu a0,16(s1)
35be: 07a2 slli a5,a5,0x8
35c0: 8d5d or a0,a0,a5
35c2: 2af5 jal 37be <htons>
35c4: 80050793 addi a5,a0,-2048
35c8: cb91 beqz a5,35dc <ethernet_input+0x40>
35ca: 6785 lui a5,0x1
35cc: 80678793 addi a5,a5,-2042 # 806 <__stack_size+0x6>
35d0: 04f50263 beq a0,a5,3614 <ethernet_input+0x78>
35d4: 8522 mv a0,s0
35d6: 5d8010ef jal ra,4bae <pbuf_free>
35da: a815 j 360e <ethernet_input+0x72>
35dc: 85a2 mv a1,s0
35de: 854a mv a0,s2
35e0: a5dff0ef jal ra,303c <etharp_ip_input>
35e4: 34dc lbu a5,13(s1)
35e6: 24c8 lbu a0,12(s1)
35e8: 07a2 slli a5,a5,0x8
35ea: 8d5d or a0,a0,a5
35ec: 2ac9 jal 37be <htons>
35ee: 67a1 lui a5,0x8
35f0: 10078793 addi a5,a5,256 # 8100 <icmp_send_response.isra.0+0x8>
35f4: 45b9 li a1,14
35f6: 00f51363 bne a0,a5,35fc <ethernet_input+0x60>
35fa: 45c9 li a1,18
35fc: 40b005b3 neg a1,a1
3600: 8522 mv a0,s0
3602: 53e010ef jal ra,4b40 <pbuf_header>
3606: f579 bnez a0,35d4 <ethernet_input+0x38>
3608: 85ca mv a1,s2
360a: 8522 mv a0,s0
360c: 24a9 jal 3856 <ip_input>
360e: 4501 li a0,0
3610: c05fc06f j 214 <__riscv_restore_0>
3614: 8622 mv a2,s0
3616: 02990593 addi a1,s2,41
361a: 854a mv a0,s2
361c: a7bff0ef jal ra,3096 <etharp_arp_input>
3620: b7fd j 360e <ethernet_input+0x72>
00003622 <ethernetif_init>:
ethernetif_init():
3622: bcffc2ef jal t0,1f0 <__riscv_save_0>
3626: 200077b7 lui a5,0x20007
362a: 79878793 addi a5,a5,1944 # 20007798 <dhcp_host_name>
362e: d15c sw a5,36(a0)
3630: 06500793 li a5,101
3634: 02f509a3 sb a5,51(a0)
3638: 06e00793 li a5,110
363c: 02f50a23 sb a5,52(a0)
3640: 000037b7 lui a5,0x3
3644: 46878793 addi a5,a5,1128 # 3468 <etharp_output>
3648: c95c sw a5,20(a0)
364a: 000037b7 lui a5,0x3
364e: 68678793 addi a5,a5,1670 # 3686 <low_level_output>
3652: cd1c sw a5,24(a0)
3654: 200085b7 lui a1,0x20008
3658: 4799 li a5,6
365a: 842a mv s0,a0
365c: 02f50423 sb a5,40(a0)
3660: 00052e23 sw zero,28(a0)
3664: 4619 li a2,6
3666: 89158593 addi a1,a1,-1903 # 20007891 <WCHNetIf+0x29>
366a: 02950513 addi a0,a0,41
366e: 548050ef jal ra,8bb6 <memcpy>
3672: 5dc00793 li a5,1500
3676: b81e sh a5,48(s0)
3678: 03300793 li a5,51
367c: 02f40923 sb a5,50(s0)
3680: 4501 li a0,0
3682: b93fc06f j 214 <__riscv_restore_0>
00003686 <low_level_output>:
low_level_output():
3686: b6bfc2ef jal t0,1f0 <__riscv_save_0>
368a: 64b1 lui s1,0xc
368c: 842e mv s0,a1
368e: 35148493 addi s1,s1,849 # c351 <_data_lma+0x34bd>
3692: e70ff0ef jal ra,2d02 <WCHNET_GetPHYStatus>
3696: 8911 andi a0,a0,4
3698: cd15 beqz a0,36d4 <low_level_output+0x4e>
369a: 14fd addi s1,s1,-1
369c: cc85 beqz s1,36d4 <low_level_output+0x4e>
369e: feafe0ef jal ra,1e88 <getTxBuffAddr>
36a2: 892a mv s2,a0
36a4: d57d beqz a0,3692 <low_level_output+0xc>
36a6: 87aa mv a5,a0
36a8: 4481 li s1,0
36aa: e801 bnez s0,36ba <low_level_output+0x34>
36ac: 85ca mv a1,s2
36ae: 8526 mv a0,s1
36b0: f98fe0ef jal ra,1e48 <WCHNET_Tx>
36b4: 4501 li a0,0
36b6: b5ffc06f j 214 <__riscv_restore_0>
36ba: 2432 lhu a2,10(s0)
36bc: 404c lw a1,4(s0)
36be: 853e mv a0,a5
36c0: 4f6050ef jal ra,8bb6 <memcpy>
36c4: 243a lhu a4,10(s0)
36c6: 4000 lw s0,0(s0)
36c8: 94ba add s1,s1,a4
36ca: 04c2 slli s1,s1,0x10
36cc: 00e507b3 add a5,a0,a4
36d0: 80c1 srli s1,s1,0x10
36d2: bfe1 j 36aa <low_level_output+0x24>
36d4: 5551 li a0,-12
36d6: b7c5 j 36b6 <low_level_output+0x30>
000036d8 <ethernetif_input>:
ethernetif_input():
36d8: afffc2ef jal t0,1d6 <__riscv_save_4>
36dc: 200087b7 lui a5,0x20008
36e0: 8607a783 lw a5,-1952(a5) # 20007860 <WCHCfg+0x24>
36e4: 89aa mv s3,a0
36e6: 8dc18513 addi a0,gp,-1828 # 200000fc <frame>
36ea: 8dc18493 addi s1,gp,-1828 # 200000fc <frame>
36ee: 9782 jalr a5
36f0: 408c lw a1,0(s1)
36f2: c9a9 beqz a1,3744 <ethernetif_input+0x6c>
36f4: 8d01c783 lbu a5,-1840(gp) # 200000f0 <phydata>
36f8: 8dc18413 addi s0,gp,-1828 # 200000fc <frame>
36fc: 0ff7f793 andi a5,a5,255
3700: e781 bnez a5,3708 <ethernetif_input+0x30>
3702: 4785 li a5,1
3704: 8cf18823 sb a5,-1840(gp) # 200000f0 <phydata>
3708: 05c2 slli a1,a1,0x10
370a: 460d li a2,3
370c: 81c1 srli a1,a1,0x10
370e: 450d li a0,3
3710: 4044 lw s1,4(s0)
3712: 4ea010ef jal ra,4bfc <pbuf_alloc>
3716: 892a mv s2,a0
3718: c515 beqz a0,3744 <ethernetif_input+0x6c>
371a: 842a mv s0,a0
371c: 2432 lhu a2,10(s0)
371e: 4048 lw a0,4(s0)
3720: 85a6 mv a1,s1
3722: 494050ef jal ra,8bb6 <memcpy>
3726: 243e lhu a5,10(s0)
3728: 4000 lw s0,0(s0)
372a: 94be add s1,s1,a5
372c: f865 bnez s0,371c <ethernetif_input+0x44>
372e: f08fe0ef jal ra,1e36 <setRxBuffAddr>
3732: 0109a783 lw a5,16(s3)
3736: 85ce mv a1,s3
3738: 854a mv a0,s2
373a: 9782 jalr a5
373c: c501 beqz a0,3744 <ethernetif_input+0x6c>
373e: 854a mv a0,s2
3740: 46e010ef jal ra,4bae <pbuf_free>
3744: ac7fc06f j 20a <__riscv_restore_4>
00003748 <wch_ethernetif_init>:
wch_ethernetif_init():
3748: aa9fc2ef jal t0,1f0 <__riscv_save_0>
374c: 1141 addi sp,sp,-16
374e: 20008437 lui s0,0x20008
3752: c202 sw zero,4(sp)
3754: c402 sw zero,8(sp)
3756: c602 sw zero,12(sp)
3758: 7a1000ef jal ra,46f8 <lwip_init>
375c: 86840513 addi a0,s0,-1944 # 20007868 <WCHNetIf>
3760: 200085b7 lui a1,0x20008
3764: 4619 li a2,6
3766: 80458593 addi a1,a1,-2044 # 20007804 <NetInf+0xc>
376a: 02950513 addi a0,a0,41
376e: 448050ef jal ra,8bb6 <memcpy>
3772: 200077b7 lui a5,0x20007
3776: 7f87a703 lw a4,2040(a5) # 200077f8 <NetInf>
377a: 7f878793 addi a5,a5,2040
377e: 86840513 addi a0,s0,-1944
3782: c23a sw a4,4(sp)
3784: 4798 lw a4,8(a5)
3786: 43dc lw a5,4(a5)
3788: c43a sw a4,8(sp)
378a: c63e sw a5,12(sp)
378c: 8e01ae23 sw zero,-1796(gp) # 2000011c <netif_list>
3790: 8e01ac23 sw zero,-1800(gp) # 20000118 <netif_default>
3794: 39e010ef jal ra,4b32 <netif_set_default>
3798: 00003837 lui a6,0x3
379c: 000037b7 lui a5,0x3
37a0: 0074 addi a3,sp,12
37a2: 0030 addi a2,sp,8
37a4: 004c addi a1,sp,4
37a6: 59c80813 addi a6,a6,1436 # 359c <ethernet_input>
37aa: 62278793 addi a5,a5,1570 # 3622 <ethernetif_init>
37ae: 4701 li a4,0
37b0: 86840513 addi a0,s0,-1944
37b4: 324010ef jal ra,4ad8 <netif_add>
37b8: 0141 addi sp,sp,16
37ba: a5bfc06f j 214 <__riscv_restore_0>
000037be <htons>:
htons():
37be: 00851793 slli a5,a0,0x8
37c2: 8121 srli a0,a0,0x8
37c4: 8d5d or a0,a0,a5
37c6: 0542 slli a0,a0,0x10
37c8: 8141 srli a0,a0,0x10
37ca: 8082 ret
000037cc <ntohs>:
ntohs():
37cc: 00851793 slli a5,a0,0x8
37d0: 8121 srli a0,a0,0x8
37d2: 8d5d or a0,a0,a5
37d4: 0542 slli a0,a0,0x10
37d6: 8141 srli a0,a0,0x10
37d8: 8082 ret
000037da <htonl>:
htonl():
37da: 01855713 srli a4,a0,0x18
37de: 01851793 slli a5,a0,0x18
37e2: 8fd9 or a5,a5,a4
37e4: 00ff06b7 lui a3,0xff0
37e8: 00851713 slli a4,a0,0x8
37ec: 8f75 and a4,a4,a3
37ee: 8fd9 or a5,a5,a4
37f0: 6741 lui a4,0x10
37f2: f0070713 addi a4,a4,-256 # ff00 <_data_lma+0x706c>
37f6: 8121 srli a0,a0,0x8
37f8: 8d79 and a0,a0,a4
37fa: 8d5d or a0,a0,a5
37fc: 8082 ret
000037fe <ntohl>:
ntohl():
37fe: 9f3fc2ef jal t0,1f0 <__riscv_save_0>
3802: fd9ff0ef jal ra,37da <htonl>
3806: a0ffc06f j 214 <__riscv_restore_0>
0000380a <ip_route>:
ip_route():
380a: 9e7fc2ef jal t0,1f0 <__riscv_save_0>
380e: 8fc1a403 lw s0,-1796(gp) # 2000011c <netif_list>
3812: 84aa mv s1,a0
3814: ec01 bnez s0,382c <ip_route+0x22>
3816: 8f81a503 lw a0,-1800(gp) # 20000118 <netif_default>
381a: c511 beqz a0,3826 <ip_route+0x1c>
381c: 31c010ef jal ra,4b38 <netif_is_up>
3820: c119 beqz a0,3826 <ip_route+0x1c>
3822: 8f81a403 lw s0,-1800(gp) # 20000118 <netif_default>
3826: 8522 mv a0,s0
3828: 9edfc06f j 214 <__riscv_restore_0>
382c: 8522 mv a0,s0
382e: 30a010ef jal ra,4b38 <netif_is_up>
3832: c105 beqz a0,3852 <ip_route+0x48>
3834: 3098 lbu a4,1(s1)
3836: 209c lbu a5,0(s1)
3838: 0722 slli a4,a4,0x8
383a: 8f5d or a4,a4,a5
383c: 20bc lbu a5,2(s1)
383e: 07c2 slli a5,a5,0x10
3840: 8f5d or a4,a4,a5
3842: 30bc lbu a5,3(s1)
3844: 07e2 slli a5,a5,0x18
3846: 8fd9 or a5,a5,a4
3848: 4058 lw a4,4(s0)
384a: 8fb9 xor a5,a5,a4
384c: 4418 lw a4,8(s0)
384e: 8ff9 and a5,a5,a4
3850: dbf9 beqz a5,3826 <ip_route+0x1c>
3852: 4000 lw s0,0(s0)
3854: b7c1 j 3814 <ip_route+0xa>
00003856 <ip_input>:
ip_input():
3856: 973fc2ef jal t0,1c8 <__riscv_save_10>
385a: 4140 lw s0,4(a0)
385c: 84aa mv s1,a0
385e: 89ae mv s3,a1
3860: 301c lbu a5,1(s0)
3862: 2008 lbu a0,0(s0)
3864: 07a2 slli a5,a5,0x8
3866: 8d5d or a0,a0,a5
3868: f65ff0ef jal ra,37cc <ntohs>
386c: 8131 srli a0,a0,0xc
386e: 0542 slli a0,a0,0x10
3870: 8141 srli a0,a0,0x10
3872: 4791 li a5,4
3874: 00f50663 beq a0,a5,3880 <ip_input+0x2a>
3878: 8526 mv a0,s1
387a: 334010ef jal ra,4bae <pbuf_free>
387e: a431 j 3a8a <ip_input+0x234>
3880: 301c lbu a5,1(s0)
3882: 2008 lbu a0,0(s0)
3884: 07a2 slli a5,a5,0x8
3886: 8d5d or a0,a0,a5
3888: f45ff0ef jal ra,37cc <ntohs>
388c: 8119 srli a0,a0,0x6
388e: 303c lbu a5,3(s0)
3890: 03c57a13 andi s4,a0,60
3894: 2028 lbu a0,2(s0)
3896: 07a2 slli a5,a5,0x8
3898: 8d5d or a0,a0,a5
389a: f33ff0ef jal ra,37cc <ntohs>
389e: 24be lhu a5,10(s1)
38a0: 892a mv s2,a0
38a2: fd47ebe3 bltu a5,s4,3878 <ip_input+0x22>
38a6: 249e lhu a5,8(s1)
38a8: fca7e8e3 bltu a5,a0,3878 <ip_input+0x22>
38ac: 85d2 mv a1,s4
38ae: 8522 mv a0,s0
38b0: 4bf040ef jal ra,856e <inet_chksum>
38b4: f171 bnez a0,3878 <ip_input+0x22>
38b6: 85ca mv a1,s2
38b8: 8526 mv a0,s1
38ba: 482010ef jal ra,4d3c <pbuf_realloc>
38be: f0000537 lui a0,0xf0000
38c2: f3dff0ef jal ra,37fe <ntohl>
38c6: e0000537 lui a0,0xe0000
38ca: f35ff0ef jal ra,37fe <ntohl>
38ce: 894e mv s2,s3
38d0: 4b05 li s6,1
38d2: 01040b93 addi s7,s0,16
38d6: 854a mv a0,s2
38d8: 260010ef jal ra,4b38 <netif_is_up>
38dc: e511 bnez a0,38e8 <ip_input+0x92>
38de: 120b1363 bnez s6,3a04 <ip_input+0x1ae>
38e2: 00092903 lw s2,0(s2)
38e6: a20d j 3a08 <ip_input+0x1b2>
38e8: 00490793 addi a5,s2,4
38ec: dbed beqz a5,38de <ip_input+0x88>
38ee: 00492683 lw a3,4(s2)
38f2: d6f5 beqz a3,38de <ip_input+0x88>
38f4: 3818 lbu a4,17(s0)
38f6: 281c lbu a5,16(s0)
38f8: 0722 slli a4,a4,0x8
38fa: 8f5d or a4,a4,a5
38fc: 283c lbu a5,18(s0)
38fe: 07c2 slli a5,a5,0x10
3900: 8f5d or a4,a4,a5
3902: 383c lbu a5,19(s0)
3904: 07e2 slli a5,a5,0x18
3906: 8fd9 or a5,a5,a4
3908: 04f68263 beq a3,a5,394c <ip_input+0xf6>
390c: 85ca mv a1,s2
390e: 855e mv a0,s7
3910: 2e85 jal 3c80 <ip_addr_isbroadcast>
3912: ed0d bnez a0,394c <ip_input+0xf6>
3914: 381c lbu a5,17(s0)
3916: 01044a83 lbu s5,16(s0)
391a: f0000537 lui a0,0xf0000
391e: 07a2 slli a5,a5,0x8
3920: 0157e7b3 or a5,a5,s5
3924: 01244a83 lbu s5,18(s0)
3928: 0ac2 slli s5,s5,0x10
392a: 00fae7b3 or a5,s5,a5
392e: 01344a83 lbu s5,19(s0)
3932: 0ae2 slli s5,s5,0x18
3934: 00faeab3 or s5,s5,a5
3938: ec7ff0ef jal ra,37fe <ntohl>
393c: 00aafab3 and s5,s5,a0
3940: e0000537 lui a0,0xe0000
3944: ebbff0ef jal ra,37fe <ntohl>
3948: f8aa9be3 bne s5,a0,38de <ip_input+0x88>
394c: 3458 lbu a4,13(s0)
394e: 245c lbu a5,12(s0)
3950: 0722 slli a4,a4,0x8
3952: 8f5d or a4,a4,a5
3954: 247c lbu a5,14(s0)
3956: 07c2 slli a5,a5,0x10
3958: 8f5d or a4,a4,a5
395a: 347c lbu a5,15(s0)
395c: 07e2 slli a5,a5,0x18
395e: 8fd9 or a5,a5,a4
3960: c3b9 beqz a5,39a6 <ip_input+0x150>
3962: 85ce mv a1,s3
3964: 00c40513 addi a0,s0,12
3968: 2e21 jal 3c80 <ip_addr_isbroadcast>
396a: f00517e3 bnez a0,3878 <ip_input+0x22>
396e: 345c lbu a5,13(s0)
3970: 00c44a03 lbu s4,12(s0)
3974: f0000537 lui a0,0xf0000
3978: 07a2 slli a5,a5,0x8
397a: 0147e7b3 or a5,a5,s4
397e: 00e44a03 lbu s4,14(s0)
3982: 0a42 slli s4,s4,0x10
3984: 00fa67b3 or a5,s4,a5
3988: 00f44a03 lbu s4,15(s0)
398c: 0a62 slli s4,s4,0x18
398e: 00fa6a33 or s4,s4,a5
3992: e6dff0ef jal ra,37fe <ntohl>
3996: 00aa7a33 and s4,s4,a0
399a: e0000537 lui a0,0xe0000
399e: e61ff0ef jal ra,37fe <ntohl>
39a2: ecaa0be3 beq s4,a0,3878 <ip_input+0x22>
39a6: ec0909e3 beqz s2,3878 <ip_input+0x22>
39aa: 00744903 lbu s2,7(s0)
39ae: 2068 lbu a0,6(s0)
39b0: 0922 slli s2,s2,0x8
39b2: 00a96933 or s2,s2,a0
39b6: 6511 lui a0,0x4
39b8: 157d addi a0,a0,-1
39ba: e05ff0ef jal ra,37be <htons>
39be: 00a97533 and a0,s2,a0
39c2: c511 beqz a0,39ce <ip_input+0x178>
39c4: 8526 mv a0,s1
39c6: 26ed jal 3db0 <ip_reass>
39c8: 84aa mv s1,a0
39ca: c161 beqz a0,3a8a <ip_input+0x234>
39cc: 4140 lw s0,4(a0)
39ce: 85ce mv a1,s3
39d0: 8526 mv a0,s1
39d2: 4aa010ef jal ra,4e7c <raw_input>
39d6: e955 bnez a0,3a8a <ip_input+0x234>
39d8: 341c lbu a5,9(s0)
39da: 2408 lbu a0,8(s0)
39dc: 07a2 slli a5,a5,0x8
39de: 8d5d or a0,a0,a5
39e0: dedff0ef jal ra,37cc <ntohs>
39e4: 0ff57513 andi a0,a0,255
39e8: 4799 li a5,6
39ea: 0af50363 beq a0,a5,3a90 <ip_input+0x23a>
39ee: 47c5 li a5,17
39f0: 08f50963 beq a0,a5,3a82 <ip_input+0x22c>
39f4: 4785 li a5,1
39f6: 0af51263 bne a0,a5,3a9a <ip_input+0x244>
39fa: 85ce mv a1,s3
39fc: 8526 mv a0,s1
39fe: 770040ef jal ra,816e <icmp_input>
3a02: a061 j 3a8a <ip_input+0x234>
3a04: 8fc1a903 lw s2,-1796(gp) # 2000011c <netif_list>
3a08: 01391463 bne s2,s3,3a10 <ip_input+0x1ba>
3a0c: 00092903 lw s2,0(s2)
3a10: 4b01 li s6,0
3a12: ec0912e3 bnez s2,38d6 <ip_input+0x80>
3a16: 341c lbu a5,9(s0)
3a18: 2408 lbu a0,8(s0)
3a1a: 07a2 slli a5,a5,0x8
3a1c: 8d5d or a0,a0,a5
3a1e: dafff0ef jal ra,37cc <ntohs>
3a22: 0ff57513 andi a0,a0,255
3a26: 47c5 li a5,17
3a28: 00f51e63 bne a0,a5,3a44 <ip_input+0x1ee>
3a2c: 014407b3 add a5,s0,s4
3a30: 23a8 lbu a0,2(a5)
3a32: 33bc lbu a5,3(a5)
3a34: 07a2 slli a5,a5,0x8
3a36: 8d5d or a0,a0,a5
3a38: d95ff0ef jal ra,37cc <ntohs>
3a3c: 04400793 li a5,68
3a40: 02f50d63 beq a0,a5,3a7a <ip_input+0x224>
3a44: 4a85 li s5,1
3a46: 341c lbu a5,9(s0)
3a48: 2408 lbu a0,8(s0)
3a4a: 07a2 slli a5,a5,0x8
3a4c: 8d5d or a0,a0,a5
3a4e: d7fff0ef jal ra,37cc <ntohs>
3a52: 0ff57513 andi a0,a0,255
3a56: 47c5 li a5,17
3a58: 08f51963 bne a0,a5,3aea <ip_input+0x294>
3a5c: 9a22 add s4,s4,s0
3a5e: 003a4783 lbu a5,3(s4)
3a62: 002a4503 lbu a0,2(s4)
3a66: 07a2 slli a5,a5,0x8
3a68: 8d5d or a0,a0,a5
3a6a: d63ff0ef jal ra,37cc <ntohs>
3a6e: 76c00793 li a5,1900
3a72: 06f51c63 bne a0,a5,3aea <ip_input+0x294>
3a76: 894e mv s2,s3
3a78: b73d j 39a6 <ip_input+0x150>
3a7a: f20998e3 bnez s3,39aa <ip_input+0x154>
3a7e: 4a81 li s5,0
3a80: b7d9 j 3a46 <ip_input+0x1f0>
3a82: 85ce mv a1,s3
3a84: 8526 mv a0,s1
3a86: 1e2040ef jal ra,7c68 <udp_input>
3a8a: 4501 li a0,0
3a8c: f74fc06f j 200 <__riscv_restore_10>
3a90: 85ce mv a1,s3
3a92: 8526 mv a0,s1
3a94: 321020ef jal ra,65b4 <tcp_input>
3a98: bfcd j 3a8a <ip_input+0x234>
3a9a: 85ce mv a1,s3
3a9c: 01040513 addi a0,s0,16
3aa0: 22c5 jal 3c80 <ip_addr_isbroadcast>
3aa2: dc051be3 bnez a0,3878 <ip_input+0x22>
3aa6: 381c lbu a5,17(s0)
3aa8: 01044903 lbu s2,16(s0)
3aac: f0000537 lui a0,0xf0000
3ab0: 07a2 slli a5,a5,0x8
3ab2: 0127e7b3 or a5,a5,s2
3ab6: 01244903 lbu s2,18(s0)
3aba: 0942 slli s2,s2,0x10
3abc: 00f967b3 or a5,s2,a5
3ac0: 01344903 lbu s2,19(s0)
3ac4: 0962 slli s2,s2,0x18
3ac6: 00f96933 or s2,s2,a5
3aca: d35ff0ef jal ra,37fe <ntohl>
3ace: 00a97933 and s2,s2,a0
3ad2: e0000537 lui a0,0xe0000
3ad6: d29ff0ef jal ra,37fe <ntohl>
3ada: d8a90fe3 beq s2,a0,3878 <ip_input+0x22>
3ade: c0c0 sw s0,4(s1)
3ae0: 4589 li a1,2
3ae2: 8526 mv a0,s1
3ae4: 0db040ef jal ra,83be <icmp_dest_unreach>
3ae8: bb41 j 3878 <ip_input+0x22>
3aea: e60a91e3 bnez s5,394c <ip_input+0xf6>
3aee: b369 j 3878 <ip_input+0x22>
00003af0 <ip_output_if>:
ip_output_if():
3af0: ed8fc2ef jal t0,1c8 <__riscv_save_10>
3af4: 89aa mv s3,a0
3af6: 8942 mv s2,a6
3af8: 12060f63 beqz a2,3c36 <ip_output_if+0x146>
3afc: 8aae mv s5,a1
3afe: 45d1 li a1,20
3b00: 8a3a mv s4,a4
3b02: 84b2 mv s1,a2
3b04: 8bb6 mv s7,a3
3b06: 8b3e mv s6,a5
3b08: 038010ef jal ra,4b40 <pbuf_header>
3b0c: 5779 li a4,-2
3b0e: 12051163 bnez a0,3c30 <ip_output_if+0x140>
3b12: 0049a403 lw s0,4(s3)
3b16: 0ba2 slli s7,s7,0x8
3b18: 341c lbu a5,9(s0)
3b1a: 2408 lbu a0,8(s0)
3b1c: 07a2 slli a5,a5,0x8
3b1e: 8d5d or a0,a0,a5
3b20: cadff0ef jal ra,37cc <ntohs>
3b24: 0ff57513 andi a0,a0,255
3b28: 01756533 or a0,a0,s7
3b2c: c93ff0ef jal ra,37be <htons>
3b30: 00855713 srli a4,a0,0x8
3b34: b418 sb a4,9(s0)
3b36: a408 sb a0,8(s0)
3b38: c95ff0ef jal ra,37cc <ntohs>
3b3c: 8121 srli a0,a0,0x8
3b3e: 0542 slli a0,a0,0x10
3b40: 8141 srli a0,a0,0x10
3b42: 0522 slli a0,a0,0x8
3b44: 01656533 or a0,a0,s6
3b48: 0542 slli a0,a0,0x10
3b4a: 8141 srli a0,a0,0x10
3b4c: c73ff0ef jal ra,37be <htons>
3b50: 3098 lbu a4,1(s1)
3b52: 209c lbu a5,0(s1)
3b54: a408 sb a0,8(s0)
3b56: 0722 slli a4,a4,0x8
3b58: 8f5d or a4,a4,a5
3b5a: 20bc lbu a5,2(s1)
3b5c: 8121 srli a0,a0,0x8
3b5e: b408 sb a0,9(s0)
3b60: 07c2 slli a5,a5,0x10
3b62: 8f5d or a4,a4,a5
3b64: 30bc lbu a5,3(s1)
3b66: 6511 lui a0,0x4
3b68: 50050513 addi a0,a0,1280 # 4500 <dhcp_create_request+0x132>
3b6c: 07e2 slli a5,a5,0x18
3b6e: 8fd9 or a5,a5,a4
3b70: 0087d713 srli a4,a5,0x8
3b74: a81c sb a5,16(s0)
3b76: b818 sb a4,17(s0)
3b78: 0107d713 srli a4,a5,0x10
3b7c: 83e1 srli a5,a5,0x18
3b7e: b83c sb a5,19(s0)
3b80: a838 sb a4,18(s0)
3b82: 00aa6533 or a0,s4,a0
3b86: c39ff0ef jal ra,37be <htons>
3b8a: a008 sb a0,0(s0)
3b8c: 8121 srli a0,a0,0x8
3b8e: b008 sb a0,1(s0)
3b90: 0089d503 lhu a0,8(s3)
3b94: 8e418a13 addi s4,gp,-1820 # 20000104 <ip_id.2947>
3b98: c27ff0ef jal ra,37be <htons>
3b9c: a028 sb a0,2(s0)
3b9e: 8121 srli a0,a0,0x8
3ba0: b028 sb a0,3(s0)
3ba2: 000a5503 lhu a0,0(s4)
3ba6: 00040323 sb zero,6(s0)
3baa: 000403a3 sb zero,7(s0)
3bae: c11ff0ef jal ra,37be <htons>
3bb2: 000a5783 lhu a5,0(s4)
3bb6: a048 sb a0,4(s0)
3bb8: 8121 srli a0,a0,0x8
3bba: 0785 addi a5,a5,1
3bbc: b048 sb a0,5(s0)
3bbe: 00fa1023 sh a5,0(s4)
3bc2: 020a8163 beqz s5,3be4 <ip_output_if+0xf4>
3bc6: 001ac703 lbu a4,1(s5)
3bca: 000ac783 lbu a5,0(s5)
3bce: 0722 slli a4,a4,0x8
3bd0: 8f5d or a4,a4,a5
3bd2: 002ac783 lbu a5,2(s5)
3bd6: 07c2 slli a5,a5,0x10
3bd8: 8f5d or a4,a4,a5
3bda: 003ac783 lbu a5,3(s5)
3bde: 07e2 slli a5,a5,0x18
3be0: 8fd9 or a5,a5,a4
3be2: e799 bnez a5,3bf0 <ip_output_if+0x100>
3be4: 00490713 addi a4,s2,4
3be8: 4781 li a5,0
3bea: c319 beqz a4,3bf0 <ip_output_if+0x100>
3bec: 00492783 lw a5,4(s2)
3bf0: 0087d713 srli a4,a5,0x8
3bf4: a45c sb a5,12(s0)
3bf6: b458 sb a4,13(s0)
3bf8: 0107d713 srli a4,a5,0x10
3bfc: 83e1 srli a5,a5,0x18
3bfe: a478 sb a4,14(s0)
3c00: b47c sb a5,15(s0)
3c02: 00040523 sb zero,10(s0)
3c06: 000405a3 sb zero,11(s0)
3c0a: 45d1 li a1,20
3c0c: 8522 mv a0,s0
3c0e: 161040ef jal ra,856e <inet_chksum>
3c12: a428 sb a0,10(s0)
3c14: 8121 srli a0,a0,0x8
3c16: b428 sb a0,11(s0)
3c18: 03095783 lhu a5,48(s2)
3c1c: c385 beqz a5,3c3c <ip_output_if+0x14c>
3c1e: 0089d703 lhu a4,8(s3)
3c22: 00e7fd63 bgeu a5,a4,3c3c <ip_output_if+0x14c>
3c26: 8626 mv a2,s1
3c28: 85ca mv a1,s2
3c2a: 854e mv a0,s3
3c2c: 2385 jal 418c <ip_frag>
3c2e: 872a mv a4,a0
3c30: 853a mv a0,a4
3c32: dcefc06f j 200 <__riscv_restore_10>
3c36: 4144 lw s1,4(a0)
3c38: 04c1 addi s1,s1,16
3c3a: bff9 j 3c18 <ip_output_if+0x128>
3c3c: 01492783 lw a5,20(s2)
3c40: 8626 mv a2,s1
3c42: 85ce mv a1,s3
3c44: 854a mv a0,s2
3c46: 9782 jalr a5
3c48: b7dd j 3c2e <ip_output_if+0x13e>
00003c4a <ip_output>:
ip_output():
3c4a: da6fc2ef jal t0,1f0 <__riscv_save_0>
3c4e: 1101 addi sp,sp,-32
3c50: 842a mv s0,a0
3c52: 8532 mv a0,a2
3c54: ce2e sw a1,28(sp)
3c56: cc36 sw a3,24(sp)
3c58: ca3a sw a4,20(sp)
3c5a: c83e sw a5,16(sp)
3c5c: c632 sw a2,12(sp)
3c5e: badff0ef jal ra,380a <ip_route>
3c62: cd09 beqz a0,3c7c <ip_output+0x32>
3c64: 47c2 lw a5,16(sp)
3c66: 4752 lw a4,20(sp)
3c68: 46e2 lw a3,24(sp)
3c6a: 4632 lw a2,12(sp)
3c6c: 45f2 lw a1,28(sp)
3c6e: 882a mv a6,a0
3c70: 8522 mv a0,s0
3c72: e7fff0ef jal ra,3af0 <ip_output_if>
3c76: 6105 addi sp,sp,32
3c78: d9cfc06f j 214 <__riscv_restore_0>
3c7c: 5571 li a0,-4
3c7e: bfe5 j 3c76 <ip_output+0x2c>
00003c80 <ip_addr_isbroadcast>:
ip_addr_isbroadcast():
3c80: 3118 lbu a4,1(a0)
3c82: 211c lbu a5,0(a0)
3c84: 0722 slli a4,a4,0x8
3c86: 8f5d or a4,a4,a5
3c88: 213c lbu a5,2(a0)
3c8a: 07c2 slli a5,a5,0x10
3c8c: 8f5d or a4,a4,a5
3c8e: 313c lbu a5,3(a0)
3c90: 07e2 slli a5,a5,0x18
3c92: 8fd9 or a5,a5,a4
3c94: fff78693 addi a3,a5,-1
3c98: 5775 li a4,-3
3c9a: 02d76663 bltu a4,a3,3cc6 <ip_addr_isbroadcast+0x46>
3c9e: 0325c703 lbu a4,50(a1)
3ca2: 4501 li a0,0
3ca4: 8b09 andi a4,a4,2
3ca6: c30d beqz a4,3cc8 <ip_addr_isbroadcast+0x48>
3ca8: 41d8 lw a4,4(a1)
3caa: 00f70f63 beq a4,a5,3cc8 <ip_addr_isbroadcast+0x48>
3cae: 4594 lw a3,8(a1)
3cb0: 8f3d xor a4,a4,a5
3cb2: 8f75 and a4,a4,a3
3cb4: eb11 bnez a4,3cc8 <ip_addr_isbroadcast+0x48>
3cb6: fff6c513 not a0,a3
3cba: 8fe9 and a5,a5,a0
3cbc: 40a78533 sub a0,a5,a0
3cc0: 00153513 seqz a0,a0
3cc4: 8082 ret
3cc6: 4505 li a0,1
3cc8: 8082 ret
00003cca <ip_reass_tmr>:
ip_reass_tmr():
3cca: cfefc2ef jal t0,1c8 <__riscv_save_10>
3cce: 8e81a403 lw s0,-1816(gp) # 20000108 <reassdatagrams>
3cd2: 44c5 li s1,17
3cd4: 4b01 li s6,0
3cd6: 8e818913 addi s2,gp,-1816 # 20000108 <reassdatagrams>
3cda: e019 bnez s0,3ce0 <ip_reass_tmr+0x16>
3cdc: d24fc06f j 200 <__riscv_restore_10>
3ce0: 14fd addi s1,s1,-1
3ce2: 0ff4f493 andi s1,s1,255
3ce6: d8fd beqz s1,3cdc <ip_reass_tmr+0x12>
3ce8: 3c7c lbu a5,31(s0)
3cea: 00042c03 lw s8,0(s0)
3cee: c791 beqz a5,3cfa <ip_reass_tmr+0x30>
3cf0: 17fd addi a5,a5,-1
3cf2: bc7c sb a5,31(s0)
3cf4: 8b22 mv s6,s0
3cf6: 8462 mv s0,s8
3cf8: b7cd j 3cda <ip_reass_tmr+0x10>
3cfa: 00442983 lw s3,4(s0)
3cfe: 4a81 li s5,0
3d00: 0049a503 lw a0,4(s3)
3d04: 315c lbu a5,5(a0)
3d06: 2158 lbu a4,4(a0)
3d08: 07a2 slli a5,a5,0x8
3d0a: 8fd9 or a5,a5,a4
3d0c: ef85 bnez a5,3d44 <ip_reass_tmr+0x7a>
3d0e: 3118 lbu a4,1(a0)
3d10: 211c lbu a5,0(a0)
3d12: 4651 li a2,20
3d14: 0722 slli a4,a4,0x8
3d16: 8f5d or a4,a4,a5
3d18: 213c lbu a5,2(a0)
3d1a: 00840593 addi a1,s0,8
3d1e: 07c2 slli a5,a5,0x10
3d20: 8f5d or a4,a4,a5
3d22: 313c lbu a5,3(a0)
3d24: 07e2 slli a5,a5,0x18
3d26: 8fd9 or a5,a5,a4
3d28: c05c sw a5,4(s0)
3d2a: 68d040ef jal ra,8bb6 <memcpy>
3d2e: 4585 li a1,1
3d30: 854e mv a0,s3
3d32: 6a0040ef jal ra,83d2 <icmp_time_exceeded>
3d36: 854e mv a0,s3
3d38: 05c010ef jal ra,4d94 <pbuf_clen>
3d3c: 8aaa mv s5,a0
3d3e: 854e mv a0,s3
3d40: 66f000ef jal ra,4bae <pbuf_free>
3d44: 00442983 lw s3,4(s0)
3d48: 02099663 bnez s3,3d74 <ip_reass_tmr+0xaa>
3d4c: 00092703 lw a4,0(s2)
3d50: 401c lw a5,0(s0)
3d52: 04e41c63 bne s0,a4,3daa <ip_reass_tmr+0xe0>
3d56: 00f92023 sw a5,0(s2)
3d5a: 85a2 mv a1,s0
3d5c: 4515 li a0,5
3d5e: 47f000ef jal ra,49dc <memp_free>
3d62: 8e618713 addi a4,gp,-1818 # 20000106 <ip_reass_pbufcount>
3d66: 231e lhu a5,0(a4)
3d68: 845a mv s0,s6
3d6a: 41578ab3 sub s5,a5,s5
3d6e: 01571023 sh s5,0(a4)
3d72: b749 j 3cf4 <ip_reass_tmr+0x2a>
3d74: 0049a703 lw a4,4(s3)
3d78: 854e mv a0,s3
3d7a: 331c lbu a5,1(a4)
3d7c: 00074a03 lbu s4,0(a4)
3d80: 07a2 slli a5,a5,0x8
3d82: 0147e7b3 or a5,a5,s4
3d86: 00274a03 lbu s4,2(a4)
3d8a: 0a42 slli s4,s4,0x10
3d8c: 00fa67b3 or a5,s4,a5
3d90: 00374a03 lbu s4,3(a4)
3d94: 0a62 slli s4,s4,0x18
3d96: 00fa6a33 or s4,s4,a5
3d9a: 7fb000ef jal ra,4d94 <pbuf_clen>
3d9e: 9aaa add s5,s5,a0
3da0: 854e mv a0,s3
3da2: 60d000ef jal ra,4bae <pbuf_free>
3da6: 89d2 mv s3,s4
3da8: b745 j 3d48 <ip_reass_tmr+0x7e>
3daa: 00fb2023 sw a5,0(s6)
3dae: b775 j 3d5a <ip_reass_tmr+0x90>
00003db0 <ip_reass>:
ip_reass():
3db0: c18fc2ef jal t0,1c8 <__riscv_save_10>
3db4: 4144 lw s1,4(a0)
3db6: 892a mv s2,a0
3db8: 309c lbu a5,1(s1)
3dba: 2088 lbu a0,0(s1)
3dbc: 07a2 slli a5,a5,0x8
3dbe: 8d5d or a0,a0,a5
3dc0: a0dff0ef jal ra,37cc <ntohs>
3dc4: 8119 srli a0,a0,0x6
3dc6: 03c57513 andi a0,a0,60
3dca: 47d1 li a5,20
3dcc: 26f51263 bne a0,a5,4030 <ip_reass+0x280>
3dd0: 30fc lbu a5,7(s1)
3dd2: 20e8 lbu a0,6(s1)
3dd4: 07a2 slli a5,a5,0x8
3dd6: 8d5d or a0,a0,a5
3dd8: 9f5ff0ef jal ra,37cc <ntohs>
3ddc: 30bc lbu a5,3(s1)
3dde: 8b2a mv s6,a0
3de0: 20a8 lbu a0,2(s1)
3de2: 07a2 slli a5,a5,0x8
3de4: 8d5d or a0,a0,a5
3de6: 9e7ff0ef jal ra,37cc <ntohs>
3dea: 309c lbu a5,1(s1)
3dec: 8caa mv s9,a0
3dee: 2088 lbu a0,0(s1)
3df0: 07a2 slli a5,a5,0x8
3df2: 8d5d or a0,a0,a5
3df4: 9d9ff0ef jal ra,37cc <ntohs>
3df8: 8c2a mv s8,a0
3dfa: 854a mv a0,s2
3dfc: 799000ef jal ra,4d94 <pbuf_clen>
3e00: 200087b7 lui a5,0x20008
3e04: 84c7a783 lw a5,-1972(a5) # 2000784c <WCHCfg+0x10>
3e08: 8e61d703 lhu a4,-1818(gp) # 20000106 <ip_reass_pbufcount>
3e0c: 8d2a mv s10,a0
3e0e: 838d srli a5,a5,0x3
3e10: 972a add a4,a4,a0
3e12: 8bfd andi a5,a5,31
3e14: 8e618993 addi s3,gp,-1818 # 20000106 <ip_reass_pbufcount>
3e18: 20e7ec63 bltu a5,a4,4030 <ip_reass+0x280>
3e1c: 8e81a403 lw s0,-1816(gp) # 20000108 <reassdatagrams>
3e20: 4a81 li s5,0
3e22: 8e818a13 addi s4,gp,-1816 # 20000108 <reassdatagrams>
3e26: e81d bnez s0,3e5c <ip_reass+0xac>
3e28: 4515 li a0,5
3e2a: 393000ef jal ra,49bc <memp_malloc>
3e2e: 842a mv s0,a0
3e30: 20050063 beqz a0,4030 <ip_reass+0x280>
3e34: 4671 li a2,28
3e36: 4581 li a1,0
3e38: 00440513 addi a0,s0,4
3e3c: be4fc0ef jal ra,220 <memset>
3e40: 478d li a5,3
3e42: bc7c sb a5,31(s0)
3e44: 000a2783 lw a5,0(s4)
3e48: 008a2023 sw s0,0(s4)
3e4c: c01c sw a5,0(s0)
3e4e: 4651 li a2,20
3e50: 85a6 mv a1,s1
3e52: 00840513 addi a0,s0,8
3e56: 561040ef jal ra,8bb6 <memcpy>
3e5a: ac95 j 40ce <ip_reass+0x31e>
3e5c: 34d8 lbu a4,13(s1)
3e5e: 24dc lbu a5,12(s1)
3e60: 0722 slli a4,a4,0x8
3e62: 8f5d or a4,a4,a5
3e64: 24fc lbu a5,14(s1)
3e66: 07c2 slli a5,a5,0x10
3e68: 8f5d or a4,a4,a5
3e6a: 34fc lbu a5,15(s1)
3e6c: 07e2 slli a5,a5,0x18
3e6e: 8fd9 or a5,a5,a4
3e70: 4858 lw a4,20(s0)
3e72: 02f71663 bne a4,a5,3e9e <ip_reass+0xee>
3e76: 3898 lbu a4,17(s1)
3e78: 289c lbu a5,16(s1)
3e7a: 0722 slli a4,a4,0x8
3e7c: 8f5d or a4,a4,a5
3e7e: 28bc lbu a5,18(s1)
3e80: 07c2 slli a5,a5,0x10
3e82: 8f5d or a4,a4,a5
3e84: 38bc lbu a5,19(s1)
3e86: 07e2 slli a5,a5,0x18
3e88: 8fd9 or a5,a5,a4
3e8a: 4c18 lw a4,24(s0)
3e8c: 00f71963 bne a4,a5,3e9e <ip_reass+0xee>
3e90: 30dc lbu a5,5(s1)
3e92: 20d4 lbu a3,4(s1)
3e94: 245a lhu a4,12(s0)
3e96: 07a2 slli a5,a5,0x8
3e98: 8fd5 or a5,a5,a3
3e9a: 20f70663 beq a4,a5,40a6 <ip_reass+0x2f6>
3e9e: 8aa2 mv s5,s0
3ea0: 4000 lw s0,0(s0)
3ea2: b751 j 3e26 <ip_reass+0x76>
3ea4: 42cc lw a1,4(a3)
3ea6: 0055c803 lbu a6,5(a1)
3eaa: 0045c303 lbu t1,4(a1)
3eae: 0822 slli a6,a6,0x8
3eb0: 00686833 or a6,a6,t1
3eb4: 0d067c63 bgeu a2,a6,3f8c <ip_reass+0x1dc>
3eb8: 0086d593 srli a1,a3,0x8
3ebc: a394 sb a3,0(a5)
3ebe: b38c sb a1,1(a5)
3ec0: 0106d593 srli a1,a3,0x10
3ec4: 82e1 srli a3,a3,0x18
3ec6: a3ac sb a1,2(a5)
3ec8: b3b4 sb a3,3(a5)
3eca: 2a070e63 beqz a4,4186 <ip_reass+0x3d6>
3ece: 3374 lbu a3,7(a4)
3ed0: 236c lbu a1,6(a4)
3ed2: 06a2 slli a3,a3,0x8
3ed4: 8ecd or a3,a3,a1
3ed6: 14d66463 bltu a2,a3,401e <ip_reass+0x26e>
3eda: 14a86263 bltu a6,a0,401e <ip_reass+0x26e>
3ede: 00895693 srli a3,s2,0x8
3ee2: 01270023 sb s2,0(a4)
3ee6: b314 sb a3,1(a4)
3ee8: 01095693 srli a3,s2,0x10
3eec: 01895913 srli s2,s2,0x18
3ef0: a334 sb a3,2(a4)
3ef2: 012701a3 sb s2,3(a4)
3ef6: 2c78 lbu a4,30(s0)
3ef8: 4b01 li s6,0
3efa: 8b05 andi a4,a4,1
3efc: 18070f63 beqz a4,409a <ip_reass+0x2ea>
3f00: 18088d63 beqz a7,409a <ip_reass+0x2ea>
3f04: 4058 lw a4,4(s0)
3f06: 4344 lw s1,4(a4)
3f08: 30d8 lbu a4,5(s1)
3f0a: 20d4 lbu a3,4(s1)
3f0c: 0722 slli a4,a4,0x8
3f0e: 8f55 or a4,a4,a3
3f10: 18071563 bnez a4,409a <ip_reass+0x2ea>
3f14: 3394 lbu a3,1(a5)
3f16: 2398 lbu a4,0(a5)
3f18: 06a2 slli a3,a3,0x8
3f1a: 8ed9 or a3,a3,a4
3f1c: 23b8 lbu a4,2(a5)
3f1e: 0742 slli a4,a4,0x10
3f20: 8ed9 or a3,a3,a4
3f22: 33b8 lbu a4,3(a5)
3f24: 0762 slli a4,a4,0x18
3f26: 8f55 or a4,a4,a3
3f28: e761 bnez a4,3ff0 <ip_reass+0x240>
3f2a: 2c5e lhu a5,28(s0)
3f2c: 0004c903 lbu s2,0(s1)
3f30: 4651 li a2,20
3f32: 07d1 addi a5,a5,20
3f34: ac5e sh a5,28(s0)
3f36: 309c lbu a5,1(s1)
3f38: 00840593 addi a1,s0,8
3f3c: 8526 mv a0,s1
3f3e: 07a2 slli a5,a5,0x8
3f40: 0127e7b3 or a5,a5,s2
3f44: 0024c903 lbu s2,2(s1)
3f48: 0942 slli s2,s2,0x10
3f4a: 00f967b3 or a5,s2,a5
3f4e: 0034c903 lbu s2,3(s1)
3f52: 0962 slli s2,s2,0x18
3f54: 00f96933 or s2,s2,a5
3f58: 45f040ef jal ra,8bb6 <memcpy>
3f5c: 2c4a lhu a0,28(s0)
3f5e: 861ff0ef jal ra,37be <htons>
3f62: a0a8 sb a0,2(s1)
3f64: 8121 srli a0,a0,0x8
3f66: b0a8 sb a0,3(s1)
3f68: 00048323 sb zero,6(s1)
3f6c: 000483a3 sb zero,7(s1)
3f70: 00048523 sb zero,10(s1)
3f74: 000485a3 sb zero,11(s1)
3f78: 45d1 li a1,20
3f7a: 8526 mv a0,s1
3f7c: 5f2040ef jal ra,856e <inet_chksum>
3f80: a4a8 sb a0,10(s1)
3f82: 8121 srli a0,a0,0x8
3f84: b4a8 sb a0,11(s1)
3f86: 00442b03 lw s6,4(s0)
3f8a: a0d5 j 406e <ip_reass+0x2be>
3f8c: 09060963 beq a2,a6,401e <ip_reass+0x26e>
3f90: 31f4 lbu a3,7(a1)
3f92: 0065c303 lbu t1,6(a1)
3f96: 06a2 slli a3,a3,0x8
3f98: 0066e6b3 or a3,a3,t1
3f9c: 08d66163 bltu a2,a3,401e <ip_reass+0x26e>
3fa0: cb01 beqz a4,3fb0 <ip_reass+0x200>
3fa2: 2374 lbu a3,6(a4)
3fa4: 3378 lbu a4,7(a4)
3fa6: 0722 slli a4,a4,0x8
3fa8: 8f55 or a4,a4,a3
3faa: 00e80363 beq a6,a4,3fb0 <ip_reass+0x200>
3fae: 4881 li a7,0
3fb0: 3198 lbu a4,1(a1)
3fb2: 2194 lbu a3,0(a1)
3fb4: 0722 slli a4,a4,0x8
3fb6: 8f55 or a4,a4,a3
3fb8: 21b4 lbu a3,2(a1)
3fba: 06c2 slli a3,a3,0x10
3fbc: 8f55 or a4,a4,a3
3fbe: 31b4 lbu a3,3(a1)
3fc0: 06e2 slli a3,a3,0x18
3fc2: 8ed9 or a3,a3,a4
3fc4: 872e mv a4,a1
3fc6: aa65 j 417e <ip_reass+0x3ce>
3fc8: 00895693 srli a3,s2,0x8
3fcc: 01270023 sb s2,0(a4)
3fd0: b314 sb a3,1(a4)
3fd2: 01095693 srli a3,s2,0x10
3fd6: 01895913 srli s2,s2,0x18
3fda: a334 sb a3,2(a4)
3fdc: 012701a3 sb s2,3(a4)
3fe0: 2374 lbu a3,6(a4)
3fe2: 3378 lbu a4,7(a4)
3fe4: 0722 slli a4,a4,0x8
3fe6: 8f55 or a4,a4,a3
3fe8: f0e607e3 beq a2,a4,3ef6 <ip_reass+0x146>
3fec: 4881 li a7,0
3fee: b721 j 3ef6 <ip_reass+0x146>
3ff0: 4354 lw a3,4(a4)
3ff2: 23ec lbu a1,6(a5)
3ff4: 33f8 lbu a4,7(a5)
3ff6: 32dc lbu a5,5(a3)
3ff8: 22d0 lbu a2,4(a3)
3ffa: 0722 slli a4,a4,0x8
3ffc: 07a2 slli a5,a5,0x8
3ffe: 8f4d or a4,a4,a1
4000: 8fd1 or a5,a5,a2
4002: 02f71a63 bne a4,a5,4036 <ip_reass+0x286>
4006: 329c lbu a5,1(a3)
4008: 2298 lbu a4,0(a3)
400a: 07a2 slli a5,a5,0x8
400c: 8fd9 or a5,a5,a4
400e: 22b8 lbu a4,2(a3)
4010: 0742 slli a4,a4,0x10
4012: 8fd9 or a5,a5,a4
4014: 32b8 lbu a4,3(a3)
4016: 0762 slli a4,a4,0x18
4018: 8f5d or a4,a4,a5
401a: 87b6 mv a5,a3
401c: b731 j 3f28 <ip_reass+0x178>
401e: 854a mv a0,s2
4020: 575000ef jal ra,4d94 <pbuf_clen>
4024: 0009d783 lhu a5,0(s3)
4028: 40a78533 sub a0,a5,a0
402c: 00a99023 sh a0,0(s3)
4030: 854a mv a0,s2
4032: 37d000ef jal ra,4bae <pbuf_free>
4036: 4b01 li s6,0
4038: a08d j 409a <ip_reass+0x2ea>
403a: 55b1 li a1,-20
403c: 854a mv a0,s2
403e: 00492483 lw s1,4(s2)
4042: 2ff000ef jal ra,4b40 <pbuf_header>
4046: 85ca mv a1,s2
4048: 855a mv a0,s6
404a: 567000ef jal ra,4db0 <pbuf_cat>
404e: 309c lbu a5,1(s1)
4050: 0004c903 lbu s2,0(s1)
4054: 07a2 slli a5,a5,0x8
4056: 0127e7b3 or a5,a5,s2
405a: 0024c903 lbu s2,2(s1)
405e: 0942 slli s2,s2,0x10
4060: 00f967b3 or a5,s2,a5
4064: 0034c903 lbu s2,3(s1)
4068: 0962 slli s2,s2,0x18
406a: 00f96933 or s2,s2,a5
406e: fc0916e3 bnez s2,403a <ip_reass+0x28a>
4072: 000a2703 lw a4,0(s4)
4076: 401c lw a5,0(s0)
4078: 02e41463 bne s0,a4,40a0 <ip_reass+0x2f0>
407c: 00fa2023 sw a5,0(s4)
4080: 85a2 mv a1,s0
4082: 4515 li a0,5
4084: 159000ef jal ra,49dc <memp_free>
4088: 855a mv a0,s6
408a: 50b000ef jal ra,4d94 <pbuf_clen>
408e: 0009d783 lhu a5,0(s3)
4092: 40a78533 sub a0,a5,a0
4096: 00a99023 sh a0,0(s3)
409a: 855a mv a0,s6
409c: 964fc06f j 200 <__riscv_restore_10>
40a0: 00faa023 sw a5,0(s5)
40a4: bff1 j 4080 <ip_reass+0x2d0>
40a6: 30fc lbu a5,7(s1)
40a8: 20e8 lbu a0,6(s1)
40aa: 6b89 lui s7,0x2
40ac: 07a2 slli a5,a5,0x8
40ae: 8d5d or a0,a0,a5
40b0: f1cff0ef jal ra,37cc <ntohs>
40b4: 1bfd addi s7,s7,-1
40b6: 01757533 and a0,a0,s7
40ba: 0542 slli a0,a0,0x10
40bc: 8141 srli a0,a0,0x10
40be: e901 bnez a0,40ce <ip_reass+0x31e>
40c0: 246a lhu a0,14(s0)
40c2: f0aff0ef jal ra,37cc <ntohs>
40c6: 01757533 and a0,a0,s7
40ca: d80512e3 bnez a0,3e4e <ip_reass+0x9e>
40ce: 0009d783 lhu a5,0(s3)
40d2: 9d3e add s10,s10,a5
40d4: 01a99023 sh s10,0(s3)
40d8: 30fc lbu a5,7(s1)
40da: 20e8 lbu a0,6(s1)
40dc: 07a2 slli a5,a5,0x8
40de: 8d5d or a0,a0,a5
40e0: eecff0ef jal ra,37cc <ntohs>
40e4: 01251793 slli a5,a0,0x12
40e8: 0207c263 bltz a5,410c <ip_reass+0x35c>
40ec: 013b1513 slli a0,s6,0x13
40f0: 2c7c lbu a5,30(s0)
40f2: 814d srli a0,a0,0x13
40f4: 050e slli a0,a0,0x3
40f6: 006c5c13 srli s8,s8,0x6
40fa: 9566 add a0,a0,s9
40fc: 03cc7c13 andi s8,s8,60
4100: 0017e793 ori a5,a5,1
4104: 41850533 sub a0,a0,s8
4108: ac7c sb a5,30(s0)
410a: ac4a sh a0,28(s0)
410c: 00492483 lw s1,4(s2)
4110: 30bc lbu a5,3(s1)
4112: 20a8 lbu a0,2(s1)
4114: 07a2 slli a5,a5,0x8
4116: 8d5d or a0,a0,a5
4118: eb4ff0ef jal ra,37cc <ntohs>
411c: 309c lbu a5,1(s1)
411e: 8b2a mv s6,a0
4120: 2088 lbu a0,0(s1)
4122: 07a2 slli a5,a5,0x8
4124: 8d5d or a0,a0,a5
4126: ea6ff0ef jal ra,37cc <ntohs>
412a: 30fc lbu a5,7(s1)
412c: 8baa mv s7,a0
412e: 20e8 lbu a0,6(s1)
4130: 07a2 slli a5,a5,0x8
4132: 006bdb93 srli s7,s7,0x6
4136: 8d5d or a0,a0,a5
4138: e94ff0ef jal ra,37cc <ntohs>
413c: 054e slli a0,a0,0x13
413e: 814d srli a0,a0,0x13
4140: 00351613 slli a2,a0,0x3
4144: 00cb0533 add a0,s6,a2
4148: 03cbfb13 andi s6,s7,60
414c: 00492783 lw a5,4(s2)
4150: 41650533 sub a0,a0,s6
4154: 0542 slli a0,a0,0x10
4156: 00865713 srli a4,a2,0x8
415a: 8141 srli a0,a0,0x10
415c: 4054 lw a3,4(s0)
415e: b3d8 sb a4,5(a5)
4160: 00855713 srli a4,a0,0x8
4164: b3f8 sb a4,7(a5)
4166: 00078023 sb zero,0(a5)
416a: 000780a3 sb zero,1(a5)
416e: 00078123 sb zero,2(a5)
4172: 000781a3 sb zero,3(a5)
4176: a3d0 sb a2,4(a5)
4178: a3e8 sb a0,6(a5)
417a: 4885 li a7,1
417c: 4701 li a4,0
417e: d20693e3 bnez a3,3ea4 <ip_reass+0xf4>
4182: e40713e3 bnez a4,3fc8 <ip_reass+0x218>
4186: 01242223 sw s2,4(s0)
418a: b3b5 j 3ef6 <ip_reass+0x146>
0000418c <ip_frag>:
ip_frag():
418c: 834fc2ef jal t0,1c0 <__riscv_save_12>
4190: 00452c03 lw s8,4(a0)
4194: 1101 addi sp,sp,-32
4196: ca32 sw a2,20(sp)
4198: 007c4703 lbu a4,7(s8)
419c: 8daa mv s11,a0
419e: 006c4503 lbu a0,6(s8)
41a2: 0722 slli a4,a4,0x8
41a4: 0305db83 lhu s7,48(a1)
41a8: 8d59 or a0,a0,a4
41aa: 8cae mv s9,a1
41ac: e20ff0ef jal ra,37cc <ntohs>
41b0: 6689 lui a3,0x2
41b2: 00d577b3 and a5,a0,a3
41b6: fecb8a13 addi s4,s7,-20 # 1fec <LwipTCPSendCallBack+0x38>
41ba: 46a1 li a3,8
41bc: 02da4a33 div s4,s4,a3
41c0: 008dd483 lhu s1,8(s11)
41c4: 6709 lui a4,0x2
41c6: 177d addi a4,a4,-1
41c8: c63e sw a5,12(sp)
41ca: 00e57933 and s2,a0,a4
41ce: 14b1 addi s1,s1,-20
41d0: 0942 slli s2,s2,0x10
41d2: 04c2 slli s1,s1,0x10
41d4: 01095913 srli s2,s2,0x10
41d8: 80c1 srli s1,s1,0x10
41da: 4401 li s0,0
41dc: 4d51 li s10,20
41de: cc3a sw a4,24(sp)
41e0: 0a42 slli s4,s4,0x10
41e2: 010a5a13 srli s4,s4,0x10
41e6: 003a1693 slli a3,s4,0x3
41ea: 01069793 slli a5,a3,0x10
41ee: 83c1 srli a5,a5,0x10
41f0: c83e sw a5,16(sp)
41f2: fedb8793 addi a5,s7,-19
41f6: ce3e sw a5,28(sp)
41f8: e489 bnez s1,4202 <ip_frag+0x76>
41fa: 4501 li a0,0
41fc: 6105 addi sp,sp,32
41fe: ffffb06f j 1fc <__riscv_restore_12>
4202: 47e2 lw a5,24(sp)
4204: 8aa6 mv s5,s1
4206: 00f97b33 and s6,s2,a5
420a: 47b2 lw a5,12(sp)
420c: 0167eb33 or s6,a5,s6
4210: 47f2 lw a5,28(sp)
4212: 00f4c663 blt s1,a5,421e <ip_frag+0x92>
4216: 4ac2 lw s5,16(sp)
4218: 6789 lui a5,0x2
421a: 00fb6b33 or s6,s6,a5
421e: 4601 li a2,0
4220: 45d1 li a1,20
4222: 4509 li a0,2
4224: 1d9000ef jal ra,4bfc <pbuf_alloc>
4228: 89aa mv s3,a0
422a: c939 beqz a0,4280 <ip_frag+0xf4>
422c: 4148 lw a0,4(a0)
422e: 4651 li a2,20
4230: 85e2 mv a1,s8
4232: 185040ef jal ra,8bb6 <memcpy>
4236: 004da603 lw a2,4(s11)
423a: 0049ab83 lw s7,4(s3)
423e: 966a add a2,a2,s10
4240: 00cda223 sw a2,4(s11)
4244: 00add603 lhu a2,10(s11)
4248: 41a606b3 sub a3,a2,s10
424c: 00dd9523 sh a3,10(s11)
4250: 8d56 mv s10,s5
4252: 040d0963 beqz s10,42a4 <ip_frag+0x118>
4256: 00add403 lhu s0,10(s11)
425a: 008d7363 bgeu s10,s0,4260 <ip_frag+0xd4>
425e: 846a mv s0,s10
4260: 0442 slli s0,s0,0x10
4262: 8041 srli s0,s0,0x10
4264: e401 bnez s0,426c <ip_frag+0xe0>
4266: 000dad83 lw s11,0(s11)
426a: b7e5 j 4252 <ip_frag+0xc6>
426c: 4581 li a1,0
426e: 4609 li a2,2
4270: 450d li a0,3
4272: 18b000ef jal ra,4bfc <pbuf_alloc>
4276: 85aa mv a1,a0
4278: e511 bnez a0,4284 <ip_frag+0xf8>
427a: 854e mv a0,s3
427c: 133000ef jal ra,4bae <pbuf_free>
4280: 557d li a0,-1
4282: bfad j 41fc <ip_frag+0x70>
4284: 004da603 lw a2,4(s11)
4288: a502 sh s0,8(a0)
428a: a522 sh s0,10(a0)
428c: c150 sw a2,4(a0)
428e: 854e mv a0,s3
4290: 321000ef jal ra,4db0 <pbuf_cat>
4294: 408d06b3 sub a3,s10,s0
4298: 01069d13 slli s10,a3,0x10
429c: 010d5d13 srli s10,s10,0x10
42a0: fc0d13e3 bnez s10,4266 <ip_frag+0xda>
42a4: 855a mv a0,s6
42a6: d18ff0ef jal ra,37be <htons>
42aa: 00ab8323 sb a0,6(s7)
42ae: 8121 srli a0,a0,0x8
42b0: 00ab83a3 sb a0,7(s7)
42b4: 014a8513 addi a0,s5,20
42b8: 0542 slli a0,a0,0x10
42ba: 8141 srli a0,a0,0x10
42bc: d02ff0ef jal ra,37be <htons>
42c0: 00ab8123 sb a0,2(s7)
42c4: 8121 srli a0,a0,0x8
42c6: 00ab81a3 sb a0,3(s7)
42ca: 45d1 li a1,20
42cc: 000b8523 sb zero,10(s7)
42d0: 000b85a3 sb zero,11(s7)
42d4: 855e mv a0,s7
42d6: 298040ef jal ra,856e <inet_chksum>
42da: 014ca703 lw a4,20(s9)
42de: 4652 lw a2,20(sp)
42e0: 00ab8523 sb a0,10(s7)
42e4: 8121 srli a0,a0,0x8
42e6: 00ab85a3 sb a0,11(s7)
42ea: 85ce mv a1,s3
42ec: 8566 mv a0,s9
42ee: 9702 jalr a4
42f0: 415484b3 sub s1,s1,s5
42f4: 9952 add s2,s2,s4
42f6: 854e mv a0,s3
42f8: 04c2 slli s1,s1,0x10
42fa: 0942 slli s2,s2,0x10
42fc: 0b3000ef jal ra,4bae <pbuf_free>
4300: 80c1 srli s1,s1,0x10
4302: 01095913 srli s2,s2,0x10
4306: 8d22 mv s10,s0
4308: bdc5 j 41f8 <ip_frag+0x6c>
0000430a <dhcp_set_state>:
dhcp_set_state():
430a: 293c lbu a5,18(a0)
430c: 00b78963 beq a5,a1,431e <dhcp_set_state+0x14>
4310: 200077b7 lui a5,0x20007
4314: a92c sb a1,18(a0)
4316: 000509a3 sb zero,19(a0)
431a: 7807a223 sw zero,1924(a5) # 20007784 <DHCPCtrl+0x4>
431e: 8082 ret
00004320 <dhcp_option>:
dhcp_option():
4320: 2d5e lhu a5,28(a0)
4322: 4d18 lw a4,24(a0)
4324: 00f706b3 add a3,a4,a5
4328: 0eb68823 sb a1,240(a3) # 20f0 <SocketUdpReceive+0x36>
432c: 00278693 addi a3,a5,2
4330: 0785 addi a5,a5,1
4332: 07c2 slli a5,a5,0x10
4334: 83c1 srli a5,a5,0x10
4336: ad56 sh a3,28(a0)
4338: 97ba add a5,a5,a4
433a: 0ec78823 sb a2,240(a5)
433e: 8082 ret
00004340 <dhcp_option_byte>:
dhcp_option_byte():
4340: 2d5a lhu a4,28(a0)
4342: 4d1c lw a5,24(a0)
4344: 00170693 addi a3,a4,1 # 2001 <SocketIPRAWReceive+0xb>
4348: ad56 sh a3,28(a0)
434a: 97ba add a5,a5,a4
434c: 0eb78823 sb a1,240(a5)
4350: 8082 ret
00004352 <dhcp_option_long>:
dhcp_option_long():
4352: 2d5e lhu a5,28(a0)
4354: 4d18 lw a4,24(a0)
4356: 0185d613 srli a2,a1,0x18
435a: 00f706b3 add a3,a4,a5
435e: 0ec68823 sb a2,240(a3)
4362: 00178693 addi a3,a5,1
4366: 06c2 slli a3,a3,0x10
4368: 82c1 srli a3,a3,0x10
436a: 96ba add a3,a3,a4
436c: 0105d613 srli a2,a1,0x10
4370: 0ec68823 sb a2,240(a3)
4374: 00278693 addi a3,a5,2
4378: 06c2 slli a3,a3,0x10
437a: 82c1 srli a3,a3,0x10
437c: 96ba add a3,a3,a4
437e: 0085d613 srli a2,a1,0x8
4382: 0ec68823 sb a2,240(a3)
4386: 00478693 addi a3,a5,4
438a: 078d addi a5,a5,3
438c: 07c2 slli a5,a5,0x10
438e: 83c1 srli a5,a5,0x10
4390: ad56 sh a3,28(a0)
4392: 97ba add a5,a5,a4
4394: 0eb78823 sb a1,240(a5)
4398: 8082 ret
0000439a <dhcp_option_trailer>:
dhcp_option_trailer():
439a: c115 beqz a0,43be <dhcp_option_trailer+0x24>
439c: 2d5e lhu a5,28(a0)
439e: 4d18 lw a4,24(a0)
43a0: 04300613 li a2,67
43a4: 00178693 addi a3,a5,1
43a8: ad56 sh a3,28(a0)
43aa: 97ba add a5,a5,a4
43ac: 56fd li a3,-1
43ae: 0ed78823 sb a3,240(a5)
43b2: 2d5e lhu a5,28(a0)
43b4: 00f67663 bgeu a2,a5,43c0 <dhcp_option_trailer+0x26>
43b8: 0037f693 andi a3,a5,3
43bc: e291 bnez a3,43c0 <dhcp_option_trailer+0x26>
43be: 8082 ret
43c0: 00178693 addi a3,a5,1
43c4: ad56 sh a3,28(a0)
43c6: 97ba add a5,a5,a4
43c8: 0e078823 sb zero,240(a5)
43cc: b7dd j 43b2 <dhcp_option_trailer+0x18>
000043ce <dhcp_create_request>:
dhcp_create_request():
43ce: 18050263 beqz a0,4552 <dhcp_create_request+0x184>
43d2: e1ffb2ef jal t0,1f0 <__riscv_save_0>
43d6: 5104 lw s1,32(a0)
43d8: 57dd li a5,-9
43da: 16048963 beqz s1,454c <dhcp_create_request+0x17e>
43de: 892a mv s2,a0
43e0: 4601 li a2,0
43e2: 13400593 li a1,308
43e6: 4501 li a0,0
43e8: 015000ef jal ra,4bfc <pbuf_alloc>
43ec: c8c8 sw a0,20(s1)
43ee: 872a mv a4,a0
43f0: 57fd li a5,-1
43f2: 14050d63 beqz a0,454c <dhcp_create_request+0x17e>
43f6: 38bc lbu a5,19(s1)
43f8: ef99 bnez a5,4416 <dhcp_create_request+0x48>
43fa: 28bc lbu a5,18(s1)
43fc: 4605 li a2,1
43fe: 00c78c63 beq a5,a2,4416 <dhcp_create_request+0x48>
4402: 17f1 addi a5,a5,-4
4404: 0ff7f793 andi a5,a5,255
4408: 00f67763 bgeu a2,a5,4416 <dhcp_create_request+0x48>
440c: 81c1a783 lw a5,-2020(gp) # 2000003c <DHCPXid>
4410: 0785 addi a5,a5,1
4412: 80f1ae23 sw a5,-2020(gp) # 2000003c <DHCPXid>
4416: 4340 lw s0,4(a4)
4418: 81c1a503 lw a0,-2020(gp) # 2000003c <DHCPXid>
441c: 4785 li a5,1
441e: cc80 sw s0,24(s1)
4420: c088 sw a0,0(s1)
4422: a01c sb a5,0(s0)
4424: b01c sb a5,1(s0)
4426: 4799 li a5,6
4428: a03c sb a5,2(s0)
442a: 000401a3 sb zero,3(s0)
442e: bacff0ef jal ra,37da <htonl>
4432: 00855793 srli a5,a0,0x8
4436: a048 sb a0,4(s0)
4438: b05c sb a5,5(s0)
443a: 01055793 srli a5,a0,0x10
443e: 8161 srli a0,a0,0x18
4440: a07c sb a5,6(s0)
4442: b068 sb a0,7(s0)
4444: 4c80 lw s0,24(s1)
4446: 4729 li a4,10
4448: 00040423 sb zero,8(s0)
444c: 000404a3 sb zero,9(s0)
4450: 00040523 sb zero,10(s0)
4454: 000405a3 sb zero,11(s0)
4458: 00040623 sb zero,12(s0)
445c: 000406a3 sb zero,13(s0)
4460: 00040723 sb zero,14(s0)
4464: 000407a3 sb zero,15(s0)
4468: 28bc lbu a5,18(s1)
446a: 00e78863 beq a5,a4,447a <dhcp_create_request+0xac>
446e: 17f1 addi a5,a5,-4
4470: 0ff7f793 andi a5,a5,255
4474: 4705 li a4,1
4476: 00f76e63 bltu a4,a5,4492 <dhcp_create_request+0xc4>
447a: 00494783 lbu a5,4(s2)
447e: a45c sb a5,12(s0)
4480: 00594783 lbu a5,5(s2)
4484: b45c sb a5,13(s0)
4486: 00694783 lbu a5,6(s2)
448a: a47c sb a5,14(s0)
448c: 00794783 lbu a5,7(s2)
4490: b47c sb a5,15(s0)
4492: 00040823 sb zero,16(s0)
4496: 000408a3 sb zero,17(s0)
449a: 00040923 sb zero,18(s0)
449e: 000409a3 sb zero,19(s0)
44a2: 00040a23 sb zero,20(s0)
44a6: 00040aa3 sb zero,21(s0)
44aa: 00040b23 sb zero,22(s0)
44ae: 00040ba3 sb zero,23(s0)
44b2: 00040c23 sb zero,24(s0)
44b6: 00040ca3 sb zero,25(s0)
44ba: 00040d23 sb zero,26(s0)
44be: 00040da3 sb zero,27(s0)
44c2: 02894583 lbu a1,40(s2)
44c6: 4781 li a5,0
44c8: 4641 li a2,16
44ca: 01079713 slli a4,a5,0x10
44ce: 8341 srli a4,a4,0x10
44d0: 4681 li a3,0
44d2: 00b77663 bgeu a4,a1,44de <dhcp_create_request+0x110>
44d6: 00f90733 add a4,s2,a5
44da: 02974683 lbu a3,41(a4)
44de: 00f40733 add a4,s0,a5
44e2: af54 sb a3,28(a4)
44e4: 0785 addi a5,a5,1
44e6: fec792e3 bne a5,a2,44ca <dhcp_create_request+0xfc>
44ea: 02c40713 addi a4,s0,44
44ee: 06c40793 addi a5,s0,108
44f2: 00070023 sb zero,0(a4)
44f6: 0705 addi a4,a4,1
44f8: fee79de3 bne a5,a4,44f2 <dhcp_create_request+0x124>
44fc: 0ec40713 addi a4,s0,236
4500: 00078023 sb zero,0(a5)
4504: 0785 addi a5,a5,1
4506: fee79de3 bne a5,a4,4500 <dhcp_create_request+0x132>
450a: 63825537 lui a0,0x63825
450e: 36350513 addi a0,a0,867 # 63825363 <_eusrstack+0x43805363>
4512: ac8ff0ef jal ra,37da <htonl>
4516: 00855793 srli a5,a0,0x8
451a: 0ea40623 sb a0,236(s0)
451e: 0ef406a3 sb a5,237(s0)
4522: 4c90 lw a2,24(s1)
4524: 01055793 srli a5,a0,0x10
4528: 8161 srli a0,a0,0x18
452a: 0ef40723 sb a5,238(s0)
452e: 0ea407a3 sb a0,239(s0)
4532: 00049e23 sh zero,28(s1)
4536: 4781 li a5,0
4538: 04400713 li a4,68
453c: 00f606b3 add a3,a2,a5
4540: 0ef68823 sb a5,240(a3)
4544: 0785 addi a5,a5,1
4546: fee79be3 bne a5,a4,453c <dhcp_create_request+0x16e>
454a: 4781 li a5,0
454c: 853e mv a0,a5
454e: cc7fb06f j 214 <__riscv_restore_0>
4552: 57d9 li a5,-10
4554: 853e mv a0,a5
4556: 8082 ret
00004558 <dhcp_delete_request>:
dhcp_delete_request():
4558: cd11 beqz a0,4574 <dhcp_delete_request+0x1c>
455a: c97fb2ef jal t0,1f0 <__riscv_save_0>
455e: 5100 lw s0,32(a0)
4560: c801 beqz s0,4570 <dhcp_delete_request+0x18>
4562: 4848 lw a0,20(s0)
4564: c111 beqz a0,4568 <dhcp_delete_request+0x10>
4566: 25a1 jal 4bae <pbuf_free>
4568: 00042a23 sw zero,20(s0)
456c: 00042c23 sw zero,24(s0)
4570: ca5fb06f j 214 <__riscv_restore_0>
4574: 8082 ret
00004576 <dhcp_arp_reply>:
dhcp_arp_reply():
4576: 18050063 beqz a0,46f6 <dhcp_arp_reply+0x180>
457a: c77fb2ef jal t0,1f0 <__riscv_save_0>
457e: 5100 lw s0,32(a0)
4580: 16040963 beqz s0,46f2 <dhcp_arp_reply+0x17c>
4584: 2838 lbu a4,18(s0)
4586: 47a1 li a5,8
4588: 16f71563 bne a4,a5,46f2 <dhcp_arp_reply+0x17c>
458c: 3198 lbu a4,1(a1)
458e: 219c lbu a5,0(a1)
4590: 0722 slli a4,a4,0x8
4592: 8f5d or a4,a4,a5
4594: 21bc lbu a5,2(a1)
4596: 07c2 slli a5,a5,0x10
4598: 8f5d or a4,a4,a5
459a: 31bc lbu a5,3(a1)
459c: 07e2 slli a5,a5,0x18
459e: 8fd9 or a5,a5,a4
45a0: 5418 lw a4,40(s0)
45a2: 14e79863 bne a5,a4,46f2 <dhcp_arp_reply+0x17c>
45a6: 84aa mv s1,a0
45a8: 45b1 li a1,12
45aa: 8522 mv a0,s0
45ac: d5fff0ef jal ra,430a <dhcp_set_state>
45b0: 8526 mv a0,s1
45b2: e1dff0ef jal ra,43ce <dhcp_create_request>
45b6: 12051963 bnez a0,46e8 <dhcp_arp_reply+0x172>
45ba: 4605 li a2,1
45bc: 03500593 li a1,53
45c0: 8522 mv a0,s0
45c2: d5fff0ef jal ra,4320 <dhcp_option>
45c6: 4591 li a1,4
45c8: 8522 mv a0,s0
45ca: d77ff0ef jal ra,4340 <dhcp_option_byte>
45ce: 4611 li a2,4
45d0: 03200593 li a1,50
45d4: 8522 mv a0,s0
45d6: d4bff0ef jal ra,4320 <dhcp_option>
45da: 5408 lw a0,40(s0)
45dc: a22ff0ef jal ra,37fe <ntohl>
45e0: 85aa mv a1,a0
45e2: 8522 mv a0,s0
45e4: d6fff0ef jal ra,4352 <dhcp_option_long>
45e8: 4611 li a2,4
45ea: 03600593 li a1,54
45ee: 8522 mv a0,s0
45f0: d31ff0ef jal ra,4320 <dhcp_option>
45f4: 5048 lw a0,36(s0)
45f6: a08ff0ef jal ra,37fe <ntohl>
45fa: 85aa mv a1,a0
45fc: 8522 mv a0,s0
45fe: d55ff0ef jal ra,4352 <dhcp_option_long>
4602: 461d li a2,7
4604: 03d00593 li a1,61
4608: 8522 mv a0,s0
460a: d17ff0ef jal ra,4320 <dhcp_option>
460e: 2c5e lhu a5,28(s0)
4610: 4c18 lw a4,24(s0)
4612: 4605 li a2,1
4614: 8522 mv a0,s0
4616: 00f706b3 add a3,a4,a5
461a: 0ec68823 sb a2,240(a3)
461e: 00278613 addi a2,a5,2
4622: 0642 slli a2,a2,0x10
4624: 8241 srli a2,a2,0x10
4626: ac52 sh a2,28(s0)
4628: 00178693 addi a3,a5,1
462c: 0294c583 lbu a1,41(s1)
4630: 06c2 slli a3,a3,0x10
4632: 82c1 srli a3,a3,0x10
4634: 96ba add a3,a3,a4
4636: 0eb68823 sb a1,240(a3)
463a: 00378693 addi a3,a5,3
463e: 06c2 slli a3,a3,0x10
4640: 82c1 srli a3,a3,0x10
4642: ac56 sh a3,28(s0)
4644: 02a4c583 lbu a1,42(s1)
4648: 963a add a2,a2,a4
464a: 96ba add a3,a3,a4
464c: 0eb60823 sb a1,240(a2)
4650: 00478613 addi a2,a5,4
4654: 0642 slli a2,a2,0x10
4656: 8241 srli a2,a2,0x10
4658: ac52 sh a2,28(s0)
465a: 02b4c583 lbu a1,43(s1)
465e: 963a add a2,a2,a4
4660: 0eb68823 sb a1,240(a3)
4664: 00578693 addi a3,a5,5
4668: 06c2 slli a3,a3,0x10
466a: 82c1 srli a3,a3,0x10
466c: ac56 sh a3,28(s0)
466e: 02c4c583 lbu a1,44(s1)
4672: 96ba add a3,a3,a4
4674: 0eb60823 sb a1,240(a2)
4678: 00678613 addi a2,a5,6
467c: 0642 slli a2,a2,0x10
467e: 8241 srli a2,a2,0x10
4680: ac52 sh a2,28(s0)
4682: 02d4c583 lbu a1,45(s1)
4686: 079d addi a5,a5,7
4688: 9732 add a4,a4,a2
468a: 0eb68823 sb a1,240(a3)
468e: ac5e sh a5,28(s0)
4690: 02e4c783 lbu a5,46(s1)
4694: 0ef70823 sb a5,240(a4)
4698: d03ff0ef jal ra,439a <dhcp_option_trailer>
469c: 2c4e lhu a1,28(s0)
469e: 4848 lw a0,20(s0)
46a0: 0f058593 addi a1,a1,240
46a4: 05c2 slli a1,a1,0x10
46a6: 81c1 srli a1,a1,0x10
46a8: 2d51 jal 4d3c <pbuf_realloc>
46aa: 02844703 lbu a4,40(s0)
46ae: 4c1c lw a5,24(s0)
46b0: 484c lw a1,20(s0)
46b2: 4048 lw a0,4(s0)
46b4: a7d8 sb a4,12(a5)
46b6: 02944703 lbu a4,41(s0)
46ba: 0044a903 lw s2,4(s1)
46be: b7d8 sb a4,13(a5)
46c0: 02a44703 lbu a4,42(s0)
46c4: 04300693 li a3,67
46c8: 84818613 addi a2,gp,-1976 # 20000068 <ip_addr_broadcast>
46cc: a7f8 sb a4,14(a5)
46ce: 02b44703 lbu a4,43(s0)
46d2: b7f8 sb a4,15(a5)
46d4: 0004a223 sw zero,4(s1)
46d8: 8726 mv a4,s1
46da: 061030ef jal ra,7f3a <udp_sendto_if>
46de: 8526 mv a0,s1
46e0: 0124a223 sw s2,4(s1)
46e4: e75ff0ef jal ra,4558 <dhcp_delete_request>
46e8: 383c lbu a5,19(s0)
46ea: 0785 addi a5,a5,1
46ec: b83c sb a5,19(s0)
46ee: 4785 li a5,1
46f0: ac7e sh a5,30(s0)
46f2: b23fb06f j 214 <__riscv_restore_0>
46f6: 8082 ret
000046f8 <lwip_init>:
lwip_init():
46f8: af9fb2ef jal t0,1f0 <__riscv_save_0>
46fc: 2811 jal 4710 <mem_init>
46fe: 24bd jal 496c <memp_init>
4700: 200077b7 lui a5,0x20007
4704: 7e07a783 lw a5,2016(a5) # 200077e0 <DNSInf+0x8>
4708: c391 beqz a5,470c <lwip_init+0x14>
470a: 9782 jalr a5
470c: b09fb06f j 214 <__riscv_restore_0>
00004710 <mem_init>:
mem_init():
4710: 20004737 lui a4,0x20004
4714: 7ab70713 addi a4,a4,1963 # 200047ab <Mem_Heap_Memory+0x3>
4718: 9b71 andi a4,a4,-4
471a: 8ee1a823 sw a4,-1808(gp) # 20000110 <ram>
471e: 200087b7 lui a5,0x20008
4722: 8447a783 lw a5,-1980(a5) # 20007844 <WCHCfg+0x8>
4726: 00071123 sh zero,2(a4)
472a: 078d addi a5,a5,3
472c: 9bf1 andi a5,a5,-4
472e: 01079693 slli a3,a5,0x10
4732: 82c1 srli a3,a3,0x10
4734: 97ba add a5,a5,a4
4736: a316 sh a3,0(a4)
4738: 00070223 sb zero,4(a4)
473c: 8ef1aa23 sw a5,-1804(gp) # 20000114 <ram_end>
4740: 4605 li a2,1
4742: a3d0 sb a2,4(a5)
4744: a396 sh a3,0(a5)
4746: a3b6 sh a3,2(a5)
4748: 8ee1a623 sw a4,-1812(gp) # 2000010c <lfree>
474c: 8082 ret
0000474e <mem_free>:
mem_free():
474e: c149 beqz a0,47d0 <mem_free+0x82>
4750: 8f01a783 lw a5,-1808(gp) # 20000110 <ram>
4754: 06f56e63 bltu a0,a5,47d0 <mem_free+0x82>
4758: 8f41a583 lw a1,-1804(gp) # 20000114 <ram_end>
475c: 06b57a63 bgeu a0,a1,47d0 <mem_free+0x82>
4760: 8ec1a683 lw a3,-1812(gp) # 2000010c <lfree>
4764: ff850613 addi a2,a0,-8
4768: fe050e23 sb zero,-4(a0)
476c: 8ec18713 addi a4,gp,-1812 # 2000010c <lfree>
4770: 00d67363 bgeu a2,a3,4776 <mem_free+0x28>
4774: c310 sw a2,0(a4)
4776: ff855683 lhu a3,-8(a0)
477a: 96be add a3,a3,a5
477c: 02d60463 beq a2,a3,47a4 <mem_free+0x56>
4780: 0046c803 lbu a6,4(a3)
4784: 02081063 bnez a6,47a4 <mem_free+0x56>
4788: 00d58e63 beq a1,a3,47a4 <mem_free+0x56>
478c: 430c lw a1,0(a4)
478e: 00b69363 bne a3,a1,4794 <mem_free+0x46>
4792: c310 sw a2,0(a4)
4794: 228e lhu a1,0(a3)
4796: feb51c23 sh a1,-8(a0)
479a: 2296 lhu a3,0(a3)
479c: 40f605b3 sub a1,a2,a5
47a0: 96be add a3,a3,a5
47a2: a2ae sh a1,2(a3)
47a4: ffa55583 lhu a1,-6(a0)
47a8: 00b786b3 add a3,a5,a1
47ac: 02d60263 beq a2,a3,47d0 <mem_free+0x82>
47b0: 0046c803 lbu a6,4(a3)
47b4: 00081e63 bnez a6,47d0 <mem_free+0x82>
47b8: 00072803 lw a6,0(a4)
47bc: 01061363 bne a2,a6,47c2 <mem_free+0x74>
47c0: c314 sw a3,0(a4)
47c2: ff855703 lhu a4,-8(a0)
47c6: a29a sh a4,0(a3)
47c8: ff855703 lhu a4,-8(a0)
47cc: 97ba add a5,a5,a4
47ce: a3ae sh a1,2(a5)
47d0: 8082 ret
000047d2 <mem_realloc>:
mem_realloc():
47d2: 058d addi a1,a1,3
47d4: 05c2 slli a1,a1,0x10
47d6: 81c1 srli a1,a1,0x10
47d8: 99f1 andi a1,a1,-4
47da: 05c2 slli a1,a1,0x10
47dc: 81c1 srli a1,a1,0x10
47de: 4731 li a4,12
47e0: 87ae mv a5,a1
47e2: 00e5f363 bgeu a1,a4,47e8 <mem_realloc+0x16>
47e6: 47b1 li a5,12
47e8: 20008737 lui a4,0x20008
47ec: 84472603 lw a2,-1980(a4) # 20007844 <WCHCfg+0x8>
47f0: 07c2 slli a5,a5,0x10
47f2: 83c1 srli a5,a5,0x10
47f4: 060d addi a2,a2,3
47f6: 9a71 andi a2,a2,-4
47f8: 0af66063 bltu a2,a5,4898 <mem_realloc+0xc6>
47fc: 8f01a703 lw a4,-1808(gp) # 20000110 <ram>
4800: 08e56d63 bltu a0,a4,489a <mem_realloc+0xc8>
4804: 8f41a683 lw a3,-1804(gp) # 20000114 <ram_end>
4808: 08d57963 bgeu a0,a3,489a <mem_realloc+0xc8>
480c: ff850693 addi a3,a0,-8
4810: ff855883 lhu a7,-8(a0)
4814: 8e99 sub a3,a3,a4
4816: 06c2 slli a3,a3,0x10
4818: 82c1 srli a3,a3,0x10
481a: ff888593 addi a1,a7,-8
481e: 8d95 sub a1,a1,a3
4820: 05c2 slli a1,a1,0x10
4822: 81c1 srli a1,a1,0x10
4824: 06f5ea63 bltu a1,a5,4898 <mem_realloc+0xc6>
4828: 06f58963 beq a1,a5,489a <mem_realloc+0xc8>
482c: 01170333 add t1,a4,a7
4830: 00434803 lbu a6,4(t1) # 80000004 <_eusrstack+0x5ffe0004>
4834: 02081463 bnez a6,485c <mem_realloc+0x8a>
4838: 00868593 addi a1,a3,8
483c: 8ec18813 addi a6,gp,-1812 # 2000010c <lfree>
4840: 97ae add a5,a5,a1
4842: 00082e03 lw t3,0(a6)
4846: 07c2 slli a5,a5,0x10
4848: 83c1 srli a5,a5,0x10
484a: 00035883 lhu a7,0(t1)
484e: 00f705b3 add a1,a4,a5
4852: 026e1663 bne t3,t1,487e <mem_realloc+0xac>
4856: 00b82023 sw a1,0(a6)
485a: a015 j 487e <mem_realloc+0xac>
485c: 01478813 addi a6,a5,20
4860: 0305ed63 bltu a1,a6,489a <mem_realloc+0xc8>
4864: 00868593 addi a1,a3,8
4868: 97ae add a5,a5,a1
486a: 8ec18813 addi a6,gp,-1812 # 2000010c <lfree>
486e: 07c2 slli a5,a5,0x10
4870: 00082303 lw t1,0(a6)
4874: 83c1 srli a5,a5,0x10
4876: 00f705b3 add a1,a4,a5
487a: fc65eee3 bltu a1,t1,4856 <mem_realloc+0x84>
487e: 01159023 sh a7,0(a1)
4882: a1b6 sh a3,2(a1)
4884: 00058223 sb zero,4(a1)
4888: fef51c23 sh a5,-8(a0)
488c: 2196 lhu a3,0(a1)
488e: 00d60663 beq a2,a3,489a <mem_realloc+0xc8>
4892: 9736 add a4,a4,a3
4894: a33e sh a5,2(a4)
4896: 8082 ret
4898: 4501 li a0,0
489a: 8082 ret
0000489c <mem_malloc>:
mem_malloc():
489c: c539 beqz a0,48ea <mem_malloc+0x4e>
489e: 00350713 addi a4,a0,3
48a2: 0742 slli a4,a4,0x10
48a4: 8341 srli a4,a4,0x10
48a6: 9b71 andi a4,a4,-4
48a8: 0742 slli a4,a4,0x10
48aa: 8341 srli a4,a4,0x10
48ac: 46b1 li a3,12
48ae: 87ba mv a5,a4
48b0: 00d77363 bgeu a4,a3,48b6 <mem_malloc+0x1a>
48b4: 47b1 li a5,12
48b6: 20008737 lui a4,0x20008
48ba: 84472603 lw a2,-1980(a4) # 20007844 <WCHCfg+0x8>
48be: 07c2 slli a5,a5,0x10
48c0: 83c1 srli a5,a5,0x10
48c2: 060d addi a2,a2,3
48c4: 9a71 andi a2,a2,-4
48c6: 4501 li a0,0
48c8: 02f66263 bltu a2,a5,48ec <mem_malloc+0x50>
48cc: 8ec1a703 lw a4,-1812(gp) # 2000010c <lfree>
48d0: 8f01ae83 lw t4,-1808(gp) # 20000110 <ram>
48d4: 8ec18593 addi a1,gp,-1812 # 2000010c <lfree>
48d8: 40f60333 sub t1,a2,a5
48dc: 41d706b3 sub a3,a4,t4
48e0: 06c2 slli a3,a3,0x10
48e2: 82c1 srli a3,a3,0x10
48e4: 5e61 li t3,-8
48e6: 0066e463 bltu a3,t1,48ee <mem_malloc+0x52>
48ea: 4501 li a0,0
48ec: 8082 ret
48ee: 00de8533 add a0,t4,a3
48f2: 00454803 lbu a6,4(a0)
48f6: 00055883 lhu a7,0(a0)
48fa: 06081763 bnez a6,4968 <mem_malloc+0xcc>
48fe: 40de0833 sub a6,t3,a3
4902: 9846 add a6,a6,a7
4904: 06f86263 bltu a6,a5,4968 <mem_malloc+0xcc>
4908: 01478313 addi t1,a5,20
490c: 04686263 bltu a6,t1,4950 <mem_malloc+0xb4>
4910: 07a1 addi a5,a5,8
4912: 97b6 add a5,a5,a3
4914: 07c2 slli a5,a5,0x10
4916: 83c1 srli a5,a5,0x10
4918: 00fe8833 add a6,t4,a5
491c: 01181023 sh a7,0(a6)
4920: 00d81123 sh a3,2(a6)
4924: 00080223 sb zero,4(a6)
4928: 4685 li a3,1
492a: a11e sh a5,0(a0)
492c: a154 sb a3,4(a0)
492e: 00085683 lhu a3,0(a6)
4932: 00d60463 beq a2,a3,493a <mem_malloc+0x9e>
4936: 96f6 add a3,a3,t4
4938: a2be sh a5,2(a3)
493a: 00a71963 bne a4,a0,494c <mem_malloc+0xb0>
493e: 8f41a683 lw a3,-1804(gp) # 20000114 <ram_end>
4942: 4781 li a5,0
4944: 2350 lbu a2,4(a4)
4946: ee01 bnez a2,495e <mem_malloc+0xc2>
4948: c391 beqz a5,494c <mem_malloc+0xb0>
494a: c198 sw a4,0(a1)
494c: 0521 addi a0,a0,8
494e: 8082 ret
4950: 4785 li a5,1
4952: a15c sb a5,4(a0)
4954: b7dd j 493a <mem_malloc+0x9e>
4956: 231a lhu a4,0(a4)
4958: 4785 li a5,1
495a: 9776 add a4,a4,t4
495c: b7e5 j 4944 <mem_malloc+0xa8>
495e: fee69ce3 bne a3,a4,4956 <mem_malloc+0xba>
4962: d7ed beqz a5,494c <mem_malloc+0xb0>
4964: c194 sw a3,0(a1)
4966: b7dd j 494c <mem_malloc+0xb0>
4968: 86c6 mv a3,a7
496a: bfb5 j 48e6 <mem_malloc+0x4a>
0000496c <memp_init>:
memp_init():
496c: 8241a583 lw a1,-2012(gp) # 20000044 <memp_num>
4970: 8281a683 lw a3,-2008(gp) # 20000048 <memp_sizes>
4974: 200067b7 lui a5,0x20006
4978: a1b78793 addi a5,a5,-1509 # 20005a1b <Memp_Memory+0x3>
497c: 20008737 lui a4,0x20008
4980: 9bf1 andi a5,a5,-4
4982: 8a070713 addi a4,a4,-1888 # 200078a0 <memp_tab>
4986: 01068513 addi a0,a3,16
498a: 0005d803 lhu a6,0(a1)
498e: 00072023 sw zero,0(a4)
4992: 4601 li a2,0
4994: 00c81863 bne a6,a2,49a4 <memp_init+0x38>
4998: 0689 addi a3,a3,2
499a: 0711 addi a4,a4,4
499c: 0589 addi a1,a1,2
499e: fea696e3 bne a3,a0,498a <memp_init+0x1e>
49a2: 8082 ret
49a4: 00072883 lw a7,0(a4)
49a8: 0605 addi a2,a2,1
49aa: 0642 slli a2,a2,0x10
49ac: 0117a023 sw a7,0(a5)
49b0: 0006d883 lhu a7,0(a3)
49b4: c31c sw a5,0(a4)
49b6: 8241 srli a2,a2,0x10
49b8: 97c6 add a5,a5,a7
49ba: bfe9 j 4994 <memp_init+0x28>
000049bc <memp_malloc>:
memp_malloc():
49bc: 479d li a5,7
49be: 00a7ed63 bltu a5,a0,49d8 <memp_malloc+0x1c>
49c2: 200087b7 lui a5,0x20008
49c6: 050a slli a0,a0,0x2
49c8: 8a078793 addi a5,a5,-1888 # 200078a0 <memp_tab>
49cc: 97aa add a5,a5,a0
49ce: 4388 lw a0,0(a5)
49d0: c509 beqz a0,49da <memp_malloc+0x1e>
49d2: 4118 lw a4,0(a0)
49d4: c398 sw a4,0(a5)
49d6: 8082 ret
49d8: 4501 li a0,0
49da: 8082 ret
000049dc <memp_free>:
memp_free():
49dc: c999 beqz a1,49f2 <memp_free+0x16>
49de: 00251793 slli a5,a0,0x2
49e2: 20008537 lui a0,0x20008
49e6: 8a050513 addi a0,a0,-1888 # 200078a0 <memp_tab>
49ea: 953e add a0,a0,a5
49ec: 411c lw a5,0(a0)
49ee: c19c sw a5,0(a1)
49f0: c10c sw a1,0(a0)
49f2: 8082 ret
000049f4 <netif_set_ipaddr>:
netif_set_ipaddr():
49f4: fe2fb2ef jal t0,1d6 <__riscv_save_4>
49f8: 3198 lbu a4,1(a1)
49fa: 219c lbu a5,0(a1)
49fc: 84aa mv s1,a0
49fe: 0722 slli a4,a4,0x8
4a00: 8f5d or a4,a4,a5
4a02: 21bc lbu a5,2(a1)
4a04: 842e mv s0,a1
4a06: 07c2 slli a5,a5,0x10
4a08: 8f5d or a4,a4,a5
4a0a: 31bc lbu a5,3(a1)
4a0c: 07e2 slli a5,a5,0x18
4a0e: 8fd9 or a5,a5,a4
4a10: 4158 lw a4,4(a0)
4a12: 00e79f63 bne a5,a4,4a30 <netif_set_ipaddr+0x3c>
4a16: 3018 lbu a4,1(s0)
4a18: 201c lbu a5,0(s0)
4a1a: 0722 slli a4,a4,0x8
4a1c: 8f5d or a4,a4,a5
4a1e: 203c lbu a5,2(s0)
4a20: 07c2 slli a5,a5,0x10
4a22: 8f5d or a4,a4,a5
4a24: 303c lbu a5,3(s0)
4a26: 07e2 slli a5,a5,0x18
4a28: 8fd9 or a5,a5,a4
4a2a: c0dc sw a5,4(s1)
4a2c: fdefb06f j 20a <__riscv_restore_4>
4a30: 9081a503 lw a0,-1784(gp) # 20000128 <tcp_active_pcbs>
4a34: 4901 li s2,0
4a36: 06400993 li s3,100
4a3a: c105 beqz a0,4a5a <netif_set_ipaddr+0x66>
4a3c: 4118 lw a4,0(a0)
4a3e: 40dc lw a5,4(s1)
4a40: 00c52a03 lw s4,12(a0)
4a44: 04f71163 bne a4,a5,4a86 <netif_set_ipaddr+0x92>
4a48: 4585 li a1,1
4a4a: 57d000ef jal ra,57c6 <tcp_abandon>
4a4e: 00190793 addi a5,s2,1
4a52: 0ff7f793 andi a5,a5,255
4a56: 0329f763 bgeu s3,s2,4a84 <netif_set_ipaddr+0x90>
4a5a: 9101a783 lw a5,-1776(gp) # 20000130 <tcp_listen_pcbs>
4a5e: dfc5 beqz a5,4a16 <netif_set_ipaddr+0x22>
4a60: 4398 lw a4,0(a5)
4a62: cf19 beqz a4,4a80 <netif_set_ipaddr+0x8c>
4a64: 40d4 lw a3,4(s1)
4a66: 00d71d63 bne a4,a3,4a80 <netif_set_ipaddr+0x8c>
4a6a: 3014 lbu a3,1(s0)
4a6c: 2018 lbu a4,0(s0)
4a6e: 06a2 slli a3,a3,0x8
4a70: 8ed9 or a3,a3,a4
4a72: 2038 lbu a4,2(s0)
4a74: 0742 slli a4,a4,0x10
4a76: 8ed9 or a3,a3,a4
4a78: 3038 lbu a4,3(s0)
4a7a: 0762 slli a4,a4,0x18
4a7c: 8f55 or a4,a4,a3
4a7e: c398 sw a4,0(a5)
4a80: 47dc lw a5,12(a5)
4a82: bff1 j 4a5e <netif_set_ipaddr+0x6a>
4a84: 893e mv s2,a5
4a86: 8552 mv a0,s4
4a88: bf4d j 4a3a <netif_set_ipaddr+0x46>
00004a8a <netif_set_addr>:
netif_set_addr():
4a8a: f66fb2ef jal t0,1f0 <__riscv_save_0>
4a8e: 1141 addi sp,sp,-16
4a90: c632 sw a2,12(sp)
4a92: c436 sw a3,8(sp)
4a94: 842a mv s0,a0
4a96: f5fff0ef jal ra,49f4 <netif_set_ipaddr>
4a9a: 4632 lw a2,12(sp)
4a9c: 46a2 lw a3,8(sp)
4a9e: 4781 li a5,0
4aa0: ca19 beqz a2,4ab6 <netif_set_addr+0x2c>
4aa2: 3218 lbu a4,1(a2)
4aa4: 221c lbu a5,0(a2)
4aa6: 0722 slli a4,a4,0x8
4aa8: 8f5d or a4,a4,a5
4aaa: 223c lbu a5,2(a2)
4aac: 07c2 slli a5,a5,0x10
4aae: 8f5d or a4,a4,a5
4ab0: 323c lbu a5,3(a2)
4ab2: 07e2 slli a5,a5,0x18
4ab4: 8fd9 or a5,a5,a4
4ab6: c41c sw a5,8(s0)
4ab8: 4781 li a5,0
4aba: ca99 beqz a3,4ad0 <netif_set_addr+0x46>
4abc: 3298 lbu a4,1(a3)
4abe: 229c lbu a5,0(a3)
4ac0: 0722 slli a4,a4,0x8
4ac2: 8f5d or a4,a4,a5
4ac4: 22bc lbu a5,2(a3)
4ac6: 07c2 slli a5,a5,0x10
4ac8: 8f5d or a4,a4,a5
4aca: 32bc lbu a5,3(a3)
4acc: 07e2 slli a5,a5,0x18
4ace: 8fd9 or a5,a5,a4
4ad0: c45c sw a5,12(s0)
4ad2: 0141 addi sp,sp,16
4ad4: f40fb06f j 214 <__riscv_restore_0>
00004ad8 <netif_add>:
netif_add():
4ad8: f18fb2ef jal t0,1f0 <__riscv_save_0>
4adc: cd58 sw a4,28(a0)
4ade: 90018713 addi a4,gp,-1792 # 20000120 <netifnum.2482>
4ae2: 00074883 lbu a7,0(a4)
4ae6: 1141 addi sp,sp,-16
4ae8: 00052223 sw zero,4(a0)
4aec: 00052423 sw zero,8(a0)
4af0: 00052623 sw zero,12(a0)
4af4: 02050923 sb zero,50(a0)
4af8: 02052023 sw zero,32(a0)
4afc: 00188313 addi t1,a7,1
4b00: 03150aa3 sb a7,53(a0)
4b04: 01052823 sw a6,16(a0)
4b08: 842a mv s0,a0
4b0a: c63e sw a5,12(sp)
4b0c: 00670023 sb t1,0(a4)
4b10: f7bff0ef jal ra,4a8a <netif_set_addr>
4b14: 47b2 lw a5,12(sp)
4b16: 8522 mv a0,s0
4b18: 9782 jalr a5
4b1a: e911 bnez a0,4b2e <netif_add+0x56>
4b1c: 8fc18793 addi a5,gp,-1796 # 2000011c <netif_list>
4b20: 4398 lw a4,0(a5)
4b22: c018 sw a4,0(s0)
4b24: c380 sw s0,0(a5)
4b26: 8522 mv a0,s0
4b28: 0141 addi sp,sp,16
4b2a: eeafb06f j 214 <__riscv_restore_0>
4b2e: 4401 li s0,0
4b30: bfdd j 4b26 <netif_add+0x4e>
00004b32 <netif_set_default>:
netif_set_default():
4b32: 8ea1ac23 sw a0,-1800(gp) # 20000118 <netif_default>
4b36: 8082 ret
00004b38 <netif_is_up>:
netif_is_up():
4b38: 03254503 lbu a0,50(a0)
4b3c: 8905 andi a0,a0,1
4b3e: 8082 ret
00004b40 <pbuf_header>:
pbuf_header():
4b40: 87aa mv a5,a0
4b42: 4501 li a0,0
4b44: c5a5 beqz a1,4bac <pbuf_header+0x6c>
4b46: c3bd beqz a5,4bac <pbuf_header+0x6c>
4b48: 01059613 slli a2,a1,0x10
4b4c: 8241 srli a2,a2,0x10
4b4e: 8832 mv a6,a2
4b50: 0005db63 bgez a1,4b66 <pbuf_header+0x26>
4b54: 40c00833 neg a6,a2
4b58: 27ba lhu a4,10(a5)
4b5a: 0842 slli a6,a6,0x10
4b5c: 01085813 srli a6,a6,0x10
4b60: 4505 li a0,1
4b62: 05076563 bltu a4,a6,4bac <pbuf_header+0x6c>
4b66: 27d4 lbu a3,12(a5)
4b68: 43d8 lw a4,4(a5)
4b6a: c681 beqz a3,4b72 <pbuf_header+0x32>
4b6c: 450d li a0,3
4b6e: 02a69163 bne a3,a0,4b90 <pbuf_header+0x50>
4b72: 8f0d sub a4,a4,a1
4b74: 01078693 addi a3,a5,16
4b78: 4505 li a0,1
4b7a: 02d76963 bltu a4,a3,4bac <pbuf_header+0x6c>
4b7e: c3d8 sw a4,4(a5)
4b80: 27ba lhu a4,10(a5)
4b82: 4501 li a0,0
4b84: 9732 add a4,a4,a2
4b86: a7ba sh a4,10(a5)
4b88: 279a lhu a4,8(a5)
4b8a: 963a add a2,a2,a4
4b8c: a792 sh a2,8(a5)
4b8e: 8082 ret
4b90: 16fd addi a3,a3,-1
4b92: 06c2 slli a3,a3,0x10
4b94: 82c1 srli a3,a3,0x10
4b96: 4885 li a7,1
4b98: 4505 li a0,1
4b9a: 00d8e963 bltu a7,a3,4bac <pbuf_header+0x6c>
4b9e: 0005d763 bgez a1,4bac <pbuf_header+0x6c>
4ba2: 27b6 lhu a3,10(a5)
4ba4: 0106e463 bltu a3,a6,4bac <pbuf_header+0x6c>
4ba8: 8f0d sub a4,a4,a1
4baa: bfd1 j 4b7e <pbuf_header+0x3e>
4bac: 8082 ret
00004bae <pbuf_free>:
pbuf_free():
4bae: e28fb2ef jal t0,1d6 <__riscv_save_4>
4bb2: 4401 li s0,0
4bb4: cd0d beqz a0,4bee <pbuf_free+0x40>
4bb6: 85aa mv a1,a0
4bb8: 4401 li s0,0
4bba: 490d li s2,3
4bbc: 4985 li s3,1
4bbe: 25fe lhu a5,14(a1)
4bc0: 17fd addi a5,a5,-1
4bc2: 07c2 slli a5,a5,0x10
4bc4: 83c1 srli a5,a5,0x10
4bc6: a5fe sh a5,14(a1)
4bc8: e39d bnez a5,4bee <pbuf_free+0x40>
4bca: 25dc lbu a5,12(a1)
4bcc: 4184 lw s1,0(a1)
4bce: 451d li a0,7
4bd0: 01278863 beq a5,s2,4be0 <pbuf_free+0x32>
4bd4: 17fd addi a5,a5,-1
4bd6: 07c2 slli a5,a5,0x10
4bd8: 83c1 srli a5,a5,0x10
4bda: 00f9ed63 bltu s3,a5,4bf4 <pbuf_free+0x46>
4bde: 4519 li a0,6
4be0: dfdff0ef jal ra,49dc <memp_free>
4be4: 0405 addi s0,s0,1
4be6: 0ff47413 andi s0,s0,255
4bea: 85a6 mv a1,s1
4bec: f8e9 bnez s1,4bbe <pbuf_free+0x10>
4bee: 8522 mv a0,s0
4bf0: e1afb06f j 20a <__riscv_restore_4>
4bf4: 852e mv a0,a1
4bf6: b59ff0ef jal ra,474e <mem_free>
4bfa: b7ed j 4be4 <pbuf_free+0x36>
00004bfc <pbuf_alloc>:
pbuf_alloc():
4bfc: ddafb2ef jal t0,1d6 <__riscv_save_4>
4c00: 4785 li a5,1
4c02: 00f50d63 beq a0,a5,4c1c <pbuf_alloc+0x20>
4c06: c531 beqz a0,4c52 <pbuf_alloc+0x56>
4c08: 4789 li a5,2
4c0a: 04f50663 beq a0,a5,4c56 <pbuf_alloc+0x5a>
4c0e: 478d li a5,3
4c10: 04f50563 beq a0,a5,4c5a <pbuf_alloc+0x5e>
4c14: 4401 li s0,0
4c16: 8522 mv a0,s0
4c18: df2fb06f j 20a <__riscv_restore_4>
4c1c: 4481 li s1,0
4c1e: 04d1 addi s1,s1,20
4c20: 04b9 addi s1,s1,14
4c22: 04c2 slli s1,s1,0x10
4c24: 80c1 srli s1,s1,0x10
4c26: 4789 li a5,2
4c28: 89b2 mv s3,a2
4c2a: 892e mv s2,a1
4c2c: 02c7e963 bltu a5,a2,4c5e <pbuf_alloc+0x62>
4c30: ca79 beqz a2,4d06 <pbuf_alloc+0x10a>
4c32: 4519 li a0,6
4c34: d89ff0ef jal ra,49bc <memp_malloc>
4c38: 842a mv s0,a0
4c3a: dd69 beqz a0,4c14 <pbuf_alloc+0x18>
4c3c: 00052223 sw zero,4(a0)
4c40: 01251423 sh s2,8(a0)
4c44: 01251523 sh s2,10(a0)
4c48: 00052023 sw zero,0(a0)
4c4c: 01350623 sb s3,12(a0)
4c50: a0b5 j 4cbc <pbuf_alloc+0xc0>
4c52: 44d1 li s1,20
4c54: b7e9 j 4c1e <pbuf_alloc+0x22>
4c56: 4481 li s1,0
4c58: b7e1 j 4c20 <pbuf_alloc+0x24>
4c5a: 4481 li s1,0
4c5c: b7e9 j 4c26 <pbuf_alloc+0x2a>
4c5e: 478d li a5,3
4c60: 4401 li s0,0
4c62: faf61ae3 bne a2,a5,4c16 <pbuf_alloc+0x1a>
4c66: 451d li a0,7
4c68: d55ff0ef jal ra,49bc <memp_malloc>
4c6c: 842a mv s0,a0
4c6e: d15d beqz a0,4c14 <pbuf_alloc+0x18>
4c70: 009507b3 add a5,a0,s1
4c74: 07cd addi a5,a5,19
4c76: 9bf1 andi a5,a5,-4
4c78: 20008737 lui a4,0x20008
4c7c: c15c sw a5,4(a0)
4c7e: 83c70793 addi a5,a4,-1988 # 2000783c <WCHCfg>
4c82: 43dc lw a5,4(a5)
4c84: 048d addi s1,s1,3
4c86: 98f1 andi s1,s1,-4
4c88: 03978793 addi a5,a5,57
4c8c: 9bf1 andi a5,a5,-4
4c8e: 01350623 sb s3,12(a0)
4c92: 00052023 sw zero,0(a0)
4c96: 01251423 sh s2,8(a0)
4c9a: 409784b3 sub s1,a5,s1
4c9e: 83c70993 addi s3,a4,-1988
4ca2: 00997363 bgeu s2,s1,4ca8 <pbuf_alloc+0xac>
4ca6: 84ca mv s1,s2
4ca8: 4785 li a5,1
4caa: a426 sh s1,10(s0)
4cac: a47e sh a5,14(s0)
4cae: 409904b3 sub s1,s2,s1
4cb2: 4a0d li s4,3
4cb4: 8922 mv s2,s0
4cb6: 4a85 li s5,1
4cb8: 00904763 bgtz s1,4cc6 <pbuf_alloc+0xca>
4cbc: 4785 li a5,1
4cbe: a47e sh a5,14(s0)
4cc0: 000406a3 sb zero,13(s0)
4cc4: bf89 j 4c16 <pbuf_alloc+0x1a>
4cc6: 451d li a0,7
4cc8: cf5ff0ef jal ra,49bc <memp_malloc>
4ccc: e509 bnez a0,4cd6 <pbuf_alloc+0xda>
4cce: 8522 mv a0,s0
4cd0: edfff0ef jal ra,4bae <pbuf_free>
4cd4: b781 j 4c14 <pbuf_alloc+0x18>
4cd6: 0049a783 lw a5,4(s3)
4cda: 01451623 sh s4,12(a0)
4cde: 00052023 sw zero,0(a0)
4ce2: 00a92023 sw a0,0(s2)
4ce6: 03978793 addi a5,a5,57
4cea: a506 sh s1,8(a0)
4cec: 9bf1 andi a5,a5,-4
4cee: 00f4f363 bgeu s1,a5,4cf4 <pbuf_alloc+0xf8>
4cf2: 87a6 mv a5,s1
4cf4: 01050713 addi a4,a0,16
4cf8: a53e sh a5,10(a0)
4cfa: c158 sw a4,4(a0)
4cfc: 01551723 sh s5,14(a0)
4d00: 8c9d sub s1,s1,a5
4d02: 892a mv s2,a0
4d04: bf55 j 4cb8 <pbuf_alloc+0xbc>
4d06: 00358793 addi a5,a1,3
4d0a: 01348513 addi a0,s1,19
4d0e: 9bf1 andi a5,a5,-4
4d10: 9971 andi a0,a0,-4
4d12: 953e add a0,a0,a5
4d14: 0542 slli a0,a0,0x10
4d16: 8141 srli a0,a0,0x10
4d18: b85ff0ef jal ra,489c <mem_malloc>
4d1c: 842a mv s0,a0
4d1e: ee050be3 beqz a0,4c14 <pbuf_alloc+0x18>
4d22: 94aa add s1,s1,a0
4d24: 04cd addi s1,s1,19
4d26: 98f1 andi s1,s1,-4
4d28: c144 sw s1,4(a0)
4d2a: 01251423 sh s2,8(a0)
4d2e: 01251523 sh s2,10(a0)
4d32: 00052023 sw zero,0(a0)
4d36: 00050623 sb zero,12(a0)
4d3a: b749 j 4cbc <pbuf_alloc+0xc0>
00004d3c <pbuf_realloc>:
pbuf_realloc():
4d3c: 251e lhu a5,8(a0)
4d3e: 04f5fa63 bgeu a1,a5,4d92 <pbuf_realloc+0x56>
4d42: caefb2ef jal t0,1f0 <__riscv_save_0>
4d46: 842a mv s0,a0
4d48: 84ae mv s1,a1
4d4a: 40f587b3 sub a5,a1,a5
4d4e: 242e lhu a1,10(s0)
4d50: 0295e963 bltu a1,s1,4d82 <pbuf_realloc+0x46>
4d54: 245c lbu a5,12(s0)
4d56: ef81 bnez a5,4d6e <pbuf_realloc+0x32>
4d58: 00958b63 beq a1,s1,4d6e <pbuf_realloc+0x32>
4d5c: 404c lw a1,4(s0)
4d5e: 8522 mv a0,s0
4d60: 8d81 sub a1,a1,s0
4d62: 95a6 add a1,a1,s1
4d64: 05c2 slli a1,a1,0x10
4d66: 81c1 srli a1,a1,0x10
4d68: a6bff0ef jal ra,47d2 <mem_realloc>
4d6c: 842a mv s0,a0
4d6e: 4008 lw a0,0(s0)
4d70: a426 sh s1,10(s0)
4d72: a406 sh s1,8(s0)
4d74: c119 beqz a0,4d7a <pbuf_realloc+0x3e>
4d76: e39ff0ef jal ra,4bae <pbuf_free>
4d7a: 00042023 sw zero,0(s0)
4d7e: c96fb06f j 214 <__riscv_restore_0>
4d82: 241a lhu a4,8(s0)
4d84: 8c8d sub s1,s1,a1
4d86: 04c2 slli s1,s1,0x10
4d88: 973e add a4,a4,a5
4d8a: a41a sh a4,8(s0)
4d8c: 80c1 srli s1,s1,0x10
4d8e: 4000 lw s0,0(s0)
4d90: bf7d j 4d4e <pbuf_realloc+0x12>
4d92: 8082 ret
00004d94 <pbuf_clen>:
pbuf_clen():
4d94: 4781 li a5,0
4d96: e119 bnez a0,4d9c <pbuf_clen+0x8>
4d98: 853e mv a0,a5
4d9a: 8082 ret
4d9c: 0785 addi a5,a5,1
4d9e: 0ff7f793 andi a5,a5,255
4da2: 4108 lw a0,0(a0)
4da4: bfcd j 4d96 <pbuf_clen+0x2>
00004da6 <pbuf_ref>:
pbuf_ref():
4da6: c501 beqz a0,4dae <pbuf_ref+0x8>
4da8: 257e lhu a5,14(a0)
4daa: 0785 addi a5,a5,1
4dac: a57e sh a5,14(a0)
4dae: 8082 ret
00004db0 <pbuf_cat>:
pbuf_cat():
4db0: cd09 beqz a0,4dca <pbuf_cat+0x1a>
4db2: e199 bnez a1,4db8 <pbuf_cat+0x8>
4db4: 8082 ret
4db6: 853a mv a0,a4
4db8: 259e lhu a5,8(a1)
4dba: 2516 lhu a3,8(a0)
4dbc: 4118 lw a4,0(a0)
4dbe: 97b6 add a5,a5,a3
4dc0: 07c2 slli a5,a5,0x10
4dc2: 83c1 srli a5,a5,0x10
4dc4: a51e sh a5,8(a0)
4dc6: fb65 bnez a4,4db6 <pbuf_cat+0x6>
4dc8: c10c sw a1,0(a0)
4dca: 8082 ret
00004dcc <pbuf_chain>:
pbuf_chain():
4dcc: c24fb2ef jal t0,1f0 <__riscv_save_0>
4dd0: 842e mv s0,a1
4dd2: fdfff0ef jal ra,4db0 <pbuf_cat>
4dd6: 8522 mv a0,s0
4dd8: fcfff0ef jal ra,4da6 <pbuf_ref>
4ddc: c38fb06f j 214 <__riscv_restore_0>
00004de0 <pbuf_copy>:
pbuf_copy():
4de0: cd3d beqz a0,4e5e <pbuf_copy+0x7e>
4de2: bf4fb2ef jal t0,1d6 <__riscv_save_4>
4de6: 842a mv s0,a0
4de8: 84ae mv s1,a1
4dea: 5559 li a0,-10
4dec: c5ad beqz a1,4e56 <pbuf_copy+0x76>
4dee: 241a lhu a4,8(s0)
4df0: 259e lhu a5,8(a1)
4df2: 06f76263 bltu a4,a5,4e56 <pbuf_copy+0x76>
4df6: 4901 li s2,0
4df8: 4a01 li s4,0
4dfa: 00a45983 lhu s3,10(s0)
4dfe: 24be lhu a5,10(s1)
4e00: 414989b3 sub s3,s3,s4
4e04: 412787b3 sub a5,a5,s2
4e08: 04f9c963 blt s3,a5,4e5a <pbuf_copy+0x7a>
4e0c: 01079993 slli s3,a5,0x10
4e10: 4048 lw a0,4(s0)
4e12: 40cc lw a1,4(s1)
4e14: 0109d993 srli s3,s3,0x10
4e18: 9552 add a0,a0,s4
4e1a: 95ca add a1,a1,s2
4e1c: 864e mv a2,s3
4e1e: 599030ef jal ra,8bb6 <memcpy>
4e22: 9a4e add s4,s4,s3
4e24: 243e lhu a5,10(s0)
4e26: 0a42 slli s4,s4,0x10
4e28: 994e add s2,s2,s3
4e2a: 0942 slli s2,s2,0x10
4e2c: 010a5a13 srli s4,s4,0x10
4e30: 01095913 srli s2,s2,0x10
4e34: 01479463 bne a5,s4,4e3c <pbuf_copy+0x5c>
4e38: 4000 lw s0,0(s0)
4e3a: 4a01 li s4,0
4e3c: 24be lhu a5,10(s1)
4e3e: 00f96563 bltu s2,a5,4e48 <pbuf_copy+0x68>
4e42: 4084 lw s1,0(s1)
4e44: cc99 beqz s1,4e62 <pbuf_copy+0x82>
4e46: 4901 li s2,0
4e48: 24ba lhu a4,10(s1)
4e4a: 249e lhu a5,8(s1)
4e4c: 02f71663 bne a4,a5,4e78 <pbuf_copy+0x98>
4e50: 409c lw a5,0(s1)
4e52: c39d beqz a5,4e78 <pbuf_copy+0x98>
4e54: 555d li a0,-9
4e56: bb4fb06f j 20a <__riscv_restore_4>
4e5a: 09c2 slli s3,s3,0x10
4e5c: bf55 j 4e10 <pbuf_copy+0x30>
4e5e: 5559 li a0,-10
4e60: 8082 ret
4e62: c809 beqz s0,4e74 <pbuf_copy+0x94>
4e64: 4901 li s2,0
4e66: 243a lhu a4,10(s0)
4e68: 241e lhu a5,8(s0)
4e6a: 00f71463 bne a4,a5,4e72 <pbuf_copy+0x92>
4e6e: 401c lw a5,0(s0)
4e70: f3f5 bnez a5,4e54 <pbuf_copy+0x74>
4e72: f4c1 bnez s1,4dfa <pbuf_copy+0x1a>
4e74: 4501 li a0,0
4e76: b7c5 j 4e56 <pbuf_copy+0x76>
4e78: f47d bnez s0,4e66 <pbuf_copy+0x86>
4e7a: b741 j 4dfa <pbuf_copy+0x1a>
00004e7c <raw_input>:
raw_input():
4e7c: b5afb2ef jal t0,1d6 <__riscv_save_4>
4e80: 00452903 lw s2,4(a0)
4e84: 89aa mv s3,a0
4e86: 00994783 lbu a5,9(s2)
4e8a: 00894503 lbu a0,8(s2)
4e8e: 4a01 li s4,0
4e90: 07a2 slli a5,a5,0x8
4e92: 8d5d or a0,a0,a5
4e94: 939fe0ef jal ra,37cc <ntohs>
4e98: 0ff57a93 andi s5,a0,255
4e9c: 9041a403 lw s0,-1788(gp) # 20000124 <raw_pcbs>
4ea0: 0931 addi s2,s2,12
4ea2: 90418493 addi s1,gp,-1788 # 20000124 <raw_pcbs>
4ea6: e401 bnez s0,4eae <raw_input+0x32>
4ea8: 4501 li a0,0
4eaa: b60fb06f j 20a <__riscv_restore_4>
4eae: 281c lbu a5,16(s0)
4eb0: 4501 li a0,0
4eb2: 03579463 bne a5,s5,4eda <raw_input+0x5e>
4eb6: 485c lw a5,20(s0)
4eb8: c38d beqz a5,4eda <raw_input+0x5e>
4eba: 4c08 lw a0,24(s0)
4ebc: 86ca mv a3,s2
4ebe: 864e mv a2,s3
4ec0: 85a2 mv a1,s0
4ec2: 9782 jalr a5
4ec4: c919 beqz a0,4eda <raw_input+0x5e>
4ec6: 000a0863 beqz s4,4ed6 <raw_input+0x5a>
4eca: 445c lw a5,12(s0)
4ecc: 00fa2623 sw a5,12(s4)
4ed0: 409c lw a5,0(s1)
4ed2: c080 sw s0,0(s1)
4ed4: c45c sw a5,12(s0)
4ed6: 4505 li a0,1
4ed8: 4981 li s3,0
4eda: 445c lw a5,12(s0)
4edc: 8a22 mv s4,s0
4ede: f571 bnez a0,4eaa <raw_input+0x2e>
4ee0: 843e mv s0,a5
4ee2: b7d1 j 4ea6 <raw_input+0x2a>
00004ee4 <raw_bind>:
raw_bind():
4ee4: 4781 li a5,0
4ee6: c999 beqz a1,4efc <raw_bind+0x18>
4ee8: 3198 lbu a4,1(a1)
4eea: 219c lbu a5,0(a1)
4eec: 0722 slli a4,a4,0x8
4eee: 8f5d or a4,a4,a5
4ef0: 21bc lbu a5,2(a1)
4ef2: 07c2 slli a5,a5,0x10
4ef4: 8f5d or a4,a4,a5
4ef6: 31bc lbu a5,3(a1)
4ef8: 07e2 slli a5,a5,0x18
4efa: 8fd9 or a5,a5,a4
4efc: c11c sw a5,0(a0)
4efe: 4501 li a0,0
4f00: 8082 ret
00004f02 <raw_connect>:
raw_connect():
4f02: 4781 li a5,0
4f04: c999 beqz a1,4f1a <raw_connect+0x18>
4f06: 3198 lbu a4,1(a1)
4f08: 219c lbu a5,0(a1)
4f0a: 0722 slli a4,a4,0x8
4f0c: 8f5d or a4,a4,a5
4f0e: 21bc lbu a5,2(a1)
4f10: 07c2 slli a5,a5,0x10
4f12: 8f5d or a4,a4,a5
4f14: 31bc lbu a5,3(a1)
4f16: 07e2 slli a5,a5,0x18
4f18: 8fd9 or a5,a5,a4
4f1a: c15c sw a5,4(a0)
4f1c: 4501 li a0,0
4f1e: 8082 ret
00004f20 <raw_recv>:
raw_recv():
4f20: c94c sw a1,20(a0)
4f22: cd10 sw a2,24(a0)
4f24: 8082 ret
00004f26 <raw_sendto>:
raw_sendto():
4f26: ab0fb2ef jal t0,1d6 <__riscv_save_4>
4f2a: 84ae mv s1,a1
4f2c: 892a mv s2,a0
4f2e: 45d1 li a1,20
4f30: 8526 mv a0,s1
4f32: 89b2 mv s3,a2
4f34: c0dff0ef jal ra,4b40 <pbuf_header>
4f38: c915 beqz a0,4f6c <raw_sendto+0x46>
4f3a: 4601 li a2,0
4f3c: 4581 li a1,0
4f3e: 4505 li a0,1
4f40: cbdff0ef jal ra,4bfc <pbuf_alloc>
4f44: 842a mv s0,a0
4f46: e509 bnez a0,4f50 <raw_sendto+0x2a>
4f48: 597d li s2,-1
4f4a: 854a mv a0,s2
4f4c: abefb06f j 20a <__riscv_restore_4>
4f50: 85a6 mv a1,s1
4f52: e7bff0ef jal ra,4dcc <pbuf_chain>
4f56: 854e mv a0,s3
4f58: 8b3fe0ef jal ra,380a <ip_route>
4f5c: ed19 bnez a0,4f7a <raw_sendto+0x54>
4f5e: 5971 li s2,-4
4f60: fe9405e3 beq s0,s1,4f4a <raw_sendto+0x24>
4f64: 8522 mv a0,s0
4f66: c49ff0ef jal ra,4bae <pbuf_free>
4f6a: b7c5 j 4f4a <raw_sendto+0x24>
4f6c: 55b1 li a1,-20
4f6e: 8526 mv a0,s1
4f70: bd1ff0ef jal ra,4b40 <pbuf_header>
4f74: f971 bnez a0,4f48 <raw_sendto+0x22>
4f76: 8426 mv s0,s1
4f78: bff9 j 4f56 <raw_sendto+0x30>
4f7a: 85ca mv a1,s2
4f7c: 00090563 beqz s2,4f86 <raw_sendto+0x60>
4f80: 00092783 lw a5,0(s2)
4f84: e399 bnez a5,4f8a <raw_sendto+0x64>
4f86: 00450593 addi a1,a0,4
4f8a: 01094783 lbu a5,16(s2)
4f8e: 00a94703 lbu a4,10(s2)
4f92: 00b94683 lbu a3,11(s2)
4f96: 882a mv a6,a0
4f98: 864e mv a2,s3
4f9a: 8522 mv a0,s0
4f9c: b55fe0ef jal ra,3af0 <ip_output_if>
4fa0: 892a mv s2,a0
4fa2: bf7d j 4f60 <raw_sendto+0x3a>
00004fa4 <raw_send>:
raw_send():
4fa4: a4cfb2ef jal t0,1f0 <__riscv_save_0>
4fa8: 00450613 addi a2,a0,4
4fac: f7bff0ef jal ra,4f26 <raw_sendto>
4fb0: a64fb06f j 214 <__riscv_restore_0>
00004fb4 <raw_new>:
raw_new():
4fb4: a3cfb2ef jal t0,1f0 <__riscv_save_0>
4fb8: 84aa mv s1,a0
4fba: 4501 li a0,0
4fbc: a01ff0ef jal ra,49bc <memp_malloc>
4fc0: 842a mv s0,a0
4fc2: cd11 beqz a0,4fde <raw_new+0x2a>
4fc4: 4671 li a2,28
4fc6: 4581 li a1,0
4fc8: a58fb0ef jal ra,220 <memset>
4fcc: f8000793 li a5,-128
4fd0: b43c sb a5,11(s0)
4fd2: 90418793 addi a5,gp,-1788 # 20000124 <raw_pcbs>
4fd6: 4398 lw a4,0(a5)
4fd8: a804 sb s1,16(s0)
4fda: c380 sw s0,0(a5)
4fdc: c458 sw a4,12(s0)
4fde: 8522 mv a0,s0
4fe0: a34fb06f j 214 <__riscv_restore_0>
00004fe4 <tcp_new_port>:
tcp_new_port():
4fe4: 9081a683 lw a3,-1784(gp) # 20000128 <tcp_active_pcbs>
4fe8: 9201a603 lw a2,-1760(gp) # 20000140 <tcp_tw_pcbs>
4fec: 9101a583 lw a1,-1776(gp) # 20000130 <tcp_listen_pcbs>
4ff0: 8301d503 lhu a0,-2000(gp) # 20000050 <port.3029>
4ff4: 83018793 addi a5,gp,-2000 # 20000050 <port.3029>
4ff8: 00150713 addi a4,a0,1
4ffc: 01071513 slli a0,a4,0x10
5000: 01071813 slli a6,a4,0x10
5004: 8141 srli a0,a0,0x10
5006: 00085363 bgez a6,500c <tcp_new_port+0x28>
500a: 6505 lui a0,0x1
500c: 8736 mv a4,a3
500e: e719 bnez a4,501c <tcp_new_port+0x38>
5010: 8732 mv a4,a2
5012: eb19 bnez a4,5028 <tcp_new_port+0x44>
5014: 872e mv a4,a1
5016: ef19 bnez a4,5034 <tcp_new_port+0x50>
5018: a38a sh a0,0(a5)
501a: 8082 ret
501c: 01c75803 lhu a6,28(a4)
5020: fca80ce3 beq a6,a0,4ff8 <tcp_new_port+0x14>
5024: 4758 lw a4,12(a4)
5026: b7e5 j 500e <tcp_new_port+0x2a>
5028: 01c75803 lhu a6,28(a4)
502c: fca806e3 beq a6,a0,4ff8 <tcp_new_port+0x14>
5030: 4758 lw a4,12(a4)
5032: b7c5 j 5012 <tcp_new_port+0x2e>
5034: 01c75803 lhu a6,28(a4)
5038: fca800e3 beq a6,a0,4ff8 <tcp_new_port+0x14>
503c: 4758 lw a4,12(a4)
503e: bfe1 j 5016 <tcp_new_port+0x32>
00005040 <tcp_bind>:
tcp_bind():
5040: 491c lw a5,16(a0)
5042: 10079663 bnez a5,514e <tcp_bind+0x10e>
5046: 990fb2ef jal t0,1d6 <__riscv_save_4>
504a: 1141 addi sp,sp,-16
504c: 84aa mv s1,a0
504e: 8432 mv s0,a2
5050: e611 bnez a2,505c <tcp_bind+0x1c>
5052: c62e sw a1,12(sp)
5054: f91ff0ef jal ra,4fe4 <tcp_new_port>
5058: 45b2 lw a1,12(sp)
505a: 842a mv s0,a0
505c: 9101a703 lw a4,-1776(gp) # 20000130 <tcp_listen_pcbs>
5060: e731 bnez a4,50ac <tcp_bind+0x6c>
5062: 9081a703 lw a4,-1784(gp) # 20000128 <tcp_active_pcbs>
5066: eb25 bnez a4,50d6 <tcp_bind+0x96>
5068: 90c1a983 lw s3,-1780(gp) # 2000012c <tcp_bound_pcbs>
506c: 90c18913 addi s2,gp,-1780 # 2000012c <tcp_bound_pcbs>
5070: 874e mv a4,s3
5072: e759 bnez a4,5100 <tcp_bind+0xc0>
5074: 9201a783 lw a5,-1760(gp) # 20000140 <tcp_tw_pcbs>
5078: ebcd bnez a5,512a <tcp_bind+0xea>
507a: c185 beqz a1,509a <tcp_bind+0x5a>
507c: 3198 lbu a4,1(a1)
507e: 219c lbu a5,0(a1)
5080: 0722 slli a4,a4,0x8
5082: 8f5d or a4,a4,a5
5084: 21bc lbu a5,2(a1)
5086: 07c2 slli a5,a5,0x10
5088: 8f5d or a4,a4,a5
508a: 31bc lbu a5,3(a1)
508c: 07e2 slli a5,a5,0x18
508e: 8fd9 or a5,a5,a4
5090: c789 beqz a5,509a <tcp_bind+0x5a>
5092: 4611 li a2,4
5094: 8526 mv a0,s1
5096: 321030ef jal ra,8bb6 <memcpy>
509a: acc2 sh s0,28(s1)
509c: 0134a623 sw s3,12(s1)
50a0: 00992023 sw s1,0(s2)
50a4: 4501 li a0,0
50a6: 0141 addi sp,sp,16
50a8: 962fb06f j 20a <__riscv_restore_4>
50ac: 2f5e lhu a5,28(a4)
50ae: 02879263 bne a5,s0,50d2 <tcp_bind+0x92>
50b2: 4310 lw a2,0(a4)
50b4: ce59 beqz a2,5152 <tcp_bind+0x112>
50b6: cdd1 beqz a1,5152 <tcp_bind+0x112>
50b8: 3194 lbu a3,1(a1)
50ba: 219c lbu a5,0(a1)
50bc: 06a2 slli a3,a3,0x8
50be: 8edd or a3,a3,a5
50c0: 21bc lbu a5,2(a1)
50c2: 07c2 slli a5,a5,0x10
50c4: 8edd or a3,a3,a5
50c6: 31bc lbu a5,3(a1)
50c8: 07e2 slli a5,a5,0x18
50ca: 8fd5 or a5,a5,a3
50cc: c3d9 beqz a5,5152 <tcp_bind+0x112>
50ce: 08f60263 beq a2,a5,5152 <tcp_bind+0x112>
50d2: 4758 lw a4,12(a4)
50d4: b771 j 5060 <tcp_bind+0x20>
50d6: 2f5e lhu a5,28(a4)
50d8: 02879263 bne a5,s0,50fc <tcp_bind+0xbc>
50dc: 4310 lw a2,0(a4)
50de: ca35 beqz a2,5152 <tcp_bind+0x112>
50e0: c9ad beqz a1,5152 <tcp_bind+0x112>
50e2: 3194 lbu a3,1(a1)
50e4: 219c lbu a5,0(a1)
50e6: 06a2 slli a3,a3,0x8
50e8: 8edd or a3,a3,a5
50ea: 21bc lbu a5,2(a1)
50ec: 07c2 slli a5,a5,0x10
50ee: 8edd or a3,a3,a5
50f0: 31bc lbu a5,3(a1)
50f2: 07e2 slli a5,a5,0x18
50f4: 8fd5 or a5,a5,a3
50f6: cfb1 beqz a5,5152 <tcp_bind+0x112>
50f8: 04f60d63 beq a2,a5,5152 <tcp_bind+0x112>
50fc: 4758 lw a4,12(a4)
50fe: b7a5 j 5066 <tcp_bind+0x26>
5100: 2f5e lhu a5,28(a4)
5102: 02879263 bne a5,s0,5126 <tcp_bind+0xe6>
5106: 4310 lw a2,0(a4)
5108: c629 beqz a2,5152 <tcp_bind+0x112>
510a: c5a1 beqz a1,5152 <tcp_bind+0x112>
510c: 3194 lbu a3,1(a1)
510e: 219c lbu a5,0(a1)
5110: 06a2 slli a3,a3,0x8
5112: 8edd or a3,a3,a5
5114: 21bc lbu a5,2(a1)
5116: 07c2 slli a5,a5,0x10
5118: 8edd or a3,a3,a5
511a: 31bc lbu a5,3(a1)
511c: 07e2 slli a5,a5,0x18
511e: 8fd5 or a5,a5,a3
5120: cb8d beqz a5,5152 <tcp_bind+0x112>
5122: 02f60863 beq a2,a5,5152 <tcp_bind+0x112>
5126: 4758 lw a4,12(a4)
5128: b7a9 j 5072 <tcp_bind+0x32>
512a: 2fda lhu a4,28(a5)
512c: 00871f63 bne a4,s0,514a <tcp_bind+0x10a>
5130: 3194 lbu a3,1(a1)
5132: 2198 lbu a4,0(a1)
5134: 06a2 slli a3,a3,0x8
5136: 8ed9 or a3,a3,a4
5138: 21b8 lbu a4,2(a1)
513a: 0742 slli a4,a4,0x10
513c: 8ed9 or a3,a3,a4
513e: 31b8 lbu a4,3(a1)
5140: 0762 slli a4,a4,0x18
5142: 8f55 or a4,a4,a3
5144: 4394 lw a3,0(a5)
5146: 00e68663 beq a3,a4,5152 <tcp_bind+0x112>
514a: 47dc lw a5,12(a5)
514c: b735 j 5078 <tcp_bind+0x38>
514e: 554d li a0,-13
5150: 8082 ret
5152: 5555 li a0,-11
5154: bf89 j 50a6 <tcp_bind+0x66>
00005156 <tcp_update_rcv_ann_wnd>:
tcp_update_rcv_ann_wnd():
5156: 87aa mv a5,a0
5158: 02c55803 lhu a6,44(a0) # 102c <TIM_TimeBaseInit+0xb4>
515c: 5914 lw a3,48(a0)
515e: 3bd2 lhu a2,52(a5)
5160: 550c lw a1,40(a0)
5162: 0407d883 lhu a7,64(a5)
5166: 40d80533 sub a0,a6,a3
516a: 8205 srli a2,a2,0x1
516c: 952e add a0,a0,a1
516e: 8732 mv a4,a2
5170: 00c8f363 bgeu a7,a2,5176 <tcp_update_rcv_ann_wnd+0x20>
5174: 8746 mv a4,a7
5176: 0742 slli a4,a4,0x10
5178: 8341 srli a4,a4,0x10
517a: 40e50733 sub a4,a0,a4
517e: 00074563 bltz a4,5188 <tcp_update_rcv_ann_wnd+0x32>
5182: 03079723 sh a6,46(a5)
5186: 8082 ret
5188: 40d58733 sub a4,a1,a3
518c: 00e05663 blez a4,5198 <tcp_update_rcv_ann_wnd+0x42>
5190: 02079723 sh zero,46(a5)
5194: 4501 li a0,0
5196: 8082 ret
5198: 8e8d sub a3,a3,a1
519a: b7f6 sh a3,46(a5)
519c: bfe5 j 5194 <tcp_update_rcv_ann_wnd+0x3e>
0000519e <tcp_recved>:
tcp_recved():
519e: 852fb2ef jal t0,1f0 <__riscv_save_0>
51a2: 355e lhu a5,44(a0)
51a4: 842a mv s0,a0
51a6: 95be add a1,a1,a5
51a8: 05c2 slli a1,a1,0x10
51aa: 395e lhu a5,52(a0)
51ac: 81c1 srli a1,a1,0x10
51ae: b54e sh a1,44(a0)
51b0: 00b7f363 bgeu a5,a1,51b6 <tcp_recved+0x18>
51b4: b55e sh a5,44(a0)
51b6: 8522 mv a0,s0
51b8: f9fff0ef jal ra,5156 <tcp_update_rcv_ann_wnd>
51bc: 385e lhu a5,52(s0)
51be: 8389 srli a5,a5,0x2
51c0: 00f54b63 blt a0,a5,51d6 <tcp_recved+0x38>
51c4: 02644783 lbu a5,38(s0)
51c8: 8522 mv a0,s0
51ca: 0027e793 ori a5,a5,2
51ce: 02f40323 sb a5,38(s0)
51d2: 3e2020ef jal ra,75b4 <tcp_output>
51d6: 83efb06f j 214 <__riscv_restore_0>
000051da <tcp_seg_free>:
tcp_seg_free():
51da: 816fb2ef jal t0,1f0 <__riscv_save_0>
51de: 1141 addi sp,sp,-16
51e0: 4401 li s0,0
51e2: cd09 beqz a0,51fc <tcp_seg_free+0x22>
51e4: 85aa mv a1,a0
51e6: 4148 lw a0,4(a0)
51e8: 4401 li s0,0
51ea: c511 beqz a0,51f6 <tcp_seg_free+0x1c>
51ec: c62e sw a1,12(sp)
51ee: 9c1ff0ef jal ra,4bae <pbuf_free>
51f2: 45b2 lw a1,12(sp)
51f4: 842a mv s0,a0
51f6: 4511 li a0,4
51f8: fe4ff0ef jal ra,49dc <memp_free>
51fc: 8522 mv a0,s0
51fe: 0141 addi sp,sp,16
5200: 814fb06f j 214 <__riscv_restore_0>
00005204 <tcp_segs_free>:
tcp_segs_free():
5204: fedfa2ef jal t0,1f0 <__riscv_save_0>
5208: 4401 li s0,0
520a: e501 bnez a0,5212 <tcp_segs_free+0xe>
520c: 8522 mv a0,s0
520e: 806fb06f j 214 <__riscv_restore_0>
5212: 4104 lw s1,0(a0)
5214: fc7ff0ef jal ra,51da <tcp_seg_free>
5218: 942a add s0,s0,a0
521a: 0ff47413 andi s0,s0,255
521e: 8526 mv a0,s1
5220: b7ed j 520a <tcp_segs_free+0x6>
00005222 <tcp_seg_copy>:
tcp_seg_copy():
5222: fcffa2ef jal t0,1f0 <__riscv_save_0>
5226: 1141 addi sp,sp,-16
5228: c62a sw a0,12(sp)
522a: 4511 li a0,4
522c: f90ff0ef jal ra,49bc <memp_malloc>
5230: 842a mv s0,a0
5232: c901 beqz a0,5242 <tcp_seg_copy+0x20>
5234: 45b2 lw a1,12(sp)
5236: 4651 li a2,20
5238: 17f030ef jal ra,8bb6 <memcpy>
523c: 4048 lw a0,4(s0)
523e: b69ff0ef jal ra,4da6 <pbuf_ref>
5242: 8522 mv a0,s0
5244: 0141 addi sp,sp,16
5246: fcffa06f j 214 <__riscv_restore_0>
0000524a <tcp_arg>:
tcp_arg():
524a: cd0c sw a1,24(a0)
524c: 8082 ret
0000524e <tcp_recv>:
tcp_recv():
524e: 08b52823 sw a1,144(a0)
5252: 8082 ret
00005254 <tcp_sent>:
tcp_sent():
5254: 08b52623 sw a1,140(a0)
5258: 8082 ret
0000525a <tcp_err>:
tcp_err():
525a: 08b52e23 sw a1,156(a0)
525e: 8082 ret
00005260 <tcp_poll>:
tcp_poll():
5260: 08b52c23 sw a1,152(a0)
5264: 02c50ea3 sb a2,61(a0)
5268: 8082 ret
0000526a <tcp_pcb_purge>:
tcp_pcb_purge():
526a: 491c lw a5,16(a0)
526c: 4705 li a4,1
526e: 04f77463 bgeu a4,a5,52b6 <tcp_pcb_purge+0x4c>
5272: 4729 li a4,10
5274: 04e78163 beq a5,a4,52b6 <tcp_pcb_purge+0x4c>
5278: f79fa2ef jal t0,1f0 <__riscv_save_0>
527c: 842a mv s0,a0
527e: 08852503 lw a0,136(a0)
5282: c509 beqz a0,528c <tcp_pcb_purge+0x22>
5284: 92bff0ef jal ra,4bae <pbuf_free>
5288: 08042423 sw zero,136(s0)
528c: 08442503 lw a0,132(s0)
5290: 57fd li a5,-1
5292: bc7e sh a5,62(s0)
5294: f71ff0ef jal ra,5204 <tcp_segs_free>
5298: 5c68 lw a0,124(s0)
529a: 08042223 sw zero,132(s0)
529e: f67ff0ef jal ra,5204 <tcp_segs_free>
52a2: 08042503 lw a0,128(s0)
52a6: f5fff0ef jal ra,5204 <tcp_segs_free>
52aa: 06042e23 sw zero,124(s0)
52ae: 08042023 sw zero,128(s0)
52b2: f63fa06f j 214 <__riscv_restore_0>
52b6: 8082 ret
000052b8 <tcp_slowtmr>:
tcp_slowtmr():
52b8: f09fa2ef jal t0,1c0 <__riscv_save_12>
52bc: 200074b7 lui s1,0x20007
52c0: 7f848793 addi a5,s1,2040 # 200077f8 <NetInf>
52c4: 91418713 addi a4,gp,-1772 # 20000134 <tcp_ticks>
52c8: 0187cc03 lbu s8,24(a5)
52cc: 431c lw a5,0(a4)
52ce: 6aa5 lui s5,0x9
52d0: 0785 addi a5,a5,1
52d2: 9081ad03 lw s10,-1784(gp) # 20000128 <tcp_active_pcbs>
52d6: c31c sw a5,0(a4)
52d8: 06600913 li s2,102
52dc: 4a01 li s4,0
52de: 7f848493 addi s1,s1,2040
52e2: 91418413 addi s0,gp,-1772 # 20000134 <tcp_ticks>
52e6: 90818993 addi s3,gp,-1784 # 20000128 <tcp_active_pcbs>
52ea: 4c8d li s9,3
52ec: e5ca8a93 addi s5,s5,-420 # 8e5c <tcp_backoff>
52f0: 84c18b13 addi s6,gp,-1972 # 2000006c <tcp_persist_backoff>
52f4: 000d1a63 bnez s10,5308 <tcp_slowtmr+0x50>
52f8: 9201a403 lw s0,-1760(gp) # 20000140 <tcp_tw_pcbs>
52fc: 92018493 addi s1,gp,-1760 # 20000140 <tcp_tw_pcbs>
5300: 24041963 bnez s0,5552 <tcp_slowtmr+0x29a>
5304: ef9fa06f j 1fc <__riscv_restore_12>
5308: 197d addi s2,s2,-1
530a: 0ff97913 andi s2,s2,255
530e: fe090be3 beqz s2,5304 <tcp_slowtmr+0x4c>
5312: 052d4603 lbu a2,82(s10)
5316: 010d2683 lw a3,16(s10)
531a: 4d85 li s11,1
531c: 02cc0263 beq s8,a2,5340 <tcp_slowtmr+0x88>
5320: 0b0d4d83 lbu s11,176(s10)
5324: 100d8463 beqz s11,542c <tcp_slowtmr+0x174>
5328: 0acd2703 lw a4,172(s10)
532c: 01bb06b3 add a3,s6,s11
5330: fff6c683 lbu a3,-1(a3)
5334: 0705 addi a4,a4,1
5336: 0aed2623 sw a4,172(s10)
533a: 0cd77c63 bgeu a4,a3,5412 <tcp_slowtmr+0x15a>
533e: 4d81 li s11,0
5340: 010d2703 lw a4,16(s10)
5344: 4699 li a3,6
5346: 00d71d63 bne a4,a3,5360 <tcp_slowtmr+0xa8>
534a: 038d2603 lw a2,56(s10)
534e: 4014 lw a3,0(s0)
5350: 8e91 sub a3,a3,a2
5352: 4c90 lw a2,24(s1)
5354: 00d67663 bgeu a2,a3,5360 <tcp_slowtmr+0xa8>
5358: 001d8793 addi a5,s11,1
535c: 0ff7fd93 andi s11,a5,255
5360: 008d5683 lhu a3,8(s10)
5364: 4b81 li s7,0
5366: 8aa1 andi a3,a3,8
5368: ce95 beqz a3,53a4 <tcp_slowtmr+0xec>
536a: 4691 li a3,4
536c: 00d70563 beq a4,a3,5376 <tcp_slowtmr+0xbe>
5370: 469d li a3,7
5372: 02d71963 bne a4,a3,53a4 <tcp_slowtmr+0xec>
5376: 0a4d2883 lw a7,164(s10)
537a: 0a8d2683 lw a3,168(s10)
537e: 0a0d2503 lw a0,160(s10)
5382: 4ccc lw a1,28(s1)
5384: 02d886b3 mul a3,a7,a3
5388: 4010 lw a2,0(s0)
538a: 038d2703 lw a4,56(s10)
538e: 8e19 sub a2,a2,a4
5390: 96aa add a3,a3,a0
5392: 02b6d6b3 divu a3,a3,a1
5396: 10c6fc63 bgeu a3,a2,54ae <tcp_slowtmr+0x1f6>
539a: 001d8793 addi a5,s11,1
539e: 0ff7fd93 andi s11,a5,255
53a2: 4b85 li s7,1
53a4: 084d2503 lw a0,132(s10)
53a8: c105 beqz a0,53c8 <tcp_slowtmr+0x110>
53aa: 038d2703 lw a4,56(s10)
53ae: 4014 lw a3,0(s0)
53b0: 4619 li a2,6
53b2: 8e99 sub a3,a3,a4
53b4: 050d1703 lh a4,80(s10)
53b8: 02c70733 mul a4,a4,a2
53bc: 00e6e663 bltu a3,a4,53c8 <tcp_slowtmr+0x110>
53c0: e45ff0ef jal ra,5204 <tcp_segs_free>
53c4: 080d2223 sw zero,132(s10)
53c8: 010d2703 lw a4,16(s10)
53cc: 11971463 bne a4,s9,54d4 <tcp_slowtmr+0x21c>
53d0: 038d2683 lw a3,56(s10)
53d4: 4018 lw a4,0(s0)
53d6: 8f15 sub a4,a4,a3
53d8: 4c94 lw a3,24(s1)
53da: 10e6e863 bltu a3,a4,54ea <tcp_slowtmr+0x232>
53de: 100d9663 bnez s11,54ea <tcp_slowtmr+0x232>
53e2: 03cd4783 lbu a5,60(s10)
53e6: 03dd4703 lbu a4,61(s10)
53ea: 0785 addi a5,a5,1
53ec: 0ff7f793 andi a5,a5,255
53f0: 02fd0e23 sb a5,60(s10)
53f4: 00e7eb63 bltu a5,a4,540a <tcp_slowtmr+0x152>
53f8: 098d2783 lw a5,152(s10)
53fc: 020d0e23 sb zero,60(s10)
5400: 14079263 bnez a5,5544 <tcp_slowtmr+0x28c>
5404: 856a mv a0,s10
5406: 1ae020ef jal ra,75b4 <tcp_output>
540a: 8a6a mv s4,s10
540c: 00cd2d03 lw s10,12(s10)
5410: b5d5 j 52f4 <tcp_slowtmr+0x3c>
5412: 0a0d2623 sw zero,172(s10)
5416: 4719 li a4,6
5418: 01b76663 bltu a4,s11,5424 <tcp_slowtmr+0x16c>
541c: 001d8793 addi a5,s11,1
5420: 0afd0823 sb a5,176(s10)
5424: 856a mv a0,s10
5426: 770020ef jal ra,7b96 <tcp_zero_window_probe>
542a: bf11 j 533e <tcp_slowtmr+0x86>
542c: 03ed1703 lh a4,62(s10)
5430: 00074563 bltz a4,543a <tcp_slowtmr+0x182>
5434: 0705 addi a4,a4,1
5436: 02ed1f23 sh a4,62(s10)
543a: 080d2703 lw a4,128(s10)
543e: f00700e3 beqz a4,533e <tcp_slowtmr+0x86>
5442: 03ed1583 lh a1,62(s10)
5446: 050d1703 lh a4,80(s10)
544a: eeb75ae3 bge a4,a1,533e <tcp_slowtmr+0x86>
544e: 02dcf463 bgeu s9,a3,5476 <tcp_slowtmr+0x1be>
5452: 04cd1703 lh a4,76(s10)
5456: 04ed1683 lh a3,78(s10)
545a: 47b1 li a5,12
545c: 870d srai a4,a4,0x3
545e: 9736 add a4,a4,a3
5460: 0ff67693 andi a3,a2,255
5464: 00c7f363 bgeu a5,a2,546a <tcp_slowtmr+0x1b2>
5468: 46b1 li a3,12
546a: 96d6 add a3,a3,s5
546c: 2294 lbu a3,0(a3)
546e: 00d71733 sll a4,a4,a3
5472: 04ed1823 sh a4,80(s10)
5476: 05ad5683 lhu a3,90(s10)
547a: 064d5703 lhu a4,100(s10)
547e: 020d1f23 sh zero,62(s10)
5482: 00e6f363 bgeu a3,a4,5488 <tcp_slowtmr+0x1d0>
5486: 8736 mv a4,a3
5488: 0742 slli a4,a4,0x10
548a: 8341 srli a4,a4,0x10
548c: 040d5683 lhu a3,64(s10)
5490: 8305 srli a4,a4,0x1
5492: 04ed1e23 sh a4,92(s10)
5496: 00d77663 bgeu a4,a3,54a2 <tcp_slowtmr+0x1ea>
549a: 00169713 slli a4,a3,0x1
549e: 04ed1e23 sh a4,92(s10)
54a2: 04dd1d23 sh a3,90(s10)
54a6: 856a mv a0,s10
54a8: 57c020ef jal ra,7a24 <tcp_rexmit_rto>
54ac: bd51 j 5340 <tcp_slowtmr+0x88>
54ae: 0b1d4703 lbu a4,177(s10)
54b2: 4b81 li s7,0
54b4: 03170733 mul a4,a4,a7
54b8: 972a add a4,a4,a0
54ba: 02b75733 divu a4,a4,a1
54be: eec773e3 bgeu a4,a2,53a4 <tcp_slowtmr+0xec>
54c2: 856a mv a0,s10
54c4: 674020ef jal ra,7b38 <tcp_keepalive>
54c8: 0b1d4703 lbu a4,177(s10)
54cc: 0705 addi a4,a4,1
54ce: 0aed08a3 sb a4,177(s10)
54d2: bdc9 j 53a4 <tcp_slowtmr+0xec>
54d4: 46a5 li a3,9
54d6: f0d714e3 bne a4,a3,53de <tcp_slowtmr+0x126>
54da: 038d2703 lw a4,56(s10)
54de: 4014 lw a3,0(s0)
54e0: 8e99 sub a3,a3,a4
54e2: 4c98 lw a4,24(s1)
54e4: 0706 slli a4,a4,0x1
54e6: eed77ce3 bgeu a4,a3,53de <tcp_slowtmr+0x126>
54ea: 856a mv a0,s10
54ec: efefd0ef jal ra,2bea <LwipRemoveTcpPcb>
54f0: 856a mv a0,s10
54f2: d79ff0ef jal ra,526a <tcp_pcb_purge>
54f6: 00cd2783 lw a5,12(s10)
54fa: 040a0263 beqz s4,553e <tcp_slowtmr+0x286>
54fe: 00fa2623 sw a5,12(s4)
5502: 09cd2783 lw a5,156(s10)
5506: c789 beqz a5,5510 <tcp_slowtmr+0x258>
5508: 018d2503 lw a0,24(s10)
550c: 55ed li a1,-5
550e: 9782 jalr a5
5510: 000b8f63 beqz s7,552e <tcp_slowtmr+0x276>
5514: 024d5783 lhu a5,36(s10)
5518: 01cd5703 lhu a4,28(s10)
551c: 028d2583 lw a1,40(s10)
5520: 060d2503 lw a0,96(s10)
5524: 004d0693 addi a3,s10,4
5528: 866a mv a2,s10
552a: 3f2020ef jal ra,791c <tcp_rst>
552e: 00cd2b83 lw s7,12(s10)
5532: 85ea mv a1,s10
5534: 4509 li a0,2
5536: ca6ff0ef jal ra,49dc <memp_free>
553a: 8d5e mv s10,s7
553c: bb65 j 52f4 <tcp_slowtmr+0x3c>
553e: 00f9a023 sw a5,0(s3)
5542: b7c1 j 5502 <tcp_slowtmr+0x24a>
5544: 018d2503 lw a0,24(s10)
5548: 85ea mv a1,s10
554a: 9782 jalr a5
554c: ea050ce3 beqz a0,5404 <tcp_slowtmr+0x14c>
5550: bd6d j 540a <tcp_slowtmr+0x152>
5552: 8522 mv a0,s0
5554: e96fd0ef jal ra,2bea <LwipRemoveTcpPcb>
5558: 8522 mv a0,s0
555a: d11ff0ef jal ra,526a <tcp_pcb_purge>
555e: 00c42903 lw s2,12(s0)
5562: 85a2 mv a1,s0
5564: 4509 li a0,2
5566: 0124a023 sw s2,0(s1)
556a: 844a mv s0,s2
556c: c70ff0ef jal ra,49dc <memp_free>
5570: bb41 j 5300 <tcp_slowtmr+0x48>
00005572 <tcp_pcb_remove>:
tcp_pcb_remove():
5572: c7ffa2ef jal t0,1f0 <__riscv_save_0>
5576: 411c lw a5,0(a0)
5578: 842e mv s0,a1
557a: 04b79063 bne a5,a1,55ba <tcp_pcb_remove+0x48>
557e: 45dc lw a5,12(a1)
5580: c11c sw a5,0(a0)
5582: 00042623 sw zero,12(s0)
5586: 8522 mv a0,s0
5588: ce3ff0ef jal ra,526a <tcp_pcb_purge>
558c: 481c lw a5,16(s0)
558e: 4729 li a4,10
5590: 02e78163 beq a5,a4,55b2 <tcp_pcb_remove+0x40>
5594: 4705 li a4,1
5596: 00e78e63 beq a5,a4,55b2 <tcp_pcb_remove+0x40>
559a: 02644783 lbu a5,38(s0)
559e: 0017f713 andi a4,a5,1
55a2: cb01 beqz a4,55b2 <tcp_pcb_remove+0x40>
55a4: 0027e793 ori a5,a5,2
55a8: 02f40323 sb a5,38(s0)
55ac: 8522 mv a0,s0
55ae: 006020ef jal ra,75b4 <tcp_output>
55b2: 00042823 sw zero,16(s0)
55b6: c5ffa06f j 214 <__riscv_restore_0>
55ba: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
55be: 4681 li a3,0
55c0: 91c18713 addi a4,gp,-1764 # 2000013c <tcp_tmp_pcb>
55c4: e789 bnez a5,55ce <tcp_pcb_remove+0x5c>
55c6: ded5 beqz a3,5582 <tcp_pcb_remove+0x10>
55c8: 00072023 sw zero,0(a4)
55cc: bf5d j 5582 <tcp_pcb_remove+0x10>
55ce: 47d0 lw a2,12(a5)
55d0: 00861763 bne a2,s0,55de <tcp_pcb_remove+0x6c>
55d4: c291 beqz a3,55d8 <tcp_pcb_remove+0x66>
55d6: c31c sw a5,0(a4)
55d8: 4458 lw a4,12(s0)
55da: c7d8 sw a4,12(a5)
55dc: b75d j 5582 <tcp_pcb_remove+0x10>
55de: 4685 li a3,1
55e0: 87b2 mv a5,a2
55e2: b7cd j 55c4 <tcp_pcb_remove+0x52>
000055e4 <tcp_close>:
tcp_close():
55e4: 491c lw a5,16(a0)
55e6: 471d li a4,7
55e8: 0af76563 bltu a4,a5,5692 <tcp_close+0xae>
55ec: c05fa2ef jal t0,1f0 <__riscv_save_0>
55f0: 6725 lui a4,0x9
55f2: 078a slli a5,a5,0x2
55f4: e3c70713 addi a4,a4,-452 # 8e3c <ErrTable+0x10>
55f8: 97ba add a5,a5,a4
55fa: 439c lw a5,0(a5)
55fc: 842a mv s0,a0
55fe: 8782 jr a5
5600: deafd0ef jal ra,2bea <LwipRemoveTcpPcb>
5604: 90c18713 addi a4,gp,-1780 # 2000012c <tcp_bound_pcbs>
5608: 431c lw a5,0(a4)
560a: 00879963 bne a5,s0,561c <tcp_close+0x38>
560e: 445c lw a5,12(s0)
5610: c31c sw a5,0(a4)
5612: 00042623 sw zero,12(s0)
5616: 85a2 mv a1,s0
5618: 4509 li a0,2
561a: a83d j 5658 <tcp_close+0x74>
561c: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
5620: 4681 li a3,0
5622: 91c18713 addi a4,gp,-1764 # 2000013c <tcp_tmp_pcb>
5626: e789 bnez a5,5630 <tcp_close+0x4c>
5628: d6ed beqz a3,5612 <tcp_close+0x2e>
562a: 00072023 sw zero,0(a4)
562e: b7d5 j 5612 <tcp_close+0x2e>
5630: 47d0 lw a2,12(a5)
5632: 00861763 bne a2,s0,5640 <tcp_close+0x5c>
5636: c291 beqz a3,563a <tcp_close+0x56>
5638: c31c sw a5,0(a4)
563a: 4458 lw a4,12(s0)
563c: c7d8 sw a4,12(a5)
563e: bfd1 j 5612 <tcp_close+0x2e>
5640: 4685 li a3,1
5642: 87b2 mv a5,a2
5644: b7cd j 5626 <tcp_close+0x42>
5646: da4fd0ef jal ra,2bea <LwipRemoveTcpPcb>
564a: 85a2 mv a1,s0
564c: 91018513 addi a0,gp,-1776 # 20000130 <tcp_listen_pcbs>
5650: f23ff0ef jal ra,5572 <tcp_pcb_remove>
5654: 85a2 mv a1,s0
5656: 450d li a0,3
5658: b84ff0ef jal ra,49dc <memp_free>
565c: 4501 li a0,0
565e: a831 j 567a <tcp_close+0x96>
5660: d8afd0ef jal ra,2bea <LwipRemoveTcpPcb>
5664: 85a2 mv a1,s0
5666: 90818513 addi a0,gp,-1784 # 20000128 <tcp_active_pcbs>
566a: f09ff0ef jal ra,5572 <tcp_pcb_remove>
566e: b765 j 5616 <tcp_close+0x32>
5670: 4585 li a1,1
5672: 68d010ef jal ra,74fe <tcp_send_ctrl>
5676: 4795 li a5,5
5678: c901 beqz a0,5688 <tcp_close+0xa4>
567a: b9bfa06f j 214 <__riscv_restore_0>
567e: 4585 li a1,1
5680: 67f010ef jal ra,74fe <tcp_send_ctrl>
5684: f97d bnez a0,567a <tcp_close+0x96>
5686: 47a5 li a5,9
5688: c81c sw a5,16(s0)
568a: 8522 mv a0,s0
568c: 729010ef jal ra,75b4 <tcp_output>
5690: b7f1 j 565c <tcp_close+0x78>
5692: 4501 li a0,0
5694: 8082 ret
00005696 <tcp_recv_null>:
tcp_recv_null():
5696: b5bfa2ef jal t0,1f0 <__riscv_save_0>
569a: 1141 addi sp,sp,-16
569c: 852e mv a0,a1
569e: ce11 beqz a2,56ba <tcp_recv_null+0x24>
56a0: 260e lhu a1,8(a2)
56a2: c632 sw a2,12(sp)
56a4: afbff0ef jal ra,519e <tcp_recved>
56a8: 4632 lw a2,12(sp)
56aa: 8532 mv a0,a2
56ac: d02ff0ef jal ra,4bae <pbuf_free>
56b0: 4781 li a5,0
56b2: 853e mv a0,a5
56b4: 0141 addi sp,sp,16
56b6: b5ffa06f j 214 <__riscv_restore_0>
56ba: 4781 li a5,0
56bc: fafd bnez a3,56b2 <tcp_recv_null+0x1c>
56be: f27ff0ef jal ra,55e4 <tcp_close>
56c2: 87aa mv a5,a0
56c4: b7fd j 56b2 <tcp_recv_null+0x1c>
000056c6 <tcp_fasttmr>:
tcp_fasttmr():
56c6: b2bfa2ef jal t0,1f0 <__riscv_save_0>
56ca: 9081a403 lw s0,-1784(gp) # 20000128 <tcp_active_pcbs>
56ce: 06500493 li s1,101
56d2: e019 bnez s0,56d8 <tcp_fasttmr+0x12>
56d4: b41fa06f j 214 <__riscv_restore_0>
56d8: 08842603 lw a2,136(s0)
56dc: ca19 beqz a2,56f2 <tcp_fasttmr+0x2c>
56de: 09042783 lw a5,144(s0)
56e2: 4681 li a3,0
56e4: 85a2 mv a1,s0
56e6: cf8d beqz a5,5720 <tcp_fasttmr+0x5a>
56e8: 4c08 lw a0,24(s0)
56ea: 9782 jalr a5
56ec: e119 bnez a0,56f2 <tcp_fasttmr+0x2c>
56ee: 08042423 sw zero,136(s0)
56f2: 14fd addi s1,s1,-1
56f4: 0ff4f493 andi s1,s1,255
56f8: dcf1 beqz s1,56d4 <tcp_fasttmr+0xe>
56fa: 02644783 lbu a5,38(s0)
56fe: 0017f713 andi a4,a5,1
5702: cf09 beqz a4,571c <tcp_fasttmr+0x56>
5704: 0027e793 ori a5,a5,2
5708: 02f40323 sb a5,38(s0)
570c: 8522 mv a0,s0
570e: 6a7010ef jal ra,75b4 <tcp_output>
5712: 02644783 lbu a5,38(s0)
5716: 9bf1 andi a5,a5,-4
5718: 02f40323 sb a5,38(s0)
571c: 4440 lw s0,12(s0)
571e: bf55 j 56d2 <tcp_fasttmr+0xc>
5720: 4501 li a0,0
5722: f75ff0ef jal ra,5696 <tcp_recv_null>
5726: b7d9 j 56ec <tcp_fasttmr+0x26>
00005728 <tcp_tmr>:
tcp_tmr():
5728: ac9fa2ef jal t0,1f0 <__riscv_save_0>
572c: f9bff0ef jal ra,56c6 <tcp_fasttmr>
5730: 91818713 addi a4,gp,-1768 # 20000138 <tcp_timer>
5734: 231c lbu a5,0(a4)
5736: 0785 addi a5,a5,1
5738: 0ff7f793 andi a5,a5,255
573c: a31c sb a5,0(a4)
573e: 8b85 andi a5,a5,1
5740: c399 beqz a5,5746 <tcp_tmr+0x1e>
5742: b77ff0ef jal ra,52b8 <tcp_slowtmr>
5746: acffa06f j 214 <__riscv_restore_0>
0000574a <tcp_fastsendack>:
tcp_fastsendack():
574a: aa7fa2ef jal t0,1f0 <__riscv_save_0>
574e: 9081a403 lw s0,-1784(gp) # 20000128 <tcp_active_pcbs>
5752: 06500493 li s1,101
5756: 4901 li s2,0
5758: e401 bnez s0,5760 <tcp_fastsendack+0x16>
575a: 854a mv a0,s2
575c: ab9fa06f j 214 <__riscv_restore_0>
5760: 08842603 lw a2,136(s0)
5764: ca19 beqz a2,577a <tcp_fastsendack+0x30>
5766: 09042783 lw a5,144(s0)
576a: 4681 li a3,0
576c: 85a2 mv a1,s0
576e: c7b1 beqz a5,57ba <tcp_fastsendack+0x70>
5770: 4c08 lw a0,24(s0)
5772: 9782 jalr a5
5774: e119 bnez a0,577a <tcp_fastsendack+0x30>
5776: 08042423 sw zero,136(s0)
577a: 14fd addi s1,s1,-1
577c: 0ff4f493 andi s1,s1,255
5780: dce9 beqz s1,575a <tcp_fastsendack+0x10>
5782: 02744783 lbu a5,39(s0)
5786: cb85 beqz a5,57b6 <tcp_fastsendack+0x6c>
5788: 02644703 lbu a4,38(s0)
578c: 00177693 andi a3,a4,1
5790: c29d beqz a3,57b6 <tcp_fastsendack+0x6c>
5792: 17fd addi a5,a5,-1
5794: 0ff7f793 andi a5,a5,255
5798: 02f403a3 sb a5,39(s0)
579c: e39d bnez a5,57c2 <tcp_fastsendack+0x78>
579e: 00276713 ori a4,a4,2
57a2: 02e40323 sb a4,38(s0)
57a6: 8522 mv a0,s0
57a8: 60d010ef jal ra,75b4 <tcp_output>
57ac: 02644783 lbu a5,38(s0)
57b0: 9bf1 andi a5,a5,-4
57b2: 02f40323 sb a5,38(s0)
57b6: 4440 lw s0,12(s0)
57b8: b745 j 5758 <tcp_fastsendack+0xe>
57ba: 4501 li a0,0
57bc: edbff0ef jal ra,5696 <tcp_recv_null>
57c0: bf55 j 5774 <tcp_fastsendack+0x2a>
57c2: 0905 addi s2,s2,1
57c4: bfcd j 57b6 <tcp_fastsendack+0x6c>
000057c6 <tcp_abandon>:
tcp_abandon():
57c6: a03fa2ef jal t0,1c8 <__riscv_save_10>
57ca: 4918 lw a4,16(a0)
57cc: 47a9 li a5,10
57ce: 1141 addi sp,sp,-16
57d0: 842a mv s0,a0
57d2: 00f71e63 bne a4,a5,57ee <tcp_abandon+0x28>
57d6: 85aa mv a1,a0
57d8: 92018513 addi a0,gp,-1760 # 20000140 <tcp_tw_pcbs>
57dc: d97ff0ef jal ra,5572 <tcp_pcb_remove>
57e0: 85a2 mv a1,s0
57e2: 4509 li a0,2
57e4: 9f8ff0ef jal ra,49dc <memp_free>
57e8: 0141 addi sp,sp,16
57ea: a17fa06f j 200 <__riscv_restore_10>
57ee: 411c lw a5,0(a0)
57f0: 8b2e mv s6,a1
57f2: 06052903 lw s2,96(a0)
57f6: c63e sw a5,12(sp)
57f8: 415c lw a5,4(a0)
57fa: 02852983 lw s3,40(a0)
57fe: 01c55a03 lhu s4,28(a0)
5802: c43e sw a5,8(sp)
5804: 02455a83 lhu s5,36(a0)
5808: 09c52483 lw s1,156(a0)
580c: 01852b83 lw s7,24(a0)
5810: bdafd0ef jal ra,2bea <LwipRemoveTcpPcb>
5814: 90818513 addi a0,gp,-1784 # 20000128 <tcp_active_pcbs>
5818: 85a2 mv a1,s0
581a: d59ff0ef jal ra,5572 <tcp_pcb_remove>
581e: 08042503 lw a0,128(s0)
5822: c119 beqz a0,5828 <tcp_abandon+0x62>
5824: 9e1ff0ef jal ra,5204 <tcp_segs_free>
5828: 5c68 lw a0,124(s0)
582a: c119 beqz a0,5830 <tcp_abandon+0x6a>
582c: 9d9ff0ef jal ra,5204 <tcp_segs_free>
5830: 08442503 lw a0,132(s0)
5834: c119 beqz a0,583a <tcp_abandon+0x74>
5836: 9cfff0ef jal ra,5204 <tcp_segs_free>
583a: 85a2 mv a1,s0
583c: 4509 li a0,2
583e: 99eff0ef jal ra,49dc <memp_free>
5842: c481 beqz s1,584a <tcp_abandon+0x84>
5844: 55ed li a1,-5
5846: 855e mv a0,s7
5848: 9482 jalr s1
584a: f80b0fe3 beqz s6,57e8 <tcp_abandon+0x22>
584e: 87d6 mv a5,s5
5850: 8752 mv a4,s4
5852: 0034 addi a3,sp,8
5854: 0070 addi a2,sp,12
5856: 85ce mv a1,s3
5858: 854a mv a0,s2
585a: 0c2020ef jal ra,791c <tcp_rst>
585e: b769 j 57e8 <tcp_abandon+0x22>
00005860 <tcp_next_iss>:
tcp_next_iss():
5860: 82c18793 addi a5,gp,-2004 # 2000004c <iss.3197>
5864: 4388 lw a0,0(a5)
5866: 9141a703 lw a4,-1772(gp) # 20000134 <tcp_ticks>
586a: 953a add a0,a0,a4
586c: c388 sw a0,0(a5)
586e: 8082 ret
00005870 <tcp_alloc>:
tcp_alloc():
5870: 967fa2ef jal t0,1d6 <__riscv_save_4>
5874: 892a mv s2,a0
5876: 4509 li a0,2
5878: 944ff0ef jal ra,49bc <memp_malloc>
587c: 200084b7 lui s1,0x20008
5880: 83c48493 addi s1,s1,-1988 # 2000783c <WCHCfg>
5884: 842a mv s0,a0
5886: e125 bnez a0,58e6 <tcp_alloc+0x76>
5888: 489c lw a5,16(s1)
588a: 8389 srli a5,a5,0x2
588c: 8b85 andi a5,a5,1
588e: e789 bnez a5,5898 <tcp_alloc+0x28>
5890: 4401 li s0,0
5892: 8522 mv a0,s0
5894: 977fa06f j 20a <__riscv_restore_4>
5898: 9201a783 lw a5,-1760(gp) # 20000140 <tcp_tw_pcbs>
589c: 9141a603 lw a2,-1772(gp) # 20000134 <tcp_ticks>
58a0: 4501 li a0,0
58a2: 4681 li a3,0
58a4: 91418993 addi s3,gp,-1772 # 20000134 <tcp_ticks>
58a8: e7f1 bnez a5,5974 <tcp_alloc+0x104>
58aa: c501 beqz a0,58b2 <tcp_alloc+0x42>
58ac: 4585 li a1,1
58ae: f19ff0ef jal ra,57c6 <tcp_abandon>
58b2: 4509 li a0,2
58b4: 908ff0ef jal ra,49bc <memp_malloc>
58b8: 842a mv s0,a0
58ba: e515 bnez a0,58e6 <tcp_alloc+0x76>
58bc: 9081a783 lw a5,-1784(gp) # 20000128 <tcp_active_pcbs>
58c0: 0009a503 lw a0,0(s3)
58c4: 197d addi s2,s2,-1
58c6: 0ff97913 andi s2,s2,255
58ca: 07f00613 li a2,127
58ce: 4581 li a1,0
58d0: ebdd bnez a5,5986 <tcp_alloc+0x116>
58d2: c409 beqz s0,58dc <tcp_alloc+0x6c>
58d4: 4585 li a1,1
58d6: 8522 mv a0,s0
58d8: eefff0ef jal ra,57c6 <tcp_abandon>
58dc: 4509 li a0,2
58de: 8deff0ef jal ra,49bc <memp_malloc>
58e2: 842a mv s0,a0
58e4: d555 beqz a0,5890 <tcp_alloc+0x20>
58e6: 0b400613 li a2,180
58ea: 4581 li a1,0
58ec: 8522 mv a0,s0
58ee: 933fa0ef jal ra,220 <memset>
58f2: 04000793 li a5,64
58f6: a85c sb a5,20(s0)
58f8: 449c lw a5,8(s1)
58fa: 06041c23 sh zero,120(s0)
58fe: 21800713 li a4,536
5902: 06f41b23 sh a5,118(s0)
5906: 385e lhu a5,52(s0)
5908: b45e sh a5,44(s0)
590a: b47e sh a5,46(s0)
590c: 77e1 lui a5,0xffff8
590e: a43e sh a5,10(s0)
5910: 40dc lw a5,4(s1)
5912: 00f77463 bgeu a4,a5,591a <tcp_alloc+0xaa>
5916: 21800793 li a5,536
591a: 04f41023 sh a5,64(s0)
591e: 67c1 lui a5,0x10
5920: 577d li a4,-1
5922: c47c sw a5,76(s0)
5924: 4785 li a5,1
5926: 04f41823 sh a5,80(s0)
592a: bc7a sh a4,62(s0)
592c: 04f41d23 sh a5,90(s0)
5930: f31ff0ef jal ra,5860 <tcp_next_iss>
5934: 9141a783 lw a5,-1772(gp) # 20000134 <tcp_ticks>
5938: d468 sw a0,108(s0)
593a: d028 sw a0,96(s0)
593c: dc1c sw a5,56(s0)
593e: 000057b7 lui a5,0x5
5942: 69678793 addi a5,a5,1686 # 5696 <tcp_recv_null>
5946: 08f42823 sw a5,144(s0)
594a: 200077b7 lui a5,0x20007
594e: 7ec7a703 lw a4,2028(a5) # 200077ec <KeepLiveCfg>
5952: 7ec78793 addi a5,a5,2028
5956: c868 sw a0,84(s0)
5958: 0ae42023 sw a4,160(s0)
595c: 43d8 lw a4,4(a5)
595e: 479c lw a5,8(a5)
5960: d828 sw a0,112(s0)
5962: 02040e23 sb zero,60(s0)
5966: 0ae42223 sw a4,164(s0)
596a: 0af42423 sw a5,168(s0)
596e: 0a0408a3 sb zero,177(s0)
5972: b705 j 5892 <tcp_alloc+0x22>
5974: 5f98 lw a4,56(a5)
5976: 40e60733 sub a4,a2,a4
597a: 00d76463 bltu a4,a3,5982 <tcp_alloc+0x112>
597e: 86ba mv a3,a4
5980: 853e mv a0,a5
5982: 47dc lw a5,12(a5)
5984: b715 j 58a8 <tcp_alloc+0x38>
5986: 2bd4 lbu a3,20(a5)
5988: 00d96c63 bltu s2,a3,59a0 <tcp_alloc+0x130>
598c: 00d66a63 bltu a2,a3,59a0 <tcp_alloc+0x130>
5990: 5f98 lw a4,56(a5)
5992: 40e50733 sub a4,a0,a4
5996: 00b76563 bltu a4,a1,59a0 <tcp_alloc+0x130>
599a: 8636 mv a2,a3
599c: 85ba mv a1,a4
599e: 843e mv s0,a5
59a0: 47dc lw a5,12(a5)
59a2: b73d j 58d0 <tcp_alloc+0x60>
000059a4 <tcp_new>:
tcp_new():
59a4: 84dfa2ef jal t0,1f0 <__riscv_save_0>
59a8: 04000513 li a0,64
59ac: ec5ff0ef jal ra,5870 <tcp_alloc>
59b0: 865fa06f j 214 <__riscv_restore_0>
000059b4 <tcp_eff_send_mss>:
tcp_eff_send_mss():
59b4: 83dfa2ef jal t0,1f0 <__riscv_save_0>
59b8: 842a mv s0,a0
59ba: 852e mv a0,a1
59bc: e4ffd0ef jal ra,380a <ip_route>
59c0: cd11 beqz a0,59dc <tcp_eff_send_mss+0x28>
59c2: 391e lhu a5,48(a0)
59c4: cf81 beqz a5,59dc <tcp_eff_send_mss+0x28>
59c6: fd878793 addi a5,a5,-40
59ca: 873e mv a4,a5
59cc: 07c2 slli a5,a5,0x10
59ce: 83c1 srli a5,a5,0x10
59d0: 00f47363 bgeu s0,a5,59d6 <tcp_eff_send_mss+0x22>
59d4: 8722 mv a4,s0
59d6: 01071413 slli s0,a4,0x10
59da: 8041 srli s0,s0,0x10
59dc: 8522 mv a0,s0
59de: 837fa06f j 214 <__riscv_restore_0>
000059e2 <tcp_connect>:
tcp_connect():
59e2: ff4fa2ef jal t0,1d6 <__riscv_save_4>
59e6: 4918 lw a4,16(a0)
59e8: 54cd li s1,-13
59ea: eb45 bnez a4,5a9a <tcp_connect+0xb8>
59ec: 89ae mv s3,a1
59ee: 54dd li s1,-9
59f0: c5cd beqz a1,5a9a <tcp_connect+0xb8>
59f2: 842a mv s0,a0
59f4: 84b2 mv s1,a2
59f6: 0511 addi a0,a0,4
59f8: 4611 li a2,4
59fa: 8936 mv s2,a3
59fc: 1ba030ef jal ra,8bb6 <memcpy>
5a00: 2c5e lhu a5,28(s0)
5a02: b046 sh s1,36(s0)
5a04: e781 bnez a5,5a0c <tcp_connect+0x2a>
5a06: ddeff0ef jal ra,4fe4 <tcp_new_port>
5a0a: ac4a sh a0,28(s0)
5a0c: e55ff0ef jal ra,5860 <tcp_next_iss>
5a10: 385e lhu a5,52(s0)
5a12: d028 sw a0,96(s0)
5a14: 157d addi a0,a0,-1
5a16: b45e sh a5,44(s0)
5a18: b47e sh a5,46(s0)
5a1a: 06f41223 sh a5,100(s0)
5a1e: 200087b7 lui a5,0x20008
5a22: c868 sw a0,84(s0)
5a24: d828 sw a0,112(s0)
5a26: 8407a503 lw a0,-1984(a5) # 20007840 <WCHCfg+0x4>
5a2a: 02042423 sw zero,40(s0)
5a2e: 02042823 sw zero,48(s0)
5a32: 21800793 li a5,536
5a36: 00a7f463 bgeu a5,a0,5a3e <tcp_connect+0x5c>
5a3a: 21800513 li a0,536
5a3e: 0542 slli a0,a0,0x10
5a40: 8141 srli a0,a0,0x10
5a42: 04a41023 sh a0,64(s0)
5a46: 85ce mv a1,s3
5a48: f6dff0ef jal ra,59b4 <tcp_eff_send_mss>
5a4c: 4785 li a5,1
5a4e: 04f41d23 sh a5,90(s0)
5a52: 47a9 li a5,10
5a54: 04a41023 sh a0,64(s0)
5a58: 02f50533 mul a0,a0,a5
5a5c: 4789 li a5,2
5a5e: 90c18713 addi a4,gp,-1780 # 2000012c <tcp_bound_pcbs>
5a62: c81c sw a5,16(s0)
5a64: 431c lw a5,0(a4)
5a66: 09242a23 sw s2,148(s0)
5a6a: 04a41e23 sh a0,92(s0)
5a6e: 02879963 bne a5,s0,5aa0 <tcp_connect+0xbe>
5a72: 445c lw a5,12(s0)
5a74: c31c sw a5,0(a4)
5a76: 90818793 addi a5,gp,-1784 # 20000128 <tcp_active_pcbs>
5a7a: 4398 lw a4,0(a5)
5a7c: 4689 li a3,2
5a7e: c380 sw s0,0(a5)
5a80: c458 sw a4,12(s0)
5a82: 4785 li a5,1
5a84: 4701 li a4,0
5a86: 4601 li a2,0
5a88: 4581 li a1,0
5a8a: 8522 mv a0,s0
5a8c: 62a010ef jal ra,70b6 <tcp_enqueue>
5a90: 84aa mv s1,a0
5a92: e501 bnez a0,5a9a <tcp_connect+0xb8>
5a94: 8522 mv a0,s0
5a96: 31f010ef jal ra,75b4 <tcp_output>
5a9a: 8526 mv a0,s1
5a9c: f6efa06f j 20a <__riscv_restore_4>
5aa0: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
5aa4: 4681 li a3,0
5aa6: 91c18713 addi a4,gp,-1764 # 2000013c <tcp_tmp_pcb>
5aaa: e789 bnez a5,5ab4 <tcp_connect+0xd2>
5aac: d6e9 beqz a3,5a76 <tcp_connect+0x94>
5aae: 00072023 sw zero,0(a4)
5ab2: b7d1 j 5a76 <tcp_connect+0x94>
5ab4: 47d0 lw a2,12(a5)
5ab6: 00861763 bne a2,s0,5ac4 <tcp_connect+0xe2>
5aba: c291 beqz a3,5abe <tcp_connect+0xdc>
5abc: c31c sw a5,0(a4)
5abe: 4458 lw a4,12(s0)
5ac0: c7d8 sw a4,12(a5)
5ac2: bf55 j 5a76 <tcp_connect+0x94>
5ac4: 4685 li a3,1
5ac6: 87b2 mv a5,a2
5ac8: b7cd j 5aaa <tcp_connect+0xc8>
00005aca <RemoveTimeWaiTCP>:
RemoveTimeWaiTCP():
5aca: f26fa2ef jal t0,1f0 <__riscv_save_0>
5ace: 9201a403 lw s0,-1760(gp) # 20000140 <tcp_tw_pcbs>
5ad2: 92018493 addi s1,gp,-1760 # 20000140 <tcp_tw_pcbs>
5ad6: e019 bnez s0,5adc <RemoveTimeWaiTCP+0x12>
5ad8: f3cfa06f j 214 <__riscv_restore_0>
5adc: 8522 mv a0,s0
5ade: 90cfd0ef jal ra,2bea <LwipRemoveTcpPcb>
5ae2: 8522 mv a0,s0
5ae4: f86ff0ef jal ra,526a <tcp_pcb_purge>
5ae8: 00c42903 lw s2,12(s0)
5aec: 85a2 mv a1,s0
5aee: 4509 li a0,2
5af0: 0124a023 sw s2,0(s1)
5af4: 844a mv s0,s2
5af6: ee7fe0ef jal ra,49dc <memp_free>
5afa: bff1 j 5ad6 <RemoveTimeWaiTCP+0xc>
00005afc <tcp_oos_insert_segment>:
tcp_oos_insert_segment():
5afc: edafa2ef jal t0,1d6 <__riscv_save_4>
5b00: 491c lw a5,16(a0)
5b02: 84aa mv s1,a0
5b04: 8a2e mv s4,a1
5b06: 27c8 lbu a0,12(a5)
5b08: 37dc lbu a5,13(a5)
5b0a: 07a2 slli a5,a5,0x8
5b0c: 8d5d or a0,a0,a5
5b0e: cbffd0ef jal ra,37cc <ntohs>
5b12: 8905 andi a0,a0,1
5b14: e929 bnez a0,5b66 <tcp_oos_insert_segment+0x6a>
5b16: 6941 lui s2,0x10
5b18: fc090913 addi s2,s2,-64 # ffc0 <_data_lma+0x712c>
5b1c: 010a2703 lw a4,16(s4)
5b20: 9381a603 lw a2,-1736(gp) # 20000158 <seqno>
5b24: 24de lhu a5,12(s1)
5b26: 3354 lbu a3,5(a4)
5b28: 234c lbu a1,4(a4)
5b2a: 97b2 add a5,a5,a2
5b2c: 06a2 slli a3,a3,0x8
5b2e: 8dd5 or a1,a1,a3
5b30: 2374 lbu a3,6(a4)
5b32: 06c2 slli a3,a3,0x10
5b34: 8ecd or a3,a3,a1
5b36: 336c lbu a1,7(a4)
5b38: 05e2 slli a1,a1,0x18
5b3a: 8dd5 or a1,a1,a3
5b3c: 00ca5683 lhu a3,12(s4)
5b40: 96ae add a3,a3,a1
5b42: 40d786b3 sub a3,a5,a3
5b46: 0206d563 bgez a3,5b70 <tcp_oos_insert_segment+0x74>
5b4a: 8f8d sub a5,a5,a1
5b4c: 00f05963 blez a5,5b5e <tcp_oos_insert_segment+0x62>
5b50: 8d91 sub a1,a1,a2
5b52: 05c2 slli a1,a1,0x10
5b54: 40c8 lw a0,4(s1)
5b56: 81c1 srli a1,a1,0x10
5b58: a4ce sh a1,12(s1)
5b5a: 9e2ff0ef jal ra,4d3c <pbuf_realloc>
5b5e: 0144a023 sw s4,0(s1)
5b62: ea8fa06f j 20a <__riscv_restore_4>
5b66: 8552 mv a0,s4
5b68: e9cff0ef jal ra,5204 <tcp_segs_free>
5b6c: 4a01 li s4,0
5b6e: bfc5 j 5b5e <tcp_oos_insert_segment+0x62>
5b70: 375c lbu a5,13(a4)
5b72: 2748 lbu a0,12(a4)
5b74: 07a2 slli a5,a5,0x8
5b76: 8d5d or a0,a0,a5
5b78: c55fd0ef jal ra,37cc <ntohs>
5b7c: 8905 andi a0,a0,1
5b7e: cd15 beqz a0,5bba <tcp_oos_insert_segment+0xbe>
5b80: 489c lw a5,16(s1)
5b82: 37c0 lbu s0,13(a5)
5b84: 27c8 lbu a0,12(a5)
5b86: 0422 slli s0,s0,0x8
5b88: 8c49 or s0,s0,a0
5b8a: 854a mv a0,s2
5b8c: c33fd0ef jal ra,37be <htons>
5b90: 489c lw a5,16(s1)
5b92: 8c69 and s0,s0,a0
5b94: 27c8 lbu a0,12(a5)
5b96: 37dc lbu a5,13(a5)
5b98: 07a2 slli a5,a5,0x8
5b9a: 8d5d or a0,a0,a5
5b9c: c31fd0ef jal ra,37cc <ntohs>
5ba0: 03e57513 andi a0,a0,62
5ba4: 00156513 ori a0,a0,1
5ba8: c17fd0ef jal ra,37be <htons>
5bac: 489c lw a5,16(s1)
5bae: 8d41 or a0,a0,s0
5bb0: 0542 slli a0,a0,0x10
5bb2: 8141 srli a0,a0,0x10
5bb4: a7c8 sb a0,12(a5)
5bb6: 8121 srli a0,a0,0x8
5bb8: b7c8 sb a0,13(a5)
5bba: 000a2403 lw s0,0(s4)
5bbe: 8552 mv a0,s4
5bc0: e1aff0ef jal ra,51da <tcp_seg_free>
5bc4: d445 beqz s0,5b6c <tcp_oos_insert_segment+0x70>
5bc6: 8a22 mv s4,s0
5bc8: bf91 j 5b1c <tcp_oos_insert_segment+0x20>
00005bca <tcp_receive>:
tcp_receive():
5bca: dfefa2ef jal t0,1c8 <__riscv_save_10>
5bce: 9281c783 lbu a5,-1752(gp) # 20000148 <flags>
5bd2: 842a mv s0,a0
5bd4: 8bc1 andi a5,a5,16
5bd6: 93818993 addi s3,gp,-1736 # 20000158 <seqno>
5bda: c7f1 beqz a5,5ca6 <tcp_receive+0xdc>
5bdc: 0009a583 lw a1,0(s3)
5be0: 5538 lw a4,104(a0)
5be2: 06455683 lhu a3,100(a0)
5be6: 5570 lw a2,108(a0)
5be8: 40b70533 sub a0,a4,a1
5bec: 9241a783 lw a5,-1756(gp) # 20000144 <ackno>
5bf0: 92418493 addi s1,gp,-1756 # 20000144 <ackno>
5bf4: 02054463 bltz a0,5c1c <tcp_receive+0x52>
5bf8: 00b71663 bne a4,a1,5c04 <tcp_receive+0x3a>
5bfc: 40f60733 sub a4,a2,a5
5c00: 00074e63 bltz a4,5c1c <tcp_receive+0x52>
5c04: 02f61e63 bne a2,a5,5c40 <tcp_receive+0x76>
5c08: 9401a503 lw a0,-1728(gp) # 20000160 <tcphdr>
5c0c: 3578 lbu a4,15(a0)
5c0e: 00e54803 lbu a6,14(a0)
5c12: 0722 slli a4,a4,0x8
5c14: 01076733 or a4,a4,a6
5c18: 02e6f463 bgeu a3,a4,5c40 <tcp_receive+0x76>
5c1c: 9401a503 lw a0,-1728(gp) # 20000160 <tcphdr>
5c20: 3578 lbu a4,15(a0)
5c22: 00e54803 lbu a6,14(a0)
5c26: d42c sw a1,104(s0)
5c28: 0722 slli a4,a4,0x8
5c2a: 01076733 or a4,a4,a6
5c2e: 06e41223 sh a4,100(s0)
5c32: d47c sw a5,108(s0)
5c34: c711 beqz a4,5c40 <tcp_receive+0x76>
5c36: 0b044703 lbu a4,176(s0)
5c3a: c319 beqz a4,5c40 <tcp_receive+0x76>
5c3c: 0a040823 sb zero,176(s0)
5c40: 486c lw a1,84(s0)
5c42: 40b78733 sub a4,a5,a1
5c46: 2ee04263 bgtz a4,5f2a <tcp_receive+0x360>
5c4a: 9441d703 lhu a4,-1724(gp) # 20000164 <tcplen>
5c4e: 06041a23 sh zero,116(s0)
5c52: 2c071963 bnez a4,5f24 <tcp_receive+0x35a>
5c56: 06445703 lhu a4,100(s0)
5c5a: 5468 lw a0,108(s0)
5c5c: 96b2 add a3,a3,a2
5c5e: 972a add a4,a4,a0
5c60: 2cd71263 bne a4,a3,5f24 <tcp_receive+0x35a>
5c64: 03e41703 lh a4,62(s0)
5c68: 2a074e63 bltz a4,5f24 <tcp_receive+0x35a>
5c6c: 2af59c63 bne a1,a5,5f24 <tcp_receive+0x35a>
5c70: 05844783 lbu a5,88(s0)
5c74: 470d li a4,3
5c76: 0785 addi a5,a5,1
5c78: 0ff7f793 andi a5,a5,255
5c7c: 04f40c23 sb a5,88(s0)
5c80: 28f77c63 bgeu a4,a5,5f18 <tcp_receive+0x34e>
5c84: 05a45703 lhu a4,90(s0)
5c88: 04045783 lhu a5,64(s0)
5c8c: 97ba add a5,a5,a4
5c8e: 07c2 slli a5,a5,0x10
5c90: 83c1 srli a5,a5,0x10
5c92: 00f77463 bgeu a4,a5,5c9a <tcp_receive+0xd0>
5c96: 04f41d23 sh a5,90(s0)
5c9a: 5c7c lw a5,124(s0)
5c9c: 3a079f63 bnez a5,605a <tcp_receive+0x490>
5ca0: 4070 lw a2,68(s0)
5ca2: 44061a63 bnez a2,60f6 <tcp_receive+0x52c>
5ca6: 9441d603 lhu a2,-1724(gp) # 20000164 <tcplen>
5caa: 0009a783 lw a5,0(s3)
5cae: 5414 lw a3,40(s0)
5cb0: 94418a13 addi s4,gp,-1724 # 20000164 <tcplen>
5cb4: 040600e3 beqz a2,64f4 <tcp_receive+0x92a>
5cb8: 40f685b3 sub a1,a3,a5
5cbc: fff58713 addi a4,a1,-1
5cc0: 4a074b63 bltz a4,6176 <tcp_receive+0x5ac>
5cc4: 4705 li a4,1
5cc6: 8f1d sub a4,a4,a5
5cc8: 8f11 sub a4,a4,a2
5cca: 9736 add a4,a4,a3
5ccc: 4ae04563 bgtz a4,6176 <tcp_receive+0x5ac>
5cd0: 20008937 lui s2,0x20008
5cd4: 8c090793 addi a5,s2,-1856 # 200078c0 <inseg>
5cd8: 43c4 lw s1,4(a5)
5cda: 01059713 slli a4,a1,0x10
5cde: 8341 srli a4,a4,0x10
5ce0: 24be lhu a5,10(s1)
5ce2: 8c090913 addi s2,s2,-1856
5ce6: 48b7d363 bge a5,a1,616c <tcp_receive+0x5a2>
5cea: 249e lhu a5,8(s1)
5cec: 8f99 sub a5,a5,a4
5cee: 07c2 slli a5,a5,0x10
5cf0: 83c1 srli a5,a5,0x10
5cf2: 24ba lhu a4,10(s1)
5cf4: 46b74663 blt a4,a1,6160 <tcp_receive+0x596>
5cf8: 40b005b3 neg a1,a1
5cfc: 05c2 slli a1,a1,0x10
5cfe: 85c1 srai a1,a1,0x10
5d00: 8526 mv a0,s1
5d02: e3ffe0ef jal ra,4b40 <pbuf_header>
5d06: 40dc lw a5,4(s1)
5d08: 00c95683 lhu a3,12(s2)
5d0c: 0009a703 lw a4,0(s3)
5d10: 00f92423 sw a5,8(s2)
5d14: 541c lw a5,40(s0)
5d16: 9736 add a4,a4,a3
5d18: 8f1d sub a4,a4,a5
5d1a: 00e91623 sh a4,12(s2)
5d1e: 01092703 lw a4,16(s2)
5d22: 0087d693 srli a3,a5,0x8
5d26: 00f9a023 sw a5,0(s3)
5d2a: a35c sb a5,4(a4)
5d2c: b354 sb a3,5(a4)
5d2e: 0107d693 srli a3,a5,0x10
5d32: 83e1 srli a5,a5,0x18
5d34: a374 sb a3,6(a4)
5d36: b37c sb a5,7(a4)
5d38: 0009a683 lw a3,0(s3)
5d3c: 5418 lw a4,40(s0)
5d3e: 40e687b3 sub a5,a3,a4
5d42: 0007c963 bltz a5,5d54 <tcp_receive+0x18a>
5d46: 3452 lhu a2,44(s0)
5d48: 00168793 addi a5,a3,1
5d4c: 8f99 sub a5,a5,a4
5d4e: 8f91 sub a5,a5,a2
5d50: 44f05063 blez a5,6190 <tcp_receive+0x5c6>
5d54: 200087b7 lui a5,0x20008
5d58: 8d07a783 lw a5,-1840(a5) # 200078d0 <inseg+0x10>
5d5c: 27c8 lbu a0,12(a5)
5d5e: 37dc lbu a5,13(a5)
5d60: 07a2 slli a5,a5,0x8
5d62: 8d5d or a0,a0,a5
5d64: a69fd0ef jal ra,37cc <ntohs>
5d68: 8905 andi a0,a0,1
5d6a: 78050163 beqz a0,64ec <tcp_receive+0x922>
5d6e: 5418 lw a4,40(s0)
5d70: 0009a783 lw a5,0(s3)
5d74: 76f71c63 bne a4,a5,64ec <tcp_receive+0x922>
5d78: 200084b7 lui s1,0x20008
5d7c: 8c048a93 addi s5,s1,-1856 # 200078c0 <inseg>
5d80: 010aa783 lw a5,16(s5)
5d84: 00cad903 lhu s2,12(s5)
5d88: 8c048493 addi s1,s1,-1856
5d8c: 27c8 lbu a0,12(a5)
5d8e: 37dc lbu a5,13(a5)
5d90: 07a2 slli a5,a5,0x8
5d92: 8d5d or a0,a0,a5
5d94: a39fd0ef jal ra,37cc <ntohs>
5d98: 890d andi a0,a0,3
5d9a: 00a03533 snez a0,a0
5d9e: 992a add s2,s2,a0
5da0: 010aa783 lw a5,16(s5)
5da4: 0942 slli s2,s2,0x10
5da6: 01095913 srli s2,s2,0x10
5daa: 012a1023 sh s2,0(s4)
5dae: 27c8 lbu a0,12(a5)
5db0: 37dc lbu a5,13(a5)
5db2: 07a2 slli a5,a5,0x8
5db4: 8d5d or a0,a0,a5
5db6: a17fd0ef jal ra,37cc <ntohs>
5dba: 8905 andi a0,a0,1
5dbc: 3e051c63 bnez a0,61b4 <tcp_receive+0x5ea>
5dc0: 345e lhu a5,44(s0)
5dc2: 0b27f063 bgeu a5,s2,5e62 <tcp_receive+0x298>
5dc6: 489c lw a5,16(s1)
5dc8: 27c8 lbu a0,12(a5)
5dca: 37dc lbu a5,13(a5)
5dcc: 07a2 slli a5,a5,0x8
5dce: 8d5d or a0,a0,a5
5dd0: 9fdfd0ef jal ra,37cc <ntohs>
5dd4: 8905 andi a0,a0,1
5dd6: c131 beqz a0,5e1a <tcp_receive+0x250>
5dd8: 489c lw a5,16(s1)
5dda: 00d7c903 lbu s2,13(a5)
5dde: 27c8 lbu a0,12(a5)
5de0: 0922 slli s2,s2,0x8
5de2: 00a96933 or s2,s2,a0
5de6: 6541 lui a0,0x10
5de8: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x712c>
5dec: 9d3fd0ef jal ra,37be <htons>
5df0: 489c lw a5,16(s1)
5df2: 00a97933 and s2,s2,a0
5df6: 27c8 lbu a0,12(a5)
5df8: 37dc lbu a5,13(a5)
5dfa: 07a2 slli a5,a5,0x8
5dfc: 8d5d or a0,a0,a5
5dfe: 9cffd0ef jal ra,37cc <ntohs>
5e02: 03e57513 andi a0,a0,62
5e06: 9b9fd0ef jal ra,37be <htons>
5e0a: 489c lw a5,16(s1)
5e0c: 00a96533 or a0,s2,a0
5e10: 0542 slli a0,a0,0x10
5e12: 8141 srli a0,a0,0x10
5e14: a7c8 sb a0,12(a5)
5e16: 8121 srli a0,a0,0x8
5e18: b7c8 sb a0,13(a5)
5e1a: 345e lhu a5,44(s0)
5e1c: a4de sh a5,12(s1)
5e1e: 489c lw a5,16(s1)
5e20: 27c8 lbu a0,12(a5)
5e22: 37dc lbu a5,13(a5)
5e24: 07a2 slli a5,a5,0x8
5e26: 8d5d or a0,a0,a5
5e28: 9a5fd0ef jal ra,37cc <ntohs>
5e2c: 8909 andi a0,a0,2
5e2e: c501 beqz a0,5e36 <tcp_receive+0x26c>
5e30: 24de lhu a5,12(s1)
5e32: 17fd addi a5,a5,-1
5e34: a4de sh a5,12(s1)
5e36: 24ce lhu a1,12(s1)
5e38: 40c8 lw a0,4(s1)
5e3a: f03fe0ef jal ra,4d3c <pbuf_realloc>
5e3e: 489c lw a5,16(s1)
5e40: 00c4d903 lhu s2,12(s1)
5e44: 27c8 lbu a0,12(a5)
5e46: 37dc lbu a5,13(a5)
5e48: 07a2 slli a5,a5,0x8
5e4a: 8d5d or a0,a0,a5
5e4c: 981fd0ef jal ra,37cc <ntohs>
5e50: 890d andi a0,a0,3
5e52: 00a03533 snez a0,a0
5e56: 992a add s2,s2,a0
5e58: 0942 slli s2,s2,0x10
5e5a: 01095913 srli s2,s2,0x10
5e5e: 012a1023 sh s2,0(s4)
5e62: 08442783 lw a5,132(s0)
5e66: 36078463 beqz a5,61ce <tcp_receive+0x604>
5e6a: 489c lw a5,16(s1)
5e6c: 27c8 lbu a0,12(a5)
5e6e: 37dc lbu a5,13(a5)
5e70: 07a2 slli a5,a5,0x8
5e72: 8d5d or a0,a0,a5
5e74: 959fd0ef jal ra,37cc <ntohs>
5e78: 8905 andi a0,a0,1
5e7a: 34051763 bnez a0,61c8 <tcp_receive+0x5fe>
5e7e: 08442b03 lw s6,132(s0)
5e82: 6bc1 lui s7,0x10
5e84: fc0b8b93 addi s7,s7,-64 # ffc0 <_data_lma+0x712c>
5e88: 0009a503 lw a0,0(s3)
5e8c: 000a5703 lhu a4,0(s4)
5e90: 972a add a4,a4,a0
5e92: 080b0063 beqz s6,5f12 <tcp_receive+0x348>
5e96: 010b2603 lw a2,16(s6)
5e9a: 324c lbu a1,5(a2)
5e9c: 2254 lbu a3,4(a2)
5e9e: 05a2 slli a1,a1,0x8
5ea0: 8dd5 or a1,a1,a3
5ea2: 2274 lbu a3,6(a2)
5ea4: 06c2 slli a3,a3,0x10
5ea6: 8dd5 or a1,a1,a3
5ea8: 3274 lbu a3,7(a2)
5eaa: 06e2 slli a3,a3,0x18
5eac: 8ecd or a3,a3,a1
5eae: 00cb5583 lhu a1,12(s6)
5eb2: 95b6 add a1,a1,a3
5eb4: 40b705b3 sub a1,a4,a1
5eb8: 3605d263 bgez a1,621c <tcp_receive+0x652>
5ebc: 8f15 sub a4,a4,a3
5ebe: 04e05a63 blez a4,5f12 <tcp_receive+0x348>
5ec2: 08442783 lw a5,132(s0)
5ec6: 4b98 lw a4,16(a5)
5ec8: 335c lbu a5,5(a4)
5eca: 2354 lbu a3,4(a4)
5ecc: 07a2 slli a5,a5,0x8
5ece: 8fd5 or a5,a5,a3
5ed0: 8f89 sub a5,a5,a0
5ed2: a4de sh a5,12(s1)
5ed4: 489c lw a5,16(s1)
5ed6: 27c8 lbu a0,12(a5)
5ed8: 37dc lbu a5,13(a5)
5eda: 07a2 slli a5,a5,0x8
5edc: 8d5d or a0,a0,a5
5ede: 8effd0ef jal ra,37cc <ntohs>
5ee2: 8909 andi a0,a0,2
5ee4: c501 beqz a0,5eec <tcp_receive+0x322>
5ee6: 24de lhu a5,12(s1)
5ee8: 17fd addi a5,a5,-1
5eea: a4de sh a5,12(s1)
5eec: 24ce lhu a1,12(s1)
5eee: 40c8 lw a0,4(s1)
5ef0: e4dfe0ef jal ra,4d3c <pbuf_realloc>
5ef4: 489c lw a5,16(s1)
5ef6: 00c4da83 lhu s5,12(s1)
5efa: 27c8 lbu a0,12(a5)
5efc: 37dc lbu a5,13(a5)
5efe: 07a2 slli a5,a5,0x8
5f00: 8d5d or a0,a0,a5
5f02: 8cbfd0ef jal ra,37cc <ntohs>
5f06: 890d andi a0,a0,3
5f08: 00a03533 snez a0,a0
5f0c: 9aaa add s5,s5,a0
5f0e: 015a1023 sh s5,0(s4)
5f12: 09642223 sw s6,132(s0)
5f16: ac65 j 61ce <tcp_receive+0x604>
5f18: d8e791e3 bne a5,a4,5c9a <tcp_receive+0xd0>
5f1c: 8522 mv a0,s0
5f1e: 3b9010ef jal ra,7ad6 <tcp_rexmit_fast>
5f22: bba5 j 5c9a <tcp_receive+0xd0>
5f24: 04040c23 sb zero,88(s0)
5f28: bb8d j 5c9a <tcp_receive+0xd0>
5f2a: 5034 lw a3,96(s0)
5f2c: 40d786b3 sub a3,a5,a3
5f30: 12d04263 bgtz a3,6054 <tcp_receive+0x48a>
5f34: 02644683 lbu a3,38(s0)
5f38: 0046f613 andi a2,a3,4
5f3c: ca01 beqz a2,5f4c <tcp_receive+0x382>
5f3e: 9aed andi a3,a3,-5
5f40: 02d40323 sb a3,38(s0)
5f44: 05c45683 lhu a3,92(s0)
5f48: 04d41d23 sh a3,90(s0)
5f4c: 04c41683 lh a3,76(s0)
5f50: 04e45603 lhu a2,78(s0)
5f54: 0742 slli a4,a4,0x10
5f56: 868d srai a3,a3,0x3
5f58: 96b2 add a3,a3,a2
5f5a: 04d41823 sh a3,80(s0)
5f5e: 07645683 lhu a3,118(s0)
5f62: 8341 srli a4,a4,0x10
5f64: 06e41a23 sh a4,116(s0)
5f68: 9736 add a4,a4,a3
5f6a: 06e41b23 sh a4,118(s0)
5f6e: 4818 lw a4,16(s0)
5f70: c87c sw a5,84(s0)
5f72: 04040923 sb zero,82(s0)
5f76: 04040c23 sb zero,88(s0)
5f7a: 478d li a5,3
5f7c: 02e7f163 bgeu a5,a4,5f9e <tcp_receive+0x3d4>
5f80: 05a45703 lhu a4,90(s0)
5f84: 05c45683 lhu a3,92(s0)
5f88: 04045783 lhu a5,64(s0)
5f8c: 02d77663 bgeu a4,a3,5fb8 <tcp_receive+0x3ee>
5f90: 97ba add a5,a5,a4
5f92: 07c2 slli a5,a5,0x10
5f94: 83c1 srli a5,a5,0x10
5f96: 00f77463 bgeu a4,a5,5f9e <tcp_receive+0x3d4>
5f9a: 04f41d23 sh a5,90(s0)
5f9e: 08042783 lw a5,128(s0)
5fa2: e385 bnez a5,5fc2 <tcp_receive+0x3f8>
5fa4: 08042783 lw a5,128(s0)
5fa8: 02040e23 sb zero,60(s0)
5fac: 0017b793 seqz a5,a5
5fb0: 40f007b3 neg a5,a5
5fb4: bc7e sh a5,62(s0)
5fb6: b1d5 j 5c9a <tcp_receive+0xd0>
5fb8: 02f787b3 mul a5,a5,a5
5fbc: 02e7c7b3 div a5,a5,a4
5fc0: bfc1 j 5f90 <tcp_receive+0x3c6>
5fc2: 4b98 lw a4,16(a5)
5fc4: 3348 lbu a0,5(a4)
5fc6: 235c lbu a5,4(a4)
5fc8: 0522 slli a0,a0,0x8
5fca: 8d5d or a0,a0,a5
5fcc: 237c lbu a5,6(a4)
5fce: 07c2 slli a5,a5,0x10
5fd0: 8fc9 or a5,a5,a0
5fd2: 3368 lbu a0,7(a4)
5fd4: 0562 slli a0,a0,0x18
5fd6: 8d5d or a0,a0,a5
5fd8: 827fd0ef jal ra,37fe <ntohl>
5fdc: 08042783 lw a5,128(s0)
5fe0: 892a mv s2,a0
5fe2: 00c7da03 lhu s4,12(a5)
5fe6: 4b9c lw a5,16(a5)
5fe8: 27c8 lbu a0,12(a5)
5fea: 37dc lbu a5,13(a5)
5fec: 07a2 slli a5,a5,0x8
5fee: 8d5d or a0,a0,a5
5ff0: fdcfd0ef jal ra,37cc <ntohs>
5ff4: 409c lw a5,0(s1)
5ff6: 890d andi a0,a0,3
5ff8: 00a03533 snez a0,a0
5ffc: 9552 add a0,a0,s4
5ffe: 40f90933 sub s2,s2,a5
6002: 954a add a0,a0,s2
6004: faa040e3 bgtz a0,5fa4 <tcp_receive+0x3da>
6008: 08042903 lw s2,128(s0)
600c: 00092783 lw a5,0(s2)
6010: 08f42023 sw a5,128(s0)
6014: 07445783 lhu a5,116(s0)
6018: c385 beqz a5,6038 <tcp_receive+0x46e>
601a: 01092783 lw a5,16(s2)
601e: 27c8 lbu a0,12(a5)
6020: 37dc lbu a5,13(a5)
6022: 07a2 slli a5,a5,0x8
6024: 8d5d or a0,a0,a5
6026: fa6fd0ef jal ra,37cc <ntohs>
602a: 8905 andi a0,a0,1
602c: c511 beqz a0,6038 <tcp_receive+0x46e>
602e: 07445783 lhu a5,116(s0)
6032: 17fd addi a5,a5,-1
6034: 06f41a23 sh a5,116(s0)
6038: 00492503 lw a0,4(s2)
603c: d59fe0ef jal ra,4d94 <pbuf_clen>
6040: 07845783 lhu a5,120(s0)
6044: 40a78533 sub a0,a5,a0
6048: 06a41c23 sh a0,120(s0)
604c: 854a mv a0,s2
604e: 98cff0ef jal ra,51da <tcp_seg_free>
6052: b7b1 j 5f9e <tcp_receive+0x3d4>
6054: 06041a23 sh zero,116(s0)
6058: b189 j 5c9a <tcp_receive+0xd0>
605a: 4b98 lw a4,16(a5)
605c: 0004a903 lw s2,0(s1)
6060: 3348 lbu a0,5(a4)
6062: 235c lbu a5,4(a4)
6064: 0522 slli a0,a0,0x8
6066: 8d5d or a0,a0,a5
6068: 237c lbu a5,6(a4)
606a: 07c2 slli a5,a5,0x10
606c: 8fc9 or a5,a5,a0
606e: 3368 lbu a0,7(a4)
6070: 0562 slli a0,a0,0x18
6072: 8d5d or a0,a0,a5
6074: f8afd0ef jal ra,37fe <ntohl>
6078: 5c7c lw a5,124(s0)
607a: 8aaa mv s5,a0
607c: 41590933 sub s2,s2,s5
6080: 00c7da03 lhu s4,12(a5)
6084: 4b9c lw a5,16(a5)
6086: 27c8 lbu a0,12(a5)
6088: 37dc lbu a5,13(a5)
608a: 07a2 slli a5,a5,0x8
608c: 8d5d or a0,a0,a5
608e: f3efd0ef jal ra,37cc <ntohs>
6092: 890d andi a0,a0,3
6094: 00a03533 snez a0,a0
6098: 9552 add a0,a0,s4
609a: 40a90933 sub s2,s2,a0
609e: c00941e3 bltz s2,5ca0 <tcp_receive+0xd6>
60a2: 409c lw a5,0(s1)
60a4: 5038 lw a4,96(s0)
60a6: 8f99 sub a5,a5,a4
60a8: bef04ce3 bgtz a5,5ca0 <tcp_receive+0xd6>
60ac: 07c42903 lw s2,124(s0)
60b0: 00092783 lw a5,0(s2)
60b4: dc7c sw a5,124(s0)
60b6: 07445783 lhu a5,116(s0)
60ba: c385 beqz a5,60da <tcp_receive+0x510>
60bc: 01092783 lw a5,16(s2)
60c0: 27c8 lbu a0,12(a5)
60c2: 37dc lbu a5,13(a5)
60c4: 07a2 slli a5,a5,0x8
60c6: 8d5d or a0,a0,a5
60c8: f04fd0ef jal ra,37cc <ntohs>
60cc: 8905 andi a0,a0,1
60ce: c511 beqz a0,60da <tcp_receive+0x510>
60d0: 07445783 lhu a5,116(s0)
60d4: 17fd addi a5,a5,-1
60d6: 06f41a23 sh a5,116(s0)
60da: 00492503 lw a0,4(s2)
60de: cb7fe0ef jal ra,4d94 <pbuf_clen>
60e2: 07845783 lhu a5,120(s0)
60e6: 40a78533 sub a0,a5,a0
60ea: 06a41c23 sh a0,120(s0)
60ee: 854a mv a0,s2
60f0: 8eaff0ef jal ra,51da <tcp_seg_free>
60f4: b65d j 5c9a <tcp_receive+0xd0>
60f6: 443c lw a5,72(s0)
60f8: 4098 lw a4,0(s1)
60fa: 8f99 sub a5,a5,a4
60fc: ba07d5e3 bgez a5,5ca6 <tcp_receive+0xdc>
6100: 04c41683 lh a3,76(s0)
6104: 9141d703 lhu a4,-1772(gp) # 20000134 <tcp_ticks>
6108: 0642 slli a2,a2,0x10
610a: 4036d593 srai a1,a3,0x3
610e: 8241 srli a2,a2,0x10
6110: 05c2 slli a1,a1,0x10
6112: 81c1 srli a1,a1,0x10
6114: 40c707b3 sub a5,a4,a2
6118: 8f8d sub a5,a5,a1
611a: 07c2 slli a5,a5,0x10
611c: 83c1 srli a5,a5,0x10
611e: 01079513 slli a0,a5,0x10
6122: 97b6 add a5,a5,a3
6124: 07c2 slli a5,a5,0x10
6126: 87c1 srai a5,a5,0x10
6128: 8541 srai a0,a0,0x10
612a: 04f41623 sh a5,76(s0)
612e: 00055763 bgez a0,613c <tcp_receive+0x572>
6132: 8e19 sub a2,a2,a4
6134: 962e add a2,a2,a1
6136: 01061513 slli a0,a2,0x10
613a: 8541 srai a0,a0,0x10
613c: 04e41683 lh a3,78(s0)
6140: 878d srai a5,a5,0x3
6142: 04042223 sw zero,68(s0)
6146: 4026d713 srai a4,a3,0x2
614a: 40e68733 sub a4,a3,a4
614e: 972a add a4,a4,a0
6150: 0742 slli a4,a4,0x10
6152: 8341 srli a4,a4,0x10
6154: 97ba add a5,a5,a4
6156: 04e41723 sh a4,78(s0)
615a: 04f41823 sh a5,80(s0)
615e: b6a1 j 5ca6 <tcp_receive+0xdc>
6160: a49e sh a5,8(s1)
6162: 00049523 sh zero,10(s1)
6166: 8d99 sub a1,a1,a4
6168: 4084 lw s1,0(s1)
616a: b661 j 5cf2 <tcp_receive+0x128>
616c: 40e00733 neg a4,a4
6170: 01071593 slli a1,a4,0x10
6174: b669 j 5cfe <tcp_receive+0x134>
6176: 8f95 sub a5,a5,a3
6178: bc07d0e3 bgez a5,5d38 <tcp_receive+0x16e>
617c: 02644783 lbu a5,38(s0)
6180: 8522 mv a0,s0
6182: 0027e793 ori a5,a5,2
6186: 02f40323 sb a5,38(s0)
618a: 42a010ef jal ra,75b4 <tcp_output>
618e: b66d j 5d38 <tcp_receive+0x16e>
6190: bee684e3 beq a3,a4,5d78 <tcp_receive+0x1ae>
6194: 8522 mv a0,s0
6196: 3ae010ef jal ra,7544 <tcp_send_empty_ack>
619a: 08442483 lw s1,132(s0)
619e: 1e049463 bnez s1,6386 <tcp_receive+0x7bc>
61a2: 20008537 lui a0,0x20008
61a6: 8c050513 addi a0,a0,-1856 # 200078c0 <inseg>
61aa: 878ff0ef jal ra,5222 <tcp_seg_copy>
61ae: 08a42223 sw a0,132(s0)
61b2: aac1 j 6382 <tcp_receive+0x7b8>
61b4: 197d addi s2,s2,-1
61b6: 0942 slli s2,s2,0x10
61b8: 01095913 srli s2,s2,0x10
61bc: b111 j 5dc0 <tcp_receive+0x1f6>
61be: 411c lw a5,0(a0)
61c0: 08f42223 sw a5,132(s0)
61c4: 816ff0ef jal ra,51da <tcp_seg_free>
61c8: 08442503 lw a0,132(s0)
61cc: f96d bnez a0,61be <tcp_receive+0x5f4>
61ce: 0009a703 lw a4,0(s3)
61d2: 000a5783 lhu a5,0(s4)
61d6: 8522 mv a0,s0
61d8: 97ba add a5,a5,a4
61da: d41c sw a5,40(s0)
61dc: 345e lhu a5,44(s0)
61de: 41278933 sub s2,a5,s2
61e2: 03241623 sh s2,44(s0)
61e6: f71fe0ef jal ra,5156 <tcp_update_rcv_ann_wnd>
61ea: 40dc lw a5,4(s1)
61ec: 279a lhu a4,8(a5)
61ee: c709 beqz a4,61f8 <tcp_receive+0x62e>
61f0: 92f1a823 sw a5,-1744(gp) # 20000150 <recv_data>
61f4: 0004a223 sw zero,4(s1)
61f8: 489c lw a5,16(s1)
61fa: 27c8 lbu a0,12(a5)
61fc: 37dc lbu a5,13(a5)
61fe: 07a2 slli a5,a5,0x8
6200: 8d5d or a0,a0,a5
6202: dcafd0ef jal ra,37cc <ntohs>
6206: 8905 andi a0,a0,1
6208: c519 beqz a0,6216 <tcp_receive+0x64c>
620a: 93418793 addi a5,gp,-1740 # 20000154 <recv_flags>
620e: 2398 lbu a4,0(a5)
6210: 02076713 ori a4,a4,32
6214: a398 sb a4,0(a5)
6216: 4a91 li s5,4
6218: 4b1d li s6,7
621a: aa39 j 6338 <tcp_receive+0x76e>
621c: 365c lbu a5,13(a2)
621e: 2648 lbu a0,12(a2)
6220: 07a2 slli a5,a5,0x8
6222: 8d5d or a0,a0,a5
6224: da8fd0ef jal ra,37cc <ntohs>
6228: 8905 andi a0,a0,1
622a: c535 beqz a0,6296 <tcp_receive+0x6cc>
622c: 489c lw a5,16(s1)
622e: 27c8 lbu a0,12(a5)
6230: 37dc lbu a5,13(a5)
6232: 07a2 slli a5,a5,0x8
6234: 8d5d or a0,a0,a5
6236: d96fd0ef jal ra,37cc <ntohs>
623a: 8909 andi a0,a0,2
623c: ed29 bnez a0,6296 <tcp_receive+0x6cc>
623e: 489c lw a5,16(s1)
6240: 00d7ca83 lbu s5,13(a5)
6244: 27c8 lbu a0,12(a5)
6246: 0aa2 slli s5,s5,0x8
6248: 00aaeab3 or s5,s5,a0
624c: 855e mv a0,s7
624e: d70fd0ef jal ra,37be <htons>
6252: 489c lw a5,16(s1)
6254: 00aafab3 and s5,s5,a0
6258: 27c8 lbu a0,12(a5)
625a: 37dc lbu a5,13(a5)
625c: 07a2 slli a5,a5,0x8
625e: 8d5d or a0,a0,a5
6260: d6cfd0ef jal ra,37cc <ntohs>
6264: 03e57513 andi a0,a0,62
6268: 00156513 ori a0,a0,1
626c: d52fd0ef jal ra,37be <htons>
6270: 00aae533 or a0,s5,a0
6274: 489c lw a5,16(s1)
6276: 0542 slli a0,a0,0x10
6278: 8141 srli a0,a0,0x10
627a: 00855713 srli a4,a0,0x8
627e: a7c8 sb a0,12(a5)
6280: b7d8 sb a4,13(a5)
6282: 00c4da83 lhu s5,12(s1)
6286: d46fd0ef jal ra,37cc <ntohs>
628a: 890d andi a0,a0,3
628c: 00a03533 snez a0,a0
6290: 9aaa add s5,s5,a0
6292: 015a1023 sh s5,0(s4)
6296: 000b2a83 lw s5,0(s6)
629a: 855a mv a0,s6
629c: f3ffe0ef jal ra,51da <tcp_seg_free>
62a0: 8b56 mv s6,s5
62a2: b6dd j 5e88 <tcp_receive+0x2be>
62a4: 00f9a023 sw a5,0(s3)
62a8: 375c lbu a5,13(a4)
62aa: 2748 lbu a0,12(a4)
62ac: 00c4db83 lhu s7,12(s1)
62b0: 07a2 slli a5,a5,0x8
62b2: 8d5d or a0,a0,a5
62b4: d18fd0ef jal ra,37cc <ntohs>
62b8: 541c lw a5,40(s0)
62ba: 890d andi a0,a0,3
62bc: 00a03533 snez a0,a0
62c0: 955e add a0,a0,s7
62c2: 953e add a0,a0,a5
62c4: 489c lw a5,16(s1)
62c6: d408 sw a0,40(s0)
62c8: 00c4db83 lhu s7,12(s1)
62cc: 27c8 lbu a0,12(a5)
62ce: 37dc lbu a5,13(a5)
62d0: 07a2 slli a5,a5,0x8
62d2: 8d5d or a0,a0,a5
62d4: cf8fd0ef jal ra,37cc <ntohs>
62d8: 345e lhu a5,44(s0)
62da: 890d andi a0,a0,3
62dc: 00a03533 snez a0,a0
62e0: 955e add a0,a0,s7
62e2: 40a78533 sub a0,a5,a0
62e6: b44a sh a0,44(s0)
62e8: 8522 mv a0,s0
62ea: e6dfe0ef jal ra,5156 <tcp_update_rcv_ann_wnd>
62ee: 40cc lw a1,4(s1)
62f0: 259e lhu a5,8(a1)
62f2: cb89 beqz a5,6304 <tcp_receive+0x73a>
62f4: 93018793 addi a5,gp,-1744 # 20000150 <recv_data>
62f8: 4388 lw a0,0(a5)
62fa: cd35 beqz a0,6376 <tcp_receive+0x7ac>
62fc: ab5fe0ef jal ra,4db0 <pbuf_cat>
6300: 0004a223 sw zero,4(s1)
6304: 489c lw a5,16(s1)
6306: 27c8 lbu a0,12(a5)
6308: 37dc lbu a5,13(a5)
630a: 07a2 slli a5,a5,0x8
630c: 8d5d or a0,a0,a5
630e: cbefd0ef jal ra,37cc <ntohs>
6312: 8905 andi a0,a0,1
6314: cd01 beqz a0,632c <tcp_receive+0x762>
6316: 93418713 addi a4,gp,-1740 # 20000154 <recv_flags>
631a: 231c lbu a5,0(a4)
631c: 0207e793 ori a5,a5,32
6320: a31c sb a5,0(a4)
6322: 481c lw a5,16(s0)
6324: 01579463 bne a5,s5,632c <tcp_receive+0x762>
6328: 01642823 sw s6,16(s0)
632c: 409c lw a5,0(s1)
632e: 8526 mv a0,s1
6330: 08f42223 sw a5,132(s0)
6334: ea7fe0ef jal ra,51da <tcp_seg_free>
6338: 08442483 lw s1,132(s0)
633c: cc99 beqz s1,635a <tcp_receive+0x790>
633e: 4898 lw a4,16(s1)
6340: 3354 lbu a3,5(a4)
6342: 235c lbu a5,4(a4)
6344: 06a2 slli a3,a3,0x8
6346: 8edd or a3,a3,a5
6348: 237c lbu a5,6(a4)
634a: 07c2 slli a5,a5,0x10
634c: 8edd or a3,a3,a5
634e: 337c lbu a5,7(a4)
6350: 07e2 slli a5,a5,0x18
6352: 8fd5 or a5,a5,a3
6354: 5414 lw a3,40(s0)
6356: f4d787e3 beq a5,a3,62a4 <tcp_receive+0x6da>
635a: 02644783 lbu a5,38(s0)
635e: 0017f713 andi a4,a5,1
6362: cf01 beqz a4,637a <tcp_receive+0x7b0>
6364: 9bf9 andi a5,a5,-2
6366: 0027e793 ori a5,a5,2
636a: 02f40323 sb a5,38(s0)
636e: 8522 mv a0,s0
6370: 244010ef jal ra,75b4 <tcp_output>
6374: a039 j 6382 <tcp_receive+0x7b8>
6376: c38c sw a1,0(a5)
6378: b761 j 6300 <tcp_receive+0x736>
637a: 0017e793 ori a5,a5,1
637e: 02f40323 sb a5,38(s0)
6382: e7ff906f j 200 <__riscv_restore_10>
6386: 0009a703 lw a4,0(s3)
638a: 4901 li s2,0
638c: fff70513 addi a0,a4,-1
6390: 00170813 addi a6,a4,1
6394: 4890 lw a2,16(s1)
6396: 3254 lbu a3,5(a2)
6398: 225c lbu a5,4(a2)
639a: 06a2 slli a3,a3,0x8
639c: 8edd or a3,a3,a5
639e: 227c lbu a5,6(a2)
63a0: 07c2 slli a5,a5,0x10
63a2: 8edd or a3,a3,a5
63a4: 327c lbu a5,7(a2)
63a6: 07e2 slli a5,a5,0x18
63a8: 8fd5 or a5,a5,a3
63aa: 02e79c63 bne a5,a4,63e2 <tcp_receive+0x818>
63ae: 20008537 lui a0,0x20008
63b2: 8c050793 addi a5,a0,-1856 # 200078c0 <inseg>
63b6: 27da lhu a4,12(a5)
63b8: 24de lhu a5,12(s1)
63ba: fce7f4e3 bgeu a5,a4,6382 <tcp_receive+0x7b8>
63be: 8c050513 addi a0,a0,-1856
63c2: e61fe0ef jal ra,5222 <tcp_seg_copy>
63c6: dd55 beqz a0,6382 <tcp_receive+0x7b8>
63c8: 00090a63 beqz s2,63dc <tcp_receive+0x812>
63cc: 00a92023 sw a0,0(s2)
63d0: 85a6 mv a1,s1
63d2: f2aff0ef jal ra,5afc <tcp_oos_insert_segment>
63d6: b775 j 6382 <tcp_receive+0x7b8>
63d8: 84b6 mv s1,a3
63da: bf6d j 6394 <tcp_receive+0x7ca>
63dc: 08a42223 sw a0,132(s0)
63e0: bfc5 j 63d0 <tcp_receive+0x806>
63e2: 02091063 bnez s2,6402 <tcp_receive+0x838>
63e6: 40f706b3 sub a3,a4,a5
63ea: 0806de63 bgez a3,6486 <tcp_receive+0x8bc>
63ee: 20008537 lui a0,0x20008
63f2: 8c050513 addi a0,a0,-1856 # 200078c0 <inseg>
63f6: e2dfe0ef jal ra,5222 <tcp_seg_copy>
63fa: d541 beqz a0,6382 <tcp_receive+0x7b8>
63fc: 08a42223 sw a0,132(s0)
6400: bfc1 j 63d0 <tcp_receive+0x806>
6402: 01092883 lw a7,16(s2)
6406: 0058c583 lbu a1,5(a7)
640a: 0048c683 lbu a3,4(a7)
640e: 05a2 slli a1,a1,0x8
6410: 8dd5 or a1,a1,a3
6412: 0068c683 lbu a3,6(a7)
6416: 06c2 slli a3,a3,0x10
6418: 8dd5 or a1,a1,a3
641a: 0078c683 lbu a3,7(a7)
641e: 06e2 slli a3,a3,0x18
6420: 8ecd or a3,a3,a1
6422: 40d506b3 sub a3,a0,a3
6426: 0606c063 bltz a3,6486 <tcp_receive+0x8bc>
642a: 40f806b3 sub a3,a6,a5
642e: 04d04c63 bgtz a3,6486 <tcp_receive+0x8bc>
6432: 20008537 lui a0,0x20008
6436: 8c050513 addi a0,a0,-1856 # 200078c0 <inseg>
643a: de9fe0ef jal ra,5222 <tcp_seg_copy>
643e: 842a mv s0,a0
6440: d129 beqz a0,6382 <tcp_receive+0x7b8>
6442: 01092703 lw a4,16(s2)
6446: 335c lbu a5,5(a4)
6448: 234c lbu a1,4(a4)
644a: 07a2 slli a5,a5,0x8
644c: 8ddd or a1,a1,a5
644e: 237c lbu a5,6(a4)
6450: 07c2 slli a5,a5,0x10
6452: 8fcd or a5,a5,a1
6454: 336c lbu a1,7(a4)
6456: 00c95703 lhu a4,12(s2)
645a: 05e2 slli a1,a1,0x18
645c: 8fcd or a5,a5,a1
645e: 0009a583 lw a1,0(s3)
6462: 973e add a4,a4,a5
6464: 8f0d sub a4,a4,a1
6466: 00e05b63 blez a4,647c <tcp_receive+0x8b2>
646a: 8d9d sub a1,a1,a5
646c: 05c2 slli a1,a1,0x10
646e: 00492503 lw a0,4(s2)
6472: 81c1 srli a1,a1,0x10
6474: 00b91623 sh a1,12(s2)
6478: 8c5fe0ef jal ra,4d3c <pbuf_realloc>
647c: 00892023 sw s0,0(s2)
6480: 85a6 mv a1,s1
6482: 8522 mv a0,s0
6484: b7b9 j 63d2 <tcp_receive+0x808>
6486: 4094 lw a3,0(s1)
6488: 8926 mv s2,s1
648a: f6b9 bnez a3,63d8 <tcp_receive+0x80e>
648c: 40f707b3 sub a5,a4,a5
6490: eef059e3 blez a5,6382 <tcp_receive+0x7b8>
6494: 365c lbu a5,13(a2)
6496: 2648 lbu a0,12(a2)
6498: 07a2 slli a5,a5,0x8
649a: 8d5d or a0,a0,a5
649c: b30fd0ef jal ra,37cc <ntohs>
64a0: 8905 andi a0,a0,1
64a2: ee0510e3 bnez a0,6382 <tcp_receive+0x7b8>
64a6: 20008537 lui a0,0x20008
64aa: 8c050513 addi a0,a0,-1856 # 200078c0 <inseg>
64ae: d75fe0ef jal ra,5222 <tcp_seg_copy>
64b2: c088 sw a0,0(s1)
64b4: ec0507e3 beqz a0,6382 <tcp_receive+0x7b8>
64b8: 4898 lw a4,16(s1)
64ba: 335c lbu a5,5(a4)
64bc: 234c lbu a1,4(a4)
64be: 07a2 slli a5,a5,0x8
64c0: 8ddd or a1,a1,a5
64c2: 237c lbu a5,6(a4)
64c4: 07c2 slli a5,a5,0x10
64c6: 8fcd or a5,a5,a1
64c8: 336c lbu a1,7(a4)
64ca: 24da lhu a4,12(s1)
64cc: 05e2 slli a1,a1,0x18
64ce: 8fcd or a5,a5,a1
64d0: 0009a583 lw a1,0(s3)
64d4: 973e add a4,a4,a5
64d6: 8f0d sub a4,a4,a1
64d8: eae055e3 blez a4,6382 <tcp_receive+0x7b8>
64dc: 8d9d sub a1,a1,a5
64de: 05c2 slli a1,a1,0x10
64e0: 40c8 lw a0,4(s1)
64e2: 81c1 srli a1,a1,0x10
64e4: a4ce sh a1,12(s1)
64e6: 857fe0ef jal ra,4d3c <pbuf_realloc>
64ea: bd61 j 6382 <tcp_receive+0x7b8>
64ec: 8522 mv a0,s0
64ee: 056010ef jal ra,7544 <tcp_send_empty_ack>
64f2: bd41 j 6382 <tcp_receive+0x7b8>
64f4: 40d78733 sub a4,a5,a3
64f8: 00074863 bltz a4,6508 <tcp_receive+0x93e>
64fc: 345a lhu a4,44(s0)
64fe: 0785 addi a5,a5,1
6500: 8f95 sub a5,a5,a3
6502: 8f99 sub a5,a5,a4
6504: e6f05fe3 blez a5,6382 <tcp_receive+0x7b8>
6508: 02644783 lbu a5,38(s0)
650c: bda9 j 6366 <tcp_receive+0x79c>
0000650e <tcp_parseopt.isra.0>:
tcp_parseopt.isra.0():
650e: ce3f92ef jal t0,1f0 <__riscv_save_0>
6512: 94018493 addi s1,gp,-1728 # 20000160 <tcphdr>
6516: 0004a903 lw s2,0(s1)
651a: 842a mv s0,a0
651c: 00d94783 lbu a5,13(s2)
6520: 00c94503 lbu a0,12(s2)
6524: 07a2 slli a5,a5,0x8
6526: 8d5d or a0,a0,a5
6528: aa4fd0ef jal ra,37cc <ntohs>
652c: 8131 srli a0,a0,0xc
652e: 0542 slli a0,a0,0x10
6530: 8141 srli a0,a0,0x10
6532: 4795 li a5,5
6534: 02a7fc63 bgeu a5,a0,656c <tcp_parseopt.isra.0+0x5e>
6538: 409c lw a5,0(s1)
653a: 0951 addi s2,s2,20
653c: 27c8 lbu a0,12(a5)
653e: 37dc lbu a5,13(a5)
6540: 07a2 slli a5,a5,0x8
6542: 8d5d or a0,a0,a5
6544: a88fd0ef jal ra,37cc <ntohs>
6548: 200087b7 lui a5,0x20008
654c: 8407a603 lw a2,-1984(a5) # 20007840 <WCHCfg+0x4>
6550: 8131 srli a0,a0,0xc
6552: 156d addi a0,a0,-5
6554: 050a slli a0,a0,0x2
6556: 0542 slli a0,a0,0x10
6558: 01061593 slli a1,a2,0x10
655c: 8141 srli a0,a0,0x10
655e: 81c1 srli a1,a1,0x10
6560: 4781 li a5,0
6562: 4805 li a6,1
6564: 4889 li a7,2
6566: 4311 li t1,4
6568: 00a7e463 bltu a5,a0,6570 <tcp_parseopt.isra.0+0x62>
656c: ca9f906f j 214 <__riscv_restore_0>
6570: 00f906b3 add a3,s2,a5
6574: 2298 lbu a4,0(a3)
6576: 01070963 beq a4,a6,6588 <tcp_parseopt.isra.0+0x7a>
657a: db6d beqz a4,656c <tcp_parseopt.isra.0+0x5e>
657c: 01170a63 beq a4,a7,6590 <tcp_parseopt.isra.0+0x82>
6580: 3298 lbu a4,1(a3)
6582: d76d beqz a4,656c <tcp_parseopt.isra.0+0x5e>
6584: 97ba add a5,a5,a4
6586: a011 j 658a <tcp_parseopt.isra.0+0x7c>
6588: 0785 addi a5,a5,1
658a: 07c2 slli a5,a5,0x10
658c: 83c1 srli a5,a5,0x10
658e: bfe9 j 6568 <tcp_parseopt.isra.0+0x5a>
6590: 3298 lbu a4,1(a3)
6592: fc671de3 bne a4,t1,656c <tcp_parseopt.isra.0+0x5e>
6596: 00378713 addi a4,a5,3
659a: fca759e3 bge a4,a0,656c <tcp_parseopt.isra.0+0x5e>
659e: 22b8 lbu a4,2(a3)
65a0: 32b4 lbu a3,3(a3)
65a2: 0722 slli a4,a4,0x8
65a4: 8f55 or a4,a4,a3
65a6: 00e66363 bltu a2,a4,65ac <tcp_parseopt.isra.0+0x9e>
65aa: e311 bnez a4,65ae <tcp_parseopt.isra.0+0xa0>
65ac: 872e mv a4,a1
65ae: a01a sh a4,0(s0)
65b0: 0791 addi a5,a5,4
65b2: bfe1 j 658a <tcp_parseopt.isra.0+0x7c>
000065b4 <tcp_input>:
tcp_input():
65b4: c0df92ef jal t0,1c0 <__riscv_save_12>
65b8: 4140 lw s0,4(a0)
65ba: 8baa mv s7,a0
65bc: 301c lbu a5,1(s0)
65be: 2008 lbu a0,0(s0)
65c0: 1141 addi sp,sp,-16
65c2: 07a2 slli a5,a5,0x8
65c4: 92c18913 addi s2,gp,-1748 # 2000014c <iphdr>
65c8: 8d5d or a0,a0,a5
65ca: 89ae mv s3,a1
65cc: 00892023 sw s0,0(s2)
65d0: 9fcfd0ef jal ra,37cc <ntohs>
65d4: 00092783 lw a5,0(s2)
65d8: 8119 srli a0,a0,0x6
65da: 03c57513 andi a0,a0,60
65de: 942a add s0,s0,a0
65e0: 2388 lbu a0,0(a5)
65e2: 339c lbu a5,1(a5)
65e4: 9481a023 sw s0,-1728(gp) # 20000160 <tcphdr>
65e8: 07a2 slli a5,a5,0x8
65ea: 8d5d or a0,a0,a5
65ec: 9e0fd0ef jal ra,37cc <ntohs>
65f0: 00655593 srli a1,a0,0x6
65f4: 03c5f593 andi a1,a1,60
65f8: 40b005b3 neg a1,a1
65fc: 855e mv a0,s7
65fe: d42fe0ef jal ra,4b40 <pbuf_header>
6602: e511 bnez a0,660e <tcp_input+0x5a>
6604: 008bd703 lhu a4,8(s7)
6608: 47cd li a5,19
660a: 00e7e863 bltu a5,a4,661a <tcp_input+0x66>
660e: 855e mv a0,s7
6610: d9efe0ef jal ra,4bae <pbuf_free>
6614: 0141 addi sp,sp,16
6616: be7f906f j 1fc <__riscv_restore_12>
661a: 92c18b13 addi s6,gp,-1748 # 2000014c <iphdr>
661e: 000b2503 lw a0,0(s6)
6622: 85ce mv a1,s3
6624: 0541 addi a0,a0,16
6626: e5afd0ef jal ra,3c80 <ip_addr_isbroadcast>
662a: f175 bnez a0,660e <tcp_input+0x5a>
662c: 000b2703 lw a4,0(s6)
6630: f0000537 lui a0,0xf0000
6634: 3b1c lbu a5,17(a4)
6636: 2b00 lbu s0,16(a4)
6638: 07a2 slli a5,a5,0x8
663a: 8fc1 or a5,a5,s0
663c: 2b20 lbu s0,18(a4)
663e: 0442 slli s0,s0,0x10
6640: 8fc1 or a5,a5,s0
6642: 3b20 lbu s0,19(a4)
6644: 0462 slli s0,s0,0x18
6646: 8c5d or s0,s0,a5
6648: 9b6fd0ef jal ra,37fe <ntohl>
664c: 8c69 and s0,s0,a0
664e: e0000537 lui a0,0xe0000
6652: 9acfd0ef jal ra,37fe <ntohl>
6656: faa40ce3 beq s0,a0,660e <tcp_input+0x5a>
665a: 000b2583 lw a1,0(s6)
665e: 008bd703 lhu a4,8(s7)
6662: 4699 li a3,6
6664: 01058613 addi a2,a1,16
6668: 855e mv a0,s7
666a: 05b1 addi a1,a1,12
666c: 5f9010ef jal ra,8464 <inet_chksum_pseudo>
6670: fd59 bnez a0,660e <tcp_input+0x5a>
6672: 94018493 addi s1,gp,-1728 # 20000160 <tcphdr>
6676: 409c lw a5,0(s1)
6678: 27c8 lbu a0,12(a5)
667a: 37dc lbu a5,13(a5)
667c: 07a2 slli a5,a5,0x8
667e: 8d5d or a0,a0,a5
6680: 94cfd0ef jal ra,37cc <ntohs>
6684: 8131 srli a0,a0,0xc
6686: 55f1 li a1,-4
6688: 02b505b3 mul a1,a0,a1
668c: 855e mv a0,s7
668e: 05c2 slli a1,a1,0x10
6690: 85c1 srai a1,a1,0x10
6692: caefe0ef jal ra,4b40 <pbuf_header>
6696: fd25 bnez a0,660e <tcp_input+0x5a>
6698: 4080 lw s0,0(s1)
669a: 301c lbu a5,1(s0)
669c: 2008 lbu a0,0(s0)
669e: 07a2 slli a5,a5,0x8
66a0: 8d5d or a0,a0,a5
66a2: 92afd0ef jal ra,37cc <ntohs>
66a6: a008 sb a0,0(s0)
66a8: 8121 srli a0,a0,0x8
66aa: b008 sb a0,1(s0)
66ac: 4080 lw s0,0(s1)
66ae: 303c lbu a5,3(s0)
66b0: 2028 lbu a0,2(s0)
66b2: 07a2 slli a5,a5,0x8
66b4: 8d5d or a0,a0,a5
66b6: 916fd0ef jal ra,37cc <ntohs>
66ba: a028 sb a0,2(s0)
66bc: 8121 srli a0,a0,0x8
66be: b028 sb a0,3(s0)
66c0: 4080 lw s0,0(s1)
66c2: 3048 lbu a0,5(s0)
66c4: 205c lbu a5,4(s0)
66c6: 0522 slli a0,a0,0x8
66c8: 8d5d or a0,a0,a5
66ca: 207c lbu a5,6(s0)
66cc: 07c2 slli a5,a5,0x10
66ce: 8fc9 or a5,a5,a0
66d0: 3068 lbu a0,7(s0)
66d2: 0562 slli a0,a0,0x18
66d4: 8d5d or a0,a0,a5
66d6: 928fd0ef jal ra,37fe <ntohl>
66da: 00855793 srli a5,a0,0x8
66de: b05c sb a5,5(s0)
66e0: 01055793 srli a5,a0,0x10
66e4: a07c sb a5,6(s0)
66e6: 01855793 srli a5,a0,0x18
66ea: a048 sb a0,4(s0)
66ec: b07c sb a5,7(s0)
66ee: 4080 lw s0,0(s1)
66f0: 92a1ac23 sw a0,-1736(gp) # 20000158 <seqno>
66f4: 93818a93 addi s5,gp,-1736 # 20000158 <seqno>
66f8: 3408 lbu a0,9(s0)
66fa: 241c lbu a5,8(s0)
66fc: 0522 slli a0,a0,0x8
66fe: 8d5d or a0,a0,a5
6700: 243c lbu a5,10(s0)
6702: 07c2 slli a5,a5,0x10
6704: 8fc9 or a5,a5,a0
6706: 3428 lbu a0,11(s0)
6708: 0562 slli a0,a0,0x18
670a: 8d5d or a0,a0,a5
670c: 8f2fd0ef jal ra,37fe <ntohl>
6710: 00855793 srli a5,a0,0x8
6714: b41c sb a5,9(s0)
6716: 01055793 srli a5,a0,0x10
671a: a43c sb a5,10(s0)
671c: 01855793 srli a5,a0,0x18
6720: a408 sb a0,8(s0)
6722: b43c sb a5,11(s0)
6724: 4080 lw s0,0(s1)
6726: 92a1a223 sw a0,-1756(gp) # 20000144 <ackno>
672a: 92418913 addi s2,gp,-1756 # 20000144 <ackno>
672e: 347c lbu a5,15(s0)
6730: 2468 lbu a0,14(s0)
6732: 07a2 slli a5,a5,0x8
6734: 8d5d or a0,a0,a5
6736: 896fd0ef jal ra,37cc <ntohs>
673a: 409c lw a5,0(s1)
673c: a468 sb a0,14(s0)
673e: 8121 srli a0,a0,0x8
6740: b468 sb a0,15(s0)
6742: 27c8 lbu a0,12(a5)
6744: 37dc lbu a5,13(a5)
6746: 07a2 slli a5,a5,0x8
6748: 8d5d or a0,a0,a5
674a: 882fd0ef jal ra,37cc <ntohs>
674e: 0ff57893 andi a7,a0,255
6752: 008bd503 lhu a0,8(s7)
6756: 0038f593 andi a1,a7,3
675a: 00b035b3 snez a1,a1
675e: 95aa add a1,a1,a0
6760: 9081a303 lw t1,-1784(gp) # 20000128 <tcp_active_pcbs>
6764: 05c2 slli a1,a1,0x10
6766: 4094 lw a3,0(s1)
6768: 000b2803 lw a6,0(s6)
676c: 03f8f793 andi a5,a7,63
6770: 81c1 srli a1,a1,0x10
6772: 92f18423 sb a5,-1752(gp) # 20000148 <flags>
6776: 94b19223 sh a1,-1724(gp) # 20000164 <tcplen>
677a: 841a mv s0,t1
677c: 4601 li a2,0
677e: 92818c93 addi s9,gp,-1752 # 20000148 <flags>
6782: 94418c13 addi s8,gp,-1724 # 20000164 <tcplen>
6786: e401 bnez s0,678e <tcp_input+0x1da>
6788: 9201a503 lw a0,-1760(gp) # 20000140 <tcp_tw_pcbs>
678c: aad9 j 6962 <tcp_input+0x3ae>
678e: 329c lbu a5,1(a3)
6790: 0006ce03 lbu t3,0(a3)
6794: 305a lhu a4,36(s0)
6796: 07a2 slli a5,a5,0x8
6798: 01c7e7b3 or a5,a5,t3
679c: 0ef71963 bne a4,a5,688e <tcp_input+0x2da>
67a0: 32bc lbu a5,3(a3)
67a2: 0026ce03 lbu t3,2(a3)
67a6: 2c5a lhu a4,28(s0)
67a8: 07a2 slli a5,a5,0x8
67aa: 01c7e7b3 or a5,a5,t3
67ae: 0ef71063 bne a4,a5,688e <tcp_input+0x2da>
67b2: 00d84703 lbu a4,13(a6)
67b6: 00c84783 lbu a5,12(a6)
67ba: 0722 slli a4,a4,0x8
67bc: 8f5d or a4,a4,a5
67be: 00e84783 lbu a5,14(a6)
67c2: 07c2 slli a5,a5,0x10
67c4: 8f5d or a4,a4,a5
67c6: 00f84783 lbu a5,15(a6)
67ca: 07e2 slli a5,a5,0x18
67cc: 8fd9 or a5,a5,a4
67ce: 4058 lw a4,4(s0)
67d0: 0af71f63 bne a4,a5,688e <tcp_input+0x2da>
67d4: 01184703 lbu a4,17(a6)
67d8: 01084783 lbu a5,16(a6)
67dc: 0722 slli a4,a4,0x8
67de: 8f5d or a4,a4,a5
67e0: 01284783 lbu a5,18(a6)
67e4: 07c2 slli a5,a5,0x10
67e6: 8f5d or a4,a4,a5
67e8: 01384783 lbu a5,19(a6)
67ec: 07e2 slli a5,a5,0x18
67ee: 8fd9 or a5,a5,a4
67f0: 4018 lw a4,0(s0)
67f2: 08f71e63 bne a4,a5,688e <tcp_input+0x2da>
67f6: c619 beqz a2,6804 <tcp_input+0x250>
67f8: 445c lw a5,12(s0)
67fa: 9081a423 sw s0,-1784(gp) # 20000128 <tcp_active_pcbs>
67fe: c65c sw a5,12(a2)
6800: 00642623 sw t1,12(s0)
6804: 004ba703 lw a4,4(s7)
6808: 20008db7 lui s11,0x20008
680c: 08842603 lw a2,136(s0)
6810: 8c0d8793 addi a5,s11,-1856 # 200078c0 <inseg>
6814: 9201a823 sw zero,-1744(gp) # 20000150 <recv_data>
6818: 92018a23 sb zero,-1740(gp) # 20000154 <recv_flags>
681c: 0007a023 sw zero,0(a5)
6820: a7ca sh a0,12(a5)
6822: c798 sw a4,8(a5)
6824: 0177a223 sw s7,4(a5)
6828: cb94 sw a3,16(a5)
682a: 93418a13 addi s4,gp,-1740 # 20000154 <recv_flags>
682e: 93018d13 addi s10,gp,-1744 # 20000150 <recv_data>
6832: 8c0d8d93 addi s11,s11,-1856
6836: ce09 beqz a2,6850 <tcp_input+0x29c>
6838: 09042783 lw a5,144(s0)
683c: 4681 li a3,0
683e: 85a2 mv a1,s0
6840: 2e078f63 beqz a5,6b3e <tcp_input+0x58a>
6844: 4c08 lw a0,24(s0)
6846: 9782 jalr a5
6848: dc0513e3 bnez a0,660e <tcp_input+0x5a>
684c: 08042423 sw zero,136(s0)
6850: 000cc783 lbu a5,0(s9)
6854: 9281ae23 sw s0,-1732(gp) # 2000015c <tcp_input_pcb>
6858: 0047f713 andi a4,a5,4
685c: 93c18b93 addi s7,gp,-1732 # 2000015c <tcp_input_pcb>
6860: 34070263 beqz a4,6ba4 <tcp_input+0x5f0>
6864: 4818 lw a4,16(s0)
6866: 4789 li a5,2
6868: 2cf71f63 bne a4,a5,6b46 <tcp_input+0x592>
686c: 5038 lw a4,96(s0)
686e: 00092783 lw a5,0(s2)
6872: 2ef71463 bne a4,a5,6b5a <tcp_input+0x5a6>
6876: 000a4783 lbu a5,0(s4)
687a: 0087e793 ori a5,a5,8
687e: 00fa0023 sb a5,0(s4)
6882: 02644783 lbu a5,38(s0)
6886: 9bf9 andi a5,a5,-2
6888: 02f40323 sb a5,38(s0)
688c: a4f9 j 6b5a <tcp_input+0x5a6>
688e: 8622 mv a2,s0
6890: 4440 lw s0,12(s0)
6892: bdd5 j 6786 <tcp_input+0x1d2>
6894: 3298 lbu a4,1(a3)
6896: 229c lbu a5,0(a3)
6898: 0722 slli a4,a4,0x8
689a: 8f5d or a4,a4,a5
689c: 315e lhu a5,36(a0)
689e: 0ce79163 bne a5,a4,6960 <tcp_input+0x3ac>
68a2: 32b0 lbu a2,3(a3)
68a4: 22b8 lbu a4,2(a3)
68a6: 0622 slli a2,a2,0x8
68a8: 8e59 or a2,a2,a4
68aa: 2d5a lhu a4,28(a0)
68ac: 0ac71a63 bne a4,a2,6960 <tcp_input+0x3ac>
68b0: 00d84303 lbu t1,13(a6)
68b4: 00c84603 lbu a2,12(a6)
68b8: 0322 slli t1,t1,0x8
68ba: 00c36333 or t1,t1,a2
68be: 00e84603 lbu a2,14(a6)
68c2: 0642 slli a2,a2,0x10
68c4: 00666333 or t1,a2,t1
68c8: 00f84603 lbu a2,15(a6)
68cc: 0662 slli a2,a2,0x18
68ce: 00666633 or a2,a2,t1
68d2: 00452303 lw t1,4(a0) # e0000004 <_eusrstack+0xbffe0004>
68d6: 08c31563 bne t1,a2,6960 <tcp_input+0x3ac>
68da: 01184303 lbu t1,17(a6)
68de: 01084603 lbu a2,16(a6)
68e2: 0322 slli t1,t1,0x8
68e4: 00c36333 or t1,t1,a2
68e8: 01284603 lbu a2,18(a6)
68ec: 0642 slli a2,a2,0x10
68ee: 00666333 or t1,a2,t1
68f2: 01384603 lbu a2,19(a6)
68f6: 0662 slli a2,a2,0x18
68f8: 00666633 or a2,a2,t1
68fc: 00052303 lw t1,0(a0)
6900: 06c31063 bne t1,a2,6960 <tcp_input+0x3ac>
6904: 0048f693 andi a3,a7,4
6908: d00693e3 bnez a3,660e <tcp_input+0x5a>
690c: 0028f693 andi a3,a7,2
6910: c695 beqz a3,693c <tcp_input+0x388>
6912: 000aa883 lw a7,0(s5)
6916: 5514 lw a3,40(a0)
6918: 40d886b3 sub a3,a7,a3
691c: 0206c763 bltz a3,694a <tcp_input+0x396>
6920: 3552 lhu a2,44(a0)
6922: 8e91 sub a3,a3,a2
6924: 02d04363 bgtz a3,694a <tcp_input+0x396>
6928: 00c80693 addi a3,a6,12
692c: 01080613 addi a2,a6,16
6930: 95c6 add a1,a1,a7
6932: 00092503 lw a0,0(s2)
6936: 7e7000ef jal ra,791c <tcp_rst>
693a: b9d1 j 660e <tcp_input+0x5a>
693c: 0018f893 andi a7,a7,1
6940: 00088563 beqz a7,694a <tcp_input+0x396>
6944: 9141a783 lw a5,-1772(gp) # 20000134 <tcp_ticks>
6948: dd1c sw a5,56(a0)
694a: cc0582e3 beqz a1,660e <tcp_input+0x5a>
694e: 02654783 lbu a5,38(a0)
6952: 0027e793 ori a5,a5,2
6956: 02f50323 sb a5,38(a0)
695a: 45b000ef jal ra,75b4 <tcp_output>
695e: b945 j 660e <tcp_input+0x5a>
6960: 4548 lw a0,12(a0)
6962: f90d bnez a0,6894 <tcp_input+0x2e0>
6964: 9101a303 lw t1,-1776(gp) # 20000130 <tcp_listen_pcbs>
6968: 8e3e mv t3,a5
696a: 8a1a mv s4,t1
696c: 000a1c63 bnez s4,6984 <tcp_input+0x3d0>
6970: 36dc lbu a5,13(a3)
6972: 26c8 lbu a0,12(a3)
6974: 07a2 slli a5,a5,0x8
6976: 8d5d or a0,a0,a5
6978: e55fc0ef jal ra,37cc <ntohs>
697c: 8911 andi a0,a0,4
697e: c80518e3 bnez a0,660e <tcp_input+0x5a>
6982: a045 j 6a22 <tcp_input+0x46e>
6984: 000a2603 lw a2,0(s4)
6988: c20d beqz a2,69aa <tcp_input+0x3f6>
698a: 01184703 lbu a4,17(a6)
698e: 01084783 lbu a5,16(a6)
6992: 0722 slli a4,a4,0x8
6994: 8f5d or a4,a4,a5
6996: 01284783 lbu a5,18(a6)
699a: 07c2 slli a5,a5,0x10
699c: 8f5d or a4,a4,a5
699e: 01384783 lbu a5,19(a6)
69a2: 07e2 slli a5,a5,0x18
69a4: 8fd9 or a5,a5,a4
69a6: 18f61863 bne a2,a5,6b36 <tcp_input+0x582>
69aa: 32b8 lbu a4,3(a3)
69ac: 22b0 lbu a2,2(a3)
69ae: 01ca5783 lhu a5,28(s4)
69b2: 0722 slli a4,a4,0x8
69b4: 8f51 or a4,a4,a2
69b6: 18e79063 bne a5,a4,6b36 <tcp_input+0x582>
69ba: c901 beqz a0,69ca <tcp_input+0x416>
69bc: 00ca2783 lw a5,12(s4)
69c0: 9141a823 sw s4,-1776(gp) # 20000130 <tcp_listen_pcbs>
69c4: c55c sw a5,12(a0)
69c6: 006a2623 sw t1,12(s4)
69ca: 0108f793 andi a5,a7,16
69ce: cf89 beqz a5,69e8 <tcp_input+0x434>
69d0: 329c lbu a5,1(a3)
69d2: 2290 lbu a2,0(a3)
69d4: 000aa503 lw a0,0(s5)
69d8: 07a2 slli a5,a5,0x8
69da: 8fd1 or a5,a5,a2
69dc: 00c80693 addi a3,a6,12
69e0: 01080613 addi a2,a6,16
69e4: 95aa add a1,a1,a0
69e6: b7b1 j 6932 <tcp_input+0x37e>
69e8: 0028f893 andi a7,a7,2
69ec: c20881e3 beqz a7,660e <tcp_input+0x5a>
69f0: 8cc1a883 lw a7,-1844(gp) # 200000ec <TCPVerifyConnCallback>
69f4: 04088e63 beqz a7,6a50 <tcp_input+0x49c>
69f8: 00d84503 lbu a0,13(a6)
69fc: 00c84783 lbu a5,12(a6)
6a00: 228c lbu a1,0(a3)
6a02: 0522 slli a0,a0,0x8
6a04: 8d5d or a0,a0,a5
6a06: 00e84783 lbu a5,14(a6)
6a0a: 3294 lbu a3,1(a3)
6a0c: 863a mv a2,a4
6a0e: 07c2 slli a5,a5,0x10
6a10: 8fc9 or a5,a5,a0
6a12: 00f84503 lbu a0,15(a6)
6a16: 06a2 slli a3,a3,0x8
6a18: 8dd5 or a1,a1,a3
6a1a: 0562 slli a0,a0,0x18
6a1c: 8d5d or a0,a0,a5
6a1e: 9882 jalr a7
6a20: c905 beqz a0,6a50 <tcp_input+0x49c>
6a22: 4094 lw a3,0(s1)
6a24: 000b2603 lw a2,0(s6)
6a28: 000c5503 lhu a0,0(s8)
6a2c: 329c lbu a5,1(a3)
6a2e: 32b8 lbu a4,3(a3)
6a30: 0006c883 lbu a7,0(a3)
6a34: 0026c803 lbu a6,2(a3)
6a38: 07a2 slli a5,a5,0x8
6a3a: 0722 slli a4,a4,0x8
6a3c: 00c60693 addi a3,a2,12
6a40: 000aa583 lw a1,0(s5)
6a44: 0117e7b3 or a5,a5,a7
6a48: 01076733 or a4,a4,a6
6a4c: 0641 addi a2,a2,16
6a4e: bf59 j 69e4 <tcp_input+0x430>
6a50: 014a4503 lbu a0,20(s4)
6a54: e1dfe0ef jal ra,5870 <tcp_alloc>
6a58: 842a mv s0,a0
6a5a: ba050ae3 beqz a0,660e <tcp_input+0x5a>
6a5e: 000b2783 lw a5,0(s6)
6a62: 4701 li a4,0
6a64: 01078693 addi a3,a5,16
6a68: ca99 beqz a3,6a7e <tcp_input+0x4ca>
6a6a: 3b94 lbu a3,17(a5)
6a6c: 2b98 lbu a4,16(a5)
6a6e: 06a2 slli a3,a3,0x8
6a70: 8ed9 or a3,a3,a4
6a72: 2bb8 lbu a4,18(a5)
6a74: 0742 slli a4,a4,0x10
6a76: 8ed9 or a3,a3,a4
6a78: 3bb8 lbu a4,19(a5)
6a7a: 0762 slli a4,a4,0x18
6a7c: 8f55 or a4,a4,a3
6a7e: c018 sw a4,0(s0)
6a80: 01ca5703 lhu a4,28(s4)
6a84: 00c78693 addi a3,a5,12
6a88: ac5a sh a4,28(s0)
6a8a: 4701 li a4,0
6a8c: ca99 beqz a3,6aa2 <tcp_input+0x4ee>
6a8e: 37d4 lbu a3,13(a5)
6a90: 27d8 lbu a4,12(a5)
6a92: 06a2 slli a3,a3,0x8
6a94: 8ed9 or a3,a3,a4
6a96: 27f8 lbu a4,14(a5)
6a98: 0742 slli a4,a4,0x10
6a9a: 8ed9 or a3,a3,a4
6a9c: 37f8 lbu a4,15(a5)
6a9e: 0762 slli a4,a4,0x18
6aa0: 8f55 or a4,a4,a3
6aa2: 4094 lw a3,0(s1)
6aa4: c058 sw a4,4(s0)
6aa6: 04040513 addi a0,s0,64
6aaa: 329c lbu a5,1(a3)
6aac: 2298 lbu a4,0(a3)
6aae: 07a2 slli a5,a5,0x8
6ab0: 8fd9 or a5,a5,a4
6ab2: 000aa703 lw a4,0(s5)
6ab6: b05e sh a5,36(s0)
6ab8: 478d li a5,3
6aba: c81c sw a5,16(s0)
6abc: 00170793 addi a5,a4,1
6ac0: d41c sw a5,40(s0)
6ac2: d81c sw a5,48(s0)
6ac4: 36fc lbu a5,15(a3)
6ac6: 26f0 lbu a2,14(a3)
6ac8: 177d addi a4,a4,-1
6aca: 07a2 slli a5,a5,0x8
6acc: 8fd1 or a5,a5,a2
6ace: 06f41223 sh a5,100(s0)
6ad2: 04f41e23 sh a5,92(s0)
6ad6: 018a2783 lw a5,24(s4)
6ada: d438 sw a4,104(s0)
6adc: cc1c sw a5,24(s0)
6ade: 200087b7 lui a5,0x20008
6ae2: 8407d783 lhu a5,-1984(a5) # 20007840 <WCHCfg+0x4>
6ae6: b45e sh a5,44(s0)
6ae8: b47e sh a5,46(s0)
6aea: 020a2783 lw a5,32(s4)
6aee: d01c sw a5,32(s0)
6af0: 008a5783 lhu a5,8(s4)
6af4: 1997f793 andi a5,a5,409
6af8: a41e sh a5,8(s0)
6afa: 9081a783 lw a5,-1784(gp) # 20000128 <tcp_active_pcbs>
6afe: 9081a423 sw s0,-1784(gp) # 20000128 <tcp_active_pcbs>
6b02: c45c sw a5,12(s0)
6b04: a0bff0ef jal ra,650e <tcp_parseopt.isra.0>
6b08: 04045503 lhu a0,64(s0)
6b0c: 00440593 addi a1,s0,4
6b10: ea5fe0ef jal ra,59b4 <tcp_eff_send_mss>
6b14: 04a41023 sh a0,64(s0)
6b18: 4785 li a5,1
6b1a: 4701 li a4,0
6b1c: 46c9 li a3,18
6b1e: 4601 li a2,0
6b20: 4581 li a1,0
6b22: 8522 mv a0,s0
6b24: 2b49 jal 70b6 <tcp_enqueue>
6b26: c511 beqz a0,6b32 <tcp_input+0x57e>
6b28: 4581 li a1,0
6b2a: 8522 mv a0,s0
6b2c: c9bfe0ef jal ra,57c6 <tcp_abandon>
6b30: bcf9 j 660e <tcp_input+0x5a>
6b32: 8522 mv a0,s0
6b34: b51d j 695a <tcp_input+0x3a6>
6b36: 8552 mv a0,s4
6b38: 00ca2a03 lw s4,12(s4)
6b3c: bd05 j 696c <tcp_input+0x3b8>
6b3e: 4501 li a0,0
6b40: b57fe0ef jal ra,5696 <tcp_recv_null>
6b44: b311 j 6848 <tcp_input+0x294>
6b46: 000aa783 lw a5,0(s5)
6b4a: 5418 lw a4,40(s0)
6b4c: 8f99 sub a5,a5,a4
6b4e: 0007c663 bltz a5,6b5a <tcp_input+0x5a6>
6b52: 345a lhu a4,44(s0)
6b54: 8f99 sub a5,a5,a4
6b56: d2f050e3 blez a5,6876 <tcp_input+0x2c2>
6b5a: 000a4783 lbu a5,0(s4)
6b5e: 0087f713 andi a4,a5,8
6b62: 3e070063 beqz a4,6f42 <tcp_input+0x98e>
6b66: 00f10593 addi a1,sp,15
6b6a: 8522 mv a0,s0
6b6c: 9abfb0ef jal ra,2516 <WCHFindCorrectTCBPcb>
6b70: 4785 li a5,1
6b72: 00f51663 bne a0,a5,6b7e <tcp_input+0x5ca>
6b76: 4818 lw a4,16(s0)
6b78: 4789 li a5,2
6b7a: 1cf70163 beq a4,a5,6d3c <tcp_input+0x788>
6b7e: 8522 mv a0,s0
6b80: 86afc0ef jal ra,2bea <LwipRemoveTcpPcb>
6b84: 09c42783 lw a5,156(s0)
6b88: c781 beqz a5,6b90 <tcp_input+0x5dc>
6b8a: 4c08 lw a0,24(s0)
6b8c: 55e9 li a1,-6
6b8e: 9782 jalr a5
6b90: 85a2 mv a1,s0
6b92: 90818513 addi a0,gp,-1784 # 20000128 <tcp_active_pcbs>
6b96: 9ddfe0ef jal ra,5572 <tcp_pcb_remove>
6b9a: 85a2 mv a1,s0
6b9c: 4509 li a0,2
6b9e: e3ffd0ef jal ra,49dc <memp_free>
6ba2: aa69 j 6d3c <tcp_input+0x788>
6ba4: 8b89 andi a5,a5,2
6ba6: c385 beqz a5,6bc6 <tcp_input+0x612>
6ba8: 481c lw a5,16(s0)
6baa: 4705 li a4,1
6bac: 17f9 addi a5,a5,-2
6bae: 00f77c63 bgeu a4,a5,6bc6 <tcp_input+0x612>
6bb2: 02644783 lbu a5,38(s0)
6bb6: 8522 mv a0,s0
6bb8: 0027e793 ori a5,a5,2
6bbc: 02f40323 sb a5,38(s0)
6bc0: 1f5000ef jal ra,75b4 <tcp_output>
6bc4: bf59 j 6b5a <tcp_input+0x5a6>
6bc6: 9141a783 lw a5,-1772(gp) # 20000134 <tcp_ticks>
6bca: 0a0408a3 sb zero,177(s0)
6bce: 04040513 addi a0,s0,64
6bd2: dc1c sw a5,56(s0)
6bd4: 93bff0ef jal ra,650e <tcp_parseopt.isra.0>
6bd8: 481c lw a5,16(s0)
6bda: 471d li a4,7
6bdc: 17f9 addi a5,a5,-2
6bde: f6f76ee3 bltu a4,a5,6b5a <tcp_input+0x5a6>
6be2: 6725 lui a4,0x9
6be4: 078a slli a5,a5,0x2
6be6: e6c70713 addi a4,a4,-404 # 8e6c <tcp_backoff+0x10>
6bea: 97ba add a5,a5,a4
6bec: 439c lw a5,0(a5)
6bee: 8782 jr a5
6bf0: 000cc783 lbu a5,0(s9)
6bf4: 4749 li a4,18
6bf6: 8bc9 andi a5,a5,18
6bf8: 0ce79263 bne a5,a4,6cbc <tcp_input+0x708>
6bfc: 08042783 lw a5,128(s0)
6c00: 4b98 lw a4,16(a5)
6c02: 3348 lbu a0,5(a4)
6c04: 235c lbu a5,4(a4)
6c06: 0522 slli a0,a0,0x8
6c08: 8d5d or a0,a0,a5
6c0a: 237c lbu a5,6(a4)
6c0c: 07c2 slli a5,a5,0x10
6c0e: 8fc9 or a5,a5,a0
6c10: 3368 lbu a0,7(a4)
6c12: 0562 slli a0,a0,0x18
6c14: 8d5d or a0,a0,a5
6c16: be9fc0ef jal ra,37fe <ntohl>
6c1a: 00092783 lw a5,0(s2)
6c1e: 0505 addi a0,a0,1
6c20: 08f51e63 bne a0,a5,6cbc <tcp_input+0x708>
6c24: 07645783 lhu a5,118(s0)
6c28: 000aa703 lw a4,0(s5)
6c2c: 4094 lw a3,0(s1)
6c2e: 0785 addi a5,a5,1
6c30: 06f41b23 sh a5,118(s0)
6c34: 00170793 addi a5,a4,1
6c38: c868 sw a0,84(s0)
6c3a: d41c sw a5,40(s0)
6c3c: d81c sw a5,48(s0)
6c3e: 36fc lbu a5,15(a3)
6c40: 26f0 lbu a2,14(a3)
6c42: 04045503 lhu a0,64(s0)
6c46: 07a2 slli a5,a5,0x8
6c48: 8fd1 or a5,a5,a2
6c4a: 177d addi a4,a4,-1
6c4c: 06f41223 sh a5,100(s0)
6c50: 4791 li a5,4
6c52: d438 sw a4,104(s0)
6c54: c81c sw a5,16(s0)
6c56: 00440593 addi a1,s0,4
6c5a: d5bfe0ef jal ra,59b4 <tcp_eff_send_mss>
6c5e: 47a9 li a5,10
6c60: 02f507b3 mul a5,a0,a5
6c64: 05a45703 lhu a4,90(s0)
6c68: 04a41023 sh a0,64(s0)
6c6c: 04f41e23 sh a5,92(s0)
6c70: 4785 li a5,1
6c72: 00f71563 bne a4,a5,6c7c <tcp_input+0x6c8>
6c76: 0506 slli a0,a0,0x1
6c78: 0542 slli a0,a0,0x10
6c7a: 8141 srli a0,a0,0x10
6c7c: 07845783 lhu a5,120(s0)
6c80: 04a41d23 sh a0,90(s0)
6c84: 08042503 lw a0,128(s0)
6c88: 17fd addi a5,a5,-1
6c8a: 06f41c23 sh a5,120(s0)
6c8e: 411c lw a5,0(a0)
6c90: 04040923 sb zero,82(s0)
6c94: 04042223 sw zero,68(s0)
6c98: 08f42023 sw a5,128(s0)
6c9c: 0017b793 seqz a5,a5
6ca0: 40f007b3 neg a5,a5
6ca4: bc7e sh a5,62(s0)
6ca6: d34fe0ef jal ra,51da <tcp_seg_free>
6caa: 09442783 lw a5,148(s0)
6cae: f00782e3 beqz a5,6bb2 <tcp_input+0x5fe>
6cb2: 4c08 lw a0,24(s0)
6cb4: 4601 li a2,0
6cb6: 85a2 mv a1,s0
6cb8: 9782 jalr a5
6cba: bde5 j 6bb2 <tcp_input+0x5fe>
6cbc: 000cc783 lbu a5,0(s9)
6cc0: 8bc1 andi a5,a5,16
6cc2: e8078ce3 beqz a5,6b5a <tcp_input+0x5a6>
6cc6: 4094 lw a3,0(s1)
6cc8: 000c5503 lhu a0,0(s8)
6ccc: 000aa583 lw a1,0(s5)
6cd0: 329c lbu a5,1(a3)
6cd2: 32b8 lbu a4,3(a3)
6cd4: 000b2603 lw a2,0(s6)
6cd8: 0006c883 lbu a7,0(a3)
6cdc: 0026c803 lbu a6,2(a3)
6ce0: 95aa add a1,a1,a0
6ce2: 00092503 lw a0,0(s2)
6ce6: 07a2 slli a5,a5,0x8
6ce8: 0722 slli a4,a4,0x8
6cea: 00c60693 addi a3,a2,12
6cee: 0117e7b3 or a5,a5,a7
6cf2: 01076733 or a4,a4,a6
6cf6: 0641 addi a2,a2,16
6cf8: 425000ef jal ra,791c <tcp_rst>
6cfc: bdb9 j 6b5a <tcp_input+0x5a6>
6cfe: 000cc783 lbu a5,0(s9)
6d02: 0107f713 andi a4,a5,16
6d06: c769 beqz a4,6dd0 <tcp_input+0x81c>
6d08: 00092503 lw a0,0(s2)
6d0c: 4878 lw a4,84(s0)
6d0e: fff50793 addi a5,a0,-1
6d12: 8f99 sub a5,a5,a4
6d14: 0807c663 bltz a5,6da0 <tcp_input+0x7ec>
6d18: 503c lw a5,96(s0)
6d1a: 40f507b3 sub a5,a0,a5
6d1e: 08f04163 bgtz a5,6da0 <tcp_input+0x7ec>
6d22: 4791 li a5,4
6d24: c81c sw a5,16(s0)
6d26: 501c lw a5,32(s0)
6d28: c78d beqz a5,6d52 <tcp_input+0x79e>
6d2a: 4c08 lw a0,24(s0)
6d2c: 4601 li a2,0
6d2e: 85a2 mv a1,s0
6d30: 9782 jalr a5
6d32: c105 beqz a0,6d52 <tcp_input+0x79e>
6d34: 4585 li a1,1
6d36: 8522 mv a0,s0
6d38: a8ffe0ef jal ra,57c6 <tcp_abandon>
6d3c: 004da503 lw a0,4(s11)
6d40: 000ba023 sw zero,0(s7)
6d44: 8c0508e3 beqz a0,6614 <tcp_input+0x60>
6d48: e67fd0ef jal ra,4bae <pbuf_free>
6d4c: 000da223 sw zero,4(s11)
6d50: b0d1 j 6614 <tcp_input+0x60>
6d52: 8522 mv a0,s0
6d54: 05a45483 lhu s1,90(s0)
6d58: e73fe0ef jal ra,5bca <tcp_receive>
6d5c: 07445783 lhu a5,116(s0)
6d60: c781 beqz a5,6d68 <tcp_input+0x7b4>
6d62: 17fd addi a5,a5,-1
6d64: 06f41a23 sh a5,116(s0)
6d68: 4705 li a4,1
6d6a: 04045783 lhu a5,64(s0)
6d6e: 00e49563 bne s1,a4,6d78 <tcp_input+0x7c4>
6d72: 0786 slli a5,a5,0x1
6d74: 07c2 slli a5,a5,0x10
6d76: 83c1 srli a5,a5,0x10
6d78: 04f41d23 sh a5,90(s0)
6d7c: 000a4783 lbu a5,0(s4)
6d80: 0207f793 andi a5,a5,32
6d84: dc078be3 beqz a5,6b5a <tcp_input+0x5a6>
6d88: 02644783 lbu a5,38(s0)
6d8c: 8522 mv a0,s0
6d8e: 0027e793 ori a5,a5,2
6d92: 02f40323 sb a5,38(s0)
6d96: 01f000ef jal ra,75b4 <tcp_output>
6d9a: 479d li a5,7
6d9c: c81c sw a5,16(s0)
6d9e: bb75 j 6b5a <tcp_input+0x5a6>
6da0: 4094 lw a3,0(s1)
6da2: 000b2603 lw a2,0(s6)
6da6: 000c5803 lhu a6,0(s8)
6daa: 329c lbu a5,1(a3)
6dac: 32b8 lbu a4,3(a3)
6dae: 0006c303 lbu t1,0(a3)
6db2: 0026c883 lbu a7,2(a3)
6db6: 000aa583 lw a1,0(s5)
6dba: 07a2 slli a5,a5,0x8
6dbc: 0722 slli a4,a4,0x8
6dbe: 00c60693 addi a3,a2,12
6dc2: 0067e7b3 or a5,a5,t1
6dc6: 01176733 or a4,a4,a7
6dca: 0641 addi a2,a2,16
6dcc: 95c2 add a1,a1,a6
6dce: b72d j 6cf8 <tcp_input+0x744>
6dd0: 8b89 andi a5,a5,2
6dd2: d80784e3 beqz a5,6b5a <tcp_input+0x5a6>
6dd6: 541c lw a5,40(s0)
6dd8: 000aa703 lw a4,0(s5)
6ddc: 17fd addi a5,a5,-1
6dde: d6e79ee3 bne a5,a4,6b5a <tcp_input+0x5a6>
6de2: 8522 mv a0,s0
6de4: 477000ef jal ra,7a5a <tcp_rexmit>
6de8: bb8d j 6b5a <tcp_input+0x5a6>
6dea: 8522 mv a0,s0
6dec: ddffe0ef jal ra,5bca <tcp_receive>
6df0: b771 j 6d7c <tcp_input+0x7c8>
6df2: 8522 mv a0,s0
6df4: dd7fe0ef jal ra,5bca <tcp_receive>
6df8: 000a4783 lbu a5,0(s4)
6dfc: 0207f793 andi a5,a5,32
6e00: c3c1 beqz a5,6e80 <tcp_input+0x8cc>
6e02: 000cc703 lbu a4,0(s9)
6e06: 02644783 lbu a5,38(s0)
6e0a: 8b41 andi a4,a4,16
6e0c: 0027e793 ori a5,a5,2
6e10: c32d beqz a4,6e72 <tcp_input+0x8be>
6e12: 5034 lw a3,96(s0)
6e14: 00092703 lw a4,0(s2)
6e18: 04e69d63 bne a3,a4,6e72 <tcp_input+0x8be>
6e1c: 02f40323 sb a5,38(s0)
6e20: 8522 mv a0,s0
6e22: 792000ef jal ra,75b4 <tcp_output>
6e26: 8522 mv a0,s0
6e28: c42fe0ef jal ra,526a <tcp_pcb_purge>
6e2c: 9081a783 lw a5,-1784(gp) # 20000128 <tcp_active_pcbs>
6e30: 00f41d63 bne s0,a5,6e4a <tcp_input+0x896>
6e34: 445c lw a5,12(s0)
6e36: 90f1a423 sw a5,-1784(gp) # 20000128 <tcp_active_pcbs>
6e3a: 47a9 li a5,10
6e3c: c81c sw a5,16(s0)
6e3e: 9201a703 lw a4,-1760(gp) # 20000140 <tcp_tw_pcbs>
6e42: 9281a023 sw s0,-1760(gp) # 20000140 <tcp_tw_pcbs>
6e46: c458 sw a4,12(s0)
6e48: bb09 j 6b5a <tcp_input+0x5a6>
6e4a: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
6e4e: 4681 li a3,0
6e50: e789 bnez a5,6e5a <tcp_input+0x8a6>
6e52: d6e5 beqz a3,6e3a <tcp_input+0x886>
6e54: 9001ae23 sw zero,-1764(gp) # 2000013c <tcp_tmp_pcb>
6e58: b7cd j 6e3a <tcp_input+0x886>
6e5a: 47d0 lw a2,12(a5)
6e5c: 00c41863 bne s0,a2,6e6c <tcp_input+0x8b8>
6e60: c299 beqz a3,6e66 <tcp_input+0x8b2>
6e62: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
6e66: 4458 lw a4,12(s0)
6e68: c7d8 sw a4,12(a5)
6e6a: bfc1 j 6e3a <tcp_input+0x886>
6e6c: 4685 li a3,1
6e6e: 87b2 mv a5,a2
6e70: b7c5 j 6e50 <tcp_input+0x89c>
6e72: 02f40323 sb a5,38(s0)
6e76: 8522 mv a0,s0
6e78: 73c000ef jal ra,75b4 <tcp_output>
6e7c: 47a1 li a5,8
6e7e: bf39 j 6d9c <tcp_input+0x7e8>
6e80: 000cc783 lbu a5,0(s9)
6e84: 8bc1 andi a5,a5,16
6e86: cc078ae3 beqz a5,6b5a <tcp_input+0x5a6>
6e8a: 5038 lw a4,96(s0)
6e8c: 00092783 lw a5,0(s2)
6e90: ccf715e3 bne a4,a5,6b5a <tcp_input+0x5a6>
6e94: 4799 li a5,6
6e96: b719 j 6d9c <tcp_input+0x7e8>
6e98: 8522 mv a0,s0
6e9a: d31fe0ef jal ra,5bca <tcp_receive>
6e9e: 000a4783 lbu a5,0(s4)
6ea2: 0207f793 andi a5,a5,32
6ea6: ca078ae3 beqz a5,6b5a <tcp_input+0x5a6>
6eaa: 02644783 lbu a5,38(s0)
6eae: 8522 mv a0,s0
6eb0: 0027e793 ori a5,a5,2
6eb4: 02f40323 sb a5,38(s0)
6eb8: 6fc000ef jal ra,75b4 <tcp_output>
6ebc: 8522 mv a0,s0
6ebe: bacfe0ef jal ra,526a <tcp_pcb_purge>
6ec2: 9081a783 lw a5,-1784(gp) # 20000128 <tcp_active_pcbs>
6ec6: f6f407e3 beq s0,a5,6e34 <tcp_input+0x880>
6eca: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
6ece: 4681 li a3,0
6ed0: d3c9 beqz a5,6e52 <tcp_input+0x89e>
6ed2: 47d0 lw a2,12(a5)
6ed4: f8c406e3 beq s0,a2,6e60 <tcp_input+0x8ac>
6ed8: 4685 li a3,1
6eda: 87b2 mv a5,a2
6edc: bfd5 j 6ed0 <tcp_input+0x91c>
6ede: 8522 mv a0,s0
6ee0: cebfe0ef jal ra,5bca <tcp_receive>
6ee4: 000cc783 lbu a5,0(s9)
6ee8: 8bc1 andi a5,a5,16
6eea: c60788e3 beqz a5,6b5a <tcp_input+0x5a6>
6eee: 5038 lw a4,96(s0)
6ef0: 00092783 lw a5,0(s2)
6ef4: c6f713e3 bne a4,a5,6b5a <tcp_input+0x5a6>
6ef8: 8522 mv a0,s0
6efa: b70fe0ef jal ra,526a <tcp_pcb_purge>
6efe: 9081a783 lw a5,-1784(gp) # 20000128 <tcp_active_pcbs>
6f02: f2f409e3 beq s0,a5,6e34 <tcp_input+0x880>
6f06: 90f1ae23 sw a5,-1764(gp) # 2000013c <tcp_tmp_pcb>
6f0a: 4681 li a3,0
6f0c: d3b9 beqz a5,6e52 <tcp_input+0x89e>
6f0e: 47d0 lw a2,12(a5)
6f10: f4c408e3 beq s0,a2,6e60 <tcp_input+0x8ac>
6f14: 4685 li a3,1
6f16: 87b2 mv a5,a2
6f18: bfd5 j 6f0c <tcp_input+0x958>
6f1a: 8522 mv a0,s0
6f1c: caffe0ef jal ra,5bca <tcp_receive>
6f20: 000cc783 lbu a5,0(s9)
6f24: 8bc1 andi a5,a5,16
6f26: c2078ae3 beqz a5,6b5a <tcp_input+0x5a6>
6f2a: 5038 lw a4,96(s0)
6f2c: 00092783 lw a5,0(s2)
6f30: c2f715e3 bne a4,a5,6b5a <tcp_input+0x5a6>
6f34: 000a4783 lbu a5,0(s4)
6f38: 0107e793 ori a5,a5,16
6f3c: 00fa0023 sb a5,0(s4)
6f40: b929 j 6b5a <tcp_input+0x5a6>
6f42: 8bc1 andi a5,a5,16
6f44: c785 beqz a5,6f6c <tcp_input+0x9b8>
6f46: 8522 mv a0,s0
6f48: ca3fb0ef jal ra,2bea <LwipRemoveTcpPcb>
6f4c: 85a2 mv a1,s0
6f4e: 90818513 addi a0,gp,-1784 # 20000128 <tcp_active_pcbs>
6f52: e20fe0ef jal ra,5572 <tcp_pcb_remove>
6f56: 4509 li a0,2
6f58: 85a2 mv a1,s0
6f5a: a83fd0ef jal ra,49dc <memp_free>
6f5e: 000d2503 lw a0,0(s10)
6f62: dc050de3 beqz a0,6d3c <tcp_input+0x788>
6f66: c49fd0ef jal ra,4bae <pbuf_free>
6f6a: bbc9 j 6d3c <tcp_input+0x788>
6f6c: 07445603 lhu a2,116(s0)
6f70: c619 beqz a2,6f7e <tcp_input+0x9ca>
6f72: 08c42783 lw a5,140(s0)
6f76: c781 beqz a5,6f7e <tcp_input+0x9ca>
6f78: 4c08 lw a0,24(s0)
6f7a: 85a2 mv a1,s0
6f7c: 9782 jalr a5
6f7e: 000d2603 lw a2,0(s10)
6f82: c60d beqz a2,6fac <tcp_input+0x9f8>
6f84: 000cc783 lbu a5,0(s9)
6f88: 8ba1 andi a5,a5,8
6f8a: c789 beqz a5,6f94 <tcp_input+0x9e0>
6f8c: 365c lbu a5,13(a2)
6f8e: 0017e793 ori a5,a5,1
6f92: b65c sb a5,13(a2)
6f94: 09042783 lw a5,144(s0)
6f98: 4681 li a3,0
6f9a: 85a2 mv a1,s0
6f9c: cb9d beqz a5,6fd2 <tcp_input+0xa1e>
6f9e: 4c08 lw a0,24(s0)
6fa0: 9782 jalr a5
6fa2: c509 beqz a0,6fac <tcp_input+0x9f8>
6fa4: 000d2783 lw a5,0(s10)
6fa8: 08f42423 sw a5,136(s0)
6fac: 000a4783 lbu a5,0(s4)
6fb0: 0207f793 andi a5,a5,32
6fb4: cb89 beqz a5,6fc6 <tcp_input+0xa12>
6fb6: 09042783 lw a5,144(s0)
6fba: 4681 li a3,0
6fbc: 4601 li a2,0
6fbe: 85a2 mv a1,s0
6fc0: cf89 beqz a5,6fda <tcp_input+0xa26>
6fc2: 4c08 lw a0,24(s0)
6fc4: 9782 jalr a5
6fc6: 8522 mv a0,s0
6fc8: 000ba023 sw zero,0(s7)
6fcc: 5e8000ef jal ra,75b4 <tcp_output>
6fd0: b3b5 j 6d3c <tcp_input+0x788>
6fd2: 4501 li a0,0
6fd4: ec2fe0ef jal ra,5696 <tcp_recv_null>
6fd8: b7e9 j 6fa2 <tcp_input+0x9ee>
6fda: 4501 li a0,0
6fdc: ebafe0ef jal ra,5696 <tcp_recv_null>
6fe0: b7dd j 6fc6 <tcp_input+0xa12>
00006fe2 <tcp_output_set_header.isra.0.constprop.1>:
tcp_output_set_header.isra.0.constprop.1():
6fe2: a0ef92ef jal t0,1f0 <__riscv_save_0>
6fe6: 892a mv s2,a0
6fe8: 2d4a lhu a0,28(a0)
6fea: 1141 addi sp,sp,-16
6fec: 842e mv s0,a1
6fee: c632 sw a2,12(sp)
6ff0: fcefc0ef jal ra,37be <htons>
6ff4: a008 sb a0,0(s0)
6ff6: 8121 srli a0,a0,0x8
6ff8: b008 sb a0,1(s0)
6ffa: 02495503 lhu a0,36(s2)
6ffe: fc0fc0ef jal ra,37be <htons>
7002: 4632 lw a2,12(sp)
7004: a028 sb a0,2(s0)
7006: 8121 srli a0,a0,0x8
7008: b028 sb a0,3(s0)
700a: 00865793 srli a5,a2,0x8
700e: 02892503 lw a0,40(s2)
7012: a050 sb a2,4(s0)
7014: b05c sb a5,5(s0)
7016: 01065793 srli a5,a2,0x10
701a: 8261 srli a2,a2,0x18
701c: b070 sb a2,7(s0)
701e: a07c sb a5,6(s0)
7020: fbafc0ef jal ra,37da <htonl>
7024: 00855793 srli a5,a0,0x8
7028: a408 sb a0,8(s0)
702a: b41c sb a5,9(s0)
702c: 3444 lbu s1,13(s0)
702e: 01055793 srli a5,a0,0x10
7032: 8161 srli a0,a0,0x18
7034: b428 sb a0,11(s0)
7036: 2448 lbu a0,12(s0)
7038: 04a2 slli s1,s1,0x8
703a: a43c sb a5,10(s0)
703c: 8cc9 or s1,s1,a0
703e: 6541 lui a0,0x10
7040: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x712c>
7044: f7afc0ef jal ra,37be <htons>
7048: 8ce9 and s1,s1,a0
704a: 4541 li a0,16
704c: f72fc0ef jal ra,37be <htons>
7050: 8d45 or a0,a0,s1
7052: 0542 slli a0,a0,0x10
7054: 8141 srli a0,a0,0x10
7056: a448 sb a0,12(s0)
7058: 8121 srli a0,a0,0x8
705a: b448 sb a0,13(s0)
705c: 02e95503 lhu a0,46(s2)
7060: f5efc0ef jal ra,37be <htons>
7064: 02e95783 lhu a5,46(s2)
7068: a468 sb a0,14(s0)
706a: 8121 srli a0,a0,0x8
706c: b468 sb a0,15(s0)
706e: 02f91b23 sh a5,54(s2)
7072: 345c lbu a5,13(s0)
7074: 2448 lbu a0,12(s0)
7076: 00040923 sb zero,18(s0)
707a: 07a2 slli a5,a5,0x8
707c: 000409a3 sb zero,19(s0)
7080: 8d5d or a0,a0,a5
7082: f4afc0ef jal ra,37cc <ntohs>
7086: 6795 lui a5,0x5
7088: 03f57513 andi a0,a0,63
708c: 8d5d or a0,a0,a5
708e: f30fc0ef jal ra,37be <htons>
7092: 02e95703 lhu a4,46(s2)
7096: 02892783 lw a5,40(s2)
709a: a448 sb a0,12(s0)
709c: 8121 srli a0,a0,0x8
709e: b448 sb a0,13(s0)
70a0: 00040823 sb zero,16(s0)
70a4: 000408a3 sb zero,17(s0)
70a8: 97ba add a5,a5,a4
70aa: 02f92823 sw a5,48(s2)
70ae: 8522 mv a0,s0
70b0: 0141 addi sp,sp,16
70b2: 962f906f j 214 <__riscv_restore_0>
000070b6 <tcp_enqueue>:
tcp_enqueue():
70b6: 90af92ef jal t0,1c0 <__riscv_save_12>
70ba: 7179 addi sp,sp,-48
70bc: c62e sw a1,12(sp)
70be: ca3a sw a4,20(sp)
70c0: 892a mv s2,a0
70c2: 8ab2 mv s5,a2
70c4: 8b36 mv s6,a3
70c6: 8dbe mv s11,a5
70c8: ee01 bnez a2,70e0 <tcp_enqueue+0x2a>
70ca: 0036f793 andi a5,a3,3
70ce: 00fde7b3 or a5,s11,a5
70d2: 5a59 li s4,-10
70d4: c391 beqz a5,70d8 <tcp_enqueue+0x22>
70d6: c18d beqz a1,70f8 <tcp_enqueue+0x42>
70d8: 8552 mv a0,s4
70da: 6145 addi sp,sp,48
70dc: 920f906f j 1fc <__riscv_restore_12>
70e0: 07655783 lhu a5,118(a0)
70e4: 00c7fa63 bgeu a5,a2,70f8 <tcp_enqueue+0x42>
70e8: 02694783 lbu a5,38(s2)
70ec: 5a7d li s4,-1
70ee: f807e793 ori a5,a5,-128
70f2: 02f90323 sb a5,38(s2)
70f6: b7cd j 70d8 <tcp_enqueue+0x22>
70f8: 002d9793 slli a5,s11,0x2
70fc: 002df713 andi a4,s11,2
7100: 8b91 andi a5,a5,4
7102: 46b1 li a3,12
7104: e311 bnez a4,7108 <tcp_enqueue+0x52>
7106: 4681 li a3,0
7108: 97b6 add a5,a5,a3
710a: c23e sw a5,4(sp)
710c: 07092783 lw a5,112(s2)
7110: 20008d37 lui s10,0x20008
7114: 83cd0713 addi a4,s10,-1988 # 2000783c <WCHCfg>
7118: c43e sw a5,8(sp)
711a: 471c lw a5,8(a4)
711c: 4358 lw a4,4(a4)
711e: 07895483 lhu s1,120(s2)
7122: 078a slli a5,a5,0x2
7124: 02e7d7b3 divu a5,a5,a4
7128: 83cd0d13 addi s10,s10,-1988
712c: faf4fee3 bgeu s1,a5,70e8 <tcp_enqueue+0x32>
7130: 6741 lui a4,0x10
7132: ffc70693 addi a3,a4,-4 # fffc <_data_lma+0x7168>
7136: fa96e9e3 bltu a3,s1,70e8 <tcp_enqueue+0x32>
713a: 4792 lw a5,4(sp)
713c: 8230 lhu a2,4(sp)
713e: fc070713 addi a4,a4,-64
7142: 8389 srli a5,a5,0x2
7144: 0ff7f793 andi a5,a5,255
7148: 0795 addi a5,a5,5
714a: c832 sw a2,16(sp)
714c: 4652 lw a2,20(sp)
714e: 07b2 slli a5,a5,0xc
7150: 07c2 slli a5,a5,0x10
7152: d23a sw a4,36(sp)
7154: 4cb2 lw s9,12(sp)
7156: 010b1713 slli a4,s6,0x10
715a: 83c1 srli a5,a5,0x10
715c: 8a05 andi a2,a2,1
715e: 8341 srli a4,a4,0x10
7160: cc3e sw a5,24(sp)
7162: 8bd6 mv s7,s5
7164: 4981 li s3,0
7166: 4781 li a5,0
7168: ce32 sw a2,28(sp)
716a: d036 sw a3,32(sp)
716c: d43a sw a4,40(sp)
716e: 04095a03 lhu s4,64(s2)
7172: 4712 lw a4,4(sp)
7174: 40ea0a33 sub s4,s4,a4
7178: 014bd363 bge s7,s4,717e <tcp_enqueue+0xc8>
717c: 8a5e mv s4,s7
717e: 4511 li a0,4
7180: d63e sw a5,44(sp)
7182: 010a1c13 slli s8,s4,0x10
7186: 837fd0ef jal ra,49bc <memp_malloc>
718a: 010c5c13 srli s8,s8,0x10
718e: 842a mv s0,a0
7190: 18050663 beqz a0,731c <tcp_enqueue+0x266>
7194: 00052023 sw zero,0(a0)
7198: 00052223 sw zero,4(a0)
719c: 14098463 beqz s3,72e4 <tcp_enqueue+0x22e>
71a0: 57b2 lw a5,44(sp)
71a2: c388 sw a0,0(a5)
71a4: 47f2 lw a5,28(sp)
71a6: 14078163 beqz a5,72e8 <tcp_enqueue+0x232>
71aa: 47c2 lw a5,16(sp)
71ac: 4601 li a2,0
71ae: 4501 li a0,0
71b0: 00fc05b3 add a1,s8,a5
71b4: 05c2 slli a1,a1,0x10
71b6: 81c1 srli a1,a1,0x10
71b8: a45fd0ef jal ra,4bfc <pbuf_alloc>
71bc: c048 sw a0,4(s0)
71be: 14050f63 beqz a0,731c <tcp_enqueue+0x266>
71c2: bd3fd0ef jal ra,4d94 <pbuf_clen>
71c6: 47b2 lw a5,12(sp)
71c8: 94aa add s1,s1,a0
71ca: 04c2 slli s1,s1,0x10
71cc: 80c1 srli s1,s1,0x10
71ce: cf81 beqz a5,71e6 <tcp_enqueue+0x130>
71d0: 405c lw a5,4(s0)
71d2: 85e6 mv a1,s9
71d4: 43c8 lw a0,4(a5)
71d6: 67c1 lui a5,0x10
71d8: 17fd addi a5,a5,-1
71da: 00fa7633 and a2,s4,a5
71de: 4792 lw a5,4(sp)
71e0: 953e add a0,a0,a5
71e2: 1d5010ef jal ra,8bb6 <memcpy>
71e6: 405c lw a5,4(s0)
71e8: 43dc lw a5,4(a5)
71ea: c41c sw a5,8(s0)
71ec: 008d2783 lw a5,8(s10)
71f0: 004d2703 lw a4,4(s10)
71f4: 078a slli a5,a5,0x2
71f6: 02e7d7b3 divu a5,a5,a4
71fa: 1297e163 bltu a5,s1,731c <tcp_enqueue+0x266>
71fe: 5782 lw a5,32(sp)
7200: 1097ee63 bltu a5,s1,731c <tcp_enqueue+0x266>
7204: 4048 lw a0,4(s0)
7206: 01841623 sh s8,12(s0)
720a: 45d1 li a1,20
720c: 935fd0ef jal ra,4b40 <pbuf_header>
7210: 10051663 bnez a0,731c <tcp_enqueue+0x266>
7214: 405c lw a5,4(s0)
7216: 01c95503 lhu a0,28(s2)
721a: 418b8bb3 sub s7,s7,s8
721e: 43dc lw a5,4(a5)
7220: 0bc2 slli s7,s7,0x10
7222: 010bdb93 srli s7,s7,0x10
7226: c81c sw a5,16(s0)
7228: d63e sw a5,44(sp)
722a: d94fc0ef jal ra,37be <htons>
722e: 57b2 lw a5,44(sp)
7230: a388 sb a0,0(a5)
7232: 8121 srli a0,a0,0x8
7234: b388 sb a0,1(a5)
7236: 481c lw a5,16(s0)
7238: 02495503 lhu a0,36(s2)
723c: d63e sw a5,44(sp)
723e: d80fc0ef jal ra,37be <htons>
7242: 57b2 lw a5,44(sp)
7244: a3a8 sb a0,2(a5)
7246: 8121 srli a0,a0,0x8
7248: b3a8 sb a0,3(a5)
724a: 481c lw a5,16(s0)
724c: 4522 lw a0,8(sp)
724e: d63e sw a5,44(sp)
7250: d8afc0ef jal ra,37da <htonl>
7254: 57b2 lw a5,44(sp)
7256: 00855713 srli a4,a0,0x8
725a: b3d8 sb a4,5(a5)
725c: 01055713 srli a4,a0,0x10
7260: a3f8 sb a4,6(a5)
7262: 4818 lw a4,16(s0)
7264: a3c8 sb a0,4(a5)
7266: 8161 srli a0,a0,0x18
7268: b3e8 sb a0,7(a5)
726a: 375c lbu a5,13(a4)
726c: 2748 lbu a0,12(a4)
726e: 00070923 sb zero,18(a4)
7272: 07a2 slli a5,a5,0x8
7274: 8fc9 or a5,a5,a0
7276: 5512 lw a0,36(sp)
7278: 000709a3 sb zero,19(a4)
727c: d63e sw a5,44(sp)
727e: d40fc0ef jal ra,37be <htons>
7282: 57b2 lw a5,44(sp)
7284: 8fe9 and a5,a5,a0
7286: 5522 lw a0,40(sp)
7288: d63e sw a5,44(sp)
728a: d34fc0ef jal ra,37be <htons>
728e: 57b2 lw a5,44(sp)
7290: 8d5d or a0,a0,a5
7292: 0542 slli a0,a0,0x10
7294: 481c lw a5,16(s0)
7296: 8141 srli a0,a0,0x10
7298: 00855713 srli a4,a0,0x8
729c: b7d8 sb a4,13(a5)
729e: a7c8 sb a0,12(a5)
72a0: 01b40723 sb s11,14(s0)
72a4: d28fc0ef jal ra,37cc <ntohs>
72a8: 481c lw a5,16(s0)
72aa: 03f57513 andi a0,a0,63
72ae: d63e sw a5,44(sp)
72b0: 47e2 lw a5,24(sp)
72b2: 8d5d or a0,a0,a5
72b4: d0afc0ef jal ra,37be <htons>
72b8: 57b2 lw a5,44(sp)
72ba: a7c8 sb a0,12(a5)
72bc: 8121 srli a0,a0,0x8
72be: b7c8 sb a0,13(a5)
72c0: 67c1 lui a5,0x10
72c2: 17fd addi a5,a5,-1
72c4: 00fa7a33 and s4,s4,a5
72c8: 47a2 lw a5,8(sp)
72ca: 9cd2 add s9,s9,s4
72cc: 97d2 add a5,a5,s4
72ce: c43e sw a5,8(sp)
72d0: 87a2 mv a5,s0
72d2: e80b9ee3 bnez s7,716e <tcp_enqueue+0xb8>
72d6: 07c92a03 lw s4,124(s2)
72da: 060a1963 bnez s4,734c <tcp_enqueue+0x296>
72de: 07392e23 sw s3,124(s2)
72e2: a251 j 7466 <tcp_enqueue+0x3b0>
72e4: 89aa mv s3,a0
72e6: bd7d j 71a4 <tcp_enqueue+0xee>
72e8: 45c2 lw a1,16(sp)
72ea: 4601 li a2,0
72ec: 4501 li a0,0
72ee: 90ffd0ef jal ra,4bfc <pbuf_alloc>
72f2: c048 sw a0,4(s0)
72f4: c505 beqz a0,731c <tcp_enqueue+0x266>
72f6: a9ffd0ef jal ra,4d94 <pbuf_clen>
72fa: 94aa add s1,s1,a0
72fc: 04c2 slli s1,s1,0x10
72fe: 80c1 srli s1,s1,0x10
7300: ee0b86e3 beqz s7,71ec <tcp_enqueue+0x136>
7304: 85e2 mv a1,s8
7306: 4605 li a2,1
7308: 450d li a0,3
730a: 8f3fd0ef jal ra,4bfc <pbuf_alloc>
730e: 85aa mv a1,a0
7310: 4048 lw a0,4(s0)
7312: e195 bnez a1,7336 <tcp_enqueue+0x280>
7314: 89bfd0ef jal ra,4bae <pbuf_free>
7318: 00042223 sw zero,4(s0)
731c: 02694783 lbu a5,38(s2)
7320: 5a7d li s4,-1
7322: f807e793 ori a5,a5,-128
7326: 02f90323 sb a5,38(s2)
732a: da0987e3 beqz s3,70d8 <tcp_enqueue+0x22>
732e: 854e mv a0,s3
7330: ed5fd0ef jal ra,5204 <tcp_segs_free>
7334: b355 j 70d8 <tcp_enqueue+0x22>
7336: 0195a223 sw s9,4(a1)
733a: 0485 addi s1,s1,1
733c: 04c2 slli s1,s1,0x10
733e: 01942423 sw s9,8(s0)
7342: 80c1 srli s1,s1,0x10
7344: a6dfd0ef jal ra,4db0 <pbuf_cat>
7348: b555 j 71ec <tcp_enqueue+0x136>
734a: 8a3e mv s4,a5
734c: 000a2783 lw a5,0(s4)
7350: ffed bnez a5,734a <tcp_enqueue+0x294>
7352: 010a2783 lw a5,16(s4)
7356: 00ca5b83 lhu s7,12(s4)
735a: 27c8 lbu a0,12(a5)
735c: 37dc lbu a5,13(a5)
735e: 07a2 slli a5,a5,0x8
7360: 8d5d or a0,a0,a5
7362: c6afc0ef jal ra,37cc <ntohs>
7366: 890d andi a0,a0,3
7368: 00a03533 snez a0,a0
736c: 955e add a0,a0,s7
736e: 18050563 beqz a0,74f8 <tcp_enqueue+0x442>
7372: 010a2783 lw a5,16(s4)
7376: 27c8 lbu a0,12(a5)
7378: 37dc lbu a5,13(a5)
737a: 07a2 slli a5,a5,0x8
737c: 8d5d or a0,a0,a5
737e: c4efc0ef jal ra,37cc <ntohs>
7382: 890d andi a0,a0,3
7384: 16051a63 bnez a0,74f8 <tcp_enqueue+0x442>
7388: 003b7793 andi a5,s6,3
738c: c781 beqz a5,7394 <tcp_enqueue+0x2de>
738e: 4785 li a5,1
7390: 16fb1463 bne s6,a5,74f8 <tcp_enqueue+0x442>
7394: 00c9d703 lhu a4,12(s3)
7398: 00ca5783 lhu a5,12(s4)
739c: 97ba add a5,a5,a4
739e: 04095703 lhu a4,64(s2)
73a2: 14f74b63 blt a4,a5,74f8 <tcp_enqueue+0x442>
73a6: 00ea4703 lbu a4,14(s4)
73aa: 00e9c783 lbu a5,14(s3)
73ae: 14f71563 bne a4,a5,74f8 <tcp_enqueue+0x442>
73b2: 010a2703 lw a4,16(s4)
73b6: 3348 lbu a0,5(a4)
73b8: 235c lbu a5,4(a4)
73ba: 0522 slli a0,a0,0x8
73bc: 8d5d or a0,a0,a5
73be: 237c lbu a5,6(a4)
73c0: 07c2 slli a5,a5,0x10
73c2: 8fc9 or a5,a5,a0
73c4: 3368 lbu a0,7(a4)
73c6: 0562 slli a0,a0,0x18
73c8: 8d5d or a0,a0,a5
73ca: c34fc0ef jal ra,37fe <ntohl>
73ce: 0109a703 lw a4,16(s3)
73d2: 00ca5b83 lhu s7,12(s4)
73d6: 235c lbu a5,4(a4)
73d8: 9baa add s7,s7,a0
73da: 3348 lbu a0,5(a4)
73dc: 0522 slli a0,a0,0x8
73de: 8d5d or a0,a0,a5
73e0: 237c lbu a5,6(a4)
73e2: 07c2 slli a5,a5,0x10
73e4: 8fc9 or a5,a5,a0
73e6: 3368 lbu a0,7(a4)
73e8: 0562 slli a0,a0,0x18
73ea: 8d5d or a0,a0,a5
73ec: c12fc0ef jal ra,37fe <ntohl>
73f0: 10ab9463 bne s7,a0,74f8 <tcp_enqueue+0x442>
73f4: 47c2 lw a5,16(sp)
73f6: 55b1 li a1,-20
73f8: 0049a503 lw a0,4(s3)
73fc: 8d9d sub a1,a1,a5
73fe: 05c2 slli a1,a1,0x10
7400: 85c1 srai a1,a1,0x10
7402: f3efd0ef jal ra,4b40 <pbuf_header>
7406: f0051be3 bnez a0,731c <tcp_enqueue+0x266>
740a: 0049a503 lw a0,4(s3)
740e: 253e lhu a5,10(a0)
7410: eb99 bnez a5,7426 <tcp_enqueue+0x370>
7412: 411c lw a5,0(a0)
7414: 14fd addi s1,s1,-1
7416: 04c2 slli s1,s1,0x10
7418: 00f9a223 sw a5,4(s3)
741c: 00052023 sw zero,0(a0)
7420: 80c1 srli s1,s1,0x10
7422: f8cfd0ef jal ra,4bae <pbuf_free>
7426: 001b7793 andi a5,s6,1
742a: c7cd beqz a5,74d4 <tcp_enqueue+0x41e>
742c: 010a2783 lw a5,16(s4)
7430: 00d7cb83 lbu s7,13(a5) # 1000d <_data_lma+0x7179>
7434: 27c8 lbu a0,12(a5)
7436: 0ba2 slli s7,s7,0x8
7438: 00abebb3 or s7,s7,a0
743c: 4505 li a0,1
743e: b80fc0ef jal ra,37be <htons>
7442: 010a2783 lw a5,16(s4)
7446: 00abe533 or a0,s7,a0
744a: 0542 slli a0,a0,0x10
744c: 8141 srli a0,a0,0x10
744e: a7c8 sb a0,12(a5)
7450: 8121 srli a0,a0,0x8
7452: b7c8 sb a0,13(a5)
7454: 00899563 bne s3,s0,745e <tcp_enqueue+0x3a8>
7458: 00ca5c03 lhu s8,12(s4)
745c: 8452 mv s0,s4
745e: 85ce mv a1,s3
7460: 4511 li a0,4
7462: d7afd0ef jal ra,49dc <memp_free>
7466: 003b7793 andi a5,s6,3
746a: c789 beqz a5,7474 <tcp_enqueue+0x3be>
746c: 0a85 addi s5,s5,1
746e: 0ac2 slli s5,s5,0x10
7470: 010ada93 srli s5,s5,0x10
7474: 001b7b13 andi s6,s6,1
7478: 000b0863 beqz s6,7488 <tcp_enqueue+0x3d2>
747c: 02694783 lbu a5,38(s2)
7480: 0207e793 ori a5,a5,32
7484: 02f90323 sb a5,38(s2)
7488: 07092783 lw a5,112(s2)
748c: 06991c23 sh s1,120(s2)
7490: 4a01 li s4,0
7492: 97d6 add a5,a5,s5
7494: 06f92823 sw a5,112(s2)
7498: 07695783 lhu a5,118(s2)
749c: 41578ab3 sub s5,a5,s5
74a0: 07591b23 sh s5,118(s2)
74a4: c20c0ae3 beqz s8,70d8 <tcp_enqueue+0x22>
74a8: 481c lw a5,16(s0)
74aa: c20787e3 beqz a5,70d8 <tcp_enqueue+0x22>
74ae: 4752 lw a4,20(sp)
74b0: 8b09 andi a4,a4,2
74b2: c20713e3 bnez a4,70d8 <tcp_enqueue+0x22>
74b6: 37c4 lbu s1,13(a5)
74b8: 27c8 lbu a0,12(a5)
74ba: 04a2 slli s1,s1,0x8
74bc: 8cc9 or s1,s1,a0
74be: 4521 li a0,8
74c0: afefc0ef jal ra,37be <htons>
74c4: 481c lw a5,16(s0)
74c6: 8d45 or a0,a0,s1
74c8: 0542 slli a0,a0,0x10
74ca: 8141 srli a0,a0,0x10
74cc: a7c8 sb a0,12(a5)
74ce: 8121 srli a0,a0,0x8
74d0: b7c8 sb a0,13(a5)
74d2: b119 j 70d8 <tcp_enqueue+0x22>
74d4: 0049a583 lw a1,4(s3)
74d8: 004a2503 lw a0,4(s4)
74dc: 8d5fd0ef jal ra,4db0 <pbuf_cat>
74e0: 00c9d703 lhu a4,12(s3)
74e4: 00ca5783 lhu a5,12(s4)
74e8: 97ba add a5,a5,a4
74ea: 00fa1623 sh a5,12(s4)
74ee: 0009a783 lw a5,0(s3)
74f2: 00fa2023 sw a5,0(s4)
74f6: bfb9 j 7454 <tcp_enqueue+0x39e>
74f8: 013a2023 sw s3,0(s4)
74fc: b7ad j 7466 <tcp_enqueue+0x3b0>
000074fe <tcp_send_ctrl>:
tcp_send_ctrl():
74fe: cf3f82ef jal t0,1f0 <__riscv_save_0>
7502: 86ae mv a3,a1
7504: 4781 li a5,0
7506: 4705 li a4,1
7508: 4601 li a2,0
750a: 4581 li a1,0
750c: babff0ef jal ra,70b6 <tcp_enqueue>
7510: d05f806f j 214 <__riscv_restore_0>
00007514 <tcp_write>:
tcp_write():
7514: 87aa mv a5,a0
7516: 4908 lw a0,16(a0)
7518: 471d li a4,7
751a: 00e50863 beq a0,a4,752a <tcp_write+0x16>
751e: ffe50813 addi a6,a0,-2
7522: 4709 li a4,2
7524: 5561 li a0,-8
7526: 01076e63 bltu a4,a6,7542 <tcp_write+0x2e>
752a: 4501 li a0,0
752c: ca19 beqz a2,7542 <tcp_write+0x2e>
752e: cc3f82ef jal t0,1f0 <__riscv_save_0>
7532: 8736 mv a4,a3
7534: 853e mv a0,a5
7536: 4681 li a3,0
7538: 4781 li a5,0
753a: b7dff0ef jal ra,70b6 <tcp_enqueue>
753e: cd7f806f j 214 <__riscv_restore_0>
7542: 8082 ret
00007544 <tcp_send_empty_ack>:
tcp_send_empty_ack():
7544: c93f82ef jal t0,1d6 <__riscv_save_4>
7548: 842a mv s0,a0
754a: 4601 li a2,0
754c: 45d1 li a1,20
754e: 4505 li a0,1
7550: eacfd0ef jal ra,4bfc <pbuf_alloc>
7554: cd31 beqz a0,75b0 <tcp_send_empty_ack+0x6c>
7556: 02644783 lbu a5,38(s0)
755a: 84aa mv s1,a0
755c: 5028 lw a0,96(s0)
755e: 9bf1 andi a5,a5,-4
7560: 02f40323 sb a5,38(s0)
7564: a76fc0ef jal ra,37da <htonl>
7568: 40cc lw a1,4(s1)
756a: 862a mv a2,a0
756c: 8522 mv a0,s0
756e: a75ff0ef jal ra,6fe2 <tcp_output_set_header.isra.0.constprop.1>
7572: 249a lhu a4,8(s1)
7574: 00440913 addi s2,s0,4
7578: 89aa mv s3,a0
757a: 4699 li a3,6
757c: 864a mv a2,s2
757e: 85a2 mv a1,s0
7580: 8526 mv a0,s1
7582: 6e3000ef jal ra,8464 <inet_chksum_pseudo>
7586: 00a98823 sb a0,16(s3)
758a: 8121 srli a0,a0,0x8
758c: 00a988a3 sb a0,17(s3)
7590: 2438 lbu a4,10(s0)
7592: 3434 lbu a3,11(s0)
7594: 4799 li a5,6
7596: 864a mv a2,s2
7598: 85a2 mv a1,s0
759a: 8526 mv a0,s1
759c: eaefc0ef jal ra,3c4a <ip_output>
75a0: 8526 mv a0,s1
75a2: e0cfd0ef jal ra,4bae <pbuf_free>
75a6: 4501 li a0,0
75a8: 020403a3 sb zero,39(s0)
75ac: c5ff806f j 20a <__riscv_restore_4>
75b0: 5579 li a0,-2
75b2: bfed j 75ac <tcp_send_empty_ack+0x68>
000075b4 <tcp_output>:
tcp_output():
75b4: 93c1a783 lw a5,-1732(gp) # 2000015c <tcp_input_pcb>
75b8: 36a78063 beq a5,a0,7918 <tcp_output+0x364>
75bc: c05f82ef jal t0,1c0 <__riscv_save_12>
75c0: 06455783 lhu a5,100(a0)
75c4: 05a55a03 lhu s4,90(a0)
75c8: 0147f363 bgeu a5,s4,75ce <tcp_output+0x1a>
75cc: 8a3e mv s4,a5
75ce: 02654783 lbu a5,38(a0)
75d2: 0a42 slli s4,s4,0x10
75d4: 842a mv s0,a0
75d6: 8b89 andi a5,a5,2
75d8: 010a5a13 srli s4,s4,0x10
75dc: 5d64 lw s1,124(a0)
75de: cb95 beqz a5,7612 <tcp_output+0x5e>
75e0: e491 bnez s1,75ec <tcp_output+0x38>
75e2: 8522 mv a0,s0
75e4: f61ff0ef jal ra,7544 <tcp_send_empty_ack>
75e8: c15f806f j 1fc <__riscv_restore_12>
75ec: 4898 lw a4,16(s1)
75ee: 3348 lbu a0,5(a4)
75f0: 235c lbu a5,4(a4)
75f2: 0522 slli a0,a0,0x8
75f4: 8d5d or a0,a0,a5
75f6: 237c lbu a5,6(a4)
75f8: 07c2 slli a5,a5,0x10
75fa: 8fc9 or a5,a5,a0
75fc: 3368 lbu a0,7(a4)
75fe: 0562 slli a0,a0,0x18
7600: 8d5d or a0,a0,a5
7602: 9fcfc0ef jal ra,37fe <ntohl>
7606: 24de lhu a5,12(s1)
7608: 4878 lw a4,84(s0)
760a: 8f99 sub a5,a5,a4
760c: 953e add a0,a0,a5
760e: fcaa6ae3 bltu s4,a0,75e2 <tcp_output+0x2e>
7612: 08042983 lw s3,128(s0)
7616: 08099663 bnez s3,76a2 <tcp_output+0xee>
761a: 20008ab7 lui s5,0x20008
761e: 4b89 li s7,2
7620: 83ca8a93 addi s5,s5,-1988 # 2000783c <WCHCfg>
7624: 02040c37 lui s8,0x2040
7628: 00440b13 addi s6,s0,4
762c: 5cfd li s9,-1
762e: c0ad beqz s1,7690 <tcp_output+0xdc>
7630: 4898 lw a4,16(s1)
7632: 3348 lbu a0,5(a4)
7634: 235c lbu a5,4(a4)
7636: 0522 slli a0,a0,0x8
7638: 8d5d or a0,a0,a5
763a: 237c lbu a5,6(a4)
763c: 07c2 slli a5,a5,0x10
763e: 8fc9 or a5,a5,a0
7640: 3368 lbu a0,7(a4)
7642: 0562 slli a0,a0,0x18
7644: 8d5d or a0,a0,a5
7646: 9b8fc0ef jal ra,37fe <ntohl>
764a: 24de lhu a5,12(s1)
764c: 4878 lw a4,84(s0)
764e: 8f99 sub a5,a5,a4
7650: 953e add a0,a0,a5
7652: 04aa7c63 bgeu s4,a0,76aa <tcp_output+0xf6>
7656: 0b044783 lbu a5,176(s0)
765a: eb9d bnez a5,7690 <tcp_output+0xdc>
765c: 4898 lw a4,16(s1)
765e: 3348 lbu a0,5(a4)
7660: 235c lbu a5,4(a4)
7662: 0522 slli a0,a0,0x8
7664: 8d5d or a0,a0,a5
7666: 237c lbu a5,6(a4)
7668: 07c2 slli a5,a5,0x10
766a: 8fc9 or a5,a5,a0
766c: 3368 lbu a0,7(a4)
766e: 0562 slli a0,a0,0x18
7670: 8d5d or a0,a0,a5
7672: 98cfc0ef jal ra,37fe <ntohl>
7676: 24de lhu a5,12(s1)
7678: 4878 lw a4,84(s0)
767a: 8f99 sub a5,a5,a4
767c: 953e add a0,a0,a5
767e: 06445783 lhu a5,100(s0)
7682: 00a7f763 bgeu a5,a0,7690 <tcp_output+0xdc>
7686: 4785 li a5,1
7688: 0a042623 sw zero,172(s0)
768c: 0af40823 sb a5,176(s0)
7690: 02644783 lbu a5,38(s0)
7694: 4501 li a0,0
7696: 07f7f793 andi a5,a5,127
769a: 02f40323 sb a5,38(s0)
769e: b7a9 j 75e8 <tcp_output+0x34>
76a0: 89be mv s3,a5
76a2: 0009a783 lw a5,0(s3)
76a6: ffed bnez a5,76a0 <tcp_output+0xec>
76a8: bf8d j 761a <tcp_output+0x66>
76aa: 08042783 lw a5,128(s0)
76ae: c395 beqz a5,76d2 <tcp_output+0x11e>
76b0: 02644783 lbu a5,38(s0)
76b4: 0447f713 andi a4,a5,68
76b8: ef09 bnez a4,76d2 <tcp_output+0x11e>
76ba: 5c78 lw a4,124(s0)
76bc: cb01 beqz a4,76cc <tcp_output+0x118>
76be: 4314 lw a3,0(a4)
76c0: ea89 bnez a3,76d2 <tcp_output+0x11e>
76c2: 2756 lhu a3,12(a4)
76c4: 04045703 lhu a4,64(s0)
76c8: 00e6f563 bgeu a3,a4,76d2 <tcp_output+0x11e>
76cc: 0a07f793 andi a5,a5,160
76d0: d3d9 beqz a5,7656 <tcp_output+0xa2>
76d2: 409c lw a5,0(s1)
76d4: dc7c sw a5,124(s0)
76d6: 481c lw a5,16(s0)
76d8: 03778963 beq a5,s7,770a <tcp_output+0x156>
76dc: 489c lw a5,16(s1)
76de: 00d7c903 lbu s2,13(a5)
76e2: 27c8 lbu a0,12(a5)
76e4: 0922 slli s2,s2,0x8
76e6: 00a96933 or s2,s2,a0
76ea: 4541 li a0,16
76ec: 8d2fc0ef jal ra,37be <htons>
76f0: 489c lw a5,16(s1)
76f2: 00a96533 or a0,s2,a0
76f6: 0542 slli a0,a0,0x10
76f8: 8141 srli a0,a0,0x10
76fa: a7c8 sb a0,12(a5)
76fc: 8121 srli a0,a0,0x8
76fe: b7c8 sb a0,13(a5)
7700: 02644783 lbu a5,38(s0)
7704: 9bf1 andi a5,a5,-4
7706: 02f40323 sb a5,38(s0)
770a: 5408 lw a0,40(s0)
770c: 0104a903 lw s2,16(s1)
7710: 8cafc0ef jal ra,37da <htonl>
7714: 00855793 srli a5,a0,0x8
7718: 00a90423 sb a0,8(s2)
771c: 00f904a3 sb a5,9(s2)
7720: 01055793 srli a5,a0,0x10
7724: 8161 srli a0,a0,0x18
7726: 00a905a3 sb a0,11(s2)
772a: 346a lhu a0,46(s0)
772c: 00f90523 sb a5,10(s2)
7730: 0104a903 lw s2,16(s1)
7734: 88afc0ef jal ra,37be <htons>
7738: 347a lhu a4,46(s0)
773a: 541c lw a5,40(s0)
773c: 00a90723 sb a0,14(s2)
7740: 8121 srli a0,a0,0x8
7742: 00a907a3 sb a0,15(s2)
7746: 97ba add a5,a5,a4
7748: b87a sh a4,54(s0)
774a: d81c sw a5,48(s0)
774c: 24fc lbu a5,14(s1)
774e: 8b85 andi a5,a5,1
7750: cb99 beqz a5,7766 <tcp_output+0x1b2>
7752: 004aa503 lw a0,4(s5)
7756: 0104a903 lw s2,16(s1)
775a: 00ac6533 or a0,s8,a0
775e: 87cfc0ef jal ra,37da <htonl>
7762: 00a92a23 sw a0,20(s2)
7766: 401c lw a5,0(s0)
7768: e799 bnez a5,7776 <tcp_output+0x1c2>
776a: 855a mv a0,s6
776c: 89efc0ef jal ra,380a <ip_route>
7770: c559 beqz a0,77fe <tcp_output+0x24a>
7772: 415c lw a5,4(a0)
7774: c01c sw a5,0(s0)
7776: 03e41783 lh a5,62(s0)
777a: 01979463 bne a5,s9,7782 <tcp_output+0x1ce>
777e: 02041f23 sh zero,62(s0)
7782: 407c lw a5,68(s0)
7784: e395 bnez a5,77a8 <tcp_output+0x1f4>
7786: 9141a783 lw a5,-1772(gp) # 20000134 <tcp_ticks>
778a: 4898 lw a4,16(s1)
778c: c07c sw a5,68(s0)
778e: 3348 lbu a0,5(a4)
7790: 235c lbu a5,4(a4)
7792: 0522 slli a0,a0,0x8
7794: 8d5d or a0,a0,a5
7796: 237c lbu a5,6(a4)
7798: 07c2 slli a5,a5,0x10
779a: 8fc9 or a5,a5,a0
779c: 3368 lbu a0,7(a4)
779e: 0562 slli a0,a0,0x18
77a0: 8d5d or a0,a0,a5
77a2: 85cfc0ef jal ra,37fe <ntohl>
77a6: c428 sw a0,72(s0)
77a8: 40c8 lw a0,4(s1)
77aa: 0104a903 lw s2,16(s1)
77ae: 4699 li a3,6
77b0: 4158 lw a4,4(a0)
77b2: 01252223 sw s2,4(a0)
77b6: 865a mv a2,s6
77b8: 40e90733 sub a4,s2,a4
77bc: 01071793 slli a5,a4,0x10
77c0: 253a lhu a4,10(a0)
77c2: 83c1 srli a5,a5,0x10
77c4: 85a2 mv a1,s0
77c6: 8f1d sub a4,a4,a5
77c8: a53a sh a4,10(a0)
77ca: 251a lhu a4,8(a0)
77cc: 8f1d sub a4,a4,a5
77ce: 0742 slli a4,a4,0x10
77d0: 8341 srli a4,a4,0x10
77d2: a51a sh a4,8(a0)
77d4: 00090823 sb zero,16(s2)
77d8: 000908a3 sb zero,17(s2)
77dc: 489000ef jal ra,8464 <inet_chksum_pseudo>
77e0: 00a90823 sb a0,16(s2)
77e4: 8121 srli a0,a0,0x8
77e6: 00a908a3 sb a0,17(s2)
77ea: 2438 lbu a4,10(s0)
77ec: 3434 lbu a3,11(s0)
77ee: 40c8 lw a0,4(s1)
77f0: 4799 li a5,6
77f2: 865a mv a2,s6
77f4: 85a2 mv a1,s0
77f6: c54fc0ef jal ra,3c4a <ip_output>
77fa: 020403a3 sb zero,39(s0)
77fe: 4898 lw a4,16(s1)
7800: 3348 lbu a0,5(a4)
7802: 235c lbu a5,4(a4)
7804: 0522 slli a0,a0,0x8
7806: 8d5d or a0,a0,a5
7808: 237c lbu a5,6(a4)
780a: 07c2 slli a5,a5,0x10
780c: 8fc9 or a5,a5,a0
780e: 3368 lbu a0,7(a4)
7810: 0562 slli a0,a0,0x18
7812: 8d5d or a0,a0,a5
7814: febfb0ef jal ra,37fe <ntohl>
7818: 489c lw a5,16(s1)
781a: 892a mv s2,a0
781c: 00c4dd83 lhu s11,12(s1)
7820: 27c8 lbu a0,12(a5)
7822: 37dc lbu a5,13(a5)
7824: 07a2 slli a5,a5,0x8
7826: 8d5d or a0,a0,a5
7828: fa5fb0ef jal ra,37cc <ntohs>
782c: 890d andi a0,a0,3
782e: 00a03533 snez a0,a0
7832: 503c lw a5,96(s0)
7834: 956e add a0,a0,s11
7836: 954a add a0,a0,s2
7838: 8f89 sub a5,a5,a0
783a: 0007d363 bgez a5,7840 <tcp_output+0x28c>
783e: d028 sw a0,96(s0)
7840: 489c lw a5,16(s1)
7842: 00c4d903 lhu s2,12(s1)
7846: 27c8 lbu a0,12(a5)
7848: 37dc lbu a5,13(a5)
784a: 07a2 slli a5,a5,0x8
784c: 8d5d or a0,a0,a5
784e: f7ffb0ef jal ra,37cc <ntohs>
7852: 890d andi a0,a0,3
7854: 00a03533 snez a0,a0
7858: 954a add a0,a0,s2
785a: c95d beqz a0,7910 <tcp_output+0x35c>
785c: 08042783 lw a5,128(s0)
7860: 0004a023 sw zero,0(s1)
7864: e789 bnez a5,786e <tcp_output+0x2ba>
7866: 08942023 sw s1,128(s0)
786a: 89a6 mv s3,s1
786c: a899 j 78c2 <tcp_output+0x30e>
786e: 4898 lw a4,16(s1)
7870: 3348 lbu a0,5(a4)
7872: 235c lbu a5,4(a4)
7874: 0522 slli a0,a0,0x8
7876: 8d5d or a0,a0,a5
7878: 237c lbu a5,6(a4)
787a: 07c2 slli a5,a5,0x10
787c: 8fc9 or a5,a5,a0
787e: 3368 lbu a0,7(a4)
7880: 0562 slli a0,a0,0x18
7882: 8d5d or a0,a0,a5
7884: f7bfb0ef jal ra,37fe <ntohl>
7888: 0109a703 lw a4,16(s3)
788c: 892a mv s2,a0
788e: 3348 lbu a0,5(a4)
7890: 235c lbu a5,4(a4)
7892: 0522 slli a0,a0,0x8
7894: 8d5d or a0,a0,a5
7896: 237c lbu a5,6(a4)
7898: 07c2 slli a5,a5,0x10
789a: 8fc9 or a5,a5,a0
789c: 3368 lbu a0,7(a4)
789e: 0562 slli a0,a0,0x18
78a0: 8d5d or a0,a0,a5
78a2: f5dfb0ef jal ra,37fe <ntohl>
78a6: 40a90533 sub a0,s2,a0
78aa: 06055063 bgez a0,790a <tcp_output+0x356>
78ae: 08040913 addi s2,s0,128
78b2: 00092783 lw a5,0(s2)
78b6: eb81 bnez a5,78c6 <tcp_output+0x312>
78b8: 00092783 lw a5,0(s2)
78bc: c09c sw a5,0(s1)
78be: 00992023 sw s1,0(s2)
78c2: 5c64 lw s1,124(s0)
78c4: b3ad j 762e <tcp_output+0x7a>
78c6: 4b98 lw a4,16(a5)
78c8: 3348 lbu a0,5(a4)
78ca: 235c lbu a5,4(a4)
78cc: 0522 slli a0,a0,0x8
78ce: 8d5d or a0,a0,a5
78d0: 237c lbu a5,6(a4)
78d2: 07c2 slli a5,a5,0x10
78d4: 8fc9 or a5,a5,a0
78d6: 3368 lbu a0,7(a4)
78d8: 0562 slli a0,a0,0x18
78da: 8d5d or a0,a0,a5
78dc: f23fb0ef jal ra,37fe <ntohl>
78e0: 4898 lw a4,16(s1)
78e2: 8daa mv s11,a0
78e4: 3348 lbu a0,5(a4)
78e6: 235c lbu a5,4(a4)
78e8: 0522 slli a0,a0,0x8
78ea: 8d5d or a0,a0,a5
78ec: 237c lbu a5,6(a4)
78ee: 07c2 slli a5,a5,0x10
78f0: 8fc9 or a5,a5,a0
78f2: 3368 lbu a0,7(a4)
78f4: 0562 slli a0,a0,0x18
78f6: 8d5d or a0,a0,a5
78f8: f07fb0ef jal ra,37fe <ntohl>
78fc: 40ad8533 sub a0,s11,a0
7900: fa055ce3 bgez a0,78b8 <tcp_output+0x304>
7904: 00092903 lw s2,0(s2)
7908: b76d j 78b2 <tcp_output+0x2fe>
790a: 0099a023 sw s1,0(s3)
790e: bfb1 j 786a <tcp_output+0x2b6>
7910: 8526 mv a0,s1
7912: 8c9fd0ef jal ra,51da <tcp_seg_free>
7916: b775 j 78c2 <tcp_output+0x30e>
7918: 4501 li a0,0
791a: 8082 ret
0000791c <tcp_rst>:
tcp_rst():
791c: 8bbf82ef jal t0,1d6 <__riscv_save_4>
7920: 1141 addi sp,sp,-16
7922: 8aaa mv s5,a0
7924: 84ae mv s1,a1
7926: 89b2 mv s3,a2
7928: 45d1 li a1,20
792a: 4601 li a2,0
792c: 4505 li a0,1
792e: 8a36 mv s4,a3
7930: c63a sw a4,12(sp)
7932: 8b3e mv s6,a5
7934: ac8fd0ef jal ra,4bfc <pbuf_alloc>
7938: 0e050363 beqz a0,7a1e <tcp_rst+0x102>
793c: 4732 lw a4,12(sp)
793e: 4140 lw s0,4(a0)
7940: 892a mv s2,a0
7942: 853a mv a0,a4
7944: e7bfb0ef jal ra,37be <htons>
7948: a008 sb a0,0(s0)
794a: 8121 srli a0,a0,0x8
794c: b008 sb a0,1(s0)
794e: 855a mv a0,s6
7950: e6ffb0ef jal ra,37be <htons>
7954: a028 sb a0,2(s0)
7956: 8121 srli a0,a0,0x8
7958: b028 sb a0,3(s0)
795a: 8556 mv a0,s5
795c: e7ffb0ef jal ra,37da <htonl>
7960: 00855793 srli a5,a0,0x8
7964: a048 sb a0,4(s0)
7966: b05c sb a5,5(s0)
7968: 01055793 srli a5,a0,0x10
796c: 8161 srli a0,a0,0x18
796e: a07c sb a5,6(s0)
7970: b068 sb a0,7(s0)
7972: 8526 mv a0,s1
7974: e67fb0ef jal ra,37da <htonl>
7978: 00855793 srli a5,a0,0x8
797c: a408 sb a0,8(s0)
797e: b41c sb a5,9(s0)
7980: 3444 lbu s1,13(s0)
7982: 01055793 srli a5,a0,0x10
7986: 8161 srli a0,a0,0x18
7988: b428 sb a0,11(s0)
798a: 2448 lbu a0,12(s0)
798c: 04a2 slli s1,s1,0x8
798e: a43c sb a5,10(s0)
7990: 8cc9 or s1,s1,a0
7992: 6541 lui a0,0x10
7994: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x712c>
7998: e27fb0ef jal ra,37be <htons>
799c: 8ce9 and s1,s1,a0
799e: 4551 li a0,20
79a0: e1ffb0ef jal ra,37be <htons>
79a4: 8d45 or a0,a0,s1
79a6: 0542 slli a0,a0,0x10
79a8: 8141 srli a0,a0,0x10
79aa: 200087b7 lui a5,0x20008
79ae: a448 sb a0,12(s0)
79b0: 8121 srli a0,a0,0x8
79b2: b448 sb a0,13(s0)
79b4: 8407d503 lhu a0,-1984(a5) # 20007840 <WCHCfg+0x4>
79b8: e07fb0ef jal ra,37be <htons>
79bc: a468 sb a0,14(s0)
79be: 345c lbu a5,13(s0)
79c0: 8121 srli a0,a0,0x8
79c2: b468 sb a0,15(s0)
79c4: 2448 lbu a0,12(s0)
79c6: 07a2 slli a5,a5,0x8
79c8: 00040923 sb zero,18(s0)
79cc: 8d5d or a0,a0,a5
79ce: 000409a3 sb zero,19(s0)
79d2: dfbfb0ef jal ra,37cc <ntohs>
79d6: 6795 lui a5,0x5
79d8: 03f57513 andi a0,a0,63
79dc: 8d5d or a0,a0,a5
79de: de1fb0ef jal ra,37be <htons>
79e2: 00895703 lhu a4,8(s2)
79e6: a448 sb a0,12(s0)
79e8: 8121 srli a0,a0,0x8
79ea: b448 sb a0,13(s0)
79ec: 4699 li a3,6
79ee: 8652 mv a2,s4
79f0: 85ce mv a1,s3
79f2: 00040823 sb zero,16(s0)
79f6: 000408a3 sb zero,17(s0)
79fa: 854a mv a0,s2
79fc: 269000ef jal ra,8464 <inet_chksum_pseudo>
7a00: a808 sb a0,16(s0)
7a02: 8121 srli a0,a0,0x8
7a04: b808 sb a0,17(s0)
7a06: 4799 li a5,6
7a08: 4701 li a4,0
7a0a: 08000693 li a3,128
7a0e: 8652 mv a2,s4
7a10: 85ce mv a1,s3
7a12: 854a mv a0,s2
7a14: a36fc0ef jal ra,3c4a <ip_output>
7a18: 854a mv a0,s2
7a1a: 994fd0ef jal ra,4bae <pbuf_free>
7a1e: 0141 addi sp,sp,16
7a20: feaf806f j 20a <__riscv_restore_4>
00007a24 <tcp_rexmit_rto>:
tcp_rexmit_rto():
7a24: 08052783 lw a5,128(a0)
7a28: cb85 beqz a5,7a58 <tcp_rexmit_rto+0x34>
7a2a: fc6f82ef jal t0,1f0 <__riscv_save_0>
7a2e: 873e mv a4,a5
7a30: 4314 lw a3,0(a4)
7a32: e28d bnez a3,7a54 <tcp_rexmit_rto+0x30>
7a34: 5d74 lw a3,124(a0)
7a36: c314 sw a3,0(a4)
7a38: dd7c sw a5,124(a0)
7a3a: 05254783 lbu a5,82(a0)
7a3e: 08052023 sw zero,128(a0)
7a42: 04052223 sw zero,68(a0)
7a46: 0785 addi a5,a5,1
7a48: 04f50923 sb a5,82(a0)
7a4c: b69ff0ef jal ra,75b4 <tcp_output>
7a50: fc4f806f j 214 <__riscv_restore_0>
7a54: 8736 mv a4,a3
7a56: bfe9 j 7a30 <tcp_rexmit_rto+0xc>
7a58: 8082 ret
00007a5a <tcp_rexmit>:
tcp_rexmit():
7a5a: f7cf82ef jal t0,1d6 <__riscv_save_4>
7a5e: 08052483 lw s1,128(a0)
7a62: c495 beqz s1,7a8e <tcp_rexmit+0x34>
7a64: 409c lw a5,0(s1)
7a66: 842a mv s0,a0
7a68: 07c50913 addi s2,a0,124
7a6c: 08f52023 sw a5,128(a0)
7a70: 00092783 lw a5,0(s2)
7a74: ef99 bnez a5,7a92 <tcp_rexmit+0x38>
7a76: 00092783 lw a5,0(s2)
7a7a: c09c sw a5,0(s1)
7a7c: 00992023 sw s1,0(s2)
7a80: 05244783 lbu a5,82(s0)
7a84: 04042223 sw zero,68(s0)
7a88: 0785 addi a5,a5,1
7a8a: 04f40923 sb a5,82(s0)
7a8e: f7cf806f j 20a <__riscv_restore_4>
7a92: 4b98 lw a4,16(a5)
7a94: 3348 lbu a0,5(a4)
7a96: 235c lbu a5,4(a4)
7a98: 0522 slli a0,a0,0x8
7a9a: 8d5d or a0,a0,a5
7a9c: 237c lbu a5,6(a4)
7a9e: 07c2 slli a5,a5,0x10
7aa0: 8fc9 or a5,a5,a0
7aa2: 3368 lbu a0,7(a4)
7aa4: 0562 slli a0,a0,0x18
7aa6: 8d5d or a0,a0,a5
7aa8: d57fb0ef jal ra,37fe <ntohl>
7aac: 4898 lw a4,16(s1)
7aae: 89aa mv s3,a0
7ab0: 3348 lbu a0,5(a4)
7ab2: 235c lbu a5,4(a4)
7ab4: 0522 slli a0,a0,0x8
7ab6: 8d5d or a0,a0,a5
7ab8: 237c lbu a5,6(a4)
7aba: 07c2 slli a5,a5,0x10
7abc: 8fc9 or a5,a5,a0
7abe: 3368 lbu a0,7(a4)
7ac0: 0562 slli a0,a0,0x18
7ac2: 8d5d or a0,a0,a5
7ac4: d3bfb0ef jal ra,37fe <ntohl>
7ac8: 40a98533 sub a0,s3,a0
7acc: fa0555e3 bgez a0,7a76 <tcp_rexmit+0x1c>
7ad0: 00092903 lw s2,0(s2)
7ad4: bf71 j 7a70 <tcp_rexmit+0x16>
00007ad6 <tcp_rexmit_fast>:
tcp_rexmit_fast():
7ad6: 08052783 lw a5,128(a0)
7ada: cfb1 beqz a5,7b36 <tcp_rexmit_fast+0x60>
7adc: f14f82ef jal t0,1f0 <__riscv_save_0>
7ae0: 02654783 lbu a5,38(a0)
7ae4: 842a mv s0,a0
7ae6: 8b91 andi a5,a5,4
7ae8: e7a9 bnez a5,7b32 <tcp_rexmit_fast+0x5c>
7aea: f71ff0ef jal ra,7a5a <tcp_rexmit>
7aee: 05a45683 lhu a3,90(s0)
7af2: 06445783 lhu a5,100(s0)
7af6: 0016d713 srli a4,a3,0x1
7afa: 00d7f463 bgeu a5,a3,7b02 <tcp_rexmit_fast+0x2c>
7afe: 0017d713 srli a4,a5,0x1
7b02: 04045783 lhu a5,64(s0)
7b06: 04e41e23 sh a4,92(s0)
7b0a: 00179693 slli a3,a5,0x1
7b0e: 00d75463 bge a4,a3,7b16 <tcp_rexmit_fast+0x40>
7b12: 04d41e23 sh a3,92(s0)
7b16: 470d li a4,3
7b18: 02e787b3 mul a5,a5,a4
7b1c: 05c45703 lhu a4,92(s0)
7b20: 97ba add a5,a5,a4
7b22: 04f41d23 sh a5,90(s0)
7b26: 02644783 lbu a5,38(s0)
7b2a: 0047e793 ori a5,a5,4
7b2e: 02f40323 sb a5,38(s0)
7b32: ee2f806f j 214 <__riscv_restore_0>
7b36: 8082 ret
00007b38 <tcp_keepalive>:
tcp_keepalive():
7b38: e9ef82ef jal t0,1d6 <__riscv_save_4>
7b3c: 84aa mv s1,a0
7b3e: 4601 li a2,0
7b40: 45d1 li a1,20
7b42: 4505 li a0,1
7b44: 8b8fd0ef jal ra,4bfc <pbuf_alloc>
7b48: c529 beqz a0,7b92 <tcp_keepalive+0x5a>
7b4a: 842a mv s0,a0
7b4c: 50a8 lw a0,96(s1)
7b4e: 00448913 addi s2,s1,4
7b52: 157d addi a0,a0,-1
7b54: c87fb0ef jal ra,37da <htonl>
7b58: 404c lw a1,4(s0)
7b5a: 862a mv a2,a0
7b5c: 8526 mv a0,s1
7b5e: c84ff0ef jal ra,6fe2 <tcp_output_set_header.isra.0.constprop.1>
7b62: 241a lhu a4,8(s0)
7b64: 89aa mv s3,a0
7b66: 4699 li a3,6
7b68: 864a mv a2,s2
7b6a: 85a6 mv a1,s1
7b6c: 8522 mv a0,s0
7b6e: 0f7000ef jal ra,8464 <inet_chksum_pseudo>
7b72: 00a98823 sb a0,16(s3)
7b76: 8121 srli a0,a0,0x8
7b78: 00a988a3 sb a0,17(s3)
7b7c: 34b4 lbu a3,11(s1)
7b7e: 4799 li a5,6
7b80: 4701 li a4,0
7b82: 864a mv a2,s2
7b84: 85a6 mv a1,s1
7b86: 8522 mv a0,s0
7b88: 8c2fc0ef jal ra,3c4a <ip_output>
7b8c: 8522 mv a0,s0
7b8e: 820fd0ef jal ra,4bae <pbuf_free>
7b92: e78f806f j 20a <__riscv_restore_4>
00007b96 <tcp_zero_window_probe>:
tcp_zero_window_probe():
7b96: e40f82ef jal t0,1d6 <__riscv_save_4>
7b9a: 08052403 lw s0,128(a0)
7b9e: e019 bnez s0,7ba4 <tcp_zero_window_probe+0xe>
7ba0: 5d60 lw s0,124(a0)
7ba2: c45d beqz s0,7c50 <tcp_zero_window_probe+0xba>
7ba4: 481c lw a5,16(s0)
7ba6: 84aa mv s1,a0
7ba8: 27c8 lbu a0,12(a5)
7baa: 37dc lbu a5,13(a5)
7bac: 07a2 slli a5,a5,0x8
7bae: 8d5d or a0,a0,a5
7bb0: c1dfb0ef jal ra,37cc <ntohs>
7bb4: 8905 andi a0,a0,1
7bb6: cd59 beqz a0,7c54 <tcp_zero_window_probe+0xbe>
7bb8: 245e lhu a5,12(s0)
7bba: efc9 bnez a5,7c54 <tcp_zero_window_probe+0xbe>
7bbc: 4a05 li s4,1
7bbe: 45d1 li a1,20
7bc0: 4601 li a2,0
7bc2: 4505 li a0,1
7bc4: 838fd0ef jal ra,4bfc <pbuf_alloc>
7bc8: 892a mv s2,a0
7bca: c159 beqz a0,7c50 <tcp_zero_window_probe+0xba>
7bcc: 4818 lw a4,16(s0)
7bce: 414c lw a1,4(a0)
7bd0: 8526 mv a0,s1
7bd2: 3350 lbu a2,5(a4)
7bd4: 235c lbu a5,4(a4)
7bd6: 0622 slli a2,a2,0x8
7bd8: 8e5d or a2,a2,a5
7bda: 237c lbu a5,6(a4)
7bdc: 07c2 slli a5,a5,0x10
7bde: 8fd1 or a5,a5,a2
7be0: 3370 lbu a2,7(a4)
7be2: 0662 slli a2,a2,0x18
7be4: 8e5d or a2,a2,a5
7be6: bfcff0ef jal ra,6fe2 <tcp_output_set_header.isra.0.constprop.1>
7bea: 89aa mv s3,a0
7bec: 060a0763 beqz s4,7c5a <tcp_zero_window_probe+0xc4>
7bf0: 3540 lbu s0,13(a0)
7bf2: 255c lbu a5,12(a0)
7bf4: 6541 lui a0,0x10
7bf6: 0422 slli s0,s0,0x8
7bf8: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x712c>
7bfc: 8c5d or s0,s0,a5
7bfe: bc1fb0ef jal ra,37be <htons>
7c02: 8c69 and s0,s0,a0
7c04: 4545 li a0,17
7c06: bb9fb0ef jal ra,37be <htons>
7c0a: 8c49 or s0,s0,a0
7c0c: 01041793 slli a5,s0,0x10
7c10: 83c1 srli a5,a5,0x10
7c12: 00f98623 sb a5,12(s3)
7c16: 83a1 srli a5,a5,0x8
7c18: 00f986a3 sb a5,13(s3)
7c1c: 00895703 lhu a4,8(s2)
7c20: 00448413 addi s0,s1,4
7c24: 4699 li a3,6
7c26: 8622 mv a2,s0
7c28: 85a6 mv a1,s1
7c2a: 854a mv a0,s2
7c2c: 039000ef jal ra,8464 <inet_chksum_pseudo>
7c30: 00a98823 sb a0,16(s3)
7c34: 8121 srli a0,a0,0x8
7c36: 00a988a3 sb a0,17(s3)
7c3a: 34b4 lbu a3,11(s1)
7c3c: 4799 li a5,6
7c3e: 4701 li a4,0
7c40: 8622 mv a2,s0
7c42: 85a6 mv a1,s1
7c44: 854a mv a0,s2
7c46: 804fc0ef jal ra,3c4a <ip_output>
7c4a: 854a mv a0,s2
7c4c: f63fc0ef jal ra,4bae <pbuf_free>
7c50: dbaf806f j 20a <__riscv_restore_4>
7c54: 4a01 li s4,0
7c56: 45d5 li a1,21
7c58: b7a5 j 7bc0 <tcp_zero_window_probe+0x2a>
7c5a: 4418 lw a4,8(s0)
7c5c: 00492783 lw a5,4(s2)
7c60: 00070703 lb a4,0(a4)
7c64: abd8 sb a4,20(a5)
7c66: bf5d j 7c1c <tcp_zero_window_probe+0x86>
00007c68 <udp_input>:
udp_input():
7c68: d58f82ef jal t0,1c0 <__riscv_save_12>
7c6c: 4140 lw s0,4(a0)
7c6e: 2506 lhu s1,8(a0)
7c70: 892a mv s2,a0
7c72: 301c lbu a5,1(s0)
7c74: 2008 lbu a0,0(s0)
7c76: 1141 addi sp,sp,-16
7c78: 07a2 slli a5,a5,0x8
7c7a: 8d5d or a0,a0,a5
7c7c: 8a2e mv s4,a1
7c7e: b4ffb0ef jal ra,37cc <ntohs>
7c82: 8121 srli a0,a0,0x8
7c84: 893d andi a0,a0,15
7c86: 0509 addi a0,a0,2
7c88: 050a slli a0,a0,0x2
7c8a: 02a4c263 blt s1,a0,7cae <udp_input+0x46>
7c8e: 301c lbu a5,1(s0)
7c90: 2008 lbu a0,0(s0)
7c92: 07a2 slli a5,a5,0x8
7c94: 8d5d or a0,a0,a5
7c96: b37fb0ef jal ra,37cc <ntohs>
7c9a: 00655593 srli a1,a0,0x6
7c9e: 03c5f593 andi a1,a1,60
7ca2: 40b005b3 neg a1,a1
7ca6: 854a mv a0,s2
7ca8: e99fc0ef jal ra,4b40 <pbuf_header>
7cac: c519 beqz a0,7cba <udp_input+0x52>
7cae: 854a mv a0,s2
7cb0: efffc0ef jal ra,4bae <pbuf_free>
7cb4: 0141 addi sp,sp,16
7cb6: d46f806f j 1fc <__riscv_restore_12>
7cba: 00492a83 lw s5,4(s2)
7cbe: 01040c13 addi s8,s0,16
7cc2: 85d2 mv a1,s4
7cc4: 8562 mv a0,s8
7cc6: fbbfb0ef jal ra,3c80 <ip_addr_isbroadcast>
7cca: 001ac783 lbu a5,1(s5)
7cce: 8b2a mv s6,a0
7cd0: 000ac503 lbu a0,0(s5)
7cd4: 07a2 slli a5,a5,0x8
7cd6: 8d5d or a0,a0,a5
7cd8: af5fb0ef jal ra,37cc <ntohs>
7cdc: 003ac783 lbu a5,3(s5)
7ce0: 8baa mv s7,a0
7ce2: 002ac503 lbu a0,2(s5)
7ce6: 07a2 slli a5,a5,0x8
7ce8: 8d5d or a0,a0,a5
7cea: ae3fb0ef jal ra,37cc <ntohs>
7cee: 04400793 li a5,68
7cf2: 86aa mv a3,a0
7cf4: 06f51d63 bne a0,a5,7d6e <udp_input+0x106>
7cf8: 04300793 li a5,67
7cfc: 12fb9963 bne s7,a5,7e2e <udp_input+0x1c6>
7d00: 020a2783 lw a5,32(s4)
7d04: 12078563 beqz a5,7e2e <udp_input+0x1c6>
7d08: 43c4 lw s1,4(a5)
7d0a: 12048263 beqz s1,7e2e <udp_input+0x1c6>
7d0e: 40d4 lw a3,4(s1)
7d10: ce89 beqz a3,7d2a <udp_input+0xc2>
7d12: 3458 lbu a4,13(s0)
7d14: 245c lbu a5,12(s0)
7d16: 0722 slli a4,a4,0x8
7d18: 8f5d or a4,a4,a5
7d1a: 247c lbu a5,14(s0)
7d1c: 07c2 slli a5,a5,0x10
7d1e: 8f5d or a4,a4,a5
7d20: 347c lbu a5,15(s0)
7d22: 07e2 slli a5,a5,0x18
7d24: 8fd9 or a5,a5,a4
7d26: 10f69463 bne a3,a5,7e2e <udp_input+0x1c6>
7d2a: 007ac783 lbu a5,7(s5)
7d2e: 006ac703 lbu a4,6(s5)
7d32: 07a2 slli a5,a5,0x8
7d34: 8fd9 or a5,a5,a4
7d36: cb99 beqz a5,7d4c <udp_input+0xe4>
7d38: 00895703 lhu a4,8(s2)
7d3c: 46c5 li a3,17
7d3e: 8662 mv a2,s8
7d40: 00c40593 addi a1,s0,12
7d44: 854a mv a0,s2
7d46: 71e000ef jal ra,8464 <inet_chksum_pseudo>
7d4a: f135 bnez a0,7cae <udp_input+0x46>
7d4c: 55e1 li a1,-8
7d4e: 854a mv a0,s2
7d50: df1fc0ef jal ra,4b40 <pbuf_header>
7d54: fd29 bnez a0,7cae <udp_input+0x46>
7d56: 0e048c63 beqz s1,7e4e <udp_input+0x1e6>
7d5a: 4c9c lw a5,24(s1)
7d5c: dba9 beqz a5,7cae <udp_input+0x46>
7d5e: 4cc8 lw a0,28(s1)
7d60: 875e mv a4,s7
7d62: 00c40693 addi a3,s0,12
7d66: 864a mv a2,s2
7d68: 85a6 mv a1,s1
7d6a: 9782 jalr a5
7d6c: b7a1 j 7cb4 <udp_input+0x4c>
7d6e: 9481a483 lw s1,-1720(gp) # 20000168 <udp_pcbs>
7d72: 4d01 li s10,0
7d74: 4d81 li s11,0
7d76: 94818c93 addi s9,gp,-1720 # 20000168 <udp_pcbs>
7d7a: 76c00613 li a2,1900
7d7e: e489 bnez s1,7d88 <udp_input+0x120>
7d80: 0a0d0763 beqz s10,7e2e <udp_input+0x1c6>
7d84: 84ea mv s1,s10
7d86: b755 j 7d2a <udp_input+0xc2>
7d88: 28be lhu a5,18(s1)
7d8a: 08d79c63 bne a5,a3,7e22 <udp_input+0x1ba>
7d8e: 4098 lw a4,0(s1)
7d90: 040b1563 bnez s6,7dda <udp_input+0x172>
7d94: e339 bnez a4,7dda <udp_input+0x172>
7d96: 000d1663 bnez s10,7da2 <udp_input+0x13a>
7d9a: 289c lbu a5,16(s1)
7d9c: 8b91 andi a5,a5,4
7d9e: e391 bnez a5,7da2 <udp_input+0x13a>
7da0: 8d26 mv s10,s1
7da2: 28de lhu a5,20(s1)
7da4: 09779263 bne a5,s7,7e28 <udp_input+0x1c0>
7da8: 40cc lw a1,4(s1)
7daa: cd89 beqz a1,7dc4 <udp_input+0x15c>
7dac: 3458 lbu a4,13(s0)
7dae: 245c lbu a5,12(s0)
7db0: 0722 slli a4,a4,0x8
7db2: 8f5d or a4,a4,a5
7db4: 247c lbu a5,14(s0)
7db6: 07c2 slli a5,a5,0x10
7db8: 8f5d or a4,a4,a5
7dba: 347c lbu a5,15(s0)
7dbc: 07e2 slli a5,a5,0x18
7dbe: 8fd9 or a5,a5,a4
7dc0: 06f59463 bne a1,a5,7e28 <udp_input+0x1c0>
7dc4: f60d83e3 beqz s11,7d2a <udp_input+0xc2>
7dc8: 44dc lw a5,12(s1)
7dca: 00fda623 sw a5,12(s11)
7dce: 000ca783 lw a5,0(s9)
7dd2: 009ca023 sw s1,0(s9)
7dd6: c4dc sw a5,12(s1)
7dd8: bf89 j 7d2a <udp_input+0xc2>
7dda: 381c lbu a5,17(s0)
7ddc: 01044983 lbu s3,16(s0)
7de0: 07a2 slli a5,a5,0x8
7de2: 0137e7b3 or a5,a5,s3
7de6: 01244983 lbu s3,18(s0)
7dea: 09c2 slli s3,s3,0x10
7dec: 00f9e7b3 or a5,s3,a5
7df0: 01344983 lbu s3,19(s0)
7df4: 09e2 slli s3,s3,0x18
7df6: 00f9e9b3 or s3,s3,a5
7dfa: f8e98ee3 beq s3,a4,7d96 <udp_input+0x12e>
7dfe: f0000537 lui a0,0xf0000
7e02: c636 sw a3,12(sp)
7e04: 9fbfb0ef jal ra,37fe <ntohl>
7e08: 00a9f9b3 and s3,s3,a0
7e0c: e0000537 lui a0,0xe0000
7e10: 9effb0ef jal ra,37fe <ntohl>
7e14: 46b2 lw a3,12(sp)
7e16: 76c00613 li a2,1900
7e1a: f6a98ee3 beq s3,a0,7d96 <udp_input+0x12e>
7e1e: f60b1ce3 bnez s6,7d96 <udp_input+0x12e>
7e22: 8da6 mv s11,s1
7e24: 44c4 lw s1,12(s1)
7e26: bfa1 j 7d7e <udp_input+0x116>
7e28: fec69de3 bne a3,a2,7e22 <udp_input+0x1ba>
7e2c: bdfd j 7d2a <udp_input+0xc2>
7e2e: 3818 lbu a4,17(s0)
7e30: 281c lbu a5,16(s0)
7e32: 0722 slli a4,a4,0x8
7e34: 8f5d or a4,a4,a5
7e36: 283c lbu a5,18(s0)
7e38: 07c2 slli a5,a5,0x10
7e3a: 8f5d or a4,a4,a5
7e3c: 383c lbu a5,19(s0)
7e3e: 07e2 slli a5,a5,0x18
7e40: 8fd9 or a5,a5,a4
7e42: 004a2703 lw a4,4(s4)
7e46: e6f714e3 bne a4,a5,7cae <udp_input+0x46>
7e4a: 4481 li s1,0
7e4c: bdf9 j 7d2a <udp_input+0xc2>
7e4e: e60b10e3 bnez s6,7cae <udp_input+0x46>
7e52: 381c lbu a5,17(s0)
7e54: 2804 lbu s1,16(s0)
7e56: f0000537 lui a0,0xf0000
7e5a: 07a2 slli a5,a5,0x8
7e5c: 8fc5 or a5,a5,s1
7e5e: 2824 lbu s1,18(s0)
7e60: 04c2 slli s1,s1,0x10
7e62: 8fc5 or a5,a5,s1
7e64: 3824 lbu s1,19(s0)
7e66: 04e2 slli s1,s1,0x18
7e68: 8cdd or s1,s1,a5
7e6a: 995fb0ef jal ra,37fe <ntohl>
7e6e: 8ce9 and s1,s1,a0
7e70: e0000537 lui a0,0xe0000
7e74: 98bfb0ef jal ra,37fe <ntohl>
7e78: e2a48be3 beq s1,a0,7cae <udp_input+0x46>
7e7c: 301c lbu a5,1(s0)
7e7e: 2008 lbu a0,0(s0)
7e80: 07a2 slli a5,a5,0x8
7e82: 8d5d or a0,a0,a5
7e84: 949fb0ef jal ra,37cc <ntohs>
7e88: 00855593 srli a1,a0,0x8
7e8c: 89bd andi a1,a1,15
7e8e: 0589 addi a1,a1,2
7e90: 058a slli a1,a1,0x2
7e92: 854a mv a0,s2
7e94: cadfc0ef jal ra,4b40 <pbuf_header>
7e98: 458d li a1,3
7e9a: 854a mv a0,s2
7e9c: 230d jal 83be <icmp_dest_unreach>
7e9e: bd01 j 7cae <udp_input+0x46>
00007ea0 <udp_bind>:
udp_bind():
7ea0: 9481a883 lw a7,-1720(gp) # 20000168 <udp_pcbs>
7ea4: 86aa mv a3,a0
7ea6: 4301 li t1,0
7ea8: 87c6 mv a5,a7
7eaa: 94818813 addi a6,gp,-1720 # 20000168 <udp_pcbs>
7eae: e79d bnez a5,7edc <udp_bind+0x3c>
7eb0: c999 beqz a1,7ec6 <udp_bind+0x26>
7eb2: 3198 lbu a4,1(a1)
7eb4: 219c lbu a5,0(a1)
7eb6: 0722 slli a4,a4,0x8
7eb8: 8f5d or a4,a4,a5
7eba: 21bc lbu a5,2(a1)
7ebc: 07c2 slli a5,a5,0x10
7ebe: 8f5d or a4,a4,a5
7ec0: 31bc lbu a5,3(a1)
7ec2: 07e2 slli a5,a5,0x18
7ec4: 8fd9 or a5,a5,a4
7ec6: c29c sw a5,0(a3)
7ec8: c625 beqz a2,7f30 <udp_bind+0x90>
7eca: aab2 sh a2,18(a3)
7ecc: 4501 li a0,0
7ece: 00031663 bnez t1,7eda <udp_bind+0x3a>
7ed2: 0116a623 sw a7,12(a3)
7ed6: 00d82023 sw a3,0(a6)
7eda: 8082 ret
7edc: 02d78b63 beq a5,a3,7f12 <udp_bind+0x72>
7ee0: 2bba lhu a4,18(a5)
7ee2: 02c71663 bne a4,a2,7f0e <udp_bind+0x6e>
7ee6: 0007ae03 lw t3,0(a5) # 5000 <tcp_new_port+0x1c>
7eea: 000e1463 bnez t3,7ef2 <udp_bind+0x52>
7eee: 5555 li a0,-11
7ef0: 8082 ret
7ef2: ddf5 beqz a1,7eee <udp_bind+0x4e>
7ef4: 3188 lbu a0,1(a1)
7ef6: 2198 lbu a4,0(a1)
7ef8: 0522 slli a0,a0,0x8
7efa: 8d59 or a0,a0,a4
7efc: 21b8 lbu a4,2(a1)
7efe: 0742 slli a4,a4,0x10
7f00: 8d59 or a0,a0,a4
7f02: 31b8 lbu a4,3(a1)
7f04: 0762 slli a4,a4,0x18
7f06: 8f49 or a4,a4,a0
7f08: d37d beqz a4,7eee <udp_bind+0x4e>
7f0a: feee02e3 beq t3,a4,7eee <udp_bind+0x4e>
7f0e: 47dc lw a5,12(a5)
7f10: bf79 j 7eae <udp_bind+0xe>
7f12: 4305 li t1,1
7f14: bfed j 7f0e <udp_bind+0x6e>
7f16: 2bae lhu a1,18(a5)
7f18: 00c59a63 bne a1,a2,7f2c <udp_bind+0x8c>
7f1c: 0605 addi a2,a2,1
7f1e: 0642 slli a2,a2,0x10
7f20: 8241 srli a2,a2,0x10
7f22: 87c6 mv a5,a7
7f24: d3dd beqz a5,7eca <udp_bind+0x2a>
7f26: fee618e3 bne a2,a4,7f16 <udp_bind+0x76>
7f2a: b7d1 j 7eee <udp_bind+0x4e>
7f2c: 47dc lw a5,12(a5)
7f2e: bfdd j 7f24 <udp_bind+0x84>
7f30: 6721 lui a4,0x8
7f32: 87c6 mv a5,a7
7f34: 6605 lui a2,0x1
7f36: 177d addi a4,a4,-1
7f38: b7f5 j 7f24 <udp_bind+0x84>
00007f3a <udp_sendto_if>:
udp_sendto_if():
7f3a: a9cf82ef jal t0,1d6 <__riscv_save_4>
7f3e: 293e lhu a5,18(a0)
7f40: 892a mv s2,a0
7f42: 89ae mv s3,a1
7f44: 8ab2 mv s5,a2
7f46: 8b36 mv s6,a3
7f48: 8a3a mv s4,a4
7f4a: c7ad beqz a5,7fb4 <udp_sendto_if+0x7a>
7f4c: 45a1 li a1,8
7f4e: 854e mv a0,s3
7f50: bf1fc0ef jal ra,4b40 <pbuf_header>
7f54: 84ce mv s1,s3
7f56: cd01 beqz a0,7f6e <udp_sendto_if+0x34>
7f58: 4601 li a2,0
7f5a: 45a1 li a1,8
7f5c: 4505 li a0,1
7f5e: c9ffc0ef jal ra,4bfc <pbuf_alloc>
7f62: 84aa mv s1,a0
7f64: 547d li s0,-1
7f66: cd29 beqz a0,7fc0 <udp_sendto_if+0x86>
7f68: 85ce mv a1,s3
7f6a: e63fc0ef jal ra,4dcc <pbuf_chain>
7f6e: 01295503 lhu a0,18(s2)
7f72: 40c0 lw s0,4(s1)
7f74: 84bfb0ef jal ra,37be <htons>
7f78: a008 sb a0,0(s0)
7f7a: 8121 srli a0,a0,0x8
7f7c: b008 sb a0,1(s0)
7f7e: 855a mv a0,s6
7f80: 83ffb0ef jal ra,37be <htons>
7f84: 00092783 lw a5,0(s2)
7f88: a028 sb a0,2(s0)
7f8a: 8121 srli a0,a0,0x8
7f8c: b028 sb a0,3(s0)
7f8e: 00040323 sb zero,6(s0)
7f92: 000403a3 sb zero,7(s0)
7f96: 004a0b13 addi s6,s4,4
7f9a: c795 beqz a5,7fc6 <udp_sendto_if+0x8c>
7f9c: 004a2703 lw a4,4(s4)
7fa0: 8b4a mv s6,s2
7fa2: 02e78263 beq a5,a4,7fc6 <udp_sendto_if+0x8c>
7fa6: 545d li s0,-9
7fa8: 01348c63 beq s1,s3,7fc0 <udp_sendto_if+0x86>
7fac: 8526 mv a0,s1
7fae: c01fc0ef jal ra,4bae <pbuf_free>
7fb2: a039 j 7fc0 <udp_sendto_if+0x86>
7fb4: 4601 li a2,0
7fb6: 85aa mv a1,a0
7fb8: ee9ff0ef jal ra,7ea0 <udp_bind>
7fbc: 842a mv s0,a0
7fbe: d559 beqz a0,7f4c <udp_sendto_if+0x12>
7fc0: 8522 mv a0,s0
7fc2: a48f806f j 20a <__riscv_restore_4>
7fc6: 248a lhu a0,8(s1)
7fc8: ff6fb0ef jal ra,37be <htons>
7fcc: a048 sb a0,4(s0)
7fce: 8121 srli a0,a0,0x8
7fd0: b048 sb a0,5(s0)
7fd2: 01094783 lbu a5,16(s2)
7fd6: 8b85 andi a5,a5,1
7fd8: eb99 bnez a5,7fee <udp_sendto_if+0xb4>
7fda: 249a lhu a4,8(s1)
7fdc: 46c5 li a3,17
7fde: 8656 mv a2,s5
7fe0: 85da mv a1,s6
7fe2: 8526 mv a0,s1
7fe4: 2141 jal 8464 <inet_chksum_pseudo>
7fe6: c10d beqz a0,8008 <udp_sendto_if+0xce>
7fe8: a068 sb a0,6(s0)
7fea: 8121 srli a0,a0,0x8
7fec: b068 sb a0,7(s0)
7fee: 00a94703 lbu a4,10(s2)
7ff2: 00b94683 lbu a3,11(s2)
7ff6: 8852 mv a6,s4
7ff8: 47c5 li a5,17
7ffa: 8656 mv a2,s5
7ffc: 85da mv a1,s6
7ffe: 8526 mv a0,s1
8000: af1fb0ef jal ra,3af0 <ip_output_if>
8004: 842a mv s0,a0
8006: b74d j 7fa8 <udp_sendto_if+0x6e>
8008: 57fd li a5,-1
800a: a07c sb a5,6(s0)
800c: b07c sb a5,7(s0)
800e: b7c5 j 7fee <udp_sendto_if+0xb4>
00008010 <udp_sendto>:
udp_sendto():
8010: 9e0f82ef jal t0,1f0 <__riscv_save_0>
8014: 1141 addi sp,sp,-16
8016: 842a mv s0,a0
8018: 8532 mv a0,a2
801a: c62e sw a1,12(sp)
801c: c436 sw a3,8(sp)
801e: c232 sw a2,4(sp)
8020: feafb0ef jal ra,380a <ip_route>
8024: c919 beqz a0,803a <udp_sendto+0x2a>
8026: 46a2 lw a3,8(sp)
8028: 4612 lw a2,4(sp)
802a: 45b2 lw a1,12(sp)
802c: 872a mv a4,a0
802e: 8522 mv a0,s0
8030: f0bff0ef jal ra,7f3a <udp_sendto_if>
8034: 0141 addi sp,sp,16
8036: 9def806f j 214 <__riscv_restore_0>
803a: 5571 li a0,-4
803c: bfe5 j 8034 <udp_sendto+0x24>
0000803e <udp_send>:
udp_send():
803e: 9b2f82ef jal t0,1f0 <__riscv_save_0>
8042: 2956 lhu a3,20(a0)
8044: 00450613 addi a2,a0,4 # e0000004 <_eusrstack+0xbffe0004>
8048: fc9ff0ef jal ra,8010 <udp_sendto>
804c: 9c8f806f j 214 <__riscv_restore_0>
00008050 <udp_connect>:
udp_connect():
8050: 9a0f82ef jal t0,1f0 <__riscv_save_0>
8054: 293e lhu a5,18(a0)
8056: 842a mv s0,a0
8058: 84ae mv s1,a1
805a: 8932 mv s2,a2
805c: cbb1 beqz a5,80b0 <udp_connect+0x60>
805e: 4781 li a5,0
8060: c899 beqz s1,8076 <udp_connect+0x26>
8062: 3098 lbu a4,1(s1)
8064: 209c lbu a5,0(s1)
8066: 0722 slli a4,a4,0x8
8068: 8f5d or a4,a4,a5
806a: 20bc lbu a5,2(s1)
806c: 07c2 slli a5,a5,0x10
806e: 8f5d or a4,a4,a5
8070: 30bc lbu a5,3(s1)
8072: 07e2 slli a5,a5,0x18
8074: 8fd9 or a5,a5,a4
8076: 2818 lbu a4,16(s0)
8078: c05c sw a5,4(s0)
807a: 01241a23 sh s2,20(s0)
807e: 00476713 ori a4,a4,4
8082: a818 sb a4,16(s0)
8084: 4018 lw a4,0(s0)
8086: ef05 bnez a4,80be <udp_connect+0x6e>
8088: cf85 beqz a5,80c0 <udp_connect+0x70>
808a: 00440513 addi a0,s0,4
808e: f7cfb0ef jal ra,380a <ip_route>
8092: 87aa mv a5,a0
8094: 5571 li a0,-4
8096: c395 beqz a5,80ba <udp_connect+0x6a>
8098: 43dc lw a5,4(a5)
809a: c01c sw a5,0(s0)
809c: 9481a683 lw a3,-1720(gp) # 20000168 <udp_pcbs>
80a0: 94818793 addi a5,gp,-1720 # 20000168 <udp_pcbs>
80a4: 8736 mv a4,a3
80a6: e305 bnez a4,80c6 <udp_connect+0x76>
80a8: c454 sw a3,12(s0)
80aa: c380 sw s0,0(a5)
80ac: 4501 li a0,0
80ae: a031 j 80ba <udp_connect+0x6a>
80b0: 4601 li a2,0
80b2: 85aa mv a1,a0
80b4: dedff0ef jal ra,7ea0 <udp_bind>
80b8: d15d beqz a0,805e <udp_connect+0xe>
80ba: 95af806f j 214 <__riscv_restore_0>
80be: fff9 bnez a5,809c <udp_connect+0x4c>
80c0: 00042023 sw zero,0(s0)
80c4: bfe1 j 809c <udp_connect+0x4c>
80c6: fe8703e3 beq a4,s0,80ac <udp_connect+0x5c>
80ca: 4758 lw a4,12(a4)
80cc: bfe9 j 80a6 <udp_connect+0x56>
000080ce <udp_recv>:
udp_recv():
80ce: cd0c sw a1,24(a0)
80d0: cd50 sw a2,28(a0)
80d2: 8082 ret
000080d4 <udp_new>:
udp_new():
80d4: 91cf82ef jal t0,1f0 <__riscv_save_0>
80d8: 4505 li a0,1
80da: 8e3fc0ef jal ra,49bc <memp_malloc>
80de: 842a mv s0,a0
80e0: c909 beqz a0,80f2 <udp_new+0x1e>
80e2: 02000613 li a2,32
80e6: 4581 li a1,0
80e8: 938f80ef jal ra,220 <memset>
80ec: f8000793 li a5,-128
80f0: b43c sb a5,11(s0)
80f2: 8522 mv a0,s0
80f4: 920f806f j 214 <__riscv_restore_0>
000080f8 <icmp_send_response.isra.0>:
icmp_send_response.isra.0():
80f8: 8def82ef jal t0,1d6 <__riscv_save_4>
80fc: 842a mv s0,a0
80fe: 8a2e mv s4,a1
8100: 89b2 mv s3,a2
8102: 02400593 li a1,36
8106: 4601 li a2,0
8108: 4505 li a0,1
810a: af3fc0ef jal ra,4bfc <pbuf_alloc>
810e: cd31 beqz a0,816a <icmp_send_response.isra.0+0x72>
8110: 00042903 lw s2,0(s0)
8114: 4140 lw s0,4(a0)
8116: 84aa mv s1,a0
8118: 4671 li a2,28
811a: 85ca mv a1,s2
811c: 01440023 sb s4,0(s0)
8120: 013400a3 sb s3,1(s0)
8124: 00040223 sb zero,4(s0)
8128: 000402a3 sb zero,5(s0)
812c: 00040323 sb zero,6(s0)
8130: 000403a3 sb zero,7(s0)
8134: 00840513 addi a0,s0,8
8138: 27f000ef jal ra,8bb6 <memcpy>
813c: 24ae lhu a1,10(s1)
813e: 00040123 sb zero,2(s0)
8142: 000401a3 sb zero,3(s0)
8146: 8522 mv a0,s0
8148: 211d jal 856e <inet_chksum>
814a: a028 sb a0,2(s0)
814c: 8121 srli a0,a0,0x8
814e: b028 sb a0,3(s0)
8150: 4785 li a5,1
8152: 4701 li a4,0
8154: 08000693 li a3,128
8158: 00c90613 addi a2,s2,12
815c: 4581 li a1,0
815e: 8526 mv a0,s1
8160: aebfb0ef jal ra,3c4a <ip_output>
8164: 8526 mv a0,s1
8166: a49fc0ef jal ra,4bae <pbuf_free>
816a: 8a0f806f j 20a <__riscv_restore_4>
0000816e <icmp_input>:
icmp_input():
816e: 85af82ef jal t0,1c8 <__riscv_save_10>
8172: 4140 lw s0,4(a0)
8174: 84aa mv s1,a0
8176: 1141 addi sp,sp,-16
8178: 301c lbu a5,1(s0)
817a: 2008 lbu a0,0(s0)
817c: 89ae mv s3,a1
817e: 07a2 slli a5,a5,0x8
8180: 8d5d or a0,a0,a5
8182: e4afb0ef jal ra,37cc <ntohs>
8186: 00655913 srli s2,a0,0x6
818a: 03c97913 andi s2,s2,60
818e: 41200ab3 neg s5,s2
8192: 0ac2 slli s5,s5,0x10
8194: 410ada93 srai s5,s5,0x10
8198: 85d6 mv a1,s5
819a: 8526 mv a0,s1
819c: 9a5fc0ef jal ra,4b40 <pbuf_header>
81a0: e139 bnez a0,81e6 <icmp_input+0x78>
81a2: 249e lhu a5,8(s1)
81a4: 468d li a3,3
81a6: 04f6f063 bgeu a3,a5,81e6 <icmp_input+0x78>
81aa: 40dc lw a5,4(s1)
81ac: 2398 lbu a4,0(a5)
81ae: 04d71263 bne a4,a3,81f2 <icmp_input+0x84>
81b2: 2798 lbu a4,8(a5)
81b4: 00878693 addi a3,a5,8
81b8: 3f88 lbu a0,25(a5)
81ba: 8b3d andi a4,a4,15
81bc: 070a slli a4,a4,0x2
81be: 9736 add a4,a4,a3
81c0: 232c lbu a1,2(a4)
81c2: 00374803 lbu a6,3(a4) # 8003 <udp_sendto_if+0xc9>
81c6: 2f98 lbu a4,24(a5)
81c8: 0522 slli a0,a0,0x8
81ca: 3394 lbu a3,1(a5)
81cc: 8d59 or a0,a0,a4
81ce: 2fb8 lbu a4,26(a5)
81d0: 3b90 lbu a2,17(a5)
81d2: 05a2 slli a1,a1,0x8
81d4: 0742 slli a4,a4,0x10
81d6: 8f49 or a4,a4,a0
81d8: 3fa8 lbu a0,27(a5)
81da: 0105e5b3 or a1,a1,a6
81de: 0562 slli a0,a0,0x18
81e0: 8d59 or a0,a0,a4
81e2: c03fa0ef jal ra,2de4 <LwipUnreachPort>
81e6: 8526 mv a0,s1
81e8: 9c7fc0ef jal ra,4bae <pbuf_free>
81ec: 0141 addi sp,sp,16
81ee: 812f806f j 200 <__riscv_restore_10>
81f2: 47a1 li a5,8
81f4: fef719e3 bne a4,a5,81e6 <icmp_input+0x78>
81f8: 381c lbu a5,17(s0)
81fa: 01044a03 lbu s4,16(s0)
81fe: f0000537 lui a0,0xf0000
8202: 07a2 slli a5,a5,0x8
8204: 0147e7b3 or a5,a5,s4
8208: 01244a03 lbu s4,18(s0)
820c: 4b01 li s6,0
820e: 0a42 slli s4,s4,0x10
8210: 00fa67b3 or a5,s4,a5
8214: 01344a03 lbu s4,19(s0)
8218: 0a62 slli s4,s4,0x18
821a: 00fa6a33 or s4,s4,a5
821e: de0fb0ef jal ra,37fe <ntohl>
8222: 8c2a mv s8,a0
8224: e0000537 lui a0,0xe0000
8228: dd6fb0ef jal ra,37fe <ntohl>
822c: 8baa mv s7,a0
822e: 85ce mv a1,s3
8230: 01040513 addi a0,s0,16
8234: a4dfb0ef jal ra,3c80 <ip_addr_isbroadcast>
8238: e519 bnez a0,8246 <icmp_input+0xd8>
823a: 018a7533 and a0,s4,s8
823e: 41750533 sub a0,a0,s7
8242: 00a03b33 snez s6,a0
8246: b91fa0ef jal ra,2dd6 <QueryPingEnable>
824a: dd51 beqz a0,81e6 <icmp_input+0x78>
824c: f80b0de3 beqz s6,81e6 <icmp_input+0x78>
8250: 249a lhu a4,8(s1)
8252: 479d li a5,7
8254: f8e7f9e3 bgeu a5,a4,81e6 <icmp_input+0x78>
8258: 8526 mv a0,s1
825a: 2625 jal 8582 <inet_chksum_pbuf>
825c: f549 bnez a0,81e6 <icmp_input+0x78>
825e: 0942 slli s2,s2,0x10
8260: 02200593 li a1,34
8264: 8526 mv a0,s1
8266: 41095913 srai s2,s2,0x10
826a: 8d7fc0ef jal ra,4b40 <pbuf_header>
826e: 12050463 beqz a0,8396 <icmp_input+0x228>
8272: 85ca mv a1,s2
8274: 8526 mv a0,s1
8276: 8cbfc0ef jal ra,4b40 <pbuf_header>
827a: f535 bnez a0,81e6 <icmp_input+0x78>
827c: 248e lhu a1,8(s1)
827e: 4601 li a2,0
8280: 4509 li a0,2
8282: 97bfc0ef jal ra,4bfc <pbuf_alloc>
8286: 8a2a mv s4,a0
8288: dd39 beqz a0,81e6 <icmp_input+0x78>
828a: 85a6 mv a1,s1
828c: b55fc0ef jal ra,4de0 <pbuf_copy>
8290: f939 bnez a0,81e6 <icmp_input+0x78>
8292: 85d6 mv a1,s5
8294: 8552 mv a0,s4
8296: 004a2403 lw s0,4(s4)
829a: 8a7fc0ef jal ra,4b40 <pbuf_header>
829e: f521 bnez a0,81e6 <icmp_input+0x78>
82a0: 8526 mv a0,s1
82a2: 90dfc0ef jal ra,4bae <pbuf_free>
82a6: 84d2 mv s1,s4
82a8: 3458 lbu a4,13(s0)
82aa: 245c lbu a5,12(s0)
82ac: 3814 lbu a3,17(s0)
82ae: 0722 slli a4,a4,0x8
82b0: 8f5d or a4,a4,a5
82b2: 247c lbu a5,14(s0)
82b4: 06a2 slli a3,a3,0x8
82b6: 0044aa03 lw s4,4(s1)
82ba: 07c2 slli a5,a5,0x10
82bc: 8f5d or a4,a4,a5
82be: 347c lbu a5,15(s0)
82c0: 653d lui a0,0xf
82c2: 7ff50513 addi a0,a0,2047 # f7ff <_data_lma+0x696b>
82c6: 07e2 slli a5,a5,0x18
82c8: 8fd9 or a5,a5,a4
82ca: 2818 lbu a4,16(s0)
82cc: a81c sb a5,16(s0)
82ce: 8ed9 or a3,a3,a4
82d0: 2838 lbu a4,18(s0)
82d2: 0742 slli a4,a4,0x10
82d4: 8ed9 or a3,a3,a4
82d6: 3838 lbu a4,19(s0)
82d8: 0762 slli a4,a4,0x18
82da: 8f55 or a4,a4,a3
82dc: 00875693 srli a3,a4,0x8
82e0: a458 sb a4,12(s0)
82e2: b454 sb a3,13(s0)
82e4: 01075693 srli a3,a4,0x10
82e8: 8361 srli a4,a4,0x18
82ea: b478 sb a4,15(s0)
82ec: 0087d713 srli a4,a5,0x8
82f0: b818 sb a4,17(s0)
82f2: 0107d713 srli a4,a5,0x10
82f6: 83e1 srli a5,a5,0x18
82f8: a474 sb a3,14(s0)
82fa: a838 sb a4,18(s0)
82fc: b83c sb a5,19(s0)
82fe: 003a4a83 lbu s5,3(s4)
8302: 002a4783 lbu a5,2(s4)
8306: 000a0023 sb zero,0(s4)
830a: 0aa2 slli s5,s5,0x8
830c: 00faeab3 or s5,s5,a5
8310: caefb0ef jal ra,37be <htons>
8314: 08aae963 bltu s5,a0,83a6 <icmp_input+0x238>
8318: 6505 lui a0,0x1
831a: 80050513 addi a0,a0,-2048 # 800 <__stack_size>
831e: ca0fb0ef jal ra,37be <htons>
8322: 003a4783 lbu a5,3(s4)
8326: 002a4703 lbu a4,2(s4)
832a: 07a2 slli a5,a5,0x8
832c: 8fd9 or a5,a5,a4
832e: 0785 addi a5,a5,1
8330: 953e add a0,a0,a5
8332: 0542 slli a0,a0,0x10
8334: 8141 srli a0,a0,0x10
8336: 00aa0123 sb a0,2(s4)
833a: 8121 srli a0,a0,0x8
833c: 00aa01a3 sb a0,3(s4)
8340: 341c lbu a5,9(s0)
8342: 2408 lbu a0,8(s0)
8344: 07a2 slli a5,a5,0x8
8346: 8d5d or a0,a0,a5
8348: c84fb0ef jal ra,37cc <ntohs>
834c: 67a1 lui a5,0x8
834e: 0ff57513 andi a0,a0,255
8352: 8d5d or a0,a0,a5
8354: c6afb0ef jal ra,37be <htons>
8358: a408 sb a0,8(s0)
835a: 8121 srli a0,a0,0x8
835c: b408 sb a0,9(s0)
835e: 45d1 li a1,20
8360: 00040523 sb zero,10(s0)
8364: 000405a3 sb zero,11(s0)
8368: 8522 mv a0,s0
836a: 2411 jal 856e <inet_chksum>
836c: a428 sb a0,10(s0)
836e: 8121 srli a0,a0,0x8
8370: b428 sb a0,11(s0)
8372: 85ca mv a1,s2
8374: 8526 mv a0,s1
8376: fcafc0ef jal ra,4b40 <pbuf_header>
837a: e60516e3 bnez a0,81e6 <icmp_input+0x78>
837e: 884e mv a6,s3
8380: 4785 li a5,1
8382: 4701 li a4,0
8384: 08000693 li a3,128
8388: 4601 li a2,0
838a: 00c40593 addi a1,s0,12
838e: 8526 mv a0,s1
8390: f60fb0ef jal ra,3af0 <ip_output_if>
8394: bd89 j 81e6 <icmp_input+0x78>
8396: fde00593 li a1,-34
839a: 8526 mv a0,s1
839c: fa4fc0ef jal ra,4b40 <pbuf_header>
83a0: f00504e3 beqz a0,82a8 <icmp_input+0x13a>
83a4: b589 j 81e6 <icmp_input+0x78>
83a6: 6505 lui a0,0x1
83a8: 80050513 addi a0,a0,-2048 # 800 <__stack_size>
83ac: c12fb0ef jal ra,37be <htons>
83b0: 003a4783 lbu a5,3(s4)
83b4: 002a4703 lbu a4,2(s4)
83b8: 07a2 slli a5,a5,0x8
83ba: 8fd9 or a5,a5,a4
83bc: bf95 j 8330 <icmp_input+0x1c2>
000083be <icmp_dest_unreach>:
icmp_dest_unreach():
83be: e33f72ef jal t0,1f0 <__riscv_save_0>
83c2: 0ff5f613 andi a2,a1,255
83c6: 0511 addi a0,a0,4
83c8: 458d li a1,3
83ca: d2fff0ef jal ra,80f8 <icmp_send_response.isra.0>
83ce: e47f706f j 214 <__riscv_restore_0>
000083d2 <icmp_time_exceeded>:
icmp_time_exceeded():
83d2: e1ff72ef jal t0,1f0 <__riscv_save_0>
83d6: 0ff5f613 andi a2,a1,255
83da: 0511 addi a0,a0,4
83dc: 45ad li a1,11
83de: d1bff0ef jal ra,80f8 <icmp_send_response.isra.0>
83e2: e33f706f j 214 <__riscv_restore_0>
000083e6 <lwip_standard_chksum>:
lwip_standard_chksum():
83e6: e0bf72ef jal t0,1f0 <__riscv_save_0>
83ea: 00b50833 add a6,a0,a1
83ee: 0842 slli a6,a6,0x10
83f0: 86aa mv a3,a0
83f2: 4701 li a4,0
83f4: 01085813 srli a6,a6,0x10
83f8: 4885 li a7,1
83fa: 40d807b3 sub a5,a6,a3
83fe: 07c2 slli a5,a5,0x10
8400: 83c1 srli a5,a5,0x10
8402: 04f8e463 bltu a7,a5,844a <lwip_standard_chksum+0x64>
8406: 0015d793 srli a5,a1,0x1
840a: 00179693 slli a3,a5,0x1
840e: 9536 add a0,a0,a3
8410: 56f9 li a3,-2
8412: 02d787b3 mul a5,a5,a3
8416: 95be add a1,a1,a5
8418: 05c2 slli a1,a1,0x10
841a: 81c1 srli a1,a1,0x10
841c: c581 beqz a1,8424 <lwip_standard_chksum+0x3e>
841e: 211c lbu a5,0(a0)
8420: 07a2 slli a5,a5,0x8
8422: 973e add a4,a4,a5
8424: 6541 lui a0,0x10
8426: fff50693 addi a3,a0,-1 # ffff <_data_lma+0x716b>
842a: 01075793 srli a5,a4,0x10
842e: 8f75 and a4,a4,a3
8430: 00e78533 add a0,a5,a4
8434: 77c1 lui a5,0xffff0
8436: 8fe9 and a5,a5,a0
8438: c399 beqz a5,843e <lwip_standard_chksum+0x58>
843a: 8d75 and a0,a0,a3
843c: 0505 addi a0,a0,1
843e: 0542 slli a0,a0,0x10
8440: 8141 srli a0,a0,0x10
8442: b7cfb0ef jal ra,37be <htons>
8446: dcff706f j 214 <__riscv_restore_0>
844a: 329c lbu a5,1(a3)
844c: 2290 lbu a2,0(a3)
844e: 0689 addi a3,a3,2
8450: 07a2 slli a5,a5,0x8
8452: 8fd1 or a5,a5,a2
8454: 00879613 slli a2,a5,0x8
8458: 83a1 srli a5,a5,0x8
845a: 8fd1 or a5,a5,a2
845c: 07c2 slli a5,a5,0x10
845e: 83c1 srli a5,a5,0x10
8460: 973e add a4,a4,a5
8462: bf61 j 83fa <lwip_standard_chksum+0x14>
00008464 <inet_chksum_pseudo>:
inet_chksum_pseudo():
8464: d65f72ef jal t0,1c8 <__riscv_save_10>
8468: 200087b7 lui a5,0x20008
846c: 8507a783 lw a5,-1968(a5) # 20007850 <WCHCfg+0x14>
8470: 84ba mv s1,a4
8472: 1141 addi sp,sp,-16
8474: 00579713 slli a4,a5,0x5
8478: 0e074963 bltz a4,856a <inet_chksum_pseudo+0x106>
847c: 6b41 lui s6,0x10
847e: 892a mv s2,a0
8480: 8aae mv s5,a1
8482: 8a32 mv s4,a2
8484: 4981 li s3,0
8486: 4401 li s0,0
8488: 1b7d addi s6,s6,-1
848a: 4b85 li s7,1
848c: 08091e63 bnez s2,8528 <inet_chksum_pseudo+0xc4>
8490: 00098b63 beqz s3,84a6 <inet_chksum_pseudo+0x42>
8494: 6741 lui a4,0x10
8496: 00841793 slli a5,s0,0x8
849a: 177d addi a4,a4,-1
849c: 8021 srli s0,s0,0x8
849e: 8ff9 and a5,a5,a4
84a0: 0ff47413 andi s0,s0,255
84a4: 8c5d or s0,s0,a5
84a6: 001ac503 lbu a0,1(s5)
84aa: 000ac783 lbu a5,0(s5)
84ae: 000a4703 lbu a4,0(s4)
84b2: 0522 slli a0,a0,0x8
84b4: 8d5d or a0,a0,a5
84b6: 002ac783 lbu a5,2(s5)
84ba: 003a4603 lbu a2,3(s4)
84be: 6941 lui s2,0x10
84c0: 07c2 slli a5,a5,0x10
84c2: 8d5d or a0,a0,a5
84c4: 003ac783 lbu a5,3(s5)
84c8: 0662 slli a2,a2,0x18
84ca: 197d addi s2,s2,-1
84cc: 07e2 slli a5,a5,0x18
84ce: 8fc9 or a5,a5,a0
84d0: 001a4503 lbu a0,1(s4)
84d4: 0522 slli a0,a0,0x8
84d6: 8f49 or a4,a4,a0
84d8: 002a4503 lbu a0,2(s4)
84dc: 0542 slli a0,a0,0x10
84de: 8d59 or a0,a0,a4
84e0: 8e49 or a2,a2,a0
84e2: 01267533 and a0,a2,s2
84e6: 8241 srli a2,a2,0x10
84e8: 0127f733 and a4,a5,s2
84ec: 9532 add a0,a0,a2
84ee: 953a add a0,a0,a4
84f0: 83c1 srli a5,a5,0x10
84f2: 953e add a0,a0,a5
84f4: 942a add s0,s0,a0
84f6: 8536 mv a0,a3
84f8: ac6fb0ef jal ra,37be <htons>
84fc: 942a add s0,s0,a0
84fe: 8526 mv a0,s1
8500: abefb0ef jal ra,37be <htons>
8504: 9522 add a0,a0,s0
8506: 01055413 srli s0,a0,0x10
850a: 01257533 and a0,a0,s2
850e: 942a add s0,s0,a0
8510: 01045513 srli a0,s0,0x10
8514: 01247433 and s0,s0,s2
8518: 9522 add a0,a0,s0
851a: fff54513 not a0,a0
851e: 0542 slli a0,a0,0x10
8520: 8141 srli a0,a0,0x10
8522: 0141 addi sp,sp,16
8524: cddf706f j 200 <__riscv_restore_10>
8528: 00a95583 lhu a1,10(s2) # 1000a <_data_lma+0x7176>
852c: 00492503 lw a0,4(s2)
8530: c636 sw a3,12(sp)
8532: eb5ff0ef jal ra,83e6 <lwip_standard_chksum>
8536: 942a add s0,s0,a0
8538: 01045793 srli a5,s0,0x10
853c: 01647433 and s0,s0,s6
8540: 943e add s0,s0,a5
8542: 00a95783 lhu a5,10(s2)
8546: 46b2 lw a3,12(sp)
8548: 8b85 andi a5,a5,1
854a: cf89 beqz a5,8564 <inet_chksum_pseudo+0x100>
854c: 00841793 slli a5,s0,0x8
8550: 8021 srli s0,s0,0x8
8552: 413b89b3 sub s3,s7,s3
8556: 0167f7b3 and a5,a5,s6
855a: 0ff47413 andi s0,s0,255
855e: 0ff9f993 andi s3,s3,255
8562: 8c5d or s0,s0,a5
8564: 00092903 lw s2,0(s2)
8568: b715 j 848c <inet_chksum_pseudo+0x28>
856a: 4501 li a0,0
856c: bf5d j 8522 <inet_chksum_pseudo+0xbe>
0000856e <inet_chksum>:
inet_chksum():
856e: c83f72ef jal t0,1f0 <__riscv_save_0>
8572: e75ff0ef jal ra,83e6 <lwip_standard_chksum>
8576: fff54513 not a0,a0
857a: 0542 slli a0,a0,0x10
857c: 8141 srli a0,a0,0x10
857e: c97f706f j 214 <__riscv_restore_0>
00008582 <inet_chksum_pbuf>:
inet_chksum_pbuf():
8582: c55f72ef jal t0,1d6 <__riscv_save_4>
8586: 69c1 lui s3,0x10
8588: 84aa mv s1,a0
858a: 4901 li s2,0
858c: 4401 li s0,0
858e: 19fd addi s3,s3,-1
8590: 4a05 li s4,1
8592: e095 bnez s1,85b6 <inet_chksum_pbuf+0x34>
8594: 00090b63 beqz s2,85aa <inet_chksum_pbuf+0x28>
8598: 6741 lui a4,0x10
859a: 00841793 slli a5,s0,0x8
859e: 177d addi a4,a4,-1
85a0: 8021 srli s0,s0,0x8
85a2: 8ff9 and a5,a5,a4
85a4: 0ff47413 andi s0,s0,255
85a8: 8c5d or s0,s0,a5
85aa: fff44513 not a0,s0
85ae: 0542 slli a0,a0,0x10
85b0: 8141 srli a0,a0,0x10
85b2: c59f706f j 20a <__riscv_restore_4>
85b6: 24ae lhu a1,10(s1)
85b8: 40c8 lw a0,4(s1)
85ba: e2dff0ef jal ra,83e6 <lwip_standard_chksum>
85be: 942a add s0,s0,a0
85c0: 01045793 srli a5,s0,0x10
85c4: 01347433 and s0,s0,s3
85c8: 943e add s0,s0,a5
85ca: 24be lhu a5,10(s1)
85cc: 8b85 andi a5,a5,1
85ce: cf89 beqz a5,85e8 <inet_chksum_pbuf+0x66>
85d0: 00841793 slli a5,s0,0x8
85d4: 8021 srli s0,s0,0x8
85d6: 412a0933 sub s2,s4,s2
85da: 0137f7b3 and a5,a5,s3
85de: 0ff47413 andi s0,s0,255
85e2: 0ff97913 andi s2,s2,255
85e6: 8c5d or s0,s0,a5
85e8: 4084 lw s1,0(s1)
85ea: b765 j 8592 <inet_chksum_pbuf+0x10>
000085ec <printchar>:
printchar():
85ec: 1101 addi sp,sp,-32
85ee: ce06 sw ra,28(sp)
85f0: c62e sw a1,12(sp)
85f2: cd0d beqz a0,862c <printchar+0x40>
85f4: 4118 lw a4,0(a0)
85f6: 87aa mv a5,a0
85f8: c305 beqz a4,8618 <printchar+0x2c>
85fa: 4158 lw a4,4(a0)
85fc: 557d li a0,-1
85fe: cb11 beqz a4,8612 <printchar+0x26>
8600: 4685 li a3,1
8602: 00d71b63 bne a4,a3,8618 <printchar+0x2c>
8606: 4798 lw a4,8(a5)
8608: 00070023 sb zero,0(a4) # 10000 <_data_lma+0x716c>
860c: 0007a223 sw zero,4(a5)
8610: 4505 li a0,1
8612: 40f2 lw ra,28(sp)
8614: 6105 addi sp,sp,32
8616: 8082 ret
8618: 4798 lw a4,8(a5)
861a: 46b2 lw a3,12(sp)
861c: a314 sb a3,0(a4)
861e: 4798 lw a4,8(a5)
8620: 0705 addi a4,a4,1
8622: c798 sw a4,8(a5)
8624: 43d8 lw a4,4(a5)
8626: 177d addi a4,a4,-1
8628: c3d8 sw a4,4(a5)
862a: b7dd j 8610 <printchar+0x24>
862c: 4605 li a2,1
862e: 006c addi a1,sp,12
8630: b3cf90ef jal ra,196c <_write>
8634: bff1 j 8610 <printchar+0x24>
00008636 <prints>:
prints():
8636: 7179 addi sp,sp,-48
8638: d422 sw s0,40(sp)
863a: d226 sw s1,36(sp)
863c: ce4e sw s3,28(sp)
863e: cc52 sw s4,24(sp)
8640: ca56 sw s5,20(sp)
8642: d606 sw ra,44(sp)
8644: d04a sw s2,32(sp)
8646: c85a sw s6,16(sp)
8648: 8a2a mv s4,a0
864a: 8aae mv s5,a1
864c: 8432 mv s0,a2
864e: 4481 li s1,0
8650: 02000993 li s3,32
8654: 02064463 bltz a2,867c <prints+0x46>
8658: 009a87b3 add a5,s5,s1
865c: 00078783 lb a5,0(a5)
8660: e39d bnez a5,8686 <prints+0x50>
8662: 0284d663 bge s1,s0,868e <prints+0x58>
8666: 02e4d263 bge s1,a4,868a <prints+0x54>
866a: 8c19 sub s0,s0,a4
866c: 0026f793 andi a5,a3,2
8670: 02000993 li s3,32
8674: c781 beqz a5,867c <prints+0x46>
8676: e319 bnez a4,867c <prints+0x46>
8678: 03000993 li s3,48
867c: 8a85 andi a3,a3,1
867e: 4901 li s2,0
8680: ea85 bnez a3,86b0 <prints+0x7a>
8682: 8922 mv s2,s0
8684: a831 j 86a0 <prints+0x6a>
8686: 0485 addi s1,s1,1
8688: bfc1 j 8658 <prints+0x22>
868a: 8c05 sub s0,s0,s1
868c: b7c5 j 866c <prints+0x36>
868e: 4401 li s0,0
8690: bff1 j 866c <prints+0x36>
8692: 85ce mv a1,s3
8694: 8552 mv a0,s4
8696: c63a sw a4,12(sp)
8698: f55ff0ef jal ra,85ec <printchar>
869c: 4732 lw a4,12(sp)
869e: 197d addi s2,s2,-1
86a0: ff2049e3 bgtz s2,8692 <prints+0x5c>
86a4: 8922 mv s2,s0
86a6: 00045363 bgez s0,86ac <prints+0x76>
86aa: 4901 li s2,0
86ac: 41240433 sub s0,s0,s2
86b0: 02e4cb63 blt s1,a4,86e6 <prints+0xb0>
86b4: 84ca mv s1,s2
86b6: 412487b3 sub a5,s1,s2
86ba: 97d6 add a5,a5,s5
86bc: 00078583 lb a1,0(a5)
86c0: e1a1 bnez a1,8700 <prints+0xca>
86c2: 8922 mv s2,s0
86c4: 05204363 bgtz s2,870a <prints+0xd4>
86c8: 00045363 bgez s0,86ce <prints+0x98>
86cc: 4401 li s0,0
86ce: 00940533 add a0,s0,s1
86d2: 50b2 lw ra,44(sp)
86d4: 5422 lw s0,40(sp)
86d6: 5492 lw s1,36(sp)
86d8: 5902 lw s2,32(sp)
86da: 49f2 lw s3,28(sp)
86dc: 4a62 lw s4,24(sp)
86de: 4ad2 lw s5,20(sp)
86e0: 4b42 lw s6,16(sp)
86e2: 6145 addi sp,sp,48
86e4: 8082 ret
86e6: 409704b3 sub s1,a4,s1
86ea: 8b26 mv s6,s1
86ec: 03000593 li a1,48
86f0: 8552 mv a0,s4
86f2: 1b7d addi s6,s6,-1
86f4: ef9ff0ef jal ra,85ec <printchar>
86f8: fe0b1ae3 bnez s6,86ec <prints+0xb6>
86fc: 9926 add s2,s2,s1
86fe: bf5d j 86b4 <prints+0x7e>
8700: 8552 mv a0,s4
8702: eebff0ef jal ra,85ec <printchar>
8706: 0485 addi s1,s1,1
8708: b77d j 86b6 <prints+0x80>
870a: 85ce mv a1,s3
870c: 8552 mv a0,s4
870e: edfff0ef jal ra,85ec <printchar>
8712: 197d addi s2,s2,-1
8714: bf45 j 86c4 <prints+0x8e>
00008716 <printInt>:
printInt():
8716: 715d addi sp,sp,-80
8718: c2a6 sw s1,68(sp)
871a: dc52 sw s4,56(sp)
871c: c686 sw ra,76(sp)
871e: c4a2 sw s0,72(sp)
8720: c0ca sw s2,64(sp)
8722: de4e sw s3,60(sp)
8724: da56 sw s5,52(sp)
8726: 84ba mv s1,a4
8728: 8a3e mv s4,a5
872a: e19d bnez a1,8750 <printInt+0x3a>
872c: 03000793 li a5,48
8730: 4701 li a4,0
8732: 86d2 mv a3,s4
8734: 8626 mv a2,s1
8736: 082c addi a1,sp,24
8738: 84fc sh a5,24(sp)
873a: efdff0ef jal ra,8636 <prints>
873e: 40b6 lw ra,76(sp)
8740: 4426 lw s0,72(sp)
8742: 4496 lw s1,68(sp)
8744: 4906 lw s2,64(sp)
8746: 59f2 lw s3,60(sp)
8748: 5a62 lw s4,56(sp)
874a: 5ad2 lw s5,52(sp)
874c: 6161 addi sp,sp,80
874e: 8082 ret
8750: 892a mv s2,a0
8752: 8436 mv s0,a3
8754: 8ac6 mv s5,a7
8756: ca91 beqz a3,876a <printInt+0x54>
8758: 47a9 li a5,10
875a: 4401 li s0,0
875c: 00f61763 bne a2,a5,876a <printInt+0x54>
8760: 0005d563 bgez a1,876a <printInt+0x54>
8764: 40b005b3 neg a1,a1
8768: 4405 li s0,1
876a: 020107a3 sb zero,47(sp)
876e: 02f10793 addi a5,sp,47
8772: 46a5 li a3,9
8774: fc680513 addi a0,a6,-58
8778: 02c5f733 remu a4,a1,a2
877c: 00e6d363 bge a3,a4,8782 <printInt+0x6c>
8780: 972a add a4,a4,a0
8782: 03070713 addi a4,a4,48
8786: fee78fa3 sb a4,-1(a5)
878a: fff78993 addi s3,a5,-1
878e: 02c5d733 divu a4,a1,a2
8792: 04c5fb63 bgeu a1,a2,87e8 <printInt+0xd2>
8796: cc09 beqz s0,87b0 <printInt+0x9a>
8798: c8b9 beqz s1,87ee <printInt+0xd8>
879a: 002a7713 andi a4,s4,2
879e: cb21 beqz a4,87ee <printInt+0xd8>
87a0: 02d00593 li a1,45
87a4: 854a mv a0,s2
87a6: c642 sw a6,12(sp)
87a8: e45ff0ef jal ra,85ec <printchar>
87ac: 4832 lw a6,12(sp)
87ae: 14fd addi s1,s1,-1
87b0: 004a7793 andi a5,s4,4
87b4: c38d beqz a5,87d6 <printInt+0xc0>
87b6: 06100793 li a5,97
87ba: 03000593 li a1,48
87be: 854a mv a0,s2
87c0: 02f81f63 bne a6,a5,87fe <printInt+0xe8>
87c4: e29ff0ef jal ra,85ec <printchar>
87c8: 07800593 li a1,120
87cc: 854a mv a0,s2
87ce: e1fff0ef jal ra,85ec <printchar>
87d2: 0409 addi s0,s0,2
87d4: 14f9 addi s1,s1,-2
87d6: 8756 mv a4,s5
87d8: 86d2 mv a3,s4
87da: 8626 mv a2,s1
87dc: 85ce mv a1,s3
87de: 854a mv a0,s2
87e0: e57ff0ef jal ra,8636 <prints>
87e4: 9522 add a0,a0,s0
87e6: bfa1 j 873e <printInt+0x28>
87e8: 85ba mv a1,a4
87ea: 87ce mv a5,s3
87ec: b771 j 8778 <printInt+0x62>
87ee: 02d00713 li a4,45
87f2: fee98fa3 sb a4,-1(s3) # ffff <_data_lma+0x716b>
87f6: 4401 li s0,0
87f8: ffe78993 addi s3,a5,-2
87fc: bf55 j 87b0 <printInt+0x9a>
87fe: defff0ef jal ra,85ec <printchar>
8802: 05800593 li a1,88
8806: b7d9 j 87cc <printInt+0xb6>
00008808 <printLongLongInt>:
printLongLongInt():
8808: 4501 li a0,0
880a: 8082 ret
0000880c <printDouble>:
printDouble():
880c: 4501 li a0,0
880e: 8082 ret
00008810 <print>:
print():
8810: 7139 addi sp,sp,-64
8812: d05a sw s6,32(sp)
8814: 00009b37 lui s6,0x9
8818: dc22 sw s0,56(sp)
881a: da26 sw s1,52(sp)
881c: d84a sw s2,48(sp)
881e: d64e sw s3,44(sp)
8820: d452 sw s4,40(sp)
8822: d256 sw s5,36(sp)
8824: ce5e sw s7,28(sp)
8826: cc62 sw s8,24(sp)
8828: de06 sw ra,60(sp)
882a: ca66 sw s9,20(sp)
882c: 89aa mv s3,a0
882e: 892e mv s2,a1
8830: 8432 mv s0,a2
8832: 4a01 li s4,0
8834: 4481 li s1,0
8836: 02500b93 li s7,37
883a: 02b00a93 li s5,43
883e: 4c29 li s8,10
8840: e8cb0b13 addi s6,s6,-372 # 8e8c <tcp_backoff+0x30>
8844: 00090583 lb a1,0(s2)
8848: e58d bnez a1,8872 <print+0x62>
884a: 00098663 beqz s3,8856 <print+0x46>
884e: 4581 li a1,0
8850: 854e mv a0,s3
8852: d9bff0ef jal ra,85ec <printchar>
8856: 50f2 lw ra,60(sp)
8858: 5462 lw s0,56(sp)
885a: 8526 mv a0,s1
885c: 5942 lw s2,48(sp)
885e: 54d2 lw s1,52(sp)
8860: 59b2 lw s3,44(sp)
8862: 5a22 lw s4,40(sp)
8864: 5a92 lw s5,36(sp)
8866: 5b02 lw s6,32(sp)
8868: 4bf2 lw s7,28(sp)
886a: 4c62 lw s8,24(sp)
886c: 4cd2 lw s9,20(sp)
886e: 6121 addi sp,sp,64
8870: 8082 ret
8872: 01758863 beq a1,s7,8882 <print+0x72>
8876: 854e mv a0,s3
8878: d75ff0ef jal ra,85ec <printchar>
887c: 0485 addi s1,s1,1
887e: 0905 addi s2,s2,1
8880: b7d1 j 8844 <print+0x34>
8882: 00190783 lb a5,1(s2)
8886: 00190c93 addi s9,s2,1
888a: 01779a63 bne a5,s7,889e <print+0x8e>
888e: 02500593 li a1,37
8892: 854e mv a0,s3
8894: d59ff0ef jal ra,85ec <printchar>
8898: 0485 addi s1,s1,1
889a: 8966 mv s2,s9
889c: b7cd j 887e <print+0x6e>
889e: d7d5 beqz a5,884a <print+0x3a>
88a0: 05578763 beq a5,s5,88ee <print+0xde>
88a4: 00fac863 blt s5,a5,88b4 <print+0xa4>
88a8: 02300713 li a4,35
88ac: 04e78463 beq a5,a4,88f4 <print+0xe4>
88b0: 4781 li a5,0
88b2: a005 j 88d2 <print+0xc2>
88b4: 02d00713 li a4,45
88b8: 00e78a63 beq a5,a4,88cc <print+0xbc>
88bc: 03000713 li a4,48
88c0: fee798e3 bne a5,a4,88b0 <print+0xa0>
88c4: 00290c93 addi s9,s2,2
88c8: 4789 li a5,2
88ca: a021 j 88d2 <print+0xc2>
88cc: 00290c93 addi s9,s2,2
88d0: 4785 li a5,1
88d2: 000c8703 lb a4,0(s9)
88d6: 05570363 beq a4,s5,891c <print+0x10c>
88da: 02eac163 blt s5,a4,88fc <print+0xec>
88de: 02300693 li a3,35
88e2: 02d70b63 beq a4,a3,8918 <print+0x108>
88e6: 8966 mv s2,s9
88e8: 4601 li a2,0
88ea: 45a5 li a1,9
88ec: a835 j 8928 <print+0x118>
88ee: 00290c93 addi s9,s2,2
88f2: bf7d j 88b0 <print+0xa0>
88f4: 00290c93 addi s9,s2,2
88f8: 4791 li a5,4
88fa: bfe1 j 88d2 <print+0xc2>
88fc: 02d00693 li a3,45
8900: 00d70963 beq a4,a3,8912 <print+0x102>
8904: 03000693 li a3,48
8908: fcd71fe3 bne a4,a3,88e6 <print+0xd6>
890c: 0027e793 ori a5,a5,2
8910: a031 j 891c <print+0x10c>
8912: 0c85 addi s9,s9,1
8914: 4785 li a5,1
8916: bfc1 j 88e6 <print+0xd6>
8918: 0047e793 ori a5,a5,4
891c: 0c85 addi s9,s9,1
891e: b7e1 j 88e6 <print+0xd6>
8920: 03860633 mul a2,a2,s8
8924: 0905 addi s2,s2,1
8926: 9636 add a2,a2,a3
8928: 00090703 lb a4,0(s2)
892c: fd070693 addi a3,a4,-48
8930: 0ff6f513 andi a0,a3,255
8934: fea5f6e3 bgeu a1,a0,8920 <print+0x110>
8938: 02e00593 li a1,46
893c: 4699 li a3,6
893e: 00b71e63 bne a4,a1,895a <print+0x14a>
8942: 0905 addi s2,s2,1
8944: 4681 li a3,0
8946: 45a5 li a1,9
8948: 00090703 lb a4,0(s2)
894c: fd070713 addi a4,a4,-48
8950: 0ff77513 andi a0,a4,255
8954: 02a5f563 bgeu a1,a0,897e <print+0x16e>
8958: 8a36 mv s4,a3
895a: 00090703 lb a4,0(s2)
895e: 06a00593 li a1,106
8962: 0ab70163 beq a4,a1,8a04 <print+0x1f4>
8966: 02e5c163 blt a1,a4,8988 <print+0x178>
896a: 04c00593 li a1,76
896e: 08b70b63 beq a4,a1,8a04 <print+0x1f4>
8972: 06800593 li a1,104
8976: 08b70063 beq a4,a1,89f6 <print+0x1e6>
897a: 4581 li a1,0
897c: a02d j 89a6 <print+0x196>
897e: 038686b3 mul a3,a3,s8
8982: 0905 addi s2,s2,1
8984: 96ba add a3,a3,a4
8986: b7c9 j 8948 <print+0x138>
8988: 07400593 li a1,116
898c: 06b70c63 beq a4,a1,8a04 <print+0x1f4>
8990: 07a00593 li a1,122
8994: 06b70863 beq a4,a1,8a04 <print+0x1f4>
8998: 06c00513 li a0,108
899c: 4581 li a1,0
899e: 00a71463 bne a4,a0,89a6 <print+0x196>
89a2: 0905 addi s2,s2,1
89a4: 4591 li a1,4
89a6: 00090703 lb a4,0(s2)
89aa: 06000513 li a0,96
89ae: 06100813 li a6,97
89b2: 00e54463 blt a0,a4,89ba <print+0x1aa>
89b6: 04100813 li a6,65
89ba: 06700513 li a0,103
89be: 06e54063 blt a0,a4,8a1e <print+0x20e>
89c2: 06500513 li a0,101
89c6: 14a75563 bge a4,a0,8b10 <print+0x300>
89ca: 04700513 li a0,71
89ce: 02e54d63 blt a0,a4,8a08 <print+0x1f8>
89d2: 04500593 li a1,69
89d6: 12b75d63 bge a4,a1,8b10 <print+0x300>
89da: 04300693 li a3,67
89de: ead710e3 bne a4,a3,887e <print+0x6e>
89e2: 4018 lw a4,0(s0)
89e4: 00440c93 addi s9,s0,4
89e8: 000106a3 sb zero,13(sp)
89ec: 8658 sb a4,12(sp)
89ee: 86be mv a3,a5
89f0: 4701 li a4,0
89f2: 006c addi a1,sp,12
89f4: a041 j 8a74 <print+0x264>
89f6: 00190503 lb a0,1(s2)
89fa: 4581 li a1,0
89fc: fae515e3 bne a0,a4,89a6 <print+0x196>
8a00: 0909 addi s2,s2,2
8a02: b755 j 89a6 <print+0x196>
8a04: 0905 addi s2,s2,1
8a06: bf95 j 897a <print+0x16a>
8a08: 06300693 li a3,99
8a0c: fcd70be3 beq a4,a3,89e2 <print+0x1d2>
8a10: 06e6c663 blt a3,a4,8a7c <print+0x26c>
8a14: 05800693 li a3,88
8a18: 02d70363 beq a4,a3,8a3e <print+0x22e>
8a1c: b58d j 887e <print+0x6e>
8a1e: 07300693 li a3,115
8a22: 04d70163 beq a4,a3,8a64 <print+0x254>
8a26: 02e6c863 blt a3,a4,8a56 <print+0x246>
8a2a: 06f00693 li a3,111
8a2e: 0ad70e63 beq a4,a3,8aea <print+0x2da>
8a32: 07000693 li a3,112
8a36: 0047e793 ori a5,a5,4
8a3a: e4d712e3 bne a4,a3,887e <print+0x6e>
8a3e: cdd9 beqz a1,8adc <print+0x2cc>
8a40: 041d addi s0,s0,7
8a42: ff847593 andi a1,s0,-8
8a46: 88c2 mv a7,a6
8a48: 00858413 addi s0,a1,8
8a4c: 883e mv a6,a5
8a4e: 4701 li a4,0
8a50: 87b2 mv a5,a2
8a52: 46c1 li a3,16
8a54: a83d j 8a92 <print+0x282>
8a56: 07500693 li a3,117
8a5a: 06d70063 beq a4,a3,8aba <print+0x2aa>
8a5e: 07800693 li a3,120
8a62: bf5d j 8a18 <print+0x208>
8a64: 4018 lw a4,0(s0)
8a66: 00440c93 addi s9,s0,4
8a6a: 85da mv a1,s6
8a6c: c311 beqz a4,8a70 <print+0x260>
8a6e: 85ba mv a1,a4
8a70: 8752 mv a4,s4
8a72: 86be mv a3,a5
8a74: 854e mv a0,s3
8a76: bc1ff0ef jal ra,8636 <prints>
8a7a: a82d j 8ab4 <print+0x2a4>
8a7c: c195 beqz a1,8aa0 <print+0x290>
8a7e: 041d addi s0,s0,7
8a80: ff847593 andi a1,s0,-8
8a84: 88c2 mv a7,a6
8a86: 00858413 addi s0,a1,8
8a8a: 883e mv a6,a5
8a8c: 4705 li a4,1
8a8e: 87b2 mv a5,a2
8a90: 46a9 li a3,10
8a92: 41d0 lw a2,4(a1)
8a94: 418c lw a1,0(a1)
8a96: 854e mv a0,s3
8a98: d71ff0ef jal ra,8808 <printLongLongInt>
8a9c: 94aa add s1,s1,a0
8a9e: b3c5 j 887e <print+0x6e>
8aa0: 00440c93 addi s9,s0,4
8aa4: 88d2 mv a7,s4
8aa6: 8732 mv a4,a2
8aa8: 4685 li a3,1
8aaa: 4629 li a2,10
8aac: 400c lw a1,0(s0)
8aae: 854e mv a0,s3
8ab0: c67ff0ef jal ra,8716 <printInt>
8ab4: 94aa add s1,s1,a0
8ab6: 8466 mv s0,s9
8ab8: b3d9 j 887e <print+0x6e>
8aba: c999 beqz a1,8ad0 <print+0x2c0>
8abc: 041d addi s0,s0,7
8abe: ff847593 andi a1,s0,-8
8ac2: 88c2 mv a7,a6
8ac4: 00858413 addi s0,a1,8
8ac8: 883e mv a6,a5
8aca: 4701 li a4,0
8acc: 87b2 mv a5,a2
8ace: b7c9 j 8a90 <print+0x280>
8ad0: 00440c93 addi s9,s0,4
8ad4: 88d2 mv a7,s4
8ad6: 8732 mv a4,a2
8ad8: 4681 li a3,0
8ada: bfc1 j 8aaa <print+0x29a>
8adc: 8732 mv a4,a2
8ade: 00440c93 addi s9,s0,4
8ae2: 88d2 mv a7,s4
8ae4: 4681 li a3,0
8ae6: 4641 li a2,16
8ae8: b7d1 j 8aac <print+0x29c>
8aea: cd81 beqz a1,8b02 <print+0x2f2>
8aec: 041d addi s0,s0,7
8aee: ff847593 andi a1,s0,-8
8af2: 88c2 mv a7,a6
8af4: 00858413 addi s0,a1,8
8af8: 883e mv a6,a5
8afa: 4701 li a4,0
8afc: 87b2 mv a5,a2
8afe: 46a1 li a3,8
8b00: bf49 j 8a92 <print+0x282>
8b02: 8732 mv a4,a2
8b04: 00440c93 addi s9,s0,4
8b08: 88d2 mv a7,s4
8b0a: 4681 li a3,0
8b0c: 4621 li a2,8
8b0e: bf79 j 8aac <print+0x29c>
8b10: 041d addi s0,s0,7
8b12: ff847593 andi a1,s0,-8
8b16: 00858413 addi s0,a1,8
8b1a: 8732 mv a4,a2
8b1c: 41d0 lw a2,4(a1)
8b1e: 418c lw a1,0(a1)
8b20: 88c2 mv a7,a6
8b22: 854e mv a0,s3
8b24: 883e mv a6,a5
8b26: 87b6 mv a5,a3
8b28: 46a9 li a3,10
8b2a: ce3ff0ef jal ra,880c <printDouble>
8b2e: b7bd j 8a9c <print+0x28c>
00008b30 <printf>:
printf():
8b30: 7139 addi sp,sp,-64
8b32: d22e sw a1,36(sp)
8b34: d432 sw a2,40(sp)
8b36: 85aa mv a1,a0
8b38: 1050 addi a2,sp,36
8b3a: 4501 li a0,0
8b3c: ce06 sw ra,28(sp)
8b3e: d636 sw a3,44(sp)
8b40: d83a sw a4,48(sp)
8b42: da3e sw a5,52(sp)
8b44: dc42 sw a6,56(sp)
8b46: de46 sw a7,60(sp)
8b48: c632 sw a2,12(sp)
8b4a: cc7ff0ef jal ra,8810 <print>
8b4e: 40f2 lw ra,28(sp)
8b50: 6121 addi sp,sp,64
8b52: 8082 ret
00008b54 <puts>:
puts():
8b54: 1101 addi sp,sp,-32
8b56: cc22 sw s0,24(sp)
8b58: ca26 sw s1,20(sp)
8b5a: ce06 sw ra,28(sp)
8b5c: 211c lbu a5,0(a0)
8b5e: 84aa mv s1,a0
8b60: 4401 li s0,0
8b62: 87dc sb a5,15(sp)
8b64: 00f10783 lb a5,15(sp)
8b68: 0405 addi s0,s0,1
8b6a: ef99 bnez a5,8b88 <puts+0x34>
8b6c: 47a9 li a5,10
8b6e: 00f10593 addi a1,sp,15
8b72: 4605 li a2,1
8b74: 4501 li a0,0
8b76: 87dc sb a5,15(sp)
8b78: df5f80ef jal ra,196c <_write>
8b7c: 8522 mv a0,s0
8b7e: 40f2 lw ra,28(sp)
8b80: 4462 lw s0,24(sp)
8b82: 44d2 lw s1,20(sp)
8b84: 6105 addi sp,sp,32
8b86: 8082 ret
8b88: 4605 li a2,1
8b8a: 00f10593 addi a1,sp,15
8b8e: 4501 li a0,0
8b90: dddf80ef jal ra,196c <_write>
8b94: 008487b3 add a5,s1,s0
8b98: 239c lbu a5,0(a5)
8b9a: 87dc sb a5,15(sp)
8b9c: b7e1 j 8b64 <puts+0x10>
00008b9e <putchar>:
putchar():
8b9e: 1101 addi sp,sp,-32
8ba0: c62a sw a0,12(sp)
8ba2: 006c addi a1,sp,12
8ba4: 4605 li a2,1
8ba6: 4501 li a0,0
8ba8: ce06 sw ra,28(sp)
8baa: dc3f80ef jal ra,196c <_write>
8bae: 40f2 lw ra,28(sp)
8bb0: 4505 li a0,1
8bb2: 6105 addi sp,sp,32
8bb4: 8082 ret
00008bb6 <memcpy>:
memcpy():
8bb6: 00a5c7b3 xor a5,a1,a0
8bba: 8b8d andi a5,a5,3
8bbc: 00c50733 add a4,a0,a2
8bc0: e781 bnez a5,8bc8 <memcpy+0x12>
8bc2: 478d li a5,3
8bc4: 00c7ed63 bltu a5,a2,8bde <memcpy+0x28>
8bc8: 87aa mv a5,a0
8bca: 08e57e63 bgeu a0,a4,8c66 <memcpy+0xb0>
8bce: 2194 lbu a3,0(a1)
8bd0: 0785 addi a5,a5,1
8bd2: 0585 addi a1,a1,1
8bd4: fed78fa3 sb a3,-1(a5)
8bd8: fee7ebe3 bltu a5,a4,8bce <memcpy+0x18>
8bdc: 8082 ret
8bde: 00357693 andi a3,a0,3
8be2: 87aa mv a5,a0
8be4: ca89 beqz a3,8bf6 <memcpy+0x40>
8be6: 2194 lbu a3,0(a1)
8be8: 0785 addi a5,a5,1
8bea: 0585 addi a1,a1,1
8bec: fed78fa3 sb a3,-1(a5)
8bf0: 0037f693 andi a3,a5,3
8bf4: bfc5 j 8be4 <memcpy+0x2e>
8bf6: ffc77693 andi a3,a4,-4
8bfa: fe068613 addi a2,a3,-32
8bfe: 06c7f063 bgeu a5,a2,8c5e <memcpy+0xa8>
8c02: 0005a383 lw t2,0(a1)
8c06: 0045a283 lw t0,4(a1)
8c0a: 0085af83 lw t6,8(a1)
8c0e: 00c5af03 lw t5,12(a1)
8c12: 0105ae83 lw t4,16(a1)
8c16: 0145ae03 lw t3,20(a1)
8c1a: 0185a303 lw t1,24(a1)
8c1e: 01c5a883 lw a7,28(a1)
8c22: 02458593 addi a1,a1,36
8c26: 0077a023 sw t2,0(a5)
8c2a: ffc5a803 lw a6,-4(a1)
8c2e: 0057a223 sw t0,4(a5)
8c32: 01f7a423 sw t6,8(a5)
8c36: 01e7a623 sw t5,12(a5)
8c3a: 01d7a823 sw t4,16(a5)
8c3e: 01c7aa23 sw t3,20(a5)
8c42: 0067ac23 sw t1,24(a5)
8c46: 0117ae23 sw a7,28(a5)
8c4a: 02478793 addi a5,a5,36
8c4e: ff07ae23 sw a6,-4(a5)
8c52: b775 j 8bfe <memcpy+0x48>
8c54: 4190 lw a2,0(a1)
8c56: 0791 addi a5,a5,4
8c58: 0591 addi a1,a1,4
8c5a: fec7ae23 sw a2,-4(a5)
8c5e: fed7ebe3 bltu a5,a3,8c54 <memcpy+0x9e>
8c62: f6e7e6e3 bltu a5,a4,8bce <memcpy+0x18>
8c66: 8082 ret
8c68: 4e20 lw s0,88(a2)
8c6a: 0000 unimp
8c6c: 3a98 lbu a4,17(a3)
8c6e: 0000 unimp
8c70: 0009 c.nop 2
8c72: 0000 unimp
8c74: 6148 flw fa0,4(a0)
8c76: 6472 flw fs0,28(sp)
8c78: 6146 flw ft2,80(sp)
8c7a: 6c75 lui s8,0x1d
8c7c: 5f74 lw a3,124(a4)
8c7e: 6148 flw fa0,4(a0)
8c80: 646e flw fs0,216(sp)
8c82: 656c flw fa1,76(a0)
8c84: 0d72 slli s10,s10,0x1c
8c86: 0000 unimp
8c88: 656d lui a0,0x1b
8c8a: 6370 flw fa2,68(a4)
8c8c: 2020 lbu s0,2(s0)
8c8e: 253a lhu a4,10(a0)
8c90: 3830 lbu a2,19(s0)
8c92: 0d78 addi a4,sp,668
8c94: 000a c.slli zero,0x2
8c96: 0000 unimp
8c98: 636d lui t1,0x1b
8c9a: 7561 lui a0,0xffff8
8c9c: 253a6573 csrrsi a0,0x253,20
8ca0: 3830 lbu a2,19(s0)
8ca2: 0d78 addi a4,sp,668
8ca4: 000a c.slli zero,0x2
8ca6: 0000 unimp
8ca8: 746d lui s0,0xffffb
8caa: 6176 flw ft2,92(sp)
8cac: 206c lbu a1,6(s0)
8cae: 253a lhu a4,10(a0)
8cb0: 3830 lbu a2,19(s0)
8cb2: 0d78 addi a4,sp,668
8cb4: 000a c.slli zero,0x2
8cb6: 0000 unimp
8cb8: 6b636f53 0x6b636f53
8cbc: 7465 lui s0,0xffff9
8cbe: 6449 lui s0,0x12
8cc0: 2520 lbu s0,10(a0)
8cc2: 0d64 addi s1,sp,668
8cc4: 000a c.slli zero,0x2
8cc6: 0000 unimp
8cc8: 544e4947 0x544e4947
8ccc: 535f 4154 5f54 0x5f544154535f
8cd2: 4e55 li t3,21
8cd4: 4552 lw a0,20(sp)
8cd6: 4341 li t1,16
8cd8: 0d48 addi a0,sp,660
8cda: 0000 unimp
8cdc: 544e4947 0x544e4947
8ce0: 535f 4154 5f54 0x5f544154535f
8ce6: 5049 c.li zero,-14
8ce8: 435f 4e4f 4c46 0x4c464e4f435f
8cee: 0d49 addi s10,s10,18
8cf0: 0000 unimp
8cf2: 0000 unimp
8cf4: 4850 lw a2,20(s0)
8cf6: 2059 jal 8d7c <memcpy+0x1c6>
8cf8: 694c flw fa1,20(a0)
8cfa: 6b6e flw fs6,216(sp)
8cfc: 5320 lw s0,96(a4)
8cfe: 6375 lui t1,0x1d
8d00: 73736563 bltu t1,s7,942a <_data_lma+0x596>
8d04: 000d c.nop 3
8d06: 0000 unimp
8d08: 4354 lw a3,4(a4)
8d0a: 2050 lbu a2,4(s0)
8d0c: 6e6e6f43 fmadd.q ft10,ft8,ft6,fa3,unknown
8d10: 6365 lui t1,0x19
8d12: 2074 lbu a3,6(s0)
8d14: 63637553 0x63637553
8d18: 7365 lui t1,0xffff9
8d1a: 73202c73 csrr s8,0x732
8d1e: 656b636f jal t1,bf374 <_data_lma+0xb64e0>
8d22: 2074 lbu a3,6(s0)
8d24: 6469 lui s0,0x1a
8d26: 203a lhu a4,2(s0)
8d28: 6425 lui s0,0x9
8d2a: 0a0d addi s4,s4,3
8d2c: 0000 unimp
8d2e: 0000 unimp
8d30: 4354 lw a3,4(a4)
8d32: 2050 lbu a2,4(s0)
8d34: 6944 flw fs1,20(a0)
8d36: 6e6f6373 csrrsi t1,0x6e6,30
8d3a: 656e flw fa0,216(sp)
8d3c: 000d7463 bgeu s10,zero,8d44 <memcpy+0x18e>
8d40: 4354 lw a3,4(a4)
8d42: 2050 lbu a2,4(s0)
8d44: 6954 flw fa3,20(a0)
8d46: 656d lui a0,0x1b
8d48: 0d74756f jal a0,5061e <_data_lma+0x4778a>
8d4c: 0000 unimp
8d4e: 0000 unimp
8d50: 7245 lui tp,0xffff1
8d52: 6f72 flw ft10,28(sp)
8d54: 3a72 lhu a2,54(a2)
8d56: 2520 lbu s0,10(a0)
8d58: 3230 lbu a2,3(a2)
8d5a: 0d58 addi a4,sp,660
8d5c: 000a c.slli zero,0x2
8d5e: 0000 unimp
8d60: 4354 lw a3,4(a4)
8d62: 4350 lw a2,4(a4)
8d64: 696c flw fa1,84(a0)
8d66: 6e65 lui t3,0x19
8d68: 2074 lbu a3,6(s0)
8d6a: 6554 flw fa3,12(a0)
8d6c: 0a0d7473 csrrci s0,0xa0,26
8d70: 74737953 0x74737953
8d74: 6d65 lui s10,0x19
8d76: 3a6b6c43 fmadd.d fs8,fs6,ft6,ft7,unknown
8d7a: 6425 lui s0,0x9
8d7c: 0a0d addi s4,s4,3
8d7e: 0000 unimp
8d80: 656e flw fa0,216(sp)
8d82: 2074 lbu a3,6(s0)
8d84: 6576 flw fa0,92(sp)
8d86: 7372 flw ft6,60(sp)
8d88: 6f69 lui t5,0x1a
8d8a: 3a6e lhu a1,54(a2)
8d8c: 7825 lui a6,0xfffe9
8d8e: 000a c.slli zero,0x2
8d90: 6576 flw fa0,92(sp)
8d92: 7372 flw ft6,60(sp)
8d94: 6f69 lui t5,0x1a
8d96: 206e lhu a1,6(s0)
8d98: 7265 lui tp,0xffff9
8d9a: 6f72 flw ft10,28(sp)
8d9c: 2e72 lhu a2,30(a2)
8d9e: 0000 unimp
8da0: 616d addi sp,sp,240
8da2: 64612063 0x64612063
8da6: 7264 flw fs1,100(a2)
8da8: 003a c.slli zero,0xe
8daa: 0000 unimp
8dac: 7825 lui a6,0xfffe9
8dae: 0020 addi s0,sp,8
8db0: 4e484357 0x4e484357
8db4: 5445 li s0,-15
8db6: 4c5f 6269 6e49 0x6e4962694c5f
8dbc: 7469 lui s0,0xffffa
8dbe: 5320 lw s0,96(a4)
8dc0: 6375 lui t1,0x1d
8dc2: 73736563 bltu t1,s7,94ec <_data_lma+0x658>
8dc6: 000d c.nop 3
00008dc8 <MemNum>:
8dc8: 0000 0000 0001 0000 0002 0000 0004 0004 ................
00008dd8 <MemSize>:
8dd8: 001c 0020 00b4 0024 0014 0020 0010 0600 .. ...$... .....
8de8: 445b 5056 205d 7266 6d61 3d65 6c25 2075 [DVP] frame=%lu
8df8: 6f73 6b63 7465 253d 0d64 000a 445b 5056 socket=%d...[DVP
8e08: 205d 7266 6d61 3d65 6c25 2075 6177 7469 ] frame=%lu wait
8e18: 6e69 2067 6f66 2072 4354 2e50 2e2e 0a0d ing for TCP.....
8e28: 0000 0000 ....
00008e2c <ErrTable>:
8e2c: 1100 1312 1514 1716 1918 1b1a 1d1c 1f1e ................
8e3c: 5600 0000 5646 0000 5660 0000 5670 0000 .V..FV..`V..pV..
8e4c: 5670 0000 565c 0000 565c 0000 567e 0000 pV..\V..\V..~V..
00008e5c <tcp_backoff>:
8e5c: 0201 0403 0605 0707 0707 0707 0007 0000 ................
8e6c: 6bf0 0000 6cfe 0000 6dea 0000 6df2 0000 .k...l...m...m..
8e7c: 6e98 0000 6dea 0000 6ede 0000 6f1a 0000 .n...m...n...o..
8e8c: 6e28 6c75 296c 0000 (null)..